:root{--bg:#f3f6fb;--surface:#fff;--surface-2:#e9eff8;--ink:#131b2b;--ink-2:#36435a;--muted:#5f6d86;--line:#d4dcea;--accent:#2c5cc5;--accent-ink:#fff;--accent-soft:#dfe8fa;--accent-2:#4f86e8;--good:#1f7a50;--good-soft:#dbf0e4;--bad:#b43a30;--bad-soft:#fae2de;--warn:#97600c;--warn-soft:#f7ebd3;--pend:#5a52b3;--pend-soft:#e6e4f8;--editor-bg:#fbfcfe;--editor-gutter:#f1f4fa;--editor-active:#edf2fb;--select:#cfdcf6;--code-kw:#6e3a99;--code-str:#9a4c12;--code-num:#1a6683;--demo-bg:#17223a;--demo-ink:#dbe4f3;--shadow:0 1px 2px #131e380f, 0 8px 24px #131e3812;--shadow-hover:0 2px 4px #131e3814, 0 12px 32px #131e381a;--font-display:"Bricolage Grotesque", "IBM Plex Sans", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--r:10px;--tone-blue:#2c5cc5;--tone-gold:#8c6a00;--tone-rose:#b6405a;--tone-indigo:#5b52b5;--tone-amber:#c0620c;--tone-teal:#1c7c7d;--tone-slate:#536069;--tone-green:#1f7a50;--tip-bg:#131b2b;--tip-ink:#f3f6fb}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c111d;--surface:#131a29;--surface-2:#19233a;--ink:#e5ebf6;--ink-2:#bcc7dc;--muted:#8592ab;--line:#263149;--accent:#85a8f2;--accent-ink:#0a1222;--accent-soft:#1b2a4b;--accent-2:#a9c2f6;--good:#6fcf97;--good-soft:#15301f;--bad:#f08b7a;--bad-soft:#3a1c1a;--warn:#e5b45e;--warn-soft:#3a2d12;--pend:#b2acf2;--pend-soft:#25234a;--editor-bg:#10172a;--editor-gutter:#141c2f;--editor-active:#182238;--select:#26406e;--code-kw:#c69cf0;--code-str:#eaa56c;--code-num:#7ccae6;--demo-bg:#070b14;--demo-ink:#c9d4e6;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000047;--shadow-hover:0 2px 4px #00000059, 0 12px 32px #00000052;--tone-blue:#85a8f2;--tone-gold:#e0c25a;--tone-rose:#f08aa0;--tone-indigo:#a9a2f2;--tone-amber:#f2a45c;--tone-teal:#6fd0cf;--tone-slate:#a6b3ba;--tone-green:#6fcf97;--tip-bg:#e5ebf6;--tip-ink:#0c111d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0c111d;--surface:#131a29;--surface-2:#19233a;--ink:#e5ebf6;--ink-2:#bcc7dc;--muted:#8592ab;--line:#263149;--accent:#85a8f2;--accent-ink:#0a1222;--accent-soft:#1b2a4b;--accent-2:#a9c2f6;--good:#6fcf97;--good-soft:#15301f;--bad:#f08b7a;--bad-soft:#3a1c1a;--warn:#e5b45e;--warn-soft:#3a2d12;--pend:#b2acf2;--pend-soft:#25234a;--editor-bg:#10172a;--editor-gutter:#141c2f;--editor-active:#182238;--select:#26406e;--code-kw:#c69cf0;--code-str:#eaa56c;--code-num:#7ccae6;--demo-bg:#070b14;--demo-ink:#c9d4e6;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000047;--shadow-hover:0 2px 4px #00000059, 0 12px 32px #00000052;--tone-blue:#85a8f2;--tone-gold:#e0c25a;--tone-rose:#f08aa0;--tone-indigo:#a9a2f2;--tone-amber:#f2a45c;--tone-teal:#6fd0cf;--tone-slate:#a6b3ba;--tone-green:#6fcf97;--tip-bg:#e5ebf6;--tip-ink:#0c111d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:10;background:var(--demo-bg);position:fixed;inset:0 0 auto}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.h1{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:2rem;font-weight:650;line-height:1.15}.h2{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:1.5rem;font-weight:650;line-height:1.2}.h3{font-family:var(--font-display);margin:0;font-size:1.125rem;font-weight:650}.h4{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin:0;font-size:.8rem;font-weight:600}.lede{color:var(--ink-2);max-width:60ch;margin:0;font-size:1.05rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 4px;font-size:.75rem;font-weight:600}.small{font-size:.85rem}.muted{color:var(--muted)}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:.85rem}.warn-text{color:var(--warn)}.row{flex-wrap:wrap;align-items:center;display:flex}.gap{gap:12px}.stack{flex-direction:column;gap:16px;min-width:0;display:flex}.stack-lg{flex-direction:column;gap:32px;display:flex}.small-gap{gap:8px}ul.tight{gap:6px;margin:0;padding-left:1.2em;display:grid}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:500;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}.btn.ghost{background:0 0}.btn.danger{color:var(--bad)}.btn.small{padding:5px 10px;font-size:.85rem}.btn.big{padding:12px 22px;font-size:1rem}.btn.on{background:var(--accent-soft);border-color:var(--accent)}.linklike{color:var(--accent);text-underline-offset:2px;cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.field{flex-direction:column;gap:6px;display:flex}.field.inline{flex-direction:row;align-items:center;gap:8px}.label{color:var(--ink-2);font-size:.85rem;font-weight:600}input[type=email],input[type=password],input:not([type]),.num-input,textarea,select{background:var(--surface);border:1px solid var(--line);border-radius:6px;width:100%;padding:9px 11px}.field.inline select{width:auto}textarea{resize:vertical;line-height:1.5}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.num-input{max-width:160px;font-family:var(--font-mono)}.form-error{color:var(--bad);margin:0;font-size:.9rem}.pill{background:var(--surface-2);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.pill.good{background:var(--good-soft);color:var(--good)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.part,.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.pending{background:var(--pend-soft);color:var(--pend)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.pill.example{border:1px dashed var(--muted);color:var(--muted);background:0 0;margin-left:6px;font-weight:500}.bar{background:var(--surface-2);vertical-align:middle;border-radius:3px;flex:none;width:120px;height:6px;display:inline-block;overflow:hidden}.bar>span{background:var(--accent);border-radius:3px;height:100%;display:block}.bar.bad>span{background:var(--bad)}.bar.warn>span{background:var(--warn)}.bar.good>span{background:var(--good)}.bar-cell{align-items:center;gap:8px;display:flex}.app{flex-direction:column;min-height:100%;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.page{width:100%;max-width:1180px;padding-block:32px 64px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.page.narrow{max-width:760px}.center-page{padding-block:40px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));flex:1;place-items:center;display:grid}.signin{background:var(--surface);border:1px solid var(--line);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:22px;padding:28px;display:flex}.brand{font-family:var(--font-display);align-items:center;gap:10px;font-size:1.05rem;font-weight:700;display:flex}.brand-mark{background:var(--accent);border-radius:50% 50% 50% 4px;width:22px;height:22px;transform:rotate(-45deg)}.brand-sub{font-family:var(--font-body);color:var(--muted);font-size:.85rem;font-weight:500}.loading{color:var(--ink-2);align-items:center;gap:12px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.spinner.small{vertical-align:-2px;width:13px;height:13px;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.intro{flex-direction:column;gap:28px;display:flex}.intro-head{flex-direction:column;gap:10px;display:flex}.covers ul{columns:2;column-gap:32px;margin:8px 0 0;padding-left:1.2em}.covers li{break-inside:avoid;margin-bottom:4px}.notice{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;padding:14px 18px}.notice p{color:var(--ink-2);margin:6px 0 0}@media (max-width:640px){.covers ul{columns:1}}.test-shell{flex-direction:column;flex:1;min-height:0;display:flex}.test-bar{padding-block:10px;padding-left:max(20px, env(safe-area-inset-left,0px));padding-right:max(20px, env(safe-area-inset-right,0px));background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:20px;display:flex}.tb-left{align-items:center;gap:8px;min-width:0;font-weight:600;display:flex}.tb-test{color:var(--muted);font-weight:500}.tb-sep{color:var(--muted)}.progress{gap:5px;margin:0 auto;display:flex}.tb-right{align-items:center;gap:14px;display:flex}.cols{border-left:1px solid var(--line);gap:1px;margin:4px 0 4px 2px;padding:0 0 0 12px;list-style:none;display:grid}.hints ol{gap:10px;margin:8px 0 0;padding-left:1.2em;font-size:.9rem;display:grid}.hints{background:var(--pend-soft);border-radius:8px;padding:12px 14px}.work{flex-direction:column;gap:12px;min-width:0;display:flex;position:relative}.editor-card,.results-card,.answer-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;position:relative}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.answer-card{flex-direction:column;gap:20px;padding:20px;display:flex}.results{flex-direction:column;flex:1;min-height:0;display:flex}.match{gap:12px;display:grid}.match-row{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:14px;display:grid}.term{font-family:var(--font-mono);font-size:1rem;font-weight:600}.predict{gap:14px;display:grid}.options{border:0;gap:10px;margin:0;padding:0;display:grid}.option{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px 14px;display:flex}.option.picked{border-color:var(--accent);background:var(--accent-soft)}.option input{accent-color:var(--accent)}.stuck{z-index:5;background:var(--surface);border:1px solid var(--accent);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:6px;max-width:260px;padding:14px 16px;display:flex;position:absolute;bottom:16px;right:16px}.stuck p{color:var(--ink-2);margin:0}.feedback{background:var(--surface);border:1px solid var(--line);border-left-width:4px;border-radius:10px;align-items:center;gap:20px;margin:0 20px 20px;padding:16px 20px;display:flex}.feedback.good{border-left-color:var(--good)}.feedback.bad{border-left-color:var(--bad)}.feedback.part{border-left-color:var(--warn)}.feedback.pending{border-left-color:var(--pend)}.fb-head{align-items:center;gap:10px;display:flex}.fb-text{margin:0}.fb-text p{margin:0 0 4px}.modal-back{z-index:50;background:#0a100d73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);color:var(--ink);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:14px;max-height:90vh;padding:22px;display:flex;overflow:hidden}.modal.wide{max-width:640px}.modal-title{font-family:var(--font-display);margin:0;font-size:1.2rem}.modal-body{flex:auto;min-height:0;margin:-3px;padding:3px;overflow:auto}.modal-body p{margin:0}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.modal textarea{width:100%}.results-page{flex-direction:column;gap:28px;display:flex;position:relative}.results-head{grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:start;gap:32px;display:grid}.score{font-family:var(--font-display);margin:4px 0;line-height:1}.score-num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:4rem;font-weight:700}.score-of{color:var(--muted);font-size:1.6rem;font-weight:500}.advice{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:16px 18px;display:flex}.advice p{margin:0}.rewatch{gap:4px;margin:0;padding-left:1.1em;display:grid}.rewatch a{color:var(--accent)}.res-list{background:var(--line);border:1px solid var(--line);border-radius:10px;gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.res-item{background:var(--surface);flex-direction:column;gap:6px;min-width:0;padding:14px 18px;display:flex}.res-item p{margin:0}.res-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.res-num{font-family:var(--font-mono);color:var(--muted);width:36px;font-weight:600}.res-title{font-weight:600}.res-marks{font-variant-numeric:tabular-nums;margin-left:auto}.code{font-family:var(--font-mono);background:var(--surface-2);white-space:pre;border-radius:6px;margin:0;padding:8px 10px;font-size:.8rem;overflow-x:auto}.ans-text{border-left:3px solid var(--line);color:var(--ink-2);margin:0;padding:8px 12px;font-size:.9rem}@media (max-width:760px){.results-head{grid-template-columns:1fr}.score-num{font-size:3rem}}.admin{flex-direction:column;gap:24px;display:flex}.admin-head,.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.banner{background:var(--pend-soft);color:var(--pend);border-radius:8px;align-items:center;padding:10px 14px;font-size:.9rem;display:flex}.tabs{border-bottom:1px solid var(--line);scrollbar-width:thin;flex-wrap:nowrap;align-items:flex-end;gap:4px;display:flex;overflow:auto hidden}.tab{white-space:nowrap;cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:8px 10px;font-weight:500}.tab.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.tabs-end{flex:none;margin-left:auto;padding:0 0 6px 8px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:14px 16px;display:flex}.stat-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:700;line-height:1.1}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:600}.stat-text{font-family:var(--font-display);font-size:1.15rem;font-weight:600}@media (max-width:640px){.summary-row{grid-template-columns:1fr 1fr}.stat.wide{grid-column:1/-1}}.cohort{border:1px dashed var(--accent);background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;padding:16px 18px;display:flex}.cohort p{margin:0}.cohort-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.topics{margin:8px 0 0;padding-left:1.2em}.skills{counter-reset:sk;gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.skill{background:var(--surface);border:1px solid var(--line);counter-increment:sk;border-radius:10px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.skill-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.skill-head h3:before{content:counter(sk) ". ";color:var(--muted)}.skill-head h3{text-transform:none;letter-spacing:0;color:var(--ink);font-size:1rem}.skill-head p{margin:2px 0 0}.skill-score{align-items:center;gap:8px;display:flex}.mini{flex-wrap:wrap;gap:4px 20px;margin:0;font-size:.85rem;display:flex}.mini div{gap:6px;display:flex}.mini dt{font-family:var(--font-mono);color:var(--ink-2);font-weight:600}.mini dd{color:var(--muted);margin:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:.8rem}.chip:hover{border-color:var(--accent)}.empty{text-align:center;border:1px dashed var(--line);border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;display:flex}.empty p{max-width:50ch;margin:0}.filters{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow-x:auto}.data{border-collapse:collapse;width:100%;font-size:.88rem}.data th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);padding:10px 12px;font-size:.72rem;font-weight:600}.data td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}.data tr:last-child td{border-bottom:0}.data tr.sel td{background:var(--accent-soft)}.data .r{text-align:right}.who{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.code-chip{font-family:var(--font-mono);background:var(--surface-2);white-space:nowrap;border-radius:4px;margin:0 4px 4px 0;padding:1px 6px;font-size:.75rem;display:inline-block}.ver-chips{max-width:260px;margin-top:4px}.ans-cell .code{max-height:120px;font-size:.72rem}.narrow-block{max-width:560px}.back{align-self:flex-start}.score-box{text-align:right;font-family:var(--font-display)}.score-box .score-num{font-size:2.6rem}.flags{gap:8px;margin:0;padding:0;list-style:none;display:grid}.flag{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;display:flex}.flag.cleared{opacity:.6}.flag p{color:var(--ink-2);margin:2px 0 0}.flag-main{flex:300px;min-width:0}.flag-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.flag-actions .note{width:180px;padding:5px 8px;font-size:.85rem}details>summary{cursor:pointer}.json{max-height:360px;margin-top:8px;overflow:auto}.replay{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}.replay-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.player{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.speeds{gap:4px;display:inline-flex}.timeline{flex-direction:column;gap:6px;display:flex}.timeline input[type=range]{width:100%;accent-color:var(--accent);margin:0}.marks{height:16px;margin:0 8px;position:relative}.mk{cursor:pointer;background:var(--muted);border:0;border-radius:50%;width:10px;height:10px;margin-left:-5px;padding:0;position:absolute;top:2px}.legend .mk{vertical-align:-1px;cursor:default;margin:0 5px 0 0;display:inline-block;position:static}.mk.run.ok{background:var(--good)}.mk.run.err{background:var(--bad);border-radius:2px}.mk.paste{background:var(--warn);border-radius:2px;transform:rotate(45deg)}.mk.paste.err{background:var(--bad)}.mk.hint{background:var(--pend)}.mk.focus{background:var(--muted);border-radius:2px}.mk.submit{background:var(--ink);border-radius:1px;width:4px;height:14px;margin-left:-2px;top:0}.mk.copy{background:var(--accent);width:6px;height:6px;margin-left:-3px;top:4px}.legend{flex-wrap:wrap;gap:4px 14px;display:flex}.replay-body{grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:16px;display:grid}.replay-doc{white-space:pre-wrap;word-break:break-word;min-height:180px;font-size:.85rem;line-height:1.6}.caret{background:var(--accent);vertical-align:-2px;width:2px;height:1.1em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.caret{animation:none}}.replay-side{min-width:0}.small-code{white-space:pre-wrap;font-size:.75rem}@media (max-width:860px){.replay-body{grid-template-columns:1fr}}.qnav{flex-wrap:wrap;justify-content:center;gap:4px;margin:0 auto;display:flex}.qdot{border:1px solid var(--line);background:var(--surface);min-width:30px;height:28px;color:var(--ink-2);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:6px;padding:0 6px;font-size:.78rem;font-weight:600}.qdot:hover:not(:disabled){border-color:var(--accent)}.qdot.done{background:var(--accent-soft);color:var(--accent);border-color:#0000}.qdot.skipped{border-style:dashed;border-color:var(--warn);color:var(--warn)}.qdot.now{outline:2px solid var(--accent);outline-offset:1px;color:var(--ink)}.qdot.locked{opacity:.4;cursor:not-allowed}.check{color:var(--ink-2);cursor:pointer;align-items:center;gap:10px;font-size:.9rem;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px}.paste-note{background:var(--warn-soft);color:var(--warn);border-radius:8px;margin:0;padding:8px 12px;font-size:.88rem;font-weight:500}.feedback{flex-direction:column;align-items:stretch;gap:10px;margin:0}.feedback.pending{color:var(--pend);flex-direction:row;align-items:center}.fb-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.parts{gap:4px;margin:0;padding:0;font-size:.88rem;list-style:none;display:grid}.parts li{align-items:baseline;gap:8px;display:flex}.parts .tick{text-align:center;flex:none;width:1.2em;font-weight:700}.parts li.ok .tick{color:var(--good)}.parts li.no .tick{color:var(--bad)}.parts li.no{color:var(--ink-2)}.reveal{border:1px dashed var(--accent);background:var(--surface);border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.reveal p{margin:0}.option.locked{cursor:default}.review-list{background:var(--line);border:1px solid var(--line);border-radius:10px;gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.review-list li{background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.review-list .pill{margin-left:auto}.obar{background:var(--surface-2);border-radius:4px;width:140px;height:8px;display:flex;overflow:hidden}.sw{height:100%;display:inline-block}.legend-row .sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin:0 4px 0 12px}.legend-row .sw:first-child{margin-left:0}.sw.first{background:var(--good)}.sw.retry{background:var(--warn)}.sw.after_reveal{background:var(--pend)}.sw.never{background:var(--bad)}.sync-note{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;flex-direction:column;gap:6px;padding:12px 16px;display:flex}.sync-note p{max-width:80ch;margin:0}.link-cell{overflow-wrap:anywhere;max-width:280px;font-size:.75rem;display:inline-block}.tries-row td{background:var(--surface-2)}.tries{gap:12px;margin:0;padding-left:1.2em;display:grid}.tries p{margin:4px 0}.mk.shown{background:var(--pend);border-radius:2px;width:8px;height:12px;top:1px}.legend .mk.shown{width:8px;height:12px}.qcell{min-width:150px}.ans-cell{max-width:260px}.icon{vertical-align:-.15em;flex:none;display:inline-block}.btn{gap:7px}.btn .icon{margin-left:-2px}.icon-btn{width:34px;height:34px;padding:7px}.icon-btn .icon{margin:0}.btn.small.icon-btn,.icon-btn.small{width:30px;height:30px;padding:6px}.btn.ghost.icon-btn:hover:not(:disabled){background:var(--surface-2)}.row.gap-s,.gap-s{gap:8px}.h4.row,.h3.row,.h2.row{align-items:center;display:flex}.tone-text-green{color:var(--tone-green)}.tone-text-blue{color:var(--tone-blue)}.tone-text-amber{color:var(--tone-amber)}.tone-text-indigo{color:var(--tone-indigo)}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);background:var(--tip-bg);color:var(--tip-ink);font:500 .75rem/1.3 var(--font-body);letter-spacing:0;text-transform:none;white-space:nowrap;pointer-events:none;opacity:0;z-index:60;box-shadow:var(--shadow);border-radius:6px;padding:5px 9px;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%,3px)}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%)}[data-tip-pos=below]:after{top:calc(100% + 7px);bottom:auto;transform:translate(-50%,-3px)}[data-tip-align=end]:after{left:auto;right:0;transform:translateY(3px)}[data-tip-align=end]:hover:after,[data-tip-align=end]:focus-visible:after{transform:none}[data-tip-pos=below][data-tip-align=end]:after{transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){[data-tip]:after{transition:none}}@media (hover:none){[data-tip]:after{display:none}}.icon-tile{--tone:var(--tone-green);width:40px;height:40px;color:var(--tone);background:color-mix(in srgb, var(--tone) 13%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tone) 22%, transparent);border-radius:11px;flex:none;place-items:center;display:inline-grid}.icon-tile.big{border-radius:13px;width:48px;height:48px}.tone-blue{--tone:var(--tone-blue)}.tone-gold{--tone:var(--tone-gold)}.tone-rose{--tone:var(--tone-rose)}.tone-indigo{--tone:var(--tone-indigo)}.tone-amber{--tone:var(--tone-amber)}.tone-teal{--tone:var(--tone-teal)}.tone-slate{--tone:var(--tone-slate)}.tone-green{--tone:var(--tone-green)}.rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.rule{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.rule p{margin:0}.rule-title{font-weight:600;line-height:1.3}.rule-text{color:var(--ink-2);font-size:.9rem;margin-top:3px!important}@media (max-width:640px){.rules{grid-template-columns:1fr}}.q-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.hint-btn{color:var(--tone-amber);flex:none;padding:4px 9px}.hint-btn .tnum{color:var(--ink-2);font-size:.78rem}.hint-btn:hover:not(:disabled){border-color:var(--tone-amber)}.hints{background:color-mix(in srgb, var(--tone-amber) 10%, var(--surface))}.hints .h4{color:var(--tone-amber)}.paste-note{align-items:center;gap:8px;display:flex}.parts .tick{place-items:center;display:inline-grid}.pill .icon{margin-left:-1px}.chip{align-items:center;gap:5px;display:inline-flex}.tab{align-items:center;gap:7px;display:inline-flex}.tabs .tab .icon{opacity:.8}.rewatch a{align-items:center;gap:6px;display:inline-flex}.grade{font-family:var(--font-display);color:var(--g);background:color-mix(in srgb, var(--g) 14%, transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--g) 35%, transparent);font-variant-numeric:tabular-nums;border-radius:14px;flex:none;place-items:center;font-weight:700;display:inline-grid}.grade.big{border-radius:20px;width:84px;height:84px;font-size:2.6rem}.grade.mid{vertical-align:middle;border-radius:12px;width:46px;height:46px;margin-right:12px;font-size:1.4rem}.grade.small{border-radius:6px;min-width:30px;height:24px;padding:0 6px;font-size:.85rem}.g-top{--g:var(--good)}.g-mid{--g:var(--tone-blue)}.g-low{--g:var(--warn)}.g-fail{--g:var(--bad)}.score-row{align-items:center;gap:20px;margin:8px 0 4px;display:flex}.score-pct{color:var(--muted);margin:2px 0 0;font-weight:600}.stat-line{color:var(--ink-2);flex-wrap:wrap;gap:6px 20px;margin:10px 0 0;padding:0;font-size:.92rem;list-style:none;display:flex}.stat-line li{align-items:center;gap:7px;display:inline-flex}.grade-scale{flex-wrap:wrap;gap:4px;margin:14px 0 0;padding:0;list-style:none;display:flex}.grade-scale li{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;align-items:center;min-width:44px;padding:5px 6px;display:flex}.grade-scale li span:first-child{font-family:var(--font-display);font-size:.95rem;font-weight:650}.grade-scale .gmin{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.68rem}.grade-scale li.on{border-color:var(--accent);background:var(--accent-soft)}.grade-dist{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:-20px;padding:12px 16px;display:flex}.grade-dist .gd{align-items:center;gap:6px;font-weight:600;display:inline-flex}.grade-dist .gd.zero{opacity:.45}.score-box{text-align:left;align-items:center;display:flex}.spinner.light{border-color:currentColor #ffffff59 #ffffff59}@media (max-width:760px){.grade.big{width:64px;height:64px;font-size:2rem}}.sw.part{background:var(--tone-gold)}:root{--xl-line:#dadfdc;--xl-head:#f1f3f2;--xl-head-ink:#4a5550;--xl-sel:#217346;--xl-sel-fill:#2173461a;--xl-target:#fff7d6;--xl-fill:#f4faf6;--xl-ov:#1d5fa8;--xl-pick:#fde2c4;--xl-pick-line:#c0620c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--xl-line:#2c3833;--xl-head:#1b2420;--xl-head-ink:#a7b6ae;--xl-sel:#6fcf97;--xl-sel-fill:#6fcf9724;--xl-target:#3a3315;--xl-fill:#18241e;--xl-ov:#8fbdf2;--xl-pick:#4a3014;--xl-pick-line:#f2a45c}}:root[data-theme=dark]{--xl-line:#2c3833;--xl-head:#1b2420;--xl-head-ink:#a7b6ae;--xl-sel:#6fcf97;--xl-sel-fill:#6fcf9724;--xl-target:#3a3315;--xl-fill:#18241e;--xl-ov:#8fbdf2;--xl-pick:#4a3014;--xl-pick-line:#f2a45c}.xl{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.xl-bar{border-bottom:1px solid var(--xl-line);background:var(--surface);align-items:stretch;display:flex}.xl-namebox{width:92px;font-family:var(--font-mono);border-right:1px solid var(--xl-line);white-space:nowrap;text-overflow:ellipsis;flex:none;padding:6px 8px;font-size:.8rem;overflow:hidden}.xl-fx{width:34px;color:var(--muted);border-right:1px solid var(--xl-line);flex:none;place-items:center;font-family:Georgia,serif;display:grid}.xl-formula{min-width:0;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;color:var(--ink-2);flex:1;min-height:32px;padding:6px 10px;font-size:.85rem;overflow:hidden}input.xl-formula.editable{background:var(--xl-target);color:var(--ink);border:0;border-radius:0;width:auto}input.xl-formula.editable:focus{outline:2px solid var(--xl-sel);outline-offset:-2px;background:var(--surface)}.xl-scroll{outline:none;position:relative;overflow:auto}.xl-scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.xl-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;-webkit-user-select:none;user-select:none;font-size:.82rem}.xl-grid th,.xl-grid td{border-right:1px solid var(--xl-line);border-bottom:1px solid var(--xl-line);white-space:nowrap;text-overflow:ellipsis;height:24px;padding:0 6px;overflow:hidden}.xl-grid thead th{z-index:3;background:var(--xl-head);color:var(--xl-head-ink);text-align:center;font-size:.75rem;font-weight:500;position:sticky;top:0}.xl-corner{left:0;z-index:4!important}.xl-rh{z-index:2;background:var(--xl-head);color:var(--xl-head-ink);text-align:center;font-size:.75rem;font-weight:500;position:sticky;left:0}.xl-ch.hl,.xl-rh.hl{background:var(--accent-soft);color:var(--xl-sel);font-weight:600}.xl-c{cursor:cell;background:var(--surface);position:relative}.xl-c.r{text-align:right;font-variant-numeric:tabular-nums}.xl-c.c{text-align:center}.xl-c.sel{background:var(--xl-sel-fill)}.xl-c.active{box-shadow:inset 0 0 0 2px var(--xl-sel)}.xl-c.fillc{background:var(--xl-fill)}.xl-c.fillc.sel{background:var(--xl-sel-fill)}.xl-c.target{background:var(--xl-target)}.xl-c.target:after{content:"";background:var(--xl-sel);width:6px;height:6px;position:absolute;bottom:0;right:0}.xl-c.ov .xl-v{color:var(--xl-ov)}.xl.pointing .xl-c{cursor:crosshair}.xl-c.pickable,.xl-rh.pickable{cursor:pointer}.xl-c.pickable:hover,.xl-rh.pickable:hover{background:var(--xl-pick)}.xl-c.picked,.xl-rh.picked{background:var(--xl-pick);box-shadow:inset 0 0 0 2px var(--xl-pick-line)}.picked-row .xl-c{background:var(--xl-pick)}.xl-c.has-filter{padding-right:24px}.xl-fbtn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:18px;height:18px;color:var(--ink-2);border-radius:3px;place-items:center;padding:0;display:grid;position:absolute;top:2px;right:2px}.xl-fbtn.on{border-color:var(--xl-sel);color:var(--xl-sel)}.xl-tabs{border-top:1px solid var(--xl-line);background:var(--xl-head);gap:2px;padding:0 8px;display:flex;overflow-x:auto}.xl-tab{cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:5px 14px;font-size:.8rem}.xl-tab.on{background:var(--surface);color:var(--xl-sel);border-bottom-color:var(--xl-sel);font-weight:600}.xl-status{color:var(--muted);border-top:1px solid var(--xl-line);background:var(--surface-2);justify-content:space-between;gap:12px;min-height:24px;padding:3px 10px;font-size:.75rem;display:flex}.xl-stats{color:var(--ink-2);font-variant-numeric:tabular-nums;gap:16px;display:flex}.xl-menu{z-index:6;background:var(--surface);border:1px solid var(--line);width:230px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:8px;font-size:.85rem;display:flex;position:absolute;top:28px;left:50px}.xl-menu hr{border:0;border-top:1px solid var(--line);width:100%;margin:4px 0}.xl-mi{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;padding:5px 6px;display:flex}.xl-mi:hover{background:var(--surface-2)}.xl-vals{border:1px solid var(--line);border-radius:4px;max-height:170px;padding:4px;overflow:auto}.xl-chk{cursor:pointer;align-items:center;gap:6px;padding:2px 4px;display:flex}.xl-chk input{accent-color:var(--accent)}.xl-menu-actions{justify-content:flex-end;gap:6px;margin-top:6px;display:flex}.xl-tip{margin:0}.q-page{width:100%;max-width:900px;padding:24px max(16px, env(safe-area-inset-left,0px)) 64px;flex-direction:column;gap:16px;margin:0 auto;display:flex;position:relative}.q-page.wide{max-width:1180px}.q-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;padding:18px 20px;display:flex;position:relative}.q-card .q-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.q-card .prompt{max-width:80ch;margin:0;font-size:1.08rem;font-weight:500;line-height:1.5}.q-page .stuck{position:fixed}.affix{align-items:center;max-width:220px;display:inline-flex}.affix .pre{border:1px solid var(--line);background:var(--surface-2);height:40px;color:var(--muted);border-right:0;border-radius:6px 0 0 6px;place-items:center;padding:0 8px;display:grid}.affix.money input{border-radius:0 6px 6px 0}.affix .post{border:1px solid var(--line);background:var(--surface-2);height:40px;color:var(--muted);border-left:0;border-radius:0 6px 6px 0;order:2;place-items:center;padding:0 8px;display:grid}.affix:has(.post) input{border-radius:6px 0 0 6px}.text-input{max-width:220px}.predict{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.options.multi .mono{font-size:.95rem}.ai-help{background:var(--pend-soft);border-radius:8px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;display:flex}.note-box{background:var(--pend-soft);color:var(--ink-2);border-radius:8px;margin:0;padding:8px 12px}.tb-practice{color:var(--warn);font-weight:600}.order-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.order-item{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:12px;padding:8px 10px;display:flex}.order-n{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:600;display:grid}.order-text{flex:1}.order-btns{gap:4px;display:flex}.hotspot{gap:12px;display:grid}.hs-prompts{gap:6px;margin:0;padding:0;list-style:none;display:grid}.hs-q{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 12px;display:flex}.hs-q.on{border-color:var(--accent);background:var(--accent-soft)}.hs-key,.hs-badge{background:var(--ink);width:22px;height:22px;color:var(--surface);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.mock-xl{border:1px solid var(--line);background:var(--surface);-webkit-user-select:none;user-select:none;border-radius:8px;font-size:.72rem;overflow:hidden}.mock-xl .hs{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:flex;position:relative}.mock-xl .hs:hover:not(:disabled){outline:2px dashed var(--accent);outline-offset:-2px;z-index:2}.mock-xl .hs.chosen{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.mock-xl .hs-badge{background:var(--accent);color:var(--accent-ink);position:absolute;top:50%;right:6px;transform:translateY(-50%)}.mx-title{background:var(--xl-sel);color:#fff;align-items:center;gap:12px;padding:4px 8px;display:flex}.mx-title .hs{width:auto;padding:3px 34px 3px 4px}.mx-qat{gap:4px;display:flex}.mx-qat i{background:#ffffffb3;border-radius:2px;width:12px;height:12px;display:block}.mx-file{opacity:.9}.mock-xl>.hs.ribbon{background:var(--surface-2);flex-direction:column;align-items:stretch;gap:0;padding-bottom:4px}.mx-tabs{gap:14px;padding:4px 10px;display:flex}.mx-tabs .on{color:var(--xl-sel);border-bottom:2px solid var(--xl-sel);font-weight:700}.mx-groups{gap:6px;padding:4px 8px;display:flex}.mx-group{border-right:1px solid var(--line);flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.mx-btns{gap:3px;display:flex}.mx-btns i{background:var(--line);border-radius:3px;width:14px;height:14px;display:block}.mx-gl{color:var(--muted);font-size:.65rem}.mx-fbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex}.mx-fbar .hs.name_box{border-right:1px solid var(--line);width:90px;font-family:var(--font-mono);padding:5px 30px 5px 8px}.mx-fx{color:var(--muted);border-right:1px solid var(--line);padding:5px 8px;font-family:Georgia,serif}.mx-fbar .hs.formula_bar{font-family:var(--font-mono);flex:1;padding:5px 34px 5px 8px}.mock-xl>.hs.grid{padding:0}.mx-grid{width:100%;display:grid}.mx-row{grid-template-columns:28px repeat(6,1fr);display:grid}.mx-row i{border-right:1px solid var(--xl-line);border-bottom:1px solid var(--xl-line);text-align:center;height:18px;color:var(--muted);font-size:.65rem;font-style:normal}.mx-row i.hd{background:var(--xl-head)}.mx-row i.act{box-shadow:inset 0 0 0 2px var(--xl-sel)}.mx-bottom{background:var(--xl-head);border-top:1px solid var(--line);display:flex}.mx-bottom .hs.sheet_tabs{gap:2px;width:auto;padding:0 34px 0 8px}.mx-sheet{padding:3px 10px}.mx-sheet.on{background:var(--surface);color:var(--xl-sel);font-weight:700}.mx-plus{color:var(--muted);padding:3px 8px}.mock-xl>.hs.status_bar{background:var(--surface-2);border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:3px 40px 3px 8px}.dv-wrap{grid-template-columns:minmax(300px,420px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.dv{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.dv-title{border-bottom:1px solid var(--line);background:var(--surface-2);padding:8px 12px;font-weight:600}.dv-tabs{border-bottom:1px solid var(--line);gap:2px;padding:8px 10px 0;display:flex}.dv-tab{cursor:pointer;color:var(--ink-2);background:0 0;border:1px solid #0000;border-bottom:0;border-radius:6px 6px 0 0;padding:5px 12px;font-size:.85rem}.dv-tab.on{border-color:var(--line);background:var(--surface);color:var(--ink);margin-bottom:-1px;font-weight:600}.dv-body{min-height:220px;padding:14px}.dv-h{margin:0;font-size:.85rem;font-weight:600}.dv-row{grid-template-columns:70px minmax(0,1fr);align-items:center;gap:8px;font-size:.88rem;display:grid}.dv-row.col{grid-template-columns:1fr;gap:4px}.dv-check{align-items:center;gap:8px;font-size:.88rem;display:flex}.dv-check input{accent-color:var(--accent)}.dv-side{gap:8px;min-width:0;display:grid}.snav{padding:10px max(20px, env(safe-area-inset-left,0px));background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px;display:flex}.linkish{cursor:pointer;background:0 0;border:0;padding:0}.snav-links{gap:4px;display:flex}.snav-link{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:inline-flex}.snav-link:hover{background:var(--surface-2)}.snav-link.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.snav-end{align-items:center;gap:10px;margin-left:auto;display:flex}.home{flex-direction:column;gap:28px;display:flex}.home-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.home-hero>div{flex-direction:column;gap:8px;display:flex}.home-top{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr) minmax(0,1.2fr);gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;display:flex}.card.quiet{background:var(--surface-2)}.card .bar{width:100%}.carry{border-left:4px solid var(--accent)}.big-num{font-family:var(--font-display);margin:0;font-size:2.2rem;font-weight:650;line-height:1}.big-num+.small{margin:0}.latest .rewatch{font-size:.85rem}.test-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.test-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.test-card.locked,.test-card.closed{background:var(--surface-2)}.tc-head{align-items:flex-start;gap:12px;display:flex}.tc-num{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);font-family:var(--font-display);border-radius:8px;flex:none;place-items:center;font-weight:700;display:grid}.test-card.locked .tc-num{background:var(--line);color:var(--muted)}.tc-title{flex:1;min-width:0}.tc-title .h4{text-transform:none;letter-spacing:0;color:var(--ink);font-size:1rem}.tc-title p{margin:2px 0 0}.tc-lock p{margin:0 0 8px}.tc-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex}.onboarding{max-width:520px}.privacy-brief{gap:12px;margin:0;padding:0;list-style:none;display:grid}.privacy-brief li{align-items:flex-start;gap:12px;font-size:.92rem;display:flex}.privacy-full{border:1px solid var(--line);border-radius:8px;max-height:320px;padding:14px;font-size:.85rem;overflow:auto}.privacy p,.privacy ul{margin:0}.privacy .h4{margin-top:8px}.h2-select{font-family:var(--font-display);cursor:pointer;background:0 0;border:1px solid #0000;width:auto;margin-left:-4px;padding:2px 32px 2px 4px;font-size:1.4rem;font-weight:650}.h2-select:hover{border-color:var(--line)}.tab .count{background:var(--bad);color:#fff;border-radius:999px;margin-left:6px;padding:0 7px;font-size:.72rem;font-weight:700}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.acc-cell{white-space:nowrap}.acc-cell>*{margin-right:4px}.tiny-select{width:auto;margin-top:4px;padding:3px 6px;font-size:.78rem;display:block}.num-input.tiny{width:70px}.review-items{gap:14px;margin:0;padding:0;list-style:none;display:grid}.review-item{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.review-item.done,.review-item.dismissed{opacity:.75}.ri-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ri-head .icon-btn{margin-left:auto}.review-item>p{margin:0}.ri-body{grid-template-columns:1fr 1fr;gap:16px;display:grid}.ri-body .label{margin:0 0 4px}.ai-note{color:var(--ink-2);align-items:flex-start;gap:6px;display:flex}.ri-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:10px;display:flex}.ri-actions .note{width:260px;padding:5px 8px;font-size:.85rem}.group-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.group-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:16px;display:flex}.group-card p{margin:0}.test-toggle{border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.82rem;display:inline-flex}.test-toggle.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.test-toggle input{accent-color:var(--accent)}.member-pick{border:1px solid var(--line);border-radius:8px;gap:6px;max-height:260px;padding:8px 12px;display:grid;overflow:auto}.muted-row td{color:var(--muted)}.switch{width:36px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute}.switch span{background:var(--line);border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch span:after{content:"";background:var(--surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.code.wrap{white-space:pre-wrap}.chip.on{border-color:var(--accent);background:var(--accent-soft)}.test-pick{display:block}@media (max-width:900px){.home-top,.dv-wrap,.ri-body{grid-template-columns:1fr}}.summary-row{grid-template-columns:repeat(4,minmax(110px,1fr)) minmax(220px,2fr);gap:12px;display:grid!important}.summary-row .stat.wide{grid-column:auto}a.btn{text-decoration:none}@media (max-width:900px){.summary-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.req-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.req{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:12px 14px;display:grid}.req-who{flex-direction:column;gap:2px;min-width:0;display:flex}.req .tiny-select{margin-top:0}.req-actions{gap:6px;display:flex}@media (max-width:700px){.req{grid-template-columns:1fr}}.part-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch;gap:12px;display:grid}.part-cards.one{grid-template-columns:minmax(0,420px)}.part-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;justify-content:space-between;gap:14px;padding:14px 16px;display:flex}.part-q{align-items:flex-start;gap:10px;font-weight:500;line-height:1.45;display:flex}.part-key{background:var(--accent-soft);width:22px;height:22px;color:var(--accent);border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:.75rem;font-weight:700;display:inline-grid}.part-card .affix{width:100%;max-width:240px}.part-card .num-input,.part-card .text-input{width:100%;max-width:none;height:40px}.affix .pre{height:40px}.answer-box{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding-top:14px;display:flex}.answer-title{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:.95rem;font-weight:600;display:flex}.ans-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ans-cards.one{grid-template-columns:1fr}.ans-card{border:1px solid var(--line);border-left:3px solid var(--good);background:var(--surface);border-radius:8px;flex-direction:column;gap:4px;min-width:0;padding:12px 14px;display:flex}.ans-card.no{border-left-color:var(--line)}.ans-card p{margin:0}.ans-label{color:var(--muted);font-size:.8rem;line-height:1.4}.ans-label.mono{color:var(--ink);font-size:.95rem}.ans-value{color:var(--ink);font-size:1rem;font-weight:600}.ans-card.no .ans-value{color:var(--muted);font-weight:500}.ans-plain{font-size:.9rem}.ans-code{font-family:var(--font-mono);background:var(--surface-2);white-space:pre;border-radius:6px;align-self:flex-start;max-width:100%;padding:6px 10px;font-size:.95rem;overflow-x:auto}.ans-why{color:var(--ink-2);font-size:.88rem;line-height:1.5}.ans-explain{color:var(--ink-2);margin:0;font-size:.88rem}.feedback .reveal,.res-item .reveal{display:none}.xl-bar{position:relative}.xl-ac{z-index:20;background:var(--surface);border:1px solid var(--line);width:260px;box-shadow:var(--shadow);border-radius:6px;position:absolute;top:100%;overflow:hidden}.xl-ac ul{max-height:216px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.xl-ac li{font-family:var(--font-mono);cursor:pointer;align-items:center;gap:8px;padding:4px 10px;font-size:.82rem;display:flex}.xl-ac li.on{background:var(--xl-sel-fill);color:var(--xl-sel);font-weight:600}.fx-ic{color:var(--muted);width:16px;font-family:Georgia,serif;font-size:.75rem;font-style:italic}.xl-ac-desc{border-top:1px solid var(--line);color:var(--ink-2);background:var(--surface-2);margin:0;padding:6px 10px;font-size:.78rem;line-height:1.4}.xl-hint{z-index:20;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);white-space:nowrap;color:var(--ink-2);border-radius:4px;margin-top:2px;padding:3px 8px;font-size:.78rem;position:absolute;top:100%}.xl-hint .on{color:var(--ink);font-weight:700}.xl-tip{flex-wrap:nowrap;align-items:flex-start}.xl-tip .icon{flex:none;margin-top:3px}.match .term{font-family:var(--font-body);font-size:.95rem;font-weight:600}.match-row{grid-template-columns:minmax(180px,280px) minmax(0,1fr)}.your-ans{flex-direction:column;gap:6px;display:flex}.your-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.75rem;font-weight:600}.your-val{margin:0;font-size:.92rem}.your-order{gap:2px;margin:0;padding-left:1.3em;font-size:.9rem;display:grid}.ans-rows{border:1px solid var(--line);border-radius:8px;gap:0;margin:0;display:grid;overflow:hidden}.ans-rows>div{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;padding:8px 12px;font-size:.9rem;display:grid}.ans-rows>div:first-child{border-top:0}.ans-rows dt{color:var(--ink-2)}.ans-rows dd{margin:0;font-weight:600}.res-body{flex-direction:column;gap:12px;display:flex}.res-try{flex-direction:column;gap:8px;display:flex}.res-try>p{margin:0}.res-item .res-marks{color:var(--ink-2);margin-left:auto;font-size:.9rem;font-weight:600}.res-item .ans-code{display:inline-block}.res-item{gap:12px;padding:16px 20px}.ans-rows.marked>div{grid-template-columns:18px minmax(0,1.4fr) minmax(0,1fr);align-items:start}.ans-rows .tick{place-items:center;margin-top:2px;display:inline-grid}.ans-rows .tick.ok{color:var(--good)}.ans-rows .tick.no{color:var(--bad)}.center-text{text-align:center}.signin.student{border-top:4px solid var(--accent)}.signin.tutor{border-top:4px solid var(--tone-indigo)}.signin-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.role-switch{background:var(--surface-2);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.role-switch a{color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.role-switch a:hover{color:var(--ink)}.role-switch a.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #16201b1f}.signin.student .role-switch a.on .icon{color:var(--accent)}.signin.tutor .role-switch a.on .icon{color:var(--tone-indigo)}.role-tag{letter-spacing:.06em;text-transform:uppercase;align-self:flex-start;align-items:center;gap:6px;margin:0;font-size:.75rem;font-weight:700;display:inline-flex}.role-tag.student{color:var(--accent)}.role-tag.tutor{color:var(--tone-indigo)}.signin.tutor .btn.primary{background:var(--tone-indigo);border-color:var(--tone-indigo)}.field .small.muted{margin-top:2px}.setting-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:12px;padding:18px 20px;display:flex}.setting-card .row{flex-wrap:wrap}.setting-card #student-pw{max-width:280px}.count-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.count-list li{background:var(--surface-2);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.count-list .n{font-family:var(--font-display);font-size:1.4rem;font-weight:700}.signin.tutor .btn.primary:hover:not(:disabled){border-color:var(--tone-indigo)}.field.inline .label{white-space:nowrap}body{background:radial-gradient(1100px 380px at 50% -140px, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%) no-repeat, var(--bg)}.btn{border-radius:8px}.btn.primary{box-shadow:0 1px 2px color-mix(in srgb, var(--accent) 35%, transparent)}.btn.danger.solid{background:var(--bad);border-color:var(--bad);color:#fff;font-weight:600}.btn.danger.solid:hover:not(:disabled){filter:brightness(1.08);border-color:var(--bad)}.card,.test-card,.stat,.advice,.setting-card{border-radius:14px}.card,.test-card,.setting-card{box-shadow:0 1px 2px #131e380a}.test-card{transition:box-shadow .15s,transform .15s,border-color .15s}.test-card.open:hover,.test-card.progress:hover,.test-card.done:hover{box-shadow:var(--shadow-hover);border-color:color-mix(in srgb, var(--accent) 35%, var(--line));transform:translateY(-1px)}.snav{z-index:20;background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);position:sticky;top:0}.snav-link.on{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.snav-user{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.brand-mark{background:linear-gradient(135deg, var(--accent-2), var(--accent))}.modal-back{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#090e1c80}.modal{border-radius:16px}.xl-ch.hl,.xl-rh.hl{background:var(--xl-sel-fill)}.pill.beta{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem}.grow{flex:1;min-width:200px}.align-end{align-items:flex-end}.nowrap{white-space:nowrap}kbd{font-family:var(--font-mono);border:1px solid var(--line);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:0 4px;font-size:.75rem}.site-foot{padding:18px max(20px, env(safe-area-inset-left,0px));border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.site-foot nav{flex-wrap:wrap;gap:18px;display:flex}.site-foot .linklike{color:var(--muted);text-decoration:none}.site-foot .linklike:hover{color:var(--accent);text-decoration:underline}.update-banner{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);width:calc(100% - 32px);max-width:1180px;color:var(--ink);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin:16px auto 0;padding:10px 14px;font-size:.9rem;display:flex}.update-banner>.icon{color:var(--accent)}.update-banner span{flex:1;min-width:220px}.auth-tabs{background:var(--surface-2);border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;margin-top:-6px;padding:4px;display:grid}.auth-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:.92rem;font-weight:600;display:inline-flex}.auth-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #131e381f}.auth-tabs button.on .icon{color:var(--accent)}.module-sec{flex-direction:column;gap:14px;padding-top:6px;display:flex}.module-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:12px;display:flex}.module-head p{max-width:70ch;margin:2px 0 0}.module-prog{flex-direction:column;gap:6px;min-width:200px;display:flex}.mod-progress{flex-direction:column;gap:2px;width:100%;margin:4px 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.mod-progress li{justify-content:space-between;display:flex}input.xl-formula.editable.working{background:color-mix(in srgb, var(--accent) 7%, var(--surface))}input.xl-formula.editable.working::placeholder{color:var(--muted);font-style:italic}.xl-c.work{background:color-mix(in srgb, var(--accent) 9%, transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--accent) 55%, transparent);color:var(--accent)}.xl-c.work-editing{outline:2px dashed var(--accent);outline-offset:-2px}.xl-clear{border:0;border-left:1px solid var(--xl-line);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:0 10px;font-size:.78rem;display:inline-flex}.xl-clear:hover{color:var(--bad)}.xl-notice{background:var(--accent-soft);color:var(--ink-2);border-bottom:1px solid var(--xl-line);align-items:flex-start;gap:8px;padding:7px 10px;font-size:.82rem;display:flex}.xl-notice .icon{color:var(--accent);flex:none;margin-top:3px}.xl-notice span{flex:1}.actions-note{flex-basis:100%}.res-list-head{margin:8px 0 -4px}.res-actions{flex-wrap:wrap;gap:8px;display:flex}.ai-feedback{border:1px solid color-mix(in srgb, var(--tone-indigo) 30%, transparent);background:color-mix(in srgb, var(--tone-indigo) 7%, transparent);border-radius:10px;padding:8px 12px}.ai-feedback-head{text-transform:uppercase;letter-spacing:.06em;color:var(--tone-indigo);align-items:center;gap:6px;margin:0 0 2px;font-size:.78rem;font-weight:700;display:flex}.ai-feedback ul{margin:0;padding-left:18px;font-size:.9rem}.setting-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:12px;padding:20px 22px;display:flex}.setting-card>p{margin:0}.danger-zone{border-color:color-mix(in srgb, var(--bad) 35%, var(--line))}.danger-zone h2{color:var(--bad)}.kv{flex-wrap:wrap;gap:8px 28px;margin:0;font-size:.9rem;display:flex}.kv dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:600}.kv dd{margin:0}.fb-mine{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.fb-mine li{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:10px;display:flex}.fb-mine p{margin:0}.faq{flex-direction:column;gap:4px;margin:0;display:flex}.faq>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px}.faq dt{font-weight:600}.faq dd{color:var(--ink-2);margin:4px 0 0}.release{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:8px;padding:18px 22px;display:flex}.release p{margin:0}.release-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.release-list{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.seg-row{flex-wrap:wrap;gap:6px;display:inline-flex}.seg-opt{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:.9rem;font-weight:500;display:inline-flex}.seg-opt input{opacity:0;pointer-events:none;position:absolute}.seg-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.seg-opt:focus-within{outline:2px solid var(--accent);outline-offset:2px}.feedback-form fieldset{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.feedback-form legend{margin-bottom:8px;padding:0}.kind-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.kind-card{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.92rem;display:flex}.kind-card input{opacity:0;pointer-events:none;position:absolute}.kind-card .icon{color:var(--muted);flex:none}.kind-card.on{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.kind-card.on .icon{color:var(--accent)}.kind-card:focus-within{outline:2px solid var(--accent);outline-offset:2px}.fb-pick{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dropzone{border:1.5px dashed var(--line);color:var(--muted);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;font-size:.88rem;display:flex}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.thumbs{flex-wrap:wrap;gap:10px;margin:4px 0 0;padding:0;list-style:none;display:flex}.thumbs li{border:1px solid var(--line);border-radius:8px;width:120px;height:80px;position:relative;overflow:hidden}.thumbs img{object-fit:cover;width:100%;height:100%;display:block}.thumb-x{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:4px;right:4px}.crumbs{flex-wrap:wrap;align-items:center;gap:6px;font-size:.92rem;display:flex}.crumb{align-items:center;gap:6px;display:inline-flex}.waiting{flex-direction:column;gap:8px;display:flex}.module-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.module-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.module-card.upcoming{background:var(--surface-2)}.module-card-btn{all:unset;box-sizing:border-box;cursor:pointer;flex-direction:column;gap:10px;padding:18px 20px;display:flex}.module-card-btn:disabled{cursor:default}.module-card-btn:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.module-card-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.module-card-btn p{margin:0}.mini-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;display:grid}.mini-stats dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.mini-stats dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:0;font-size:1.15rem;font-weight:700}.module-tests{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin:0;padding:10px 20px 14px;font-size:.9rem;list-style:none;display:flex}.module-tests li{justify-content:space-between;gap:10px;display:flex}.click-row{cursor:pointer}.click-row:hover td{background:color-mix(in srgb, var(--accent) 5%, transparent)}.grade-strip{flex-wrap:wrap;gap:4px;display:inline-flex}.gs{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:6px;gap:3px;padding:1px 6px;font-size:.75rem;display:inline-flex}.skills.compact .skill{padding:12px 16px}.fb-items{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.fb-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:8px;padding:16px 18px;display:flex}.fb-item.new{border-left:4px solid var(--accent)}.fb-item.done{opacity:.8}.fb-item p{margin:0}.fb-item-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fb-status{margin-left:auto}.fb-about{color:var(--ink-2);align-items:center;gap:6px;display:flex}.fb-msg{white-space:pre-wrap}.fb-tools .note{min-width:240px}.fb-full{border:1px solid var(--line);border-radius:8px;max-width:100%;display:block}.settings-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:28px;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex;position:sticky;top:16px}.settings-nav a{color:var(--ink-2);border-radius:8px;padding:7px 12px;font-size:.92rem;font-weight:500;text-decoration:none}.settings-nav a:hover{background:var(--surface-2);color:var(--ink)}.settings-body{min-width:0}.settings-body>div{scroll-margin-top:16px}@media (max-width:860px){.settings-layout{grid-template-columns:1fr}.settings-nav{flex-flow:wrap;position:static}.kind-grid,.fb-pick{grid-template-columns:1fr}}@media (max-width:1100px){.tabs .tab .icon{display:none}}.tiny-gap{gap:4px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;display:grid}@media (max-width:860px){.grid-2{grid-template-columns:1fr}}ul.plain{margin:0;padding:0;list-style:none}.icon-tile.small{border-radius:8px;width:28px;height:28px}.warn-note{border-left-color:var(--warn);background:var(--warn-soft)}.greeting{transition:opacity .4s}.greeting.in{animation:.6s both greet-in}@keyframes greet-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.studio{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (max-width:860px){.studio{grid-template-columns:1fr}}.studio-side{flex-direction:column;gap:14px;max-height:calc(100vh - 24px);padding-right:4px;display:flex;position:sticky;top:12px;overflow-y:auto}@media (max-width:860px){.studio-side{max-height:none;position:static}}.studio-group{flex-direction:column;gap:2px;display:flex}.studio-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:6px;margin:0 0 4px;font-size:.72rem;font-weight:600;display:flex}.studio-tool,.studio-hist{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;font-size:.88rem;display:flex}.studio-hist{justify-content:space-between;gap:8px}.studio-tool:hover,.studio-hist:hover{background:var(--surface-2)}.studio-tool.on,.studio-hist.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.studio-main{flex-direction:column;gap:16px;min-width:0;display:flex}.studio-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.studio-card{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;font:inherit;color:var(--ink);border-radius:14px;align-items:flex-start;gap:12px;padding:14px;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex}.studio-card:hover{box-shadow:var(--shadow-hover);border-color:var(--accent-2);transform:translateY(-1px)}.studio-card.shell{background:var(--surface-2)}.studio-card strong{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seg{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-wrap:wrap;width:fit-content;max-width:100%;display:inline-flex;overflow:hidden}.seg-btn{font:inherit;color:var(--ink-2);cursor:pointer;border:0;border-right:1px solid var(--line);background:0 0;padding:7px 12px;font-size:.85rem}.seg-btn:last-child{border-right:0}.seg-btn.on{background:var(--accent);color:var(--accent-ink)}.attach{border:1px dashed var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.attach.drag{border-color:var(--accent);background:var(--accent-soft)}.attach.compact{border:0;flex-direction:row;align-items:center;padding:0}.attach p{margin:0}.attach-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attach-chip{background:var(--surface-2);border-radius:8px;align-items:center;gap:6px;max-width:260px;padding:3px 4px 3px 6px;font-size:.8rem;display:inline-flex}.attach-chip img{object-fit:cover;border-radius:4px;width:26px;height:26px}.text-mic{display:block;position:relative}.text-mic textarea{width:100%}.text-mic .icon-btn{position:absolute;bottom:8px;right:6px}.icon-btn.rec{color:#fff;background:var(--bad);border-color:var(--bad);animation:1.4s infinite pulse}.thread{max-width:900px}.thread-head .h3{margin:0}.bubble{border-radius:14px;max-width:100%;padding:12px 16px}.bubble.user{background:var(--accent-soft);align-self:flex-end;max-width:85%}.bubble.ai{background:var(--surface);border:1px solid var(--line)}.bubble.err{border-color:var(--bad)}.bubble-tools{margin-top:6px}.composer{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;grid-template-columns:auto 1fr auto;align-items:end;gap:8px;padding:8px;display:grid;position:sticky;bottom:0}.composer textarea{resize:vertical;background:0 0;border:0;min-height:44px}.composer textarea:focus{outline:none}.composer .attach-list{grid-column:1/-1}.composer-err{grid-column:1/-1;margin:0}.md{overflow-wrap:anywhere;line-height:1.55}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h2,.md h3,.md h4,.md h5{font-family:var(--font-display);margin:1em 0 .4em;line-height:1.25}.md h2{font-size:1.2rem}.md h3{font-size:1.08rem}.md h4,.md h5{font-size:.98rem}.md p{margin:.5em 0}.md ul,.md ol{margin:.4em 0;padding-left:1.4em}.md li{margin:.15em 0}.md li.md-sub{margin-left:1.2em;list-style-type:circle}.md code{font-family:var(--font-mono);background:var(--surface-2);border-radius:4px;padding:1px 4px;font-size:.85em}.md .md-code{white-space:pre-wrap;margin:.6em 0}.md blockquote{border-left:3px solid var(--line);color:var(--ink-2);margin:.6em 0;padding:4px 12px}.md .md-table{font-size:.85rem}.md hr{border:0;border-top:1px solid var(--line);margin:1em 0}.live-head{justify-content:space-between}.live-dot{align-items:center;gap:8px;margin:0;font-weight:600;display:inline-flex}.dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.dot.on{background:var(--good);box-shadow:0 0 0 0 color-mix(in srgb, var(--good) 60%, transparent);animation:1.8s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--good) 55%, transparent)}70%{box-shadow:0 0 0 9px #0000}to{box-shadow:0 0 #0000}}.switch-row input{width:auto}.live-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.live-card{text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--good);cursor:pointer;border-radius:12px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.live-card.st-stuck{border-left-color:var(--warn)}.live-card.st-idle{border-left-color:var(--pend)}.live-card.st-left{border-left-color:var(--bad)}.live-card.on{box-shadow:0 0 0 2px var(--accent)}.live-card-top{flex-wrap:nowrap;justify-content:space-between}.live-strip{text-align:left;width:100%;font:inherit;color:var(--ink);background:var(--good-soft);border:1px solid color-mix(in srgb, var(--good) 30%, transparent);cursor:pointer;border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;display:flex}.live-strip>span:nth-child(2){flex:1}.watch{align-items:stretch}.watch-strip{flex-wrap:wrap;gap:4px;display:flex}.wq{text-align:center;background:var(--surface-2);min-width:30px;color:var(--muted);border-radius:6px;padding:3px 6px;font-size:.75rem;font-weight:600}.wq.o-first{background:var(--good-soft);color:var(--good)}.wq.o-part,.wq.o-retry{background:var(--warn-soft);color:var(--warn)}.wq.o-never,.wq.o-after_reveal{background:var(--bad-soft);color:var(--bad)}.wq.cur{box-shadow:0 0 0 2px var(--accent);color:var(--accent)}.watch-body{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;display:grid}@media (max-width:860px){.watch-body{grid-template-columns:1fr}}.watch-prompt{background:var(--surface-2);border-radius:8px;margin:0;padding:8px 10px}.live-typing{white-space:pre-wrap;min-height:38px}.feed{flex-direction:column;gap:4px;max-height:320px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex;overflow-y:auto}.lab-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.lab-back{align-self:flex-start}.lab .lab-back{margin-bottom:8px}.systems{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.systems.down{border-color:var(--bad)}.floor{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.bay{text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-top:6px solid var(--good);cursor:pointer;border-radius:14px;flex-direction:column;gap:4px;min-height:150px;padding:12px;display:flex}.bay.free{cursor:default;background:0 0;border-style:dashed;border-top-width:1px;justify-content:space-between}.bay.on{box-shadow:0 0 0 2px var(--accent)}.bay-no{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem;font-weight:600}.bay-status{font-size:.78rem;font-weight:700}.bay-name{font-size:1.05rem}.bay .bar{width:100%}.bay-time{color:var(--muted)}.s-ok{--st:var(--good)}.s-busy{--st:var(--pend)}.s-late{--st:var(--warn)}.s-blocked{--st:var(--bad)}.bay[class*=\ s-]{border-top-color:var(--st)}.bay[class*=\ s-] .bay-status{color:var(--st)}.ticker{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ticker li{border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.ticker li:nth-child(odd){background:var(--surface)}.ticker li:first-child{animation:.5s both greet-in}.rail{gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.ticket{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--st,var(--line));min-width:200px;max-width:260px;color:var(--ink);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;text-decoration:none;display:flex}.ticket-top{color:var(--st,var(--muted));text-transform:capitalize;justify-content:space-between;gap:8px;font-weight:600;display:flex}.ticket.idea{border-top-color:var(--accent-2);min-width:0;max-width:none}.ops-cols{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:start;gap:12px;display:grid}.ops-col{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:10px;display:flex}.ops-col .ticket{min-width:0;max-width:none}.ops-col-title{justify-content:space-between;margin:0 0 2px;font-weight:700;display:flex}.mini-grid td,.mini-grid th{padding:4px 8px;font-size:.8rem}.result-box{background:var(--good-soft);border-radius:8px;margin:0;padding:8px 12px}.result-box.bad{background:var(--bad-soft)}.quiz-opt{text-align:left;justify-content:flex-start}.quiz-opt.right{background:var(--good-soft);border-color:var(--good);color:var(--good);opacity:1}.quiz-opt.wrong{background:var(--bad-soft);border-color:var(--bad);color:var(--bad);opacity:1}tr.odd td{background:var(--warn-soft)}.lens{align-items:stretch}.tabs{gap:2px}.tabs .tab{gap:5px;padding:8px 7px;font-size:.92rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head .h2{margin:2px 0 4px}.page-head p{margin:0}.avatar{--tone:var(--tone-blue);color:var(--tone);background:color-mix(in srgb, var(--tone) 16%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tone) 30%, transparent);border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid;position:relative}.avatar-level{background:var(--accent);min-width:17px;height:17px;color:var(--accent-ink);text-align:center;box-shadow:0 0 0 2px var(--surface);border-radius:9px;padding:0 4px;font-size:10px;line-height:17px;position:absolute;bottom:-4px;right:-4px}.avatar-online{background:var(--good);width:10px;height:10px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:0;right:0}.preview-banner{background:repeating-linear-gradient(135deg, var(--warn-soft), var(--warn-soft) 12px, color-mix(in srgb, var(--warn-soft) 70%, var(--surface)) 12px, color-mix(in srgb, var(--warn-soft) 70%, var(--surface)) 24px);border:1px dashed color-mix(in srgb, var(--warn) 45%, transparent);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:.88rem;display:flex}.preview-banner .pill{background:var(--warn);color:#fff;flex:none}.placeholder-card{opacity:.92;border-style:dashed}.file-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.file-chip{text-align:left;width:100%;font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.file-chip:hover{border-color:var(--accent-2)}.file-chip .ellipsis{flex:1}.video{aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden}.video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video-link{color:var(--ink);flex-direction:row;align-items:center;text-decoration:none}.cover{--tone:var(--tone-blue);color:#fff;background:linear-gradient(135deg, var(--tone), color-mix(in srgb, var(--tone) 55%, #0c111d));justify-content:space-between;align-items:flex-end;gap:8px;min-height:110px;padding:14px;display:flex;position:relative}.cover-sm{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;min-height:0;padding:0}.cover-title{font-family:var(--font-display);text-shadow:0 1px 2px #0003;font-size:1.15rem;font-weight:700;line-height:1.2}.cover-lock{white-space:nowrap;background:#00000047;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.cover.tone-green{--tone:var(--tone-green)}.cover.tone-indigo{--tone:var(--tone-indigo)}.cover.tone-amber{--tone:var(--tone-amber)}.cover.tone-rose{--tone:var(--tone-rose)}.cover.tone-teal{--tone:var(--tone-teal)}.cover.tone-slate{--tone:var(--tone-slate)}.cover.tone-gold{--tone:var(--tone-gold)}.avatar.tone-green{--tone:var(--tone-green)}.avatar.tone-indigo{--tone:var(--tone-indigo)}.avatar.tone-amber{--tone:var(--tone-amber)}.avatar.tone-rose{--tone:var(--tone-rose)}.avatar.tone-teal{--tone:var(--tone-teal)}.avatar.tone-slate{--tone:var(--tone-slate)}.avatar.tone-gold{--tone:var(--tone-gold)}.hub-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.hub-hero .lede{margin:6px 0 0}.level-pill,.streak-pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.streak-pill{background:var(--warn-soft);color:var(--warn)}.pulse{flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px}.hub-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.hub-card .h4{margin:0}.hub-card.wide{grid-column:1/-1}.hub-card .btn{align-self:flex-start}.mini-posts{flex-direction:column;gap:4px;width:100%;margin:0;padding:0;list-style:none;display:flex}.mini-posts .linkish{border-radius:8px;width:100%;padding:6px}.mini-posts .linkish:hover{background:var(--surface-2)}.level-ring{--p:0;background:conic-gradient(var(--accent) calc(var(--p) * 360deg), var(--surface-2) 0);border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.level-ring strong{background:var(--surface);width:56px;height:56px;font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1.5rem;display:grid}.quick-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;margin-top:20px;display:grid}.quick{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-size:.85rem;display:flex;position:relative}.quick:hover{border-color:var(--accent-2);color:var(--accent)}.quick .count{background:var(--bad);color:#fff;border-radius:999px;padding:0 6px;font-size:.7rem;font-weight:700;position:absolute;top:6px;right:8px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.course-card{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;padding:0;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.course-body{flex-direction:column;gap:6px;padding:12px 14px 14px;display:flex}.course-body p{margin:0}.course-body .bar{flex:1}.course-hero{border-radius:16px;align-items:flex-end;min-height:170px;margin-bottom:20px;padding:20px}.course-hero .h2{color:#fff;margin:8px 0 2px}.course-hero p{opacity:.92;margin:0}.btn.on-cover{color:#fff;background:#00000026;border-color:#fff6}.hero-progress{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.hero-progress .tnum{font-family:var(--font-display);font-size:1.8rem;font-weight:700}.hero-progress .bar{background:#ffffff4d;width:160px}.course-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:20px;display:grid}@media (max-width:860px){.course-layout{grid-template-columns:1fr}}.sticky-card{position:sticky;top:76px}.module{align-items:stretch}.module .h4{margin:0}.module-n{background:var(--accent-soft);min-width:26px;height:26px;color:var(--accent);border-radius:8px;place-items:center;font-size:.85rem;font-weight:700;display:inline-grid}.lesson-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.lesson-row{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.lesson-row:hover:not(:disabled){background:var(--surface-2)}.lesson-row:disabled{opacity:.55;cursor:default}.tick{border:1.5px solid var(--line);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:inline-grid}.done>.tick,.lesson-row.done .tick{background:var(--good);border-color:var(--good);color:#fff}.cert-note{flex-direction:row;align-items:center}.lesson-page{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (max-width:900px){.lesson-page{grid-template-columns:1fr}}.outline{flex-direction:column;gap:8px;max-height:calc(100vh - 96px);padding-right:4px;display:flex;position:sticky;top:76px;overflow-y:auto}.outline .bar{flex:1}.outline-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 2px;font-size:.72rem;font-weight:600}.outline-lesson{text-align:left;width:100%;font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-size:.88rem;display:flex}.outline-lesson:hover{background:var(--surface-2)}.outline-lesson.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.outline-lesson .tick{width:16px;height:16px}.outline-lesson.done .tick{background:var(--good);border-color:var(--good);color:#fff}.lesson{max-width:820px}.lesson .h2{margin:2px 0 0}.lesson-body,.your-turn{align-items:stretch}.your-turn{background:color-mix(in srgb, var(--tone-green) 7%, var(--surface));border-color:color-mix(in srgb, var(--tone-green) 25%, var(--line))}.lesson-actions{border-top:1px solid var(--line);padding:8px 0}.ask{align-items:stretch}.ask-answer{background:var(--surface-2);border-radius:10px;padding:10px 12px}.cert-page{flex-direction:column;gap:16px;display:flex}.certificate{aspect-ratio:1.414;background:var(--surface);border:10px double color-mix(in srgb, var(--tone-gold) 60%, var(--line));text-align:center;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;max-width:860px;margin:0 auto;padding:40px;display:flex}.cert-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--tone-gold);margin:0;font-weight:700}.cert-small{color:var(--muted);margin:0}.cert-name{font-family:var(--font-display);margin:0;font-size:clamp(1.8rem,4vw,3rem)}.cert-course{font-family:var(--font-display);color:var(--accent);margin:0;font-size:clamp(1.2rem,2.5vw,1.8rem)}.cert-foot{width:100%;color:var(--muted);justify-content:space-between;gap:20px;margin-top:30px;font-size:.85rem;display:flex}.cert-sign{border-top:1px solid var(--line);color:var(--ink);padding-top:4px;font-style:italic}@media print{.no-print,.snav,.site-foot,.update-banner{display:none!important}.certificate{border-color:#b8962e}body{background:#fff}}.community-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:20px;display:grid}@media (max-width:900px){.community-layout{grid-template-columns:1fr}}.community-side{position:sticky;top:76px}.new-post-btn{width:100%;font:inherit;color:var(--muted);cursor:text;text-align:left;flex-direction:row;align-items:center}.new-post{align-items:stretch}.feed-filters .chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.posts{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.post{align-items:stretch;gap:8px}.post.pinned{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.post-head{flex-wrap:nowrap}.post-main{text-align:left;width:100%;display:block}.post-main .h4{margin:0 0 4px}.post-excerpt{color:var(--ink-2);max-height:9em;overflow:hidden}.post-foot .btn.liked,.comment .btn.liked{color:var(--tone-rose)}.post.full .h3{margin:4px 0}.post-imgs{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.post-imgs.n1{grid-template-columns:1fr}.post-imgs img{object-fit:cover;border:1px solid var(--line);border-radius:10px;width:100%;max-height:380px}.comments{max-width:820px}.comment{flex-wrap:nowrap;align-items:flex-start}.comment-body{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px}.comment-body p{margin:0 0 4px}.mini-lb{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.mini-lb li{align-items:center;gap:8px;display:flex}.lb-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:860px){.lb-layout{grid-template-columns:1fr}}.lb{flex-direction:column;gap:4px;width:100%;margin:0;padding:0;list-style:none;display:flex}.lb li{border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.lb li.me{background:var(--accent-soft)}.lb-rank{text-align:center;width:26px;color:var(--muted);font-weight:700}.levels-ladder{align-items:stretch;gap:2px}.ladder-row{border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.ladder-row.me{background:var(--accent-soft);font-weight:600}.ladder-n{background:var(--surface-2);border-radius:50%;place-items:center;width:26px;height:26px;font-size:.85rem;font-weight:700;display:grid}.ladder-row.me .ladder-n{background:var(--accent);color:var(--accent-ink)}.event-row{align-items:flex-start;gap:12px;width:100%;display:flex}.event-row.compact{align-items:center}.event-date{background:var(--accent-soft);min-width:46px;color:var(--accent);border-radius:10px;flex-direction:column;align-items:center;padding:4px 6px;line-height:1.1;display:flex}.event-date span{text-transform:uppercase;font-size:.7rem;font-weight:700}.event-date strong{font-family:var(--font-display);font-size:1.3rem}.cal-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:20px;display:grid}@media (max-width:900px){.cal-layout{grid-template-columns:1fr}}.cal-title{text-align:center;margin:0}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;display:grid}.cal-dow{color:var(--muted);text-align:center;font-size:.72rem;font-weight:600}.cal-day{background:var(--surface-2);border-radius:8px;flex-direction:column;gap:2px;min-height:74px;padding:4px 6px;font-size:.8rem;display:flex;overflow:hidden}.cal-day:empty{background:0 0}.cal-day.today{box-shadow:inset 0 0 0 2px var(--accent);font-weight:700}.cal-ev{background:var(--accent);color:var(--accent-ink);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:1px 4px;font-size:.68rem;font-weight:500;display:block;overflow:hidden}.find{max-width:320px}.member-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:12px;display:grid}.member{text-align:center;align-items:center;gap:6px}.member p{margin:0}.member.me{border-color:var(--accent-2)}.tutor-card{background:var(--accent-soft)}.chat{align-items:stretch;gap:0;max-width:860px;height:min(70vh,680px);padding:0}.chat-head{border-bottom:1px solid var(--line);flex-wrap:nowrap;padding:12px 16px}.chat-body{background:var(--bg);flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.chat-empty{margin:auto}.chat-msg{background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 14px 4px;flex-direction:column;align-self:flex-start;gap:4px;max-width:78%;padding:8px 12px;display:flex}.chat-msg.mine{background:var(--accent-soft);border-color:#0000;border-radius:14px 14px 4px;align-self:flex-end}.chat-msg .md p{margin:0}.chat-time{color:var(--muted);align-self:flex-end;font-size:.7rem}.chat-compose{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:end;gap:8px;padding:10px;display:grid}.chat-compose textarea{resize:none;min-height:40px}.chat-files,.chat-err{grid-column:1/-1;margin:0}.inbox{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (max-width:860px){.inbox{grid-template-columns:1fr}}.inbox-list{align-items:stretch;gap:4px;max-height:70vh;overflow-y:auto}.inbox-row{text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;gap:2px;padding:8px;display:flex}.inbox-row:hover{background:var(--surface-2)}.inbox-row.on{background:var(--accent-soft)}.inbox-row.unread strong{color:var(--accent)}.inbox-row .count,.section .count{background:var(--bad);color:#fff;border-radius:999px;padding:0 7px;font-size:.72rem;font-weight:700}.extras-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.extras-grid .h4{margin:0}.flashcard{border:1px solid var(--line);background:var(--accent-soft);width:100%;min-height:110px;color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;place-items:center;padding:14px;transition:transform .25s;display:grid}.flashcard.flip{background:var(--surface);transform:rotateX(8deg)}.timer{font-family:var(--font-display);font-size:2.6rem;font-weight:700}.badges{grid-template-columns:repeat(2,1fr);gap:8px;width:100%;display:grid}.badge{background:var(--surface-2);text-align:center;opacity:.55;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px;font-size:.8rem;font-weight:600;display:flex}.badge.got{opacity:1;background:color-mix(in srgb, var(--tone-gold) 14%, var(--surface));color:var(--tone-gold)}.snav-more,.bell{position:relative}.snav-menu,.bell-menu{z-index:30;min-width:200px;box-shadow:var(--shadow-hover);align-items:stretch;gap:2px;padding:6px;position:absolute;top:calc(100% + 6px)}.snav-menu{left:0}.bell-menu{width:340px;max-height:420px;right:0;overflow-y:auto}.snav-item,.bell-item{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:.9rem;display:flex}.snav-item:hover,.bell-item:hover{background:var(--surface-2)}.snav-item.on{color:var(--accent);font-weight:600}.bell-item.unread{background:var(--accent-soft)}.bell-count{background:var(--bad);color:#fff;pointer-events:none;border-radius:8px;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:700;display:grid;position:absolute;top:0;right:0}.snav-links{flex-wrap:wrap}.sections{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.section{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:.9rem;font-weight:600;display:inline-flex}.section:hover{border-color:var(--accent-2)}.section.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.editor-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:20px;display:grid}@media (max-width:960px){.editor-grid{grid-template-columns:1fr}}.editor-grid .card{align-items:stretch}.swatch{--tone:var(--tone-blue);border:2px solid var(--surface);background:var(--tone);width:28px;height:28px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border-radius:50%}.swatch.on{box-shadow:0 0 0 2px var(--ink)}.swatch.tone-green{--tone:var(--tone-green)}.swatch.tone-indigo{--tone:var(--tone-indigo)}.swatch.tone-amber{--tone:var(--tone-amber)}.swatch.tone-rose{--tone:var(--tone-rose)}.swatch.tone-teal{--tone:var(--tone-teal)}.swatch.tone-slate{--tone:var(--tone-slate)}.swatch.tone-gold{--tone:var(--tone-gold)}.preview-fields{border:1px dashed var(--line);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.module-edit{align-items:stretch}.module-edit>.row{flex-wrap:nowrap}.inline-title{background:0 0;border-color:#0000;font-weight:600}.inline-title:hover,.inline-title:focus{border-color:var(--line);background:var(--surface)}.lesson-edit-row{border-radius:8px;flex-wrap:nowrap;padding:4px 6px}.lesson-edit-row:hover{background:var(--surface-2)}.subtabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}.subtab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:7px 10px;font-size:.88rem;display:inline-flex}.subtab.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.stat-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.bars{align-items:flex-end;gap:14px;width:100%;height:210px;padding-top:10px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;display:flex}.bar-fill{background:linear-gradient(var(--accent-2), var(--accent));border-radius:6px 6px 2px 2px;width:100%;max-width:54px}.plans{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.plan.featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.plan-price{font-family:var(--font-display);margin:0;font-size:1.6rem;font-weight:700}.checkout-page{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}@media (max-width:760px){.checkout-page{grid-template-columns:1fr}}.checkout-sum{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;width:100%;padding:8px 0;display:flex}.checkout-sum.total{border-bottom:0;font-size:1.1rem}.sales-page{background:linear-gradient(160deg, var(--accent-soft), var(--surface) 60%);align-items:flex-start;padding:32px}.sales-page .h2{max-width:640px;margin:0}.t4{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.02rem;font-weight:650;line-height:1.3}.t4.row{align-items:center;display:flex}.hub-card{justify-content:flex-start}.hub-card>.btn{margin-top:auto}.hub-card p{margin:0}.mini-posts .linkish{text-align:left;color:var(--ink);justify-content:flex-start}.card.row{flex-direction:row;align-items:center}.post-page>.btn,.stack>.btn.ghost.small{align-self:flex-start}.spark{vertical-align:.06em;background:conic-gradient(from 0deg, var(--accent), color-mix(in srgb, var(--accent) 40%, #f59e0b), var(--accent));clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);flex:none;width:.62em;height:.62em;margin-right:.42em;animation:3.2s ease-in-out infinite spark-breathe;display:inline-block}.greeting.thinking .spark{animation:1.1s cubic-bezier(.5,0,.5,1) infinite spark-think}@keyframes spark-breathe{0%,to{opacity:.9;transform:scale(1)rotate(0)}50%{opacity:1;transform:scale(1.18)rotate(45deg)}}@keyframes spark-think{0%{transform:rotate(0)scale(.85)}50%{transform:rotate(180deg)scale(1.15)}to{transform:rotate(360deg)scale(.85)}}.greeting.thinking .greeting-text{opacity:.55}.home-hero{border:1px solid var(--line);background:radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 55%), radial-gradient(90% 120% at 100% 100%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 60%), var(--surface);border-radius:18px;padding:26px 26px 24px;position:relative;overflow:hidden}.home-hero:after{content:"";background:color-mix(in srgb, var(--accent) 10%, transparent);filter:blur(30px);pointer-events:none;border-radius:50%;width:260px;height:260px;animation:14s ease-in-out infinite alternate hero-drift;position:absolute;inset:-40% -10% auto auto}@keyframes hero-drift{to{transform:translate(-60px,40px)}}.home-hero>*{z-index:1;position:relative}.home .card,.page.admin .stat{border-radius:14px;transition:transform .18s,box-shadow .18s,border-color .18s}.home .card:hover,.page.admin .stat:hover{box-shadow:var(--shadow-hover);border-color:color-mix(in srgb, var(--accent) 35%, var(--line));transform:translateY(-2px)}.test-card{border-radius:14px}.test-card.open:hover,.test-card.progress:hover,.test-card.done:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));transform:translateY(-3px)}.carry .btn.primary{transition:transform .15s,box-shadow .15s}.carry .btn.primary:hover{box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent);transform:translateY(-1px)}.home>*,.test-cards>li,.page.admin .summary-row>*{animation:.45s both rise-in}.home>:nth-child(2),.test-cards>li:nth-child(2),.page.admin .summary-row>:nth-child(2){animation-delay:60ms}.home>:nth-child(3),.test-cards>li:nth-child(3),.page.admin .summary-row>:nth-child(3){animation-delay:.12s}.home>:nth-child(4),.test-cards>li:nth-child(4),.page.admin .summary-row>:nth-child(4){animation-delay:.18s}.test-cards>li:nth-child(n+5),.page.admin .summary-row>:nth-child(n+5){animation-delay:.24s}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.spark,.greeting.thinking .spark,.home-hero:after,.home>*,.test-cards>li,.page.admin .summary-row>*{animation:none!important}.home .card:hover,.test-card:hover,.page.admin .stat:hover{transform:none!important}}.away-card{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 16%, var(--surface)), var(--surface));box-shadow:0 10px 30px color-mix(in srgb, var(--accent) 14%, transparent);border-radius:18px;flex-wrap:wrap;align-items:center;gap:20px;padding:24px 26px;display:flex}.away-card .away-text{flex-direction:column;flex:320px;gap:6px;display:flex}.away-card .away-text>*{margin:0}.away-card .btn.big{padding:14px 22px;font-size:1.05rem}.spark.big{width:30px;height:30px;margin:0}.toasts{z-index:80;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);box-shadow:var(--shadow-hover);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 10px 10px 12px;animation:.3s both rise-in;display:flex}.toast-icon{color:var(--accent);padding-top:2px}.toast-main{all:unset;cursor:pointer;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.toast-main .small{color:var(--ink-2)}.toast-x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:1.2rem;line-height:1}.chat-compose{grid-template-columns:auto auto 1fr auto}.emoji-wrap{display:inline-flex;position:relative}.emoji-pop{z-index:30;flex-direction:column;gap:6px;width:300px;max-width:calc(100vw - 40px);padding:10px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.emoji-tabs{flex-wrap:wrap;gap:4px;display:flex}.emoji-tabs button{border:1px solid var(--line);background:var(--surface);font:inherit;cursor:pointer;color:var(--ink-2);border-radius:999px;padding:3px 8px;font-size:.75rem}.emoji-tabs button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:2px;max-height:180px;display:grid;overflow-y:auto}.emoji-grid button{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0;font-size:1.25rem;line-height:1.6}.emoji-grid button:hover{background:var(--surface-2);transform:scale(1.15)}.emoji-pop .eyebrow{margin:0}.toggle-list{flex-direction:column;gap:8px;display:flex}.toggle-list .check{align-items:flex-start}.prompt-group{flex-direction:column;gap:6px;margin-top:6px;display:flex}.prompt-row{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.prompt-row:hover{border-color:var(--accent)}.prompt-row.edited{border-left:4px solid var(--accent)}.prompt-row strong{margin-right:8px}.ellipsis-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.prompt-text{width:100%;font-family:var(--font-mono,ui-monospace, monospace);font-size:.85rem;line-height:1.5}.admin-home{flex-direction:column;gap:20px;display:flex}.home-needs{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.need-card{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, var(--surface)), var(--surface));border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px 16px;transition:transform .15s,box-shadow .15s;animation:.4s both rise-in;display:grid}.need-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.need-card.calm{cursor:default;color:var(--good);border-color:var(--line);background:var(--surface);grid-template-columns:auto 1fr}.need-num{font-family:var(--font-display);color:var(--accent);font-size:1.8rem;font-weight:700;line-height:1}.need-label{color:var(--ink);align-items:center;gap:6px;font-weight:600;display:flex}.need-go{color:var(--muted)}.home-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.home-stat{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;gap:4px;padding:14px 16px;transition:transform .15s,box-shadow .15s;display:flex}.home-stat:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.home-stat-num{font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1.1}.home-cols{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:16px;display:grid}@media (max-width:1000px){.home-cols{grid-template-columns:1fr}}.mini-row{all:unset;box-sizing:border-box;cursor:pointer;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.mini-row:hover{background:var(--surface-2)}.mini-row.unread strong{color:var(--accent)}.mini-row .count{margin-left:6px}.mini-date{--tone:var(--tone-blue);background:color-mix(in srgb, var(--tone) 14%, var(--surface));min-width:40px;color:var(--tone);border-radius:9px;flex-direction:column;align-items:center;padding:3px 5px;line-height:1.1;display:flex}.mini-date span{text-transform:uppercase;font-size:.62rem;font-weight:700}.mini-date strong{font-size:1.1rem}.quick-actions .eyebrow{margin-bottom:8px}.cal-main{min-width:0}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cal-toolbar .cal-title{text-align:left}.cal-filter{width:auto}.cal-day{cursor:pointer;min-width:0;transition:background .12s}.cal-day:hover{background:color-mix(in srgb, var(--accent) 8%, var(--surface-2))}.cal-day.sel{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}.cal-day.empty{cursor:default;background:0 0}.cal-num{font-weight:600}.cal-ev{--tone:var(--tone-blue);font:inherit;text-align:left;cursor:pointer;background:var(--tone);color:var(--surface);border:0;width:100%;font-size:.68rem}.cal-ev:hover{filter:brightness(1.1)}.cal-ev.past{opacity:.55}.cal-ev-time{margin-right:4px;font-weight:700}.cal-more{color:var(--accent);font-size:.68rem;font-weight:600}.cal-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}@media (max-width:700px){.cal-week{grid-template-columns:1fr}}.cal-wday{background:var(--surface-2);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;min-width:0;min-height:140px;padding:6px;display:flex}.cal-wday.today{box-shadow:inset 0 0 0 2px var(--accent)}.cal-wday-head{color:var(--muted);font-size:.8rem}.day-panel{border-left:4px solid var(--accent)}.card.tight{padding:10px 12px}.event-row{all:unset;box-sizing:border-box;cursor:pointer;border-radius:10px;align-items:center;gap:12px;width:100%;display:flex}.event-row:hover strong{color:var(--accent)}.event-row.past{opacity:.75}.event-date{--tone:var(--tone-blue);background:color-mix(in srgb, var(--tone) 14%, var(--surface));color:var(--tone)}.event-thumb{object-fit:cover;border-radius:8px;flex:none;width:56px;height:40px}.event-cover{object-fit:cover;border-radius:12px;width:100%;max-height:240px}.event-facts{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.event-facts li{align-items:center;gap:8px;display:flex}.event-facts svg{color:var(--accent);flex:none}.rsvp{background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.event-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;display:grid}@media (max-width:800px){.event-editor{grid-template-columns:1fr}}.event-editor .eyebrow{margin:6px 0 0}.event-pic{border:1px dashed var(--line);text-align:center;border-radius:12px;place-items:center;min-height:110px;padding:6px;display:grid;overflow:hidden}.event-pic img{object-fit:cover;border-radius:8px;width:100%;max-height:200px}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch.tone-blue{--tone:var(--tone-blue)}.dummy-bar{border-left:4px solid var(--tone-amber);flex-wrap:wrap;align-items:center;gap:14px;display:flex}.chip-picks{flex-wrap:wrap;gap:6px;display:flex}.chip-pick{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;display:inline-flex}.chip-pick input{opacity:0;pointer-events:none;position:absolute}.chip-pick.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.seg-opt{font:inherit}.demo-note{border-left:4px solid var(--tone-amber)}@media (prefers-reduced-motion:reduce){.toast,.need-card{animation:none!important}.need-card:hover,.home-stat:hover{transform:none!important}}.event-editor .field.inline{flex-direction:column;align-items:stretch;gap:4px;min-width:0}.event-editor .field.inline .label{white-space:normal}.event-editor input,.event-editor select,.event-editor textarea{min-width:0;max-width:100%}.event-editor .row.wrap>.field.inline{flex:140px}.quiet-row select{width:auto}.event-row .grow{min-width:0}@media (max-width:600px){.event-thumb{display:none}.cal-day{min-height:54px;padding:3px}.cal-ev{border-radius:3px;height:6px;padding:0;font-size:0}.cal-more{font-size:.6rem}}
