/* The Extensions store, listing pages, Settings › Extensions, and the parts
   of Practice that extensions add (file bar, Explain switch, plain-words
   panel, New file dialog). */
.new-chip{font:700 9px/1 var(--mono);letter-spacing:.6px;text-transform:uppercase;color:var(--onaccent);background:var(--accent);border-radius:999px;padding:3px 6px}

/* store */
.x-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:24px 0 20px}
.x-search{display:flex;align-items:center;gap:9px;flex:1 1 240px;max-width:340px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.x-search:focus-within{border-color:var(--accent)}
.x-search svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;flex:none}
.x-search input{border:0;background:transparent;padding:10px 0;outline:none;min-width:0}
.x-cats,.x-kind{display:flex;flex-wrap:wrap;gap:6px}
.x-cats button,.x-kind button{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer}
.x-cats button[aria-pressed="true"],.x-kind button[aria-pressed="true"]{background:var(--accent-soft);border-color:rgba(94,234,212,.45);color:var(--accent)}
.x-kind{margin-left:auto}
.x-cats button:focus-visible,.x-kind button:focus-visible,.x-card a:focus-visible,.x-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.x-feature{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:28px;padding:26px 28px;margin-bottom:28px;border:1px solid rgba(94,234,212,.35);border-radius:18px;background:linear-gradient(120deg,rgba(94,234,212,.10),rgba(94,234,212,.02) 55%),var(--surface)}
.x-feature-top{display:flex;align-items:center;gap:18px;margin-bottom:12px}
.x-feature-top > div,.x-dhead > div{min-width:0}
.x-feature h2{font:600 28px/1.1 var(--display);margin:0 0 8px}
.x-feature p{color:#c9cfdb;font-size:15px;line-height:1.6;margin:0 0 16px;max-width:62ch}
.x-feature-chips,.x-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.x-feature-acts{display:flex;flex-wrap:wrap;gap:10px}
.x-feature-demo{align-self:center;background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:16px}
.x-feature-demo pre{margin:0 0 12px;padding:10px 12px;background:var(--code-bg);border:1px solid var(--line);border-radius:10px;font:13px/1.7 var(--mono);color:#c9cfdb;white-space:pre-wrap}
.x-feature-demo mark{background:rgba(94,234,212,.28);color:var(--ink);border-radius:3px}
.tk-k{color:#c792ea}
.x-demo-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface)}
.x-demo-card b{font:700 17px var(--mono)}
.x-demo-card span{display:flex;gap:6px;margin:6px 0}
.x-demo-card i{font-style:normal;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.x-demo-card i:first-child{color:var(--accent);border-color:rgba(94,234,212,.4)}
.x-demo-card p{margin:0;color:#c9cfdb;font-size:13.5px}
.x-icon{display:block;flex:none;border-radius:22%}
.x-ghost{width:var(--s);height:var(--s);display:grid;place-items:center;border:1px dashed #3a4150;background:var(--surface-2);color:var(--muted);font:700 calc(var(--s) * .32) var(--mono)}
.x-powered{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 5px;border-radius:999px;background:#f4f1ea;color:#1b1a17;font-size:12.5px;font-weight:600;white-space:nowrap;max-width:100%}
.x-powered img{border-radius:5px;flex:none}
.x-powered b{font-weight:700}
.x-pw{display:inline-flex;gap:.35em;align-items:baseline}
.x-pn{color:#5b574e;font-weight:500}
.x-pn i{font-style:normal}
/* Where there's no room for one line, the badge stacks "Powered by Lexra" over "a Denad Labs product". */
.x-card .x-powered{border-radius:12px;padding:5px 12px 5px 6px;white-space:normal}
.x-card .x-pw{flex-direction:column;gap:0;line-height:1.3}
.x-card .x-pn i{display:none}
.x-by{font-size:12.5px;color:var(--muted)}
.x-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600}
.x-chip.on{background:var(--accent-soft);border-color:rgba(94,234,212,.4);color:var(--accent)}
.x-grid-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.x-grid-head h2{font:600 20px var(--display);margin:0}
.x-grid-head span{color:var(--muted);font-size:13.5px}
.x-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.x-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);min-height:190px}
.x-card.idea{background:var(--surface-2);border-style:dashed}
.x-card-top{display:flex;align-items:flex-start;gap:12px}
.x-card-name{min-width:0;display:grid;gap:4px}
.x-card h3{font:600 17px var(--display);margin:0}
.x-card h3 a:hover{color:var(--accent)}
.x-card p{margin:0;color:#c9cfdb;font-size:14px;line-height:1.55}
.x-card-top .toggle{margin-left:auto;flex:none}
.x-card-foot{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.x-cat{margin-left:auto}
.x-idea{flex:none;font:700 9.5px/1.3 var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--warning);border:1px solid rgba(255,212,121,.4);border-radius:999px;padding:3px 7px;text-align:center}
.x-suggest{border-style:dashed;background:transparent;justify-content:center;text-align:center;align-items:center}
.x-suggest p{color:var(--muted)}
.x-suggest a{color:var(--accent);font-weight:600;font-size:13.5px}
.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* listing page */
.x-back{display:inline-block;color:var(--muted);font-size:14px;margin-bottom:16px}
.x-back:hover{color:var(--accent)}
.x-dhead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:start;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:22px}
.x-dhead h1{margin:0 0 8px}
.x-dhead p{color:#c9cfdb;font-size:15.5px;line-height:1.6;margin:12px 0 0;max-width:64ch}
.x-meta{display:grid;grid-template-columns:auto auto;gap:4px 12px;margin:0;font-size:13.5px;text-align:right}
.x-meta dt{color:var(--muted)}.x-meta dd{margin:0;font-weight:600}
.x-dgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}
.x-ways{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}
.x-way{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.x-way.on{border-color:rgba(94,234,212,.45);background:linear-gradient(160deg,rgba(94,234,212,.09),transparent 60%),var(--surface)}
.x-way-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.x-way-top h2{font:600 18px var(--display);margin:0}
.x-way-top .toggle,.x-way-top .btn,.x-way-top .x-soon{margin-left:auto}
.x-way p{margin:0 0 12px;color:#c9cfdb;font-size:14px}
.x-soon{font:700 10px/1.3 var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--warning);border:1px solid rgba(255,212,121,.4);border-radius:999px;padding:4px 8px}
.x-surfaces{border:0;margin:0;padding:0;display:grid;gap:8px}
.x-surfaces legend{font:700 11px var(--mono);letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;padding:0}
.x-surfaces label{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer}
.x-surfaces input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--accent);flex:none}
.x-surfaces b{display:block;font-size:14px}
.x-surfaces small{display:block;color:var(--muted);font-size:12.5px}
.x-surfaces[disabled]{opacity:.55}
.x-surfaces[disabled] label{cursor:not-allowed}
.x-surfaces.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:12px}
.x-surfaces.compact label{align-items:center;font-size:13.5px}
.x-muted{color:var(--muted);font-size:13.5px;margin:8px 0 0}
.x-h{font:600 19px var(--display);margin:22px 0 10px}
.x-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.x-list li{display:flex;gap:10px;color:#c9cfdb;font-size:14.5px}
.x-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:8px;flex:none}
.x-steps{margin:0;padding-left:20px;color:#c9cfdb;font-size:14.5px;line-height:1.8}
.x-steps kbd{font:600 12px var(--mono);border:1px solid var(--line);border-radius:6px;padding:1px 6px;background:var(--surface-2)}
.x-side{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:14px}
.x-side h2{display:flex;align-items:center;gap:10px;font:600 16px var(--display);margin:0 0 10px}
.x-side p{margin:0;color:#c9cfdb;font-size:14px;line-height:1.55}
.x-kv{display:grid;grid-template-columns:70px 1fr;gap:8px 12px;margin:0;font-size:13.5px}
.x-kv dt{color:var(--muted)}.x-kv dd{margin:0;color:#c9cfdb}
.x-lexra{background:#f4f1ea;border-color:#d9d3c5;color:#1b1a17}
.x-lexra h2{color:#1b1a17}
.x-lexra h2 img{border-radius:7px}
.x-lexra p{color:#45413a}
.x-lexra a{display:inline-block;margin-top:10px;font-weight:700;font-size:13.5px;color:#1b1a17;text-decoration:underline;text-underline-offset:3px}
.x-lexra a:focus-visible{outline:2px solid #1b1a17;outline-offset:2px}
.x-saved{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.x-saved li{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.x-saved li > div:first-child{display:flex;align-items:center;gap:8px}
.x-saved code{font:700 15px var(--mono)}
.x-saved p{margin:4px 0 8px;color:#c9cfdb;font-size:13.5px}
.x-saved-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.x-saved-acts a{color:var(--accent);font-size:13px;font-weight:600}
.x-saved-acts .btn{margin-left:auto}

/* Settings › Extensions */
.x-set{padding:14px 0;border-bottom:1px solid var(--line)}
.x-set-top{display:flex;align-items:center;gap:12px}
.x-set-top > div > b{display:block;font-size:15px;margin-bottom:3px}
.x-set-top .toggle{margin-left:auto;flex:none}
.x-set-top > div{min-width:0}
.x-set-chrome{margin-top:10px;color:var(--muted);font-size:13px}
.x-set-chrome a{color:var(--accent)}

/* Practice additions */
.editor-toolbar{flex-wrap:wrap}
.file-bar,.tool-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tool-group{margin-left:auto}
.file-select{width:auto;max-width:220px;padding:7px 30px 7px 10px;font:12.5px var(--mono);border-radius:9px;background:var(--surface-2)}
.editor-name{padding:7px 14px;border-bottom:1px solid var(--line);font:12px var(--mono);color:var(--muted);background:var(--surface-2)}
.explain-sw{display:inline-flex;align-items:center;gap:8px;padding:5px 6px 5px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--muted);font-weight:650;font-size:13px;cursor:pointer}
.explain-sw img{border-radius:4px;background:#fdfcfa}
.explain-sw i{width:32px;height:18px;border-radius:999px;background:var(--line);position:relative}
.explain-sw i::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#9aa3b5;transition:left .15s}
.explain-sw.on{border-color:rgba(94,234,212,.45);background:var(--accent-soft);color:var(--accent)}
.explain-sw.on i{background:var(--accent)}
.explain-sw.on i::after{left:16px;background:var(--onaccent)}
.explain-sw:focus-visible,.file-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.delete-confirm{display:inline-flex;align-items:center;gap:7px;font-size:13px}
.editor-toolbar .explain-sw span,.editor-toolbar .delete-confirm span{font:650 13px var(--body);color:inherit}
.plain-panel,.plain-panel *{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}
.play-layout.with-panel{grid-template-columns:200px minmax(0,1fr) 320px}
.plain-panel{padding:16px;align-self:start;max-height:640px;overflow:auto}
.plain-head{display:flex;align-items:center;gap:8px}
.plain-head h2{font:600 16px var(--display);margin:0}
.plain-head .btn{margin-left:auto}
.plain-sub{margin:6px 0 10px;color:var(--muted);font-size:12.5px}
.plain-line{padding:9px 0;border-top:1px solid var(--line)}
.plain-line code{display:block;font:12px var(--mono);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plain-line p{margin:4px 0 0;font-size:13.5px;color:#dfe4ee;line-height:1.5}
.plain-line p b{font:500 12.5px var(--mono);color:var(--accent)}
.plain-line.none p{color:var(--muted)}
.plain-empty{color:var(--muted);font-size:13px;margin:10px 0}
.plain-foot{display:flex;align-items:center;gap:6px;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:11.5px}
.plain-foot img{border-radius:3px;background:#fdfcfa}
.explain-hint a{color:var(--accent)}

/* New file dialog */
.nf-dialog{width:min(460px,calc(100vw - 32px));padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.nf-dialog::backdrop{background:rgba(5,7,10,.65)}
.nf-dialog form{display:grid;gap:14px;padding:22px}
.nf-dialog h2{font:600 22px var(--display);margin:0}
.nf-explain{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(94,234,212,.35);border-radius:12px;background:var(--accent-soft);cursor:pointer}
.nf-explain img{border-radius:7px;background:#fdfcfa;flex:none}
.nf-explain b{display:block;font-size:14px}
.nf-explain small{display:block;color:#c3cad6;font-size:12.5px}
.nf-explain input{width:42px;height:24px;margin-left:auto;flex:none;appearance:none;-webkit-appearance:none;border-radius:999px;background:var(--line);position:relative;cursor:pointer;padding:0;border:0}
.nf-explain input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.nf-explain input:checked{background:var(--accent)}
.nf-explain input:checked::after{left:21px;background:var(--onaccent)}
.nf-explain input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nf-note{margin:-6px 0 0;color:var(--muted);font-size:12.5px}
.nf-error{margin:0;color:#ff9db3;font-size:13px}
.nf-actions{display:flex;justify-content:flex-end;gap:10px}

@media(max-width:1100px){.play-layout.with-panel{grid-template-columns:200px minmax(0,1fr)}.play-layout.with-panel .plain-panel{grid-column:1/-1;max-height:none}.x-feature{grid-template-columns:minmax(0,1fr)}.x-dgrid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:940px){.x-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.x-kind{margin-left:0}.x-dhead{grid-template-columns:auto minmax(0,1fr)}.x-meta{grid-column:1/-1;text-align:left;grid-template-columns:auto 1fr}.play-layout.with-panel{grid-template-columns:1fr}}
@media(max-width:760px){.topnav .new-chip{display:none}}
@media(max-width:620px){.x-powered{border-radius:12px;padding:5px 12px 5px 6px;white-space:normal}.x-pw{flex-direction:column;gap:0;line-height:1.3}.x-pn i{display:none}.editor-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.file-bar{display:grid;grid-template-columns:minmax(0,1fr) auto}.file-select{max-width:none;width:100%;font-size:16px}.tool-group{justify-content:flex-end}.x-feature-top{align-items:flex-start}.x-feature-top .x-icon{width:60px;height:60px}.x-grid,.x-ways{grid-template-columns:minmax(0,1fr)}.x-feature{padding:20px}.x-feature-demo{display:none}.x-dhead{grid-template-columns:1fr}.x-dhead .x-icon{width:64px;height:64px}.x-search{max-width:none;flex-basis:100%}.tool-group{margin-left:0}}
