:root{--bg:#fff;--bg-deep:#fafafa;--surface:#fff;--surface-2:#fafafa;--surface-3:#f2f2f2;--hover:#f5f5f5;--ink:#171717;--ink-2:#4d4d4d;--ink-3:#8f8f8f;--line:#ebebeb;--line-strong:#e0e0e0;--control-border:#e0e0e0;--brand:#171717;--brand-ink:#fff;--brand-shadow:#000;--accent:#0070f3;--brand-strong:#0068d6;--brand-subtle:#ebf5ff;--brand-muted:#cde5ff;--ring:0 0 0 3px #0070f32e;--success:#18794e;--success-subtle:#e9f9ef;--danger:#d93036;--danger-subtle:#ffebec;--warning:#a35200;--warning-subtle:#fff4e5;--flame:#f5a623;--flame-subtle:#fff4e5;--highlight:#0070f324;--shadow-sm:0 1px 2px #0000000d;--shadow-card:0 1px 2px #0000000a, 0 1px 1px #00000005;--shadow-pop:0 0 0 1px #0000000f, 0 4px 8px -2px #0000000f, 0 16px 40px -8px #00000024;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--radius:12px;--font:var(--font-sans-face,Geist), ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:var(--font);--font-read:var(--font);--font-mono:var(--font-mono-face,"Geist Mono"), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sidebar-w:240px;--tabbar-bar-h:52px;--tabbar-float:12px;--tabbar-h:calc(var(--tabbar-bar-h) + var(--tabbar-float) + 2px);--lesson-scale:1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0a0a;--bg-deep:#0a0a0a;--surface:#111;--surface-2:#161616;--surface-3:#1f1f1f;--hover:#1a1a1a;--ink:#ededed;--ink-2:#a1a1a1;--ink-3:#737373;--line:#1f1f1f;--line-strong:#2e2e2e;--control-border:#2e2e2e;--brand:#ededed;--brand-ink:#0a0a0a;--accent:#3291ff;--brand-strong:#52a8ff;--brand-subtle:#0d1f33;--brand-muted:#12385e;--ring:0 0 0 3px #3291ff47;--success:#3fb971;--success-subtle:#0b2618;--danger:#ff5c63;--danger-subtle:#2e0f11;--warning:#f5a623;--warning-subtle:#2b1b05;--flame:#f5a623;--flame-subtle:#2b1b05;--highlight:#3291ff33;--shadow-sm:0 1px 2px #0006;--shadow-card:0 1px 2px #0006;--shadow-pop:0 0 0 1px #ffffff14, 0 16px 40px -8px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0a0a;--bg-deep:#0a0a0a;--surface:#111;--surface-2:#161616;--surface-3:#1f1f1f;--hover:#1a1a1a;--ink:#ededed;--ink-2:#a1a1a1;--ink-3:#737373;--line:#1f1f1f;--line-strong:#2e2e2e;--control-border:#2e2e2e;--brand:#ededed;--brand-ink:#0a0a0a;--accent:#3291ff;--brand-strong:#52a8ff;--brand-subtle:#0d1f33;--brand-muted:#12385e;--ring:0 0 0 3px #3291ff47;--success:#3fb971;--success-subtle:#0b2618;--danger:#ff5c63;--danger-subtle:#2e0f11;--warning:#f5a623;--warning-subtle:#2b1b05;--flame:#f5a623;--flame-subtle:#2b1b05;--highlight:#3291ff33;--shadow-sm:0 1px 2px #0006;--shadow-card:0 1px 2px #0006;--shadow-pop:0 0 0 1px #ffffff14, 0 16px 40px -8px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:not([data-no-theme]){--d-text-primary:var(--ink);--d-text-secondary:var(--ink-2);--d-text-tertiary:var(--ink-3);--d-text-inverse:var(--surface);--d-surface:var(--surface);--d-surface-secondary:var(--surface-2);--d-surface-tertiary:var(--surface-3);--d-border-subtle:var(--line);--d-border-default:var(--line);--d-border-strong:var(--line-strong);--d-alpha-5:color-mix(in srgb, var(--ink) 6%, transparent);--d-alpha-10:color-mix(in srgb, var(--ink) 10%, transparent);--d-danger:var(--danger);--d-danger-subtle:var(--danger-subtle);--d-success:var(--success);--d-success-subtle:var(--success-subtle);--d-warning:var(--warning);--d-warning-subtle:var(--warning-subtle);--d-accent:var(--brand-strong);--d-accent-subtle:var(--brand-subtle);--d-font:var(--font);--d-color-brand:var(--brand);--d-color-brand-strong:var(--brand-strong);--d-color-brand-subtle:var(--brand-subtle);--d-color-brand-muted:var(--brand-muted);--d-color-on-brand:var(--brand-ink);--d-color-surface:var(--surface);--d-color-surface-tertiary:var(--surface-3);--d-color-border-timeline:var(--line-strong);--d-color-compare-left:var(--brand-subtle);--d-color-compare-right:var(--warning-subtle);--d-color-callout-insight:var(--brand-subtle);--d-color-callout-insight-edge:var(--brand-strong);--d-color-callout-insight-ink:var(--brand-strong);--d-color-callout-tip:var(--warning-subtle);--d-color-callout-tip-edge:var(--warning);--d-color-callout-tip-ink:var(--warning);--d-color-callout-info:var(--surface-2);--d-color-callout-info-edge:var(--ink-3);--d-color-callout-info-ink:var(--ink-2);--d-color-callout-warning:var(--danger-subtle);--d-color-callout-warning-edge:var(--danger);--d-color-callout-warning-ink:var(--danger);--d-color-callout-example:var(--success-subtle);--d-color-callout-example-edge:var(--success);--d-color-callout-example-ink:var(--success)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5;overflow-x:hidden}html[data-handoff]{background:var(--bg)}html[data-handoff] body{visibility:hidden}html[data-handoff]:after{content:"Opening Google sign-in…";visibility:visible;color:var(--ink-3);font-family:var(--font);place-items:center;font-size:14px;animation:.4s .3s both fade-in;display:grid;position:fixed;inset:0}html[data-handoff=return]:after{content:"Signing you in…"}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}[hidden]{display:none!important}::selection{background:var(--highlight)}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:.8125rem}.tiny{font-size:.75rem}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:.8rem}.eyebrow,.kicker,.h-sm,.ledger-label,.stat-label,.rubric{color:var(--ink-3);letter-spacing:-.005em;margin:0;font-size:.8125rem;font-weight:500}.kicker{color:var(--accent)}.rubric{color:var(--ink);align-items:center;gap:8px;font-size:.875rem;font-weight:600;display:inline-flex}.count{background:var(--surface-3);min-width:20px;height:20px;color:var(--ink-2);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 6px;font-size:.72rem;font-weight:500;display:inline-grid}.h-xl,.display{letter-spacing:-.035em;margin:0;font-size:clamp(1.6rem,3.2vw,2rem);font-weight:600;line-height:1.15}.h-lg{letter-spacing:-.025em;margin:0;font-size:clamp(1.15rem,2.2vw,1.375rem);font-weight:600;line-height:1.25}.h-md{letter-spacing:-.015em;margin:0;font-size:.9375rem;font-weight:600;line-height:1.35}.ui-icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.big-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.skip-link{z-index:200;border-radius:var(--r-md);background:var(--ink);color:var(--bg);padding:8px 12px;font-weight:500;text-decoration:none;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}kbd{border-radius:var(--r-xs);min-width:20px;height:20px;font:500 .7rem/1 var(--font-mono);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:0 1px 0 var(--line-strong);place-items:center;padding:0 5px;display:inline-grid}.byline{color:var(--ink-3);margin:0;font-size:.8125rem}.btn{--b-bg:var(--brand);--b-fg:var(--brand-ink);--b-border:var(--brand);--b-hover:color-mix(in srgb, var(--brand) 86%, var(--bg));border:1px solid var(--b-border);border-radius:var(--r-md);background:var(--b-bg);height:36px;color:var(--b-fg);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex;position:relative}.btn .ui-icon{width:15px;height:15px}.btn:hover:not(:disabled){background:var(--b-hover)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:focus-visible{box-shadow:var(--ring);border-radius:var(--r-md)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-secondary{--b-bg:var(--surface);--b-fg:var(--ink);--b-border:var(--control-border);--b-hover:var(--hover)}.btn-ghost{--b-bg:transparent;--b-fg:var(--ink-2);--b-border:transparent;--b-hover:var(--hover);box-shadow:none}.btn-ghost:hover:not(:disabled){color:var(--ink)}.btn-soft{--b-bg:var(--brand-subtle);--b-fg:var(--accent);--b-border:transparent;--b-hover:var(--brand-muted);box-shadow:none}.btn-danger{--b-bg:var(--surface);--b-fg:var(--danger);--b-border:var(--control-border);--b-hover:var(--danger-subtle)}.btn-lg{border-radius:var(--r-md);height:42px;padding:0 18px;font-size:.9375rem}.btn-sm{border-radius:var(--r-sm);gap:6px;height:30px;padding:0 10px;font-size:.8125rem}.btn-sm .ui-icon{width:14px;height:14px}.btn-block{width:100%}.btn.loading{cursor:progress}.icon-btn{border-radius:var(--r-md);border:1px solid var(--control-border);background:var(--surface);cursor:pointer;width:32px;height:32px;color:var(--ink-2);flex:none;place-items:center;text-decoration:none;transition:background .12s,color .12s;display:inline-grid}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn.plain{background:0 0;border-color:#0000}.icon-btn.plain:hover{background:var(--hover)}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.link-btn:hover{text-underline-offset:3px;text-decoration:underline}.link-btn .ui-icon{width:14px;height:14px}input[type=text],input[type=search],input:not([type]),select,textarea{accent-color:var(--accent)}.seg{border-radius:var(--r-md);background:var(--surface-3);gap:2px;padding:3px;display:inline-flex}.seg-btn{border-radius:var(--r-sm);height:28px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:.8125rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.seg-btn .ui-icon{width:14px;height:14px}.seg-btn:hover{color:var(--ink)}.seg-btn[aria-checked=true],.seg-btn[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014, 0 0 0 1px var(--line)}.topic-chip{border:1px solid var(--control-border);background:var(--surface);cursor:pointer;color:var(--ink);border-radius:999px;padding:5px 12px;font-size:.8125rem;transition:background .12s}.topic-chip:hover{background:var(--hover)}.chips{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--surface-3);height:22px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:.75rem;font-weight:500;display:inline-flex}.tag .ui-icon{width:12px;height:12px}.switch{background:var(--line-strong);cursor:pointer;border:0;border-radius:999px;flex:none;width:36px;height:20px;padding:0;transition:background .16s;position:relative}.switch-knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true] .switch-knob{transform:translate(16px)}.shell{min-height:100vh;display:block}.main-col{min-width:0}.sidebar{display:none}main{padding:20px 16px calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom));outline:none;max-width:1120px;margin:0 auto;display:block}.brand{color:var(--ink);align-items:center;gap:8px;margin:0;text-decoration:none;display:inline-flex}.brand-name{letter-spacing:-.04em;font-size:1.05rem;font-weight:650;line-height:1}.brand-mark{flex:none;width:22px;height:22px}.brand-mark rect{fill:var(--brand)}.brand-mark path{fill:none;stroke:var(--brand-ink);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.brand-mark circle{fill:var(--accent)}.topbar{z-index:30;height:52px;padding:0 16px;padding-top:env(safe-area-inset-top);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:saturate(1.8)blur(14px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar-right{align-items:center;gap:8px;display:flex}.chip{background:var(--surface-3);font-variant-numeric:tabular-nums;height:26px;color:var(--ink);border-radius:999px;align-items:center;gap:3px;padding:0 9px;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex}.chip-unit{color:var(--ink-3);font-weight:400}.chip.bump,.goal-mini.bump{animation:.6s tick}@keyframes tick{30%{box-shadow:var(--ring)}}.tabbar{z-index:40;left:50%;bottom:calc(var(--tabbar-float) + env(safe-area-inset-bottom));height:var(--tabbar-bar-h);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:saturate(1.8)blur(18px);border:1px solid var(--line-strong);max-width:calc(100vw - 16px);box-shadow:var(--shadow-pop);border-radius:999px;gap:2px;padding:5px;display:flex;position:fixed;transform:translate(-50%)}.tab{min-width:0;color:var(--ink-3);-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;padding:0 clamp(8px,3.6vw,14px);text-decoration:none;transition:background .24s,color .2s,padding .32s cubic-bezier(.32,1.25,.5,1);display:flex;position:relative}.tab .ui-icon{flex:none;width:20px;height:20px;transition:transform .2s}.tab:active .ui-icon{transform:scale(.88)}.tab-label{opacity:0;text-overflow:ellipsis;white-space:nowrap;max-width:0;font-size:.8125rem;font-weight:600;transition:max-width .32s cubic-bezier(.32,1.25,.5,1),opacity .2s,margin .32s;overflow:hidden}.tab[aria-current=page]{background:var(--surface-3);color:var(--ink);padding-right:clamp(10px,4vw,16px)}.tab[aria-current=page] .ui-icon{color:var(--accent)}.tab[aria-current=page] .tab-label{opacity:1;max-width:8em;margin-left:7px}.tab:focus-visible{box-shadow:var(--ring);outline:none}.badge{background:var(--accent);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.6875rem;font-weight:600;line-height:1;display:inline-grid}.tab .badge{min-width:16px;height:16px;box-shadow:0 0 0 2px var(--surface);padding:0 4px;font-size:.625rem;position:absolute;top:3px;left:25px}@media (prefers-reduced-motion:reduce){.tab,.tab-label,.tab .ui-icon{transition:none}}@media (min-width:900px){.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);display:grid}.topbar,.tabbar{display:none}main{padding:32px clamp(24px,4vw,48px) 64px}.sidebar{border-right:1px solid var(--line);background:var(--bg-deep);flex-direction:column;gap:2px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar .brand{padding:6px 8px 14px}body[data-screen=lesson]:not(.side-open) .shell{grid-template-columns:60px minmax(0,1fr)}body[data-screen=lesson]:not(.side-open) .sidebar{align-items:center;padding:16px 8px}body[data-screen=lesson]:not(.side-open) .sidebar .brand-name,body[data-screen=lesson]:not(.side-open) .sidebar .nav-label,body[data-screen=lesson]:not(.side-open) .sidebar .search-trigger-text,body[data-screen=lesson]:not(.side-open) .sidebar .search-trigger kbd,body[data-screen=lesson]:not(.side-open) .sidebar .goal-mini,body[data-screen=lesson]:not(.side-open) .sidebar .side-recent,body[data-screen=lesson]:not(.side-open) .sidebar .side-profile-text{display:none}body[data-screen=lesson]:not(.side-open) .sidebar .brand{padding:6px 0 14px}body[data-screen=lesson]:not(.side-open) .sidebar .nav-link{justify-content:center;width:36px;padding:0}body[data-screen=lesson]:not(.side-open) .sidebar .nav-link .badge{position:absolute;top:-2px;right:-4px}body[data-screen=lesson]:not(.side-open) .sidebar .search-trigger,body[data-screen=lesson]:not(.side-open) .sidebar .side-profile{justify-content:center;width:36px;padding:0}body[data-screen=lesson] .side-toggle{border-radius:var(--r-sm);width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:18px;right:10px}body[data-screen=lesson] .side-toggle:hover{background:var(--hover);color:var(--ink)}body[data-screen=lesson] .side-toggle:focus-visible{box-shadow:var(--ring);outline:none}body[data-screen=lesson].side-open .side-toggle .ui-icon{transform:rotate(180deg)}body[data-screen=lesson]:not(.side-open) .side-toggle{width:36px;height:32px;margin-bottom:6px;position:static}}.search-trigger{border-radius:var(--r-md);border:1px solid var(--control-border);background:var(--surface);height:32px;color:var(--ink-3);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);align-items:center;gap:8px;margin-bottom:10px;padding:0 6px 0 10px;font-size:.8125rem;transition:border-color .12s;display:flex}.search-trigger:hover{border-color:var(--ink-3)}.search-trigger-text{flex:1}.nav{gap:1px;display:grid}.nav-link{border-radius:var(--r-sm);height:32px;color:var(--ink-2);align-items:center;gap:10px;padding:0 8px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex;position:relative}.nav-link .ui-icon{color:var(--ink-3)}.nav-link:hover{background:var(--hover);color:var(--ink)}.nav-link[aria-current=page]{background:var(--surface-3);color:var(--ink)}.nav-link[aria-current=page] .ui-icon{color:var(--ink)}.nav-label{flex:1}.side-recent{flex:auto;grid-template-columns:minmax(0,1fr);align-content:start;gap:1px;min-height:0;margin:14px -4px 10px;padding:0 4px;display:grid;overflow-y:auto}.side-recent>[role=group]{gap:1px;min-width:0;display:grid}.side-head{letter-spacing:0;color:var(--ink-3);margin:0;padding:10px 8px 4px;font-size:.75rem;font-weight:500}.side-recent>:first-child .side-head{padding-top:0}.side-item{border-radius:var(--r-sm);min-height:30px;color:var(--ink-2);align-items:center;gap:10px;padding:0 8px;font-size:.8125rem;text-decoration:none;transition:background .12s,color .12s;display:flex}.side-item .dotmark{width:6px;height:6px;margin:0 7px}.side-item .ui-icon{width:16px;height:16px;color:var(--ink-3);margin:0 2px}.side-item:hover{background:var(--hover);color:var(--ink)}.side-item[aria-current=page]{background:var(--surface-3);color:var(--ink)}.side-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.side-item-meta{font-family:var(--font-mono);color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.6875rem}.side-empty{color:var(--ink-3);margin:0;padding:2px 8px;font-size:.8125rem}.side-toggle{display:none}.sidebar-foot{gap:4px;margin-top:auto;display:grid}.goal-mini{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card);gap:8px;padding:12px;text-decoration:none;display:grid}.goal-mini:hover{border-color:var(--line-strong)}.goal-mini-text{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.goal-mini-text strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:.95rem;font-weight:500;line-height:1}.goal-mini-text small{color:var(--ink-3);font-size:.75rem;font-family:var(--font);letter-spacing:0}.goal-mini-label{color:var(--ink-2);font-size:.8125rem;font-weight:500}.goal-mini-note{color:var(--ink-3);font-size:.75rem}.side-profile{border-radius:var(--r-sm);min-height:44px;color:var(--ink-2);align-items:center;gap:10px;padding:6px 8px;text-decoration:none;display:flex}.side-profile:hover{background:var(--hover);color:var(--ink)}.side-profile[aria-current=page]{background:var(--surface-3);color:var(--ink)}.side-avatar{background:var(--ink);width:28px;height:28px;color:var(--bg);border-radius:50%;flex:none;place-items:center;font-size:.8125rem;font-weight:600;display:grid}.side-profile-text{min-width:0;line-height:1.25;display:grid}.side-profile-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.side-profile-text small{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.ledger-bar,.progress{background:var(--surface-3);border-radius:999px;height:6px;display:block;position:relative;overflow:hidden}.progress{flex:1;min-width:60px}.ledger-bar i,.progress-fill{background:var(--ink);border-radius:inherit;width:0;transition:width .5s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0}.ledger-bar.met i{background:var(--success)}.small-progress{height:4px}.setup-banner{background:var(--brand-subtle);color:var(--ink);text-align:center;border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;padding:8px 16px;font-size:.8125rem;display:flex}.setup-banner strong{color:var(--accent);font-weight:600}.setup-banner .icon-btn{background:0 0;border:0;width:24px;height:24px}.setup-banner .icon-btn svg{width:14px;height:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.page{grid-template-columns:minmax(0,1fr);gap:24px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-head p{margin:0}.page-count{color:var(--ink-3);margin:0;font-size:.8125rem}.section{gap:12px;display:grid}.section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-head .h-md{margin:0;font-size:.875rem;font-weight:600}.back-link{color:var(--ink-2);align-items:center;gap:6px;width:fit-content;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.back-link .ui-icon{width:15px;height:15px}.status-dot,.dotmark{background:var(--line-strong);border-radius:50%;flex:none;width:8px;height:8px}.status-dot.ready,.dotmark.ready{background:var(--accent)}.status-dot.done,.dotmark.done{background:var(--success)}.dotmark.warn,.status-dot.warn{background:var(--warning)}.empty-state{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-lg);justify-items:center;gap:12px;padding:48px 20px;display:grid}.empty-state p{max-width:420px;margin:0}.today{gap:24px;max-width:1120px;margin:0 auto;display:grid}body[data-screen=home] .main-col{flex-direction:column;min-height:100dvh;display:flex}body[data-screen=home] main{flex:1;align-content:center;width:100%;display:grid}.hero{justify-items:center;gap:18px;padding:0 0 clamp(20px,8vh,80px);display:grid}.hero-title{letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(1.75rem,4.2vw,2.6rem);font-weight:600;line-height:1.1}.composer{cursor:text;background:var(--surface);border:1px solid var(--control-border);border-radius:22px;gap:0;width:100%;max-width:760px;padding:14px 14px 10px;transition:border-color .14s,box-shadow .14s;display:grid;position:relative;box-shadow:0 1px 2px #0000000a,0 8px 24px -8px #0000001a,0 24px 56px -24px #00000024}.composer:focus-within{border-color:color-mix(in srgb, var(--accent) 55%, var(--control-border));box-shadow:var(--ring), 0 8px 24px -8px #0000001a, 0 24px 56px -24px #00000029}.composer-field{padding:4px 6px 0;display:block}.composer-input{resize:none;letter-spacing:-.015em;width:100%;min-height:56px;max-height:220px;color:var(--ink);background:0 0;border:0;outline:none;padding:6px 0 10px;font-size:1.125rem;line-height:1.5;display:block}.composer-input::placeholder{color:var(--ink-3)}.composer-input:focus-visible{box-shadow:none}.composer .cmd-material{border:0;border-top:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;margin-bottom:4px;padding:8px 6px 10px}.composer .cmd-material:focus-within{box-shadow:none}.composer-bar{align-items:center;gap:8px;padding-top:6px;display:flex}.composer-spacer{flex:1}.composer-modes{scrollbar-width:none;flex-wrap:nowrap;gap:2px;min-width:0;display:inline-flex;overflow-x:auto}.composer-mode{height:32px;color:var(--ink-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:.8125rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.composer-mode .ui-icon{width:15px;height:15px}.composer-mode:hover{background:var(--hover);color:var(--ink)}.composer-mode[aria-selected=true]{background:var(--surface-3);color:var(--ink);border-color:var(--line)}.composer-mode:focus-visible{border-radius:999px}.composer-bar .cmd-level{border-radius:999px;height:32px}.composer-send{cursor:pointer;background:var(--surface-3);width:36px;height:36px;color:var(--ink-3);border:0;border-radius:50%;flex:none;place-items:center;transition:background .14s,color .14s,transform .14s;display:grid}.composer-send .ui-icon{stroke-width:2.2px;width:18px;height:18px}.composer-send.ready{background:var(--brand);color:var(--brand-ink)}.composer-send.ready:hover{background:color-mix(in srgb, var(--brand) 86%, var(--bg))}.composer-send:active{transform:scale(.95)}.composer-send:focus-visible{border-radius:50%}.composer-send.busy{pointer-events:none}.composer-send.busy .ui-icon{animation:1s ease-in-out infinite pulse}.hero-chips{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;max-width:760px;display:flex}.hero-chip{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--ink-2);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:.8125rem;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.hero-chip:hover{background:var(--hover);color:var(--ink);border-color:var(--line-strong)}.hero-chip-link{color:var(--ink-3);border-style:dashed}.hero-chip-link .ui-icon{width:13px;height:13px}@media (max-width:560px){.hero{justify-items:stretch}.composer{border-radius:18px;padding:12px 10px 8px}.composer-input{min-height:64px;font-size:1.0625rem}.composer-mode span{display:none}.composer-mode{justify-content:center;width:34px;padding:0}.hero-chips{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:4px;overflow-x:auto}.hero-chip{flex:none}}.cmd-level,.select{border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);height:34px;color:var(--ink);cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 10px);background-repeat:no-repeat;background-size:4px 4px;outline:none;padding:0 28px 0 10px;font-size:.8125rem}.cmd-level:hover{border-color:var(--ink-3)}.cmd-level:focus-visible{border-color:var(--accent);box-shadow:var(--ring)}.cmd-go{height:34px}.cmd-kbd{background:color-mix(in srgb, var(--brand-ink) 14%, transparent);box-shadow:none;color:inherit;border-color:#0000}.panel-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);gap:0;display:grid;overflow:hidden}.panel-section>.section-head{border-bottom:1px solid var(--line);padding:12px 16px}.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0;padding:12px;list-style:none;display:grid}.tile{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);text-align:left;cursor:pointer;width:100%;height:100%;min-height:104px;color:inherit;font:inherit;align-content:start;gap:6px;padding:14px;transition:border-color .12s,background .12s,box-shadow .12s;display:grid}.tile:hover{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--shadow-card)}.tile-tag{color:var(--ink-3);font-size:.75rem;font-weight:500}.tile-title{letter-spacing:-.015em;font-size:.9375rem;font-weight:500;line-height:1.35}.tile-go{color:var(--accent);opacity:0;align-items:center;gap:4px;margin-top:auto;font-size:.8125rem;font-weight:500;transition:opacity .12s,transform .12s;display:inline-flex;transform:translate(-3px)}.tile-go .ui-icon{width:14px;height:14px}.tile:hover .tile-go,.tile:focus-visible .tile-go{opacity:1;transform:none}.rows{margin:0;padding:4px 0;list-style:none}.row{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;transition:background .12s;display:grid}.row:hover{background:var(--hover)}.row-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;font-weight:500;overflow:hidden}.row-meta{color:var(--ink-3);white-space:nowrap;font-size:.75rem}@media (max-width:560px){.row{grid-template-columns:8px minmax(0,1fr)}.row .row-meta{grid-column:2}}.stat-panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card);color:inherit;align-content:start;gap:10px;min-width:0;padding:16px;text-decoration:none;transition:border-color .12s;display:grid}a.stat-panel:hover{border-color:var(--line-strong)}.stat-label{justify-content:space-between;align-items:center;gap:8px;display:flex}.stat-note{color:var(--ink-3);font-size:.8125rem}.ledger-compact{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;display:grid}.ledger-item{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);align-content:start;gap:8px;min-width:0;padding:14px 16px;display:grid}.ledger-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;line-height:1}.ledger-value small{letter-spacing:0;color:var(--ink-3);font-size:.8125rem;font-weight:400}.numbered{gap:6px;margin:0;padding:0;list-style:none;display:grid}.numbered-row{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;gap:2px;padding:12px 14px;text-decoration:none;transition:border-color .12s,background .12s;display:grid}.numbered-row:hover{border-color:var(--line-strong);background:var(--hover)}.numbered>li:first-child .numbered-row{border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:var(--brand-subtle)}.numbered-kicker{color:var(--ink-3);font-size:.75rem;font-weight:500}.numbered-title{letter-spacing:-.01em;font-size:.9375rem;font-weight:500}.lib{gap:20px;max-width:1120px;margin:0 auto}.lib-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-box{border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);height:36px;box-shadow:var(--shadow-sm);flex:260px;align-items:center;gap:8px;padding:0 10px;transition:border-color .12s,box-shadow .12s;display:flex}.search-box:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.search-box .ui-icon{color:var(--ink-3);width:15px;height:15px}.search-box input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:.875rem}.lib-tools .cmd-level{height:36px}.lib-tools .seg{scrollbar-width:none;max-width:100%;overflow-x:auto}.lib-tools .seg::-webkit-scrollbar{display:none}.lib-body{gap:20px;display:grid}.lib-body .panel-section>.section-head{background:var(--surface)}.table{display:grid}.tr{align-items:center;gap:16px;min-height:52px;padding:0 16px;display:grid}.tr+.tr{border-top:1px solid var(--line)}.t-lessons .tr{grid-template-columns:minmax(0,1fr) 130px 120px 60px 110px 32px}.t-courses .tr{grid-template-columns:minmax(0,1fr) 200px 110px 32px}.tr:not(.thead):hover{background:var(--hover)}.thead{background:var(--surface-2);min-height:36px}.th{color:var(--ink-3);text-align:left;font-size:.75rem;font-weight:500}.th-sort{cursor:pointer;font:inherit;color:var(--ink-3);background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.75rem;font-weight:500;display:inline-flex}.th-sort:hover,.th-sort.on{color:var(--ink)}.th-sort .ui-icon{width:12px;height:12px}.td{min-width:0;color:var(--ink-2);font-size:.8125rem}.td.mono{font-size:.75rem}.td-title{color:var(--ink);gap:1px;padding:9px 0;text-decoration:none;display:grid}.td-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;overflow:hidden}.td-title:hover strong{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.td-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.td-progress{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.td-act .icon-btn{width:28px;height:28px;color:var(--ink-3);opacity:0}.tr:hover .td-act .icon-btn,.td-act .icon-btn:focus-visible{opacity:1}.td-act .icon-btn:hover{color:var(--danger)}.status{background:var(--surface-3);height:22px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 8px;font-size:.75rem;font-weight:500;display:inline-flex}.status i{background:var(--ink-3);border-radius:50%;width:6px;height:6px}.status.ready{background:var(--brand-subtle);color:var(--accent)}.status.ready i{background:var(--accent)}.status.done{background:var(--success-subtle);color:var(--success)}.status.done i{background:var(--success)}.status.warn{background:var(--warning-subtle);color:var(--warning)}.status.warn i{background:var(--warning)}@media (max-width:760px){.t-lessons .tr{grid-template-columns:minmax(0,1fr) auto 28px;gap:10px}.t-courses .tr{grid-template-columns:minmax(0,1fr) 110px 28px;gap:10px}.hide-sm{display:none}.td-act .icon-btn{opacity:1}}.course{gap:24px;max-width:760px;margin:0 auto;display:grid}.course-head{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-card);gap:14px;padding:24px;display:grid}.course-head p{margin:0}.course-head .muted{font-size:.9375rem;line-height:1.55}.course-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.course-ledger{gap:8px;min-width:180px;display:grid}.course-ledger .ledger-value{font-size:1.5rem}.path-section{gap:8px;display:grid}.path-title{padding-left:2px}.path{gap:8px;margin:0;padding:0;list-style:none;display:grid}.path-node{grid-template-columns:36px minmax(0,1fr);align-items:center;gap:12px;display:grid}.node-dot{border:1px solid var(--control-border);background:var(--surface);cursor:pointer;width:32px;height:32px;color:var(--ink-2);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;padding:0;font-size:.8125rem;font-weight:600;display:grid}.node-dot .ui-icon{stroke-width:2.4px;width:15px;height:15px}.path-node.current .node-dot{background:var(--ink);border-color:var(--ink);color:var(--bg)}.path-node.done .node-dot{background:var(--success);border-color:var(--success);color:#fff}.node-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);align-items:center;gap:12px;padding:12px 14px;display:flex}.path-node.current .node-card{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:var(--ring)}.node-body{flex:1;gap:2px;min-width:0;display:grid}.node-body strong{letter-spacing:-.01em;font-size:.9375rem;font-weight:500}.path-node.done .node-body strong{color:var(--ink-2)}.lesson-layout{grid-template-columns:minmax(0,1fr);gap:24px;max-width:780px;margin:0 auto;display:grid}body[data-screen=lesson] main{padding-top:0}.lesson-main{align-content:start;gap:16px;min-width:0;display:grid}.lesson-bar{z-index:25;padding:12px 0;padding-top:max(12px, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.8)blur(14px);align-items:center;gap:8px;display:flex;position:sticky;top:0}.lesson-bar-mid{flex:1;gap:8px;min-width:0;display:grid}.lesson-bar-top{align-items:baseline;gap:10px;min-width:0;display:flex}.lesson-bar-title{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;font-weight:600;overflow:hidden}.lesson-bar-page{color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}.page-segs{gap:4px;height:4px;display:flex}.page-seg{background:var(--surface-3);cursor:pointer;border:0;border-radius:999px;flex:1;padding:0;position:relative;overflow:hidden}.page-seg:after{content:"";width:var(--fill,0%);background:var(--ink);border-radius:inherit;transition:width .3s;position:absolute;inset:0}.page-seg.done:after{width:100%}.page-seg.writing:after{background:var(--accent);width:45%;animation:1.4s ease-in-out infinite seg-pulse}.page-seg:hover{background:var(--line-strong)}@keyframes seg-pulse{50%{opacity:.4}}.lesson-bar .tutor-toggle[aria-expanded=true]{--b-bg:var(--brand-subtle);--b-fg:var(--accent);--b-border:color-mix(in srgb, var(--accent) 35%, transparent);--b-hover:var(--brand-muted)}.toc{flex:none;position:relative}.toc-menu{z-index:40;border-radius:var(--r-lg);background:var(--surface);width:min(340px,100vw - 32px);max-height:60vh;box-shadow:var(--shadow-pop);padding:6px;animation:.14s both overflow-in;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.toc-item{border-radius:var(--r-sm);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:6px;width:100%;padding:7px 8px;display:grid}.toc-item:hover,.toc-item:focus-visible{background:var(--hover);box-shadow:none}.toc-num{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.75rem}.toc-num .ui-icon{width:14px;height:14px}.toc-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;overflow:hidden}.toc-item.current{background:var(--brand-subtle)}.toc-item.current .toc-num,.toc-item.current .toc-label{color:var(--accent);font-weight:500}.toc-item.read .toc-label{color:var(--ink-2)}.writing-row{flex-wrap:wrap;align-items:center;gap:10px;min-height:0;display:flex}.writing-row:empty{display:none}.reasoning{color:var(--ink-2);flex:200px;align-items:center;gap:10px;min-width:0;padding:2px 0;font-size:.8125rem;display:flex}.reasoning-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.reasoning-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3;transform:scale(.8)}}.shimmer{background:linear-gradient(90deg, var(--ink-2) 0%, var(--ink-2) 40%, var(--ink-3) 50%, var(--ink-2) 60%, var(--ink-2) 100%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:1.6s linear infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.resume-chip{border-radius:var(--r-md);background:var(--brand-subtle);color:var(--ink);flex:1 0 100%;align-items:center;gap:10px;padding:8px 8px 8px 12px;font-size:.8125rem;animation:.24s both rise;display:flex}.resume-chip>.ui-icon{color:var(--accent)}.resume-chip span{flex:1;min-width:0}.resume-chip .icon-btn{background:0 0;border:0;width:26px;height:26px}.lesson-card.card{min-height:220px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:8px 0}.skeleton{gap:12px;max-width:680px;margin:0 auto;display:grid}.skeleton i{border-radius:var(--r-xs);background:linear-gradient(90deg, var(--surface-3) 0%, var(--surface-2) 50%, var(--surface-3) 100%);background-size:200% 100%;height:12px;animation:1.4s linear infinite shimmer;display:block}.skeleton i.t{border-radius:var(--r-sm);width:60%;height:32px;margin-bottom:12px}.skeleton i:nth-child(3){width:92%}.skeleton i:nth-child(4){width:84%}.skeleton i:nth-child(5){width:60%}.error-card{border-color:color-mix(in srgb, var(--danger) 35%, var(--line));justify-items:start;gap:10px;padding:20px;display:grid}.error-card p{margin:0}.error-text{color:var(--danger);margin:6px 0 0;font-size:.8125rem}.lesson-end.card{text-align:center;border:0;border-top:1px solid var(--line);width:100%;max-width:680px;box-shadow:none;background:0 0;border-radius:0;justify-items:center;gap:10px;margin:8px auto 24px;padding:48px 0 24px;display:grid}.lesson-end .h-lg{letter-spacing:-.035em;font-size:1.75rem}.lesson-end p{max-width:440px;margin:0}.lesson-end .muted{font-size:.9375rem}.lesson-end.card.pending{padding:24px 0}.lesson-end.pending .muted{font-size:.8125rem}.lesson-end.card.finished{background:radial-gradient(60% 120px at 50% 0, var(--success-subtle), transparent)}.end-stats{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.end-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.lesson-dil.dil-root{font-family:var(--font);font-size:calc(1rem * var(--lesson-scale));counter-reset:page;text-wrap:pretty;letter-spacing:-.006em;color:var(--ink);gap:16px;line-height:1.75}.lesson-dil.dil-root>h1[data-d-component=title]{letter-spacing:-.045em;text-wrap:balance;margin-bottom:6px;font-size:calc(clamp(1.9rem, 4.6vw, 2.5rem) * var(--lesson-scale))!important;font-weight:650!important;line-height:1.12!important}.lesson-dil.dil-root>h1[data-d-component=title]+p[data-d-component=text],.lesson-dil.dil-root>h1[data-d-component=title]+[data-d-component=text-only-markdown]{color:var(--ink-2);letter-spacing:-.012em;padding-bottom:8px;font-size:1.125em;line-height:1.6}.lesson-dil.dil-root>h2[data-d-component=title]{counter-increment:page;border-top:1px solid var(--line);letter-spacing:-.035em;text-wrap:balance;margin-top:40px;padding-top:40px;scroll-margin-top:90px;font-size:calc(1.4rem * var(--lesson-scale))!important;font-weight:600!important;line-height:1.25!important}.lesson-dil.dil-root>h2[data-d-component=title]:before{content:"Page " counter(page);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:.75rem;font-weight:500;line-height:1;display:block}.lesson-dil.dil-root strong{font-weight:600}.lesson-dil.dil-root>[data-dil-catalog],.msg-dil.dil-root>[data-dil-catalog]{margin:8px 0}.lesson-dil.dil-root>*{align-self:center;width:100%;max-width:680px}.lesson-dil.dil-root>[data-dil-catalog]{max-width:none;margin:16px 0}.dil-root [data-d-component=math][data-display]{background:var(--surface-2);border-radius:var(--r-md);padding:14px;overflow-x:auto}.dil-root [style*=border-radius]:not([style*="9999px"]):not([style*="50%"]){border-radius:var(--r-md)!important}.dil-root button[data-d-component=button]{border-radius:var(--r-md);background:var(--brand);color:var(--brand-ink);border:1px solid var(--brand);height:2.25rem;box-shadow:var(--shadow-sm);padding:0 .9rem;font-weight:500;transition:background .12s}.dil-root button[data-d-component=button]:hover:not([disabled]){background:color-mix(in srgb, var(--brand) 86%, var(--bg))}.dil-root button[data-d-component=button][data-pill]{border-radius:var(--r-md)}.dil-root button[data-d-component=button][data-variant=outline],.dil-root button[data-d-component=button][data-variant=secondary]{background:var(--surface);color:var(--ink);border:1px solid var(--control-border)}.dil-root button[data-d-component=button][data-variant=outline]:hover:not([disabled]),.dil-root button[data-d-component=button][data-variant=secondary]:hover:not([disabled]){background:var(--hover)}.dil-root button[data-d-component=button][data-variant=ghost]{color:var(--accent);box-shadow:none;background:0 0;border-color:#0000}.dil-root button[data-d-component=button][data-variant=ghost]:hover:not([disabled]){background:var(--brand-subtle);opacity:1}.dil-root button[data-d-component=button][data-size=sm]{height:1.9rem;font-size:.8rem}.dil-root button[data-d-component=pressable][data-variant=keyterm]{color:var(--accent);-webkit-text-decoration:underline dashed;text-decoration:underline dashed;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-underline-offset:4px;cursor:help;border-radius:3px;padding:0 1px;font-family:inherit;font-weight:500;display:inline}.dil-root button[data-d-component=pressable][data-variant=keyterm]:hover,.dil-root button[data-d-component=pressable][data-variant=keyterm][aria-pressed=true]{background:var(--highlight);text-decoration-style:solid}.dil-root button[data-d-component=pressable][data-variant=keyterm-more]{color:var(--accent);text-underline-offset:3px;padding:0;font-weight:500;text-decoration:underline;display:inline}.dil-root [data-dil-catalog=KeyTermDefinition]{font-size:.92em;animation:.2s both fade-in}.dil-root button[data-d-component=pressable][data-variant=segment]{color:var(--ink-2)}.dil-root button[data-d-component=pressable][data-variant=segment-on]{background:var(--surface);box-shadow:0 1px 2px #00000014, 0 0 0 1px var(--line);color:var(--ink)}.dil-root button[data-d-component=pressable][data-variant=stop]{background:var(--surface);border:1px solid var(--control-border)}.dil-root button[data-d-component=pressable][data-variant=stop]:hover{background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant=stop-on]{background:var(--ink);color:var(--bg);border:1px solid var(--ink)}.dil-root button[data-d-component=pressable][data-variant^=node-]{border:1px solid var(--control-border);background:var(--surface);transition:border-color .12s,background .12s}.dil-root button[data-d-component=pressable][data-variant=node-decision]{background:var(--surface-2);border-style:dashed}.dil-root button[data-d-component=pressable][data-variant=node-start],.dil-root button[data-d-component=pressable][data-variant=node-end]{background:var(--surface-2)}.dil-root button[data-d-component=pressable][data-variant=node-sub]{background:var(--surface-2);border:1px dashed var(--control-border)}.dil-root button[data-d-component=pressable][data-variant=node-on]{border-color:var(--accent);background:var(--brand-subtle);box-shadow:var(--ring)}.dil-root button[data-d-component=pressable][data-variant^=node-]:hover{border-color:var(--ink-3)}.dil-root button[data-d-component=pressable][data-variant=ghost]:hover:not([disabled]){background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant^=option-]{border:1px solid var(--control-border);background:var(--surface);box-shadow:var(--shadow-sm);font-size:.9375rem;transition:border-color .12s,background .12s,box-shadow .12s}.dil-root button[data-d-component=pressable][data-variant=option-idle]:hover:not([disabled]){border-color:var(--ink-3);background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant=option-picked]{border-color:var(--accent);background:var(--brand-subtle);box-shadow:var(--ring)}.dil-root button[data-d-component=pressable][data-variant=option-correct]{border-color:var(--success);background:var(--success-subtle)}.dil-root button[data-d-component=pressable][data-variant=option-wrong]{border-color:var(--danger);background:var(--danger-subtle);animation:.3s shake}.dil-root button[data-d-component=pressable][data-variant=option-dim]{opacity:.5}.dil-root button[data-d-component=pressable][data-variant=flash-front],.dil-root button[data-d-component=pressable][data-variant=flash-back]{border:1px solid var(--line);text-align:center;background:var(--surface);box-shadow:var(--shadow-card);justify-content:center;align-items:center}.dil-root button[data-d-component=pressable][data-variant=flash-front]{background:linear-gradient(to bottom, var(--brand-subtle), var(--surface))}.dil-root button[data-d-component=pressable][data-variant=flash-back]{background:var(--surface-2);animation:.26s both flip-in}.dil-root [data-d-component=text-only-markdown] p,.dil-root [data-d-component=text-only-markdown]{margin:0}.dil-root [data-d-component=badge][data-color=info]{background:var(--brand-subtle);color:var(--accent)}.dil-root .d-confetti{display:none!important}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes flip-in{0%{opacity:.2;transform:rotateX(70deg)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.sel-pop{z-index:60;border-radius:var(--r-md);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-pop);gap:2px;padding:4px;animation:.14s both cite-pop;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.sel-pop:after{content:"";background:var(--ink);border-radius:1px;width:8px;height:8px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.sel-pop button{z-index:1;color:inherit;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:6px 10px;font-size:.8125rem;font-weight:500;display:inline-flex;position:relative}.sel-pop button:hover{background:color-mix(in srgb, var(--bg) 16%, transparent)}@keyframes cite-pop{0%{opacity:0;margin-top:4px}to{opacity:1;margin-top:0}}.tutor{z-index:50;background:var(--surface);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);height:min(86vh,760px);box-shadow:var(--shadow-pop);visibility:hidden;grid-template-rows:auto 1fr auto;transition:transform .26s cubic-bezier(.2,.8,.2,1);display:grid;position:fixed;inset:auto 0 0;transform:translateY(105%)}.lesson-layout.tutor-open .tutor{visibility:visible;transform:none}.tutor-scrim{z-index:45;opacity:0;pointer-events:none;background:#00000052;transition:opacity .2s;position:fixed;inset:0}.lesson-layout.tutor-open .tutor-scrim{opacity:1;pointer-events:auto}.tutor-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 16px;display:flex}.tutor-head-id{align-items:center;gap:10px;min-width:0;display:flex}.tutor-head-id>div{min-width:0;display:grid}.tutor-head-id strong{letter-spacing:-.015em;font-size:.9375rem;font-weight:600}.tutor-head-id .muted{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.tutor-scroll{overscroll-behavior:contain;align-content:start;gap:16px;padding:16px;display:grid;overflow-y:auto}.tutor-empty{color:var(--ink-2);justify-items:start;gap:12px;padding:4px 0;display:grid}.tutor-empty>.tutor-avatar{display:none}.tutor-empty p{margin:0;font-size:.875rem;line-height:1.5}.tutor-starters{gap:6px;width:100%;display:grid}.tutor-starter{text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);cursor:pointer;color:var(--ink);align-items:center;gap:10px;padding:10px 12px;font-size:.8125rem;font-weight:500;transition:background .12s,border-color .12s;display:flex}.tutor-starter:hover{background:var(--hover);border-color:var(--line-strong)}.tutor-starter .ui-icon{width:15px;height:15px;color:var(--ink-3)}.tutor-avatar{background:var(--surface-3);width:28px;height:28px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;display:grid}.tutor-avatar .ui-icon{width:14px;height:14px}.tutor-avatar.small{width:26px;height:26px}.tutor-avatar.big{width:40px;height:40px}.tutor-avatar.big .ui-icon{width:18px;height:18px}.tutor-log{gap:18px;display:grid}.msg{align-items:flex-start;gap:10px;min-width:0;display:flex}.msg-user{justify-content:flex-end}.bubble{background:var(--surface-3);max-width:85%;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px;padding:8px 14px;font-size:.875rem;line-height:1.5}.bot-body{flex:1;min-width:0}.msg-dil.dil-root{gap:10px;font-size:.875rem;line-height:1.65}.typing{gap:4px;padding:8px 0;display:inline-flex}.typing i{background:var(--ink-3);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}.followups{flex-wrap:wrap;gap:6px;display:flex}.followup-chip{border:1px solid var(--control-border);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;border-radius:999px;padding:5px 11px;font-size:.8125rem;transition:background .12s}.followup-chip:hover{background:var(--hover)}.composer-box{border:1px solid var(--control-border);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-card);align-items:flex-end;gap:8px;padding:6px 6px 6px 14px;transition:border-color .12s,box-shadow .12s;display:flex}.composer-box:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.composer-box textarea{resize:none;background:0 0;border:0;outline:none;flex:1;min-height:34px;max-height:160px;padding:7px 0;font-size:.875rem;line-height:1.45}.composer-box textarea::placeholder{color:var(--ink-3)}.tutor-form{padding:10px 12px 12px;padding-bottom:max(12px, env(safe-area-inset-bottom))}.send-btn{border-radius:50%;flex:none;width:32px;height:32px;padding:0}@media (min-width:561px) and (max-width:1239px){.tutor{border-radius:var(--r-xl);width:min(420px,92vw);height:auto;inset:8px 8px 8px auto;transform:translate(110%)}}@media (min-width:1240px){.lesson-layout{grid-template-columns:minmax(0,1fr);max-width:1220px}.lesson-layout.tutor-open{grid-template-columns:minmax(0,1fr) 380px}.lesson-layout:not(.tutor-open) .lesson-main{justify-self:center;width:100%;max-width:780px}.tutor{border:1px solid var(--line);border-radius:var(--r-xl);height:calc(100vh - 32px);box-shadow:var(--shadow-card);visibility:visible;align-self:start;transition:none;display:none;position:sticky;inset:16px auto auto;transform:none}.lesson-layout.tutor-open .tutor{display:grid}.tutor-scrim{display:none}}.pack-overlay{z-index:80;-webkit-backdrop-filter:blur(4px);background:#0006;place-items:center;padding:16px;animation:.2s both fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}.pack-panel{background:var(--bg);border-radius:var(--r-xl);text-align:left;width:min(780px,100%);box-shadow:var(--shadow-pop);gap:10px;padding:clamp(20px,4vw,32px);animation:.26s cubic-bezier(.2,.8,.2,1) both rise;display:grid}.pack-sub{margin:0}.pack-grid{perspective:1200px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:10px 0;display:grid}.pack-card{cursor:pointer;perspective:900px;border-radius:var(--r-lg);background:0 0;border:0;height:164px;padding:0;animation:.42s cubic-bezier(.2,.9,.3,1) both deal;display:block;position:relative}.pack-inner{transform-style:preserve-3d;transition:transform .56s cubic-bezier(.4,.1,.2,1);position:absolute;inset:0}.pack-card.flipped{cursor:default}.pack-card.flipped .pack-inner{transform:rotateY(180deg)}.pack-card:hover:not(.flipped) .pack-inner{transition-duration:.2s;transform:translateY(-2px)}@keyframes deal{0%{opacity:0;transform:translateY(14px)}}.pack-face{backface-visibility:hidden;text-align:left;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);color:var(--ink);flex-direction:column;gap:6px;padding:14px 16px;display:flex;position:absolute;inset:0;overflow:hidden}.pack-front{background:linear-gradient(160deg, var(--brand-subtle) 0%, var(--surface) 70%)}.pack-back{transform:rotateY(180deg)}.pack-no{color:var(--ink-3);font-size:.75rem;font-weight:500}.pack-front-title{letter-spacing:-.015em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:.9375rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.pack-turn{color:var(--accent);margin-top:auto;font-size:.75rem;font-weight:500}.pack-back strong{letter-spacing:-.02em;margin-top:4px;font-size:1rem;font-weight:600;line-height:1.25}.pack-def{color:var(--ink-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.pack-back em{color:var(--ink-3);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.75rem;font-style:normal;display:-webkit-box;overflow:hidden}.pack-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.pack-done{gap:14px;animation:.26s both rise;display:grid}.pack-done .rubric{margin-top:4px}.review-wrap{width:100%;max-width:1040px;margin:0 auto}.review{gap:16px;width:100%;max-width:640px;margin:0 auto;display:grid}.review.review-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;max-width:1040px;display:grid}@media (min-width:980px){.review.review-layout{grid-template-columns:minmax(0,1fr) 280px}.review-panel{position:sticky;top:32px}}.review-main{gap:16px;min-width:0;display:grid}.review-head{align-items:center;gap:12px;display:flex}.review-count{font-variant-numeric:tabular-nums;color:var(--ink-3);text-align:right;min-width:44px;font-size:.8125rem;font-weight:500}.review-card{border-radius:var(--r-xl);gap:18px;padding:clamp(20px,4vw,32px);animation:.24s both rise;display:grid}.review-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pill{background:var(--brand-subtle);height:22px;color:var(--accent);border-radius:999px;align-items:center;padding:0 8px;font-size:.75rem;font-weight:500;display:inline-flex}.review-prompt{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(1.2rem,2.6vw,1.45rem);font-weight:600;line-height:1.35}.choices{gap:8px;display:grid}.choice{text-align:left;cursor:pointer;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--control-border);width:100%;box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 14px;font-size:.9375rem;transition:background .12s,border-color .12s;display:flex}.choice:hover:not(:disabled){background:var(--hover);border-color:var(--ink-3)}.choice:disabled{cursor:default}.choice.is-correct{border-color:var(--success);background:var(--success-subtle)}.choice.is-wrong{border-color:var(--danger);background:var(--danger-subtle);animation:.3s shake}.choice-letter{border-radius:var(--r-sm);background:var(--surface-3);width:24px;height:24px;font-family:var(--font-mono);color:var(--ink-2);flex:none;place-items:center;font-size:.75rem;display:grid}.choice.is-correct .choice-letter{background:var(--success);color:#fff}.choice.is-wrong .choice-letter{background:var(--danger);color:#fff}.tf-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice.tf{justify-content:center;font-weight:500}.cloze{gap:14px;display:grid}.review-prompt.cloze-text{line-height:1.8}.cloze-input{vertical-align:middle;border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);width:min(200px,56vw);height:36px;color:var(--ink);box-shadow:var(--shadow-sm);outline:none;margin:0 4px;padding:0 10px;font-size:.9em;font-weight:500;display:inline-block}.cloze-input:focus{border-color:var(--accent);box-shadow:var(--ring)}.cloze-input.is-correct{border-color:var(--success);background:var(--success-subtle)}.cloze-input.is-wrong{border-color:var(--danger);background:var(--danger-subtle)}.flash-answer{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);padding:14px 16px;font-size:.9375rem;line-height:1.55;animation:.26s both flip-in}.grade-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.grade{border-radius:var(--r-md);border:1px solid var(--control-border);background:var(--surface);cursor:pointer;box-shadow:var(--shadow-sm);justify-items:center;gap:2px;padding:10px 4px;transition:background .12s;display:grid}.grade:hover{background:var(--hover)}.grade strong{font-size:.875rem;font-weight:600}.grade span{color:var(--ink-3);font-size:.75rem}.grade-again strong{color:var(--danger)}.grade-hard strong{color:var(--warning)}.grade-good strong{color:var(--success)}.grade-easy strong{color:var(--accent)}.feedback{border-radius:var(--r-md);gap:6px;padding:12px 14px;animation:.2s both rise;display:grid}.feedback p{margin:0}.feedback.ok{background:var(--success-subtle)}.feedback.bad{background:var(--danger-subtle)}.feedback-title{align-items:center;gap:6px;font-size:.875rem;font-weight:600;display:flex}.feedback-title .ui-icon{width:15px;height:15px}.feedback.ok .feedback-title{color:var(--success)}.feedback.bad .feedback-title{color:var(--danger)}.next-due{color:var(--ink-2);align-items:center;gap:5px;margin:0;font-size:.75rem;display:inline-flex}.next-due .ui-icon{width:13px;height:13px}.review-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.kbd-hint{color:var(--ink-3);align-items:center;gap:6px;margin-right:auto;font-size:.75rem;display:none}@media (hover:hover) and (min-width:700px){.kbd-hint{display:inline-flex}}.empty-review,.review-done{text-align:center;justify-items:center;gap:14px;max-width:560px;margin:24px auto 0;padding:clamp(24px,5vw,40px);display:grid}.empty-review p,.review-done p{margin:0}.stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;display:grid}.stat{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);gap:4px;padding:12px;display:grid}.stat strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600;line-height:1}.stat span{color:var(--ink-3);font-size:.75rem}.next-list{text-align:left;gap:4px;width:100%;margin:0;padding:0;list-style:none;display:grid}.next-list li{border-radius:var(--r-md);background:var(--surface-2);align-items:center;gap:10px;padding:8px 10px;display:flex}.next-q{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8125rem;overflow:hidden}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot.ok{background:var(--success)}.dot.bad{background:var(--danger)}.review-panel{gap:12px;display:grid}@media (max-width:979px){.review-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.review-panel .keys-panel,.review-panel>:nth-child(2){display:none}}.kv{grid-template-columns:auto 1fr;gap:7px 12px;margin:0;font-size:.8125rem;display:grid}.kv dt{color:var(--ink-3);align-items:center;gap:3px;display:inline-flex}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:500}.keys-panel .kv dd{color:var(--ink-2);font-weight:400}.r-queue{gap:1px;max-height:260px;margin:0 -6px;padding:0;list-style:none;display:grid;overflow-y:auto}.r-queue li{border-radius:var(--r-sm);color:var(--ink-3);grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px;padding:5px 6px;font-size:.8125rem;display:grid}.r-q-mark{background:var(--surface-3);border:1px solid var(--line-strong);border-radius:50%;width:8px;height:8px}.r-q-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.r-queue li.now{color:var(--ink);background:var(--hover);font-weight:500}.r-queue li.now .r-q-mark{border-color:var(--accent);background:var(--accent)}.r-queue li.ok .r-q-mark{background:var(--success);border-color:var(--success)}.r-queue li.bad .r-q-mark{background:var(--danger);border-color:var(--danger)}.teacher-layout{grid-template-columns:minmax(0,1fr);gap:16px;max-width:1400px;margin:0 auto;display:grid;position:relative}.teacher-main{height:calc(100dvh - 52px - var(--tabbar-h) - 40px - env(safe-area-inset-bottom));border-radius:var(--r-xl);grid-template-rows:auto 1fr auto;min-width:0;min-height:440px;display:grid;overflow:hidden}@media (min-width:900px){.teacher-main{height:calc(100dvh - 64px)}body[data-screen=teacher] main{padding-top:32px;padding-bottom:32px}}.teacher-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.teacher-head-mid{flex:1;gap:1px;min-width:0;display:grid}.teacher-title{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.015em;font-size:.9375rem;font-weight:600;overflow:hidden}.teacher-head-mid .muted{font-size:.75rem}.mem-chip{border:1px solid var(--control-border);height:28px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.mem-chip .ui-icon{width:14px;height:14px}.mem-chip.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent);background:var(--brand-subtle)}.teacher-scroll{overscroll-behavior:contain;align-content:start;gap:16px;padding:20px clamp(14px,3vw,28px);display:grid;overflow-y:auto}.teacher-log{gap:20px;width:100%;max-width:720px;margin:0 auto;display:grid}.teacher-log .msg-dil.dil-root{font-size:.9375rem}.teacher-followups{width:100%;max-width:720px;margin:0 auto}.teacher-empty{text-align:center;justify-items:center;gap:10px;width:100%;max-width:620px;margin:0 auto;padding:clamp(16px,6vh,56px) 0;display:grid}.teacher-empty p{max-width:480px;margin:0;font-size:.9375rem;line-height:1.55}.starter-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;width:100%;margin-top:12px;display:grid}.starter{text-align:left;border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-lg);cursor:pointer;color:var(--ink);align-items:flex-start;gap:10px;padding:12px 14px;font-size:.8125rem;font-weight:500;line-height:1.45;transition:background .12s,border-color .12s;display:flex}.starter .ui-icon{width:15px;height:15px;color:var(--ink-3);margin-top:1px}.starter:hover{background:var(--hover);border-color:var(--line-strong)}.teacher-form{padding:10px clamp(14px,3vw,28px) 14px;padding-bottom:max(14px, env(safe-area-inset-bottom))}.teacher-form .composer-box{max-width:720px;margin:0 auto}.small-reasoning{padding:2px 0 6px;font-size:.8125rem}.threads{align-content:start;gap:8px;padding:10px;display:none}.threads-head{justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 4px;display:flex}.threads-head strong{font-size:.8125rem;font-weight:600}.threads-head .btn{text-decoration:none}.thread-list{gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.thread-row{border-radius:var(--r-sm);align-items:center;gap:2px;display:flex}.thread-row:hover{background:var(--hover)}.thread-row.active{background:var(--surface-3)}.thread-link{flex:1;gap:1px;min-width:0;padding:7px 8px;text-decoration:none;display:grid}.thread-title{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.thread-link .muted{color:var(--ink-3);font-size:.6875rem}.thread-del{opacity:0;background:0 0;border-color:#0000;width:28px;height:28px}.thread-row:hover .thread-del,.thread-del:focus-visible{opacity:1}.thread-del:hover{color:var(--danger)}.thread-empty{color:var(--ink-3);padding:8px;font-size:.8125rem}.teacher-layout.threads-open .threads{z-index:30;max-height:60vh;box-shadow:var(--shadow-pop);display:grid;position:absolute;top:62px;left:10px;right:10px}@media (min-width:1100px){.teacher-layout{grid-template-columns:240px minmax(0,1fr)}.threads,.teacher-layout.threads-open .threads{max-height:calc(100dvh - 64px);box-shadow:var(--shadow-card);display:grid;position:sticky;top:32px;left:auto;right:auto}.threads-toggle{display:none}}.teacher-context{align-content:start;gap:12px;display:none}.ctx-intro{margin:0 0 2px}.ctx-list{gap:10px;margin:0;padding:0;font-size:.8125rem;line-height:1.45;list-style:none;display:grid}.ctx-list li{gap:2px;display:grid}.ctx-kind{color:var(--ink-3);text-transform:capitalize;font-size:.6875rem;font-weight:500}.ctx-plan p{margin:0}.ctx-plan-goal{font-size:.8125rem;font-weight:500;line-height:1.4}.ctx-toggle{display:inline-grid}@media (min-width:1360px){.teacher-layout{grid-template-columns:240px minmax(0,1fr) 260px}.teacher-context{display:grid;position:sticky;top:32px}.ctx-toggle{display:none}}@media (max-width:1359px){.teacher-layout.ctx-open .teacher-context{z-index:35;background:var(--bg);border-radius:var(--r-xl);width:min(320px,100% - 20px);box-shadow:var(--shadow-pop);max-height:70vh;padding:12px;display:grid;position:absolute;top:62px;right:10px;overflow-y:auto}}.dil-root button[data-d-component=pressable][data-variant=plan-item]{border:1px solid var(--control-border);background:var(--surface)}.dil-root button[data-d-component=pressable][data-variant=plan-item]:hover{background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant=plan-item-done]{border:1px solid color-mix(in srgb, var(--success) 35%, var(--line));background:var(--success-subtle)}.teacher-log [data-dil-catalog=TeacherCard]{margin:2px 0;animation:.26s both rise}.you{gap:20px;max-width:1040px;margin:0 auto;display:grid}.you-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.you-legal{text-align:center;margin:8px 0 0}.you-legal a{color:var(--ink-3)}.you-legal a:hover{color:var(--ink)}@media (min-width:900px){.you-layout{grid-template-columns:180px minmax(0,1fr);gap:32px}.you-nav{flex-direction:column;position:sticky;top:32px}}.you-nav{gap:2px;display:flex;overflow-x:auto}.you-nav-link{border-radius:var(--r-sm);color:var(--ink-2);white-space:nowrap;padding:6px 10px;font-size:.875rem;font-weight:500;text-decoration:none;display:block}.you-nav-link:hover{color:var(--ink);background:var(--hover)}.you-nav-link[aria-current]{color:var(--ink);background:var(--surface-3)}.you-nav-link[hidden],.you-sec[hidden]{display:none}@media (max-width:899px){.you-nav{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 0;position:sticky;top:52px}}.you-content{gap:28px;min-width:0;display:grid}.you-sec{gap:14px;scroll-margin-top:90px;display:grid}.profile-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.avatar{width:48px;height:48px;color:var(--bg);background:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:1.15rem;font-weight:600;display:grid}.profile-name{align-items:center;gap:8px;display:flex}.profile-name .ui-icon{color:var(--ink-3)}.profile-name input{letter-spacing:-.03em;border-radius:var(--r-md);background:0 0;border:1px solid #0000;outline:none;width:100%;min-width:0;margin-left:-6px;padding:2px 6px;font-size:1.375rem;font-weight:600}.profile-name input:hover{border-color:var(--line-strong)}.profile-name input:focus{border-color:var(--accent);box-shadow:var(--ring)}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:560px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-tile{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card);gap:6px;padding:14px 16px;display:grid}.stat-tile .ledger-label{font-size:.8125rem}.stat-tile strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;line-height:1}.heat-card{gap:12px;padding:16px;display:grid}.heat-card .section-head .h-md,.heat-card .rubric{font-size:.875rem}.heat{gap:3px;padding-bottom:2px;display:flex;overflow-x:auto}.heat-col{grid-template-rows:repeat(7,1fr);gap:3px;display:grid}.heat-cell{background:var(--surface-3);border-radius:3px;width:12px;height:12px}.heat-cell[data-level="1"]{background:color-mix(in srgb, var(--success) 30%, var(--surface-3))}.heat-cell[data-level="2"]{background:color-mix(in srgb, var(--success) 55%, var(--surface-3))}.heat-cell[data-level="3"]{background:color-mix(in srgb, var(--success) 78%, var(--surface-3))}.heat-cell[data-level="4"]{background:var(--success)}.heat-cell.future{background:0 0}.heat-legend{color:var(--ink-3);justify-content:flex-end;align-items:center;gap:3px;font-size:.75rem;display:flex}.heat-legend .heat-cell{width:10px;height:10px}.settings{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);gap:0;display:grid}.setting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.setting+.setting{border-top:1px solid var(--line)}.setting-text{flex:220px;gap:2px;min-width:0;display:grid}.setting-text strong{font-size:.875rem;font-weight:500}.setting-text p{margin:0}.setting-stack{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.setting-stack .interest-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.memory-page{gap:14px;display:grid}.mem-head{gap:14px;padding:16px;display:grid}.mem-head-row{align-items:center;gap:14px;display:flex}.mem-head-row .h-md,.mem-head-row .rubric{font-size:.875rem}.mem-head p{margin:2px 0 0}.mem-toggle{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.mem-toggle p{margin:2px 0 0}.mem-add{flex-wrap:wrap;gap:8px;display:flex}.mem-add input{border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);min-width:0;height:36px;box-shadow:var(--shadow-sm);outline:none;flex:260px;padding:0 12px;font-size:.875rem}.mem-add select{border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);height:36px;padding:0 10px;font-size:.8125rem}.mem-add input:focus,.mem-add select:focus{border-color:var(--accent);box-shadow:var(--ring)}.mem-add .btn{height:36px}.mem-list{gap:14px;display:grid}.mem-group{gap:6px;display:grid}.mem-group .h-sm{font-size:.8125rem}.mem-items{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.mem-items>li+li{border-top:1px solid var(--line)}.mem-item{align-items:center;gap:10px;padding:10px 8px 10px 14px;display:flex}.mem-item .icon-btn{color:var(--ink-3);background:0 0;border-color:#0000;width:30px;height:30px}.mem-item .icon-btn:hover{color:var(--danger);background:var(--hover)}.mem-text{overflow-wrap:anywhere;flex:1;gap:2px;min-width:0;font-size:.875rem;display:grid}.mem-empty{padding:6px 0}.mem-foot{justify-content:flex-end;display:flex}.modal-overlay{z-index:100;background:#00000052;place-items:start center;padding:12vh 16px 16px;animation:.14s both fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}.palette{background:var(--surface);border-radius:var(--r-xl);width:min(600px,100%);box-shadow:var(--shadow-pop);animation:.18s cubic-bezier(.2,.8,.2,1) both rise;overflow:hidden}.palette-input{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-input .ui-icon{color:var(--ink-3);width:18px;height:18px}.palette-input input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:1rem}.palette-list{max-height:min(56vh,460px);padding:6px;overflow-y:auto}.palette-group{color:var(--ink-3);padding:8px 10px 4px;font-size:.75rem;font-weight:500}.palette-item{border-radius:var(--r-md);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:.875rem;display:flex}.palette-item .ui-icon{color:var(--ink-3);width:16px;height:16px}.palette-item-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette-item-hint{color:var(--ink-3);white-space:nowrap;font-size:.75rem}.palette-item[aria-selected=true]{background:var(--hover)}.palette-item[aria-selected=true] .ui-icon{color:var(--ink)}.palette-empty{text-align:center;color:var(--ink-3);padding:20px;font-size:.875rem}.palette-foot{border-top:1px solid var(--line);color:var(--ink-3);background:var(--surface-2);gap:14px;padding:8px 14px;font-size:.75rem;display:flex}.palette-foot span{align-items:center;gap:5px;display:inline-flex}.onboard{z-index:100;background:var(--bg);grid-template-rows:auto 1fr;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.onboard-top{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px clamp(16px,3vw,28px);display:grid}.onboard-skip{justify-self:end}.onboard-progress{align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.onboard-progress li{color:var(--ink-3);align-items:center;gap:8px;font-size:.8125rem;display:flex}.onboard-progress li+li:before{content:"";background:var(--line-strong);width:clamp(12px,4vw,40px);height:1px;margin-right:2px}.onboard-progress i{border:1px solid var(--line-strong);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;width:22px;height:22px;font-size:.75rem;font-style:normal;transition:background .16s,border-color .16s,color .16s;display:inline-grid}.onboard-progress i .ui-icon{width:13px;height:13px}.onboard-progress li.on{color:var(--ink);font-weight:500}.onboard-progress li.on i{background:var(--ink);border-color:var(--ink);color:var(--bg)}.onboard-progress li.done{color:var(--ink-2)}.onboard-progress li.done i{background:var(--brand-subtle);border-color:var(--accent);color:var(--accent)}.onboard-body{overscroll-behavior:contain;min-height:0;padding:clamp(28px,7vh,72px) 16px 32px;overflow-y:auto}.onboard-step{gap:24px;width:min(600px,100%);margin:0 auto;display:grid}.onboard-step.from-right{animation:.28s cubic-bezier(.2,.8,.2,1) both onboard-in-right}.onboard-step.from-left{animation:.28s cubic-bezier(.2,.8,.2,1) both onboard-in-left}@keyframes onboard-in-right{0%{opacity:0;transform:translate(18px)}}@keyframes onboard-in-left{0%{opacity:0;transform:translate(-18px)}}.onboard-head{gap:10px;display:grid}.onboard-kicker{color:var(--accent);margin:0;font-size:.8125rem;font-weight:500}.onboard-title{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(1.75rem,4.4vw,2.5rem);font-weight:600;line-height:1.1}.onboard-sub{color:var(--ink-2);max-width:54ch;margin:0;font-size:1rem;line-height:1.55}.onboard-field{color:var(--ink-2);gap:10px;font-size:.875rem;font-weight:500;display:grid}.onboard-field-row{justify-content:space-between;align-items:baseline;display:flex}.onboard-count{color:var(--ink-3);font-size:.8125rem;font-weight:400}.onboard-input{border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);width:100%;height:46px;color:var(--ink);box-shadow:var(--shadow-sm);outline:none;padding:0 14px;font-size:1rem;font-weight:400}.onboard-input:focus{border-color:var(--accent);box-shadow:var(--ring)}.interest-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.interest{border-radius:var(--r-md);border:1px solid var(--control-border);background:var(--surface);height:44px;color:var(--ink);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:8px;padding:0 14px;font-size:.9rem;font-weight:500;transition:background .12s,border-color .12s,transform .12s;display:flex}.interest:hover{background:var(--hover)}.interest:active{transform:scale(.98)}.interest .ui-icon{width:15px;height:15px;color:var(--accent);opacity:0;transition:opacity .14s,transform .14s;transform:scale(.6)}.interest[aria-pressed=true]{border-color:var(--accent);background:var(--brand-subtle);color:var(--accent)}.interest[aria-pressed=true] .ui-icon{opacity:1;transform:none}.onboard-preview{border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface-2);gap:10px;padding:14px 16px;display:grid}.onboard-preview-title{color:var(--ink-3);align-items:center;gap:6px;margin:0;font-size:.8125rem;font-weight:500;display:flex}.onboard-preview-title .ui-icon{width:14px;height:14px;color:var(--accent)}.onboard-preview-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.onboard-preview-list li{align-items:baseline;gap:10px;font-size:.9375rem;animation:.22s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.onboard-preview-tag,.onboard-topic-tag{color:var(--ink-3);flex:none;min-width:92px;font-size:.75rem}.onboard-topics{grid-template-columns:1fr 1fr;gap:10px;display:grid}.onboard-topic{border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--surface);min-height:108px;color:var(--ink);text-align:left;cursor:pointer;box-shadow:var(--shadow-card);align-content:space-between;gap:18px;padding:14px 40px 14px 16px;transition:border-color .14s,transform .14s,box-shadow .14s;display:grid;position:relative}.onboard-topic:hover{border-color:var(--ink-3);box-shadow:var(--shadow-pop);transform:translateY(-1px)}.onboard-topic:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}.onboard-topic-title{letter-spacing:-.015em;font-size:1.0625rem;font-weight:600;line-height:1.3}.onboard-topic .ui-icon{width:16px;height:16px;color:var(--ink-3);transition:transform .14s,color .14s;position:absolute;bottom:16px;right:14px}.onboard-topic:hover .ui-icon{color:var(--ink);transform:translate(2px)}.onboard-topic.featured{background:var(--brand);min-height:124px;color:var(--brand-ink);border-color:var(--brand);grid-column:1/-1}.onboard-topic.featured .onboard-topic-tag{color:inherit;opacity:.7}.onboard-topic-go{opacity:.9;font-size:.875rem;font-weight:600}.onboard-or{margin:16px 0 8px;font-size:.875rem}.onboard-topic.featured .onboard-topic-title{font-size:1.375rem}.onboard-topic.featured .ui-icon{color:inherit}.onboard-ask{border:1px solid var(--control-border);border-radius:var(--r-lg);background:var(--surface);height:50px;box-shadow:var(--shadow-sm);align-items:center;gap:10px;padding:0 6px 0 14px;display:flex}.onboard-ask:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.onboard-ask>.ui-icon{width:16px;height:16px;color:var(--ink-3);flex:none}.onboard-ask .onboard-input{height:100%;box-shadow:none;background:0 0;border:0;padding:0}.onboard-ask .onboard-input:focus{box-shadow:none}.onboard-ask-go{border-radius:var(--r-md);background:var(--surface-3);width:36px;height:36px;color:var(--ink-3);cursor:pointer;border:0;flex:none;place-items:center;transition:background .14s,color .14s;display:grid}.onboard-ask-go.ready{background:var(--brand);color:var(--brand-ink)}.onboard-ask-go .ui-icon{width:16px;height:16px}.onboard-actions{justify-content:space-between;align-items:center;gap:10px;padding-top:4px;display:flex}@media (max-width:640px){.onboard-top{grid-template-columns:auto 1fr auto}.onboard-progress{justify-self:center}.onboard-progress li:not(.on) span{display:none}.onboard-topics{grid-template-columns:1fr}.onboard-preview-tag,.onboard-topic-tag{min-width:0}.onboard-preview-list li{flex-direction:column;gap:0}.onboard-body{padding-bottom:0}.onboard-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);margin:0 -16px;position:sticky;bottom:0}}.toast{left:50%;bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));z-index:110;opacity:0;background:var(--ink);color:var(--bg);border-radius:var(--r-md);box-shadow:var(--shadow-pop);text-align:center;max-width:calc(100vw - 32px);padding:10px 14px;font-size:.8125rem;font-weight:500;transition:opacity .18s,transform .18s;position:fixed;transform:translate(-50%)translateY(8px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (min-width:900px){.toast{bottom:24px;left:calc(50% + var(--sidebar-w) / 2)}}body[data-screen=lesson] .toast{bottom:80px}@media (max-width:899px){body[data-screen=lesson] .topbar,body[data-screen=lesson] .tabbar{display:none}body[data-screen=lesson] main{padding-bottom:96px}}@media (max-width:560px){main{padding:16px 14px calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom))}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-row{grid-template-columns:repeat(2,1fr)}.lesson-card.card{padding:4px 6px 16px}body[data-screen=lesson] .lesson-dil.dil-root>[data-dil-catalog]:not([data-dil-catalog=Figure]):not([data-dil-catalog=Video]){border-left:0;border-right:0;width:calc(100% + 40px);margin-inline:-20px;border-radius:0!important}.lesson-bar .tutor-toggle{display:none}body[data-screen=lesson] .toast{bottom:calc(68px + env(safe-area-inset-bottom))}.teacher-head .mem-chip{padding:0 8px}.starter-grid{grid-template-columns:1fr}.mem-add .btn{flex:1}.modal-overlay{padding-top:8vh}.tiles{grid-template-columns:1fr 1fr;gap:8px;padding:10px}.tile{min-height:92px;padding:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
.dil-root button[data-d-component=pressable][data-variant=cite]{vertical-align:.15em;width:auto;min-width:1.15rem;height:1.05rem;font-family:var(--font);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink-2);background:var(--surface-3);border:0;border-radius:999px;justify-content:center;align-items:center;margin-inline-start:.2rem;padding:0 .3rem;font-size:.62rem;font-weight:600;line-height:1;transition:background .12s,color .12s;display:inline-flex!important}.dil-root button[data-d-component=pressable][data-variant=cite]>*{display:inline}.dil-root button[data-d-component=pressable][data-variant=cite]:hover,.dil-root button[data-d-component=pressable][data-variant=cite][aria-pressed=true]{background:var(--accent);color:#fff}.dil-root :has(>[data-dil-catalog=CiteCard]){position:relative}.dil-root [data-dil-catalog=CiteCard]{z-index:6;text-align:left;width:min(420px,100%);box-shadow:var(--shadow-pop);margin-top:6px;font-size:.875rem;font-weight:400;line-height:1.45;animation:.16s both cite-in;position:absolute;left:0;border-color:#0000!important}.dil-root [data-dil-catalog=CiteCard] p{margin:0}@keyframes cite-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.dil-root [data-dil-catalog=Sources]{margin-top:20px}.dil-root button[data-d-component=pressable][data-variant=source]{text-align:left;width:100%}.dil-root button[data-d-component=pressable][data-variant=source]:hover{background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant=stepper]{background:var(--surface);border:1px solid var(--control-border);color:var(--ink);box-shadow:var(--shadow-sm)}.dil-root button[data-d-component=pressable][data-variant=stepper]:hover:not([disabled]){background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant=stepper][disabled]{opacity:.4}.dil-root button[data-d-component=pressable][data-variant=track]{background:var(--surface-3)}.dil-root button[data-d-component=pressable][data-variant=track]:hover{background:var(--line-strong)}.dil-root button[data-d-component=pressable][data-variant=track-on]{background:var(--ink)}.dil-root button[data-d-component=pressable][data-variant=track-on][aria-pressed=true]{background:var(--accent)}.dil-root [data-dil-catalog=GraphFormula] code{white-space:normal;word-break:break-word}.steer-bar{border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);flex:1 0 100%;gap:12px;padding:14px;animation:.2s both fade-in;display:grid}.steer-bar[hidden]{display:none}.steer-head{align-items:center;gap:8px;min-width:0;display:flex}.steer-head>.ui-icon{width:15px;height:15px;color:var(--accent);flex:none}.steer-head strong{white-space:nowrap;font-size:.875rem;font-weight:600}.steer-status{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8125rem;overflow:hidden}.steer-chips{flex-wrap:wrap;gap:6px;display:flex}.steer-chip{border:1px solid var(--control-border);background:var(--surface);color:var(--ink);height:28px;font:inherit;cursor:pointer;border-radius:999px;padding:0 11px;font-size:.8125rem;transition:background .12s}.steer-chip:hover:not(:disabled){background:var(--hover)}.steer-chip:disabled{opacity:.45;cursor:default}.steer-body{gap:10px;display:grid}.steer-row{align-items:center;gap:8px;display:flex}.steer-row input{border:1px solid var(--control-border);border-radius:var(--r-md);min-width:0;height:34px;font:inherit;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);outline:none;flex:1;padding:0 12px;font-size:.875rem}.steer-row input:focus{border-color:var(--accent);box-shadow:var(--ring)}.steer-row .btn{height:34px}.steer-open{display:none}.steer-head .steer-resume{flex:none;margin-left:auto}.steer-head .steer-close{background:0 0;border-color:#0000;flex:none;width:28px;height:28px;margin-left:auto}.steer-head .steer-resume[hidden],.steer-head .steer-close[hidden]{display:none}.steer-bar[data-mode=resume]{background:var(--warning-subtle);border-color:color-mix(in srgb, var(--warning) 30%, var(--line))}.steer-bar[data-mode=resume] .steer-head,.steer-bar[data-mode=revise] .steer-head{flex-wrap:wrap;row-gap:4px}.steer-bar[data-mode=resume] .steer-status,.steer-bar[data-mode=revise] .steer-status{white-space:normal;flex:1 0 100%;order:5}.steer-bar[data-mode=revise]{bottom:max(12px, env(safe-area-inset-bottom));z-index:30;box-shadow:var(--shadow-pop);border-color:#0000;position:sticky}.steer-bar[data-mode=live]:not(.is-open),.steer-bar[data-mode=revise]:not(.is-open){box-shadow:none;background:0 0;border:0;flex:none;padding:0;animation:none}.steer-bar[data-mode=revise]:not(.is-open){justify-self:start}.steer-bar:not(.is-open)>:not(.steer-open){display:none}.steer-bar[data-mode=live]:not(.is-open) .steer-open,.steer-bar[data-mode=revise]:not(.is-open) .steer-open{cursor:pointer;border:1px solid var(--control-border);background:var(--surface);height:30px;color:var(--ink);font:inherit;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.8125rem;font-weight:500;display:inline-flex}.steer-bar[data-mode=revise]:not(.is-open) .steer-open{height:36px;box-shadow:var(--shadow-pop);border-color:#0000;padding:0 14px}.steer-open .ui-icon{width:14px;height:14px;color:var(--accent)}.steer-open:hover{background:var(--hover)}@media (min-width:1240px){.steer-bar[data-mode=revise]:not(.is-open){justify-self:center}}.lesson-dock{display:none}@media (max-width:560px){.lesson-dock{left:0;right:0;bottom:var(--kb,0px);z-index:40;padding:8px 12px;padding-bottom:max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.8)blur(14px);align-items:center;gap:8px;transition:transform .22s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed}.lesson-dock.away{transform:translateY(100%)}.lesson-dock-steer{flex:1;min-width:0;display:flex}.lesson-dock-tutor{height:36px;margin-left:auto}.lesson-dock .steer-bar[data-mode=revise]{position:static}.lesson-dock .steer-bar[data-mode=revise]:not(.is-open) .steer-open{box-shadow:none;border-color:var(--control-border)}.lesson-dock .steer-bar[data-mode=revise].is-open{position:absolute;bottom:calc(100% + 8px);left:8px;right:8px}}.mastery{gap:12px;display:grid}.mastery-empty{padding:16px}.mastery-empty p{margin:0;font-size:.875rem}.mastery-card{padding:4px 0;display:grid}.mastery-group{gap:4px;padding:12px 16px;display:grid}.mastery-group+.mastery-group{border-top:1px solid var(--line)}.mastery-group-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.mastery-group-title{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:.8125rem;font-weight:600;display:inline-flex}.mastery-group[data-status=shaky] .status-dot{background:var(--danger)}.mastery-group[data-status=fading] .status-dot{background:var(--warning)}.mastery-group[data-status=learning] .status-dot{background:var(--accent)}.mastery-group[data-status=mastered] .status-dot{background:var(--success)}.mastery-items{margin:0;padding:0;list-style:none;display:grid}.mastery-item{grid-template-columns:minmax(0,1fr) minmax(64px,140px) 3em 32px;align-items:center;gap:12px;padding:6px 0;display:grid}.mastery-text{gap:1px;min-width:0;display:grid}.mastery-text strong{overflow-wrap:anywhere;font-size:.875rem;font-weight:500}.mastery-text .small{color:var(--ink-3)}.mastery-bar{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.mastery-fill{border-radius:inherit;background:var(--accent);height:100%;display:block}.mastery-group[data-status=shaky] .mastery-fill{background:var(--danger)}.mastery-group[data-status=fading] .mastery-fill{background:var(--warning)}.mastery-group[data-status=mastered] .mastery-fill{background:var(--success)}.mastery-pct{font-family:var(--font-mono);text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.75rem}.mastery-item .icon-btn{width:32px;height:32px;color:var(--ink-3)}.mastery-item .icon-btn:hover{color:var(--danger)}@media (max-width:520px){.mastery-item{grid-template-columns:minmax(0,1fr) 3em 32px;row-gap:6px}.mastery-bar{grid-area:2/1/auto/-1}}.explain-form{gap:10px;display:grid}.explain-input{box-sizing:border-box;resize:vertical;width:100%;min-height:112px;font:inherit;color:var(--ink);border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);outline:none;padding:10px 12px;font-size:.9375rem;line-height:1.5}.explain-input:focus{border-color:var(--accent);box-shadow:var(--ring)}.explain-input::placeholder{color:var(--ink-3)}.explain-status{flex:1;margin:0}.explain-grade{gap:8px;display:grid}.explain-criteria{gap:5px;margin:0;padding:0;font-size:.8125rem;list-style:none;display:grid}.explain-criteria li{color:var(--ink-3);align-items:flex-start;gap:8px;display:flex}.explain-criteria li.met{color:var(--ink)}.explain-criteria .ui-icon{flex:none;width:14px;height:14px;margin-top:3px}.explain-criteria li.met .ui-icon{color:var(--success)}.explain-model{font-size:.8125rem}.explain-model summary{cursor:pointer;color:var(--accent);width:fit-content;font-weight:500}.explain-model p{margin:6px 0 0}.tutor-head-actions{align-items:center;gap:4px;display:flex}.guide-toggle{border-radius:var(--r-md);height:32px;color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:0 8px;font-size:.8125rem;font-weight:500;display:inline-flex}.guide-toggle:hover{background:var(--hover);color:var(--ink)}.guide-toggle:focus-visible{box-shadow:var(--ring);outline:none}.guide-toggle[aria-checked=true]{color:var(--accent)}.guide-toggle .switch.small{width:28px;height:16px;display:inline-block}.guide-toggle .switch.small .switch-knob{width:12px;height:12px;top:2px;left:2px}.guide-toggle[aria-checked=true] .switch.small{background:var(--accent)}.guide-toggle[aria-checked=true] .switch.small .switch-knob{transform:translate(12px)}.dil-root svg[data-dil-catalog=DiagramCanvas]{font-family:var(--font);-webkit-user-select:none;user-select:none}.dil-root [data-dil-catalog=DiagramShape]{transition:opacity .35s,stroke-width .2s}.dil-root [data-dil-catalog=DiagramShape][style*="cursor: pointer"]:hover{filter:brightness(1.08)saturate(1.1)}.dil-root [data-dil-catalog=DiagramHit]{cursor:pointer}@media (prefers-reduced-motion:reduce){.dil-root [data-dil-catalog=DiagramShape]{transition:none}}
.overflow{flex:none;position:relative}.overflow-btn svg circle{fill:currentColor;stroke:none}.overflow-btn[aria-expanded=true]{background:var(--hover)}.overflow-menu{z-index:30;border-radius:var(--r-lg);background:var(--surface);width:max-content;min-width:220px;max-width:min(300px,100vw - 32px);box-shadow:var(--shadow-pop);padding:6px;animation:.14s both overflow-in;position:absolute;top:calc(100% + 6px);right:0}.overflow-menu[hidden]{display:none}@keyframes overflow-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.overflow-menu{animation:none}}.overflow-item{border-radius:var(--r-sm);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:2px;padding:8px 10px;display:grid}.overflow-item:hover,.overflow-item:focus-visible{background:var(--hover);box-shadow:none}.overflow-item-label{font-size:.875rem;font-weight:500}.overflow-item-hint{color:var(--ink-3);font-size:.75rem;line-height:1.35}
.wonder-math-on .dil-root [data-d-component=math]>:not(.wonder-math-out){display:none!important}.dil-root [data-wonder-math=katex]{font-family:inherit;font-style:normal}.dil-root [data-d-component=math][data-display]>.wonder-math-out{max-width:100%;display:block;overflow:auto hidden}.dil-root .wonder-math-out .katex-display{margin:.25em 0}.dil-root .wonder-math-out .katex{color:inherit;font-size:1.12em;line-height:1.2}.dil-root .wonder-math-out .katex-error{color:inherit;font-family:inherit}.dil-root .wonder-math-out[data-wonder-math-enter]{animation:.42s cubic-bezier(.2,.7,.2,1) both d-word-in}@media (prefers-reduced-motion:reduce){.dil-root .wonder-math-out[data-wonder-math-enter]{animation:none}}
.cmd-wrap{gap:8px;min-width:0;display:grid;container-type:inline-size}.cmd-wrap>.cmd{min-width:0}@container (min-width:520px) and (max-width:860px){.cmd-wrap>.cmd{flex-wrap:wrap}.cmd-wrap .cmd-field{border-top:1px solid var(--line);flex:1 0 100%;order:3;padding-top:6px}.cmd-wrap .cmd-level{margin-left:auto}}.cmd-material{border:1px solid var(--control-border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card);gap:8px;padding:10px;display:grid}.cmd-material[hidden]{display:none}.cmd-material:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.cmd-notes{resize:vertical;width:100%;min-height:112px;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;padding:4px 6px;font-size:.9375rem;line-height:1.5}.cmd-notes::placeholder{color:var(--ink-3)}.cmd-material-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.cmd-material-note{color:var(--ink-3);margin-left:auto;font-size:.75rem}.file-chip{background:var(--surface-3);border-radius:999px;align-items:center;gap:4px;min-width:0;max-width:100%;height:26px;padding:0 4px 0 10px;font-size:.8125rem;font-weight:500;display:inline-flex}.file-chip[hidden]{display:none}.file-chip>span{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.file-chip .icon-btn{width:22px;height:22px}.stuck{text-align:left;width:100%;max-width:520px;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);gap:6px;padding:10px 12px;font-size:.8125rem;display:grid}.stuck p{margin:0}.stuck-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.stuck-head strong{color:var(--ink);font-weight:600}.stuck-figures{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.stuck-fig{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;font-size:.75rem}.stuck.ok .stuck-fig:first-child{color:var(--success)}.stuck.warn .stuck-fig:first-child{color:var(--warning)}.stuck .link-btn{justify-self:start;font-size:.8125rem}.works-item{grid-template-columns:minmax(0,1fr) minmax(64px,140px) 3em}.works-findings{gap:6px;margin:0;padding:0;list-style:none;display:grid}.works-findings li{grid-template-columns:8px minmax(0,1fr);align-items:baseline;gap:10px;font-size:.875rem;line-height:1.45;display:grid}.works-findings .status-dot{transform:translateY(-1px)}.works-findings li[data-tone=up] .status-dot{background:var(--success)}.works-findings li[data-tone=down] .status-dot{background:var(--warning)}.works-empty{margin:0}.works-lessons{margin:0;padding:0;list-style:none;display:grid}.works-lesson{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 0;display:flex}.works-lesson+.works-lesson{border-top:1px solid var(--line)}.works-lesson .mastery-text{flex:200px}.works-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.works-toggle{border-top:1px solid var(--line)}.reminder-controls{align-items:center;gap:12px;display:flex}.time-input{font:inherit;border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--surface);height:32px;color:var(--ink);padding:0 10px;font-size:.875rem}.time-input:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}@media (max-width:559px){.works-item{grid-template-columns:minmax(0,1fr) 3em}.works-item .mastery-bar{grid-area:2/1/auto/-1}.cmd-material-note{display:none}}
.course-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.course-review-btn{gap:8px}.course-review-label{align-items:center;gap:8px;display:inline-flex}.course-review-note{font-family:var(--font-mono);opacity:.8;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:400}.course-review-kicker{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;display:flex}.course-review-kicker a{color:inherit;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.course-review-kicker a:hover{color:var(--ink)}.course-review-sum{text-align:left;gap:8px;width:100%;display:grid}.course-review-sum .rubric{margin:0}.course-review-sum .is-weakest .mastery-fill{background:var(--warning)}.course-review-weakest{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding-top:8px;font-size:.875rem;display:flex}@media (max-width:559px){.course-review-btn{flex-direction:column;gap:2px}.course-actions>.btn{white-space:normal;text-align:center;justify-content:center;width:100%;min-width:0;height:auto;min-height:42px;padding-block:8px}}.course-review-btn.is-fading .course-review-note{color:var(--warning);opacity:1}.review-done,.review-done .next-list{grid-template-columns:minmax(0,1fr)}
.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}mark.search-hit{background:var(--brand-subtle);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:3px;padding:0 1px}::highlight(search-found){background-color:color-mix(in srgb, var(--accent) 28%, transparent);color:inherit}.search-result-body{flex:1;gap:2px;min-width:0;display:grid}.search-result-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;overflow:hidden}.search-result-snippet{color:var(--ink-2);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.search-result-meta{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.palette-section+.palette-section{margin-top:2px}.palette-item.palette-result{align-items:flex-start;padding:9px 10px}.palette-item.palette-result>.ui-icon{flex:none;margin-top:2px}.palette-item[aria-selected=true] mark.search-hit{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.td-snippet{white-space:normal;-webkit-line-clamp:2;color:var(--ink-2);-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box}.search-list{margin:0;padding:0;list-style:none}.search-list>li+li{border-top:1px solid var(--line)}.search-row{color:inherit;align-items:flex-start;gap:12px;padding:11px 16px;text-decoration:none;display:flex}.search-row:hover{background:var(--hover)}.search-row:focus-visible{box-shadow:inset var(--ring);outline:none}.search-row>.ui-icon{width:16px;height:16px;color:var(--ink-3);flex:none;margin-top:2px}.search-row:hover .search-result-title{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.search-list-more{border-top:1px solid var(--line);margin:0;padding:10px 16px}@media (max-width:560px){.modal-overlay:has(>.palette){padding-top:8vh;padding-inline:12px}.palette-list{max-height:min(64vh,520px)}.palette-foot{display:none}.search-row{gap:10px;padding:10px 14px}}
.review-visual{min-width:0}.review-visual .dil-root{font-family:var(--font);color:var(--ink)}.dil-root [data-dil-catalog=PracticeNLCell]{cursor:pointer;touch-action:manipulation;transition:background .12s}.dil-root [data-dil-catalog=PracticeNLCell]:hover{background:var(--hover)}.dil-root [data-dil-catalog=PracticeNLLabel]>*{white-space:nowrap;overflow:visible}.dil-root [data-dil-catalog=PracticeNLTrack]>*>[data-d-component=box]:not(:last-child){z-index:1;box-shadow:var(--shadow-sm);flex:none;position:relative}.dil-root button[data-d-component=pressable][data-variant^=pick]{touch-action:manipulation;border:0;transition:background .12s,box-shadow .12s}.dil-root button[data-d-component=pressable][data-variant=pick]:hover:not([disabled]){background:var(--hover)}.dil-root button[data-d-component=pressable][data-variant=pick-on]{background:var(--brand-subtle);box-shadow:inset 0 0 0 1px var(--accent), var(--ring)}.dil-root button[data-d-component=pressable][data-variant=pick-right]{background:var(--success-subtle);box-shadow:inset 0 0 0 1px var(--success)}.dil-root button[data-d-component=pressable][data-variant=pick-wrong]{background:var(--danger-subtle);box-shadow:inset 0 0 0 1px var(--danger)}.dil-root button[data-d-component=pressable][data-variant=pick-dim]{opacity:.6}.dil-root button[data-d-component=pressable][data-variant^=pick][disabled]{cursor:default}.dil-root [data-dil-catalog=PracticeChartLabel]{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.dil-root [data-dil-catalog=PracticeOrderRow]{transition:background .16s,border-color .16s}.dil-root [data-dil-catalog^=Practice] button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.stream-retry{border:1px dashed color-mix(in srgb, var(--danger) 45%, var(--line));border-radius:var(--r-md);background:color-mix(in srgb, var(--danger) 6%, transparent);color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px;padding:10px 10px 10px 14px;font-size:.875rem;animation:.24s both rise;display:flex}.stream-retry[hidden]{display:none}.stream-retry[data-state=waiting]{border-color:var(--line);background:var(--brand-subtle)}.stream-retry-text{flex:12rem;min-width:0}.stream-retry-btn{flex:none}.stream-retry.msg-retry{margin-top:8px;padding:8px 8px 8px 12px;font-size:.8125rem}
