:root{--bg:#f3f6fc;--surface:#fff;--surface-2:#eaf0fb;--text:#13203d;--muted:#56657f;--border:#d9e2f1;--accent:#2f6bff;--accent-deep:#1c49c9;--accent-soft:#e4ecff;--accent-contrast:#fff;--focus:#13203d;--st-mastered-bg:#dff5ea;--st-mastered-fg:#0f6b46;--st-progress-bg:#fff0d1;--st-progress-fg:#7a4a00;--st-available-bg:#fff;--st-available-fg:#13203d;--st-locked-bg:#eceff5;--st-locked-fg:#5b6678;--subj-math:#2f6bff;--subj-geometry:#0f9d8a;--subj-language:#d96a0f;--subj-english:#d94a5a;--subj-science:#2e8b46;--subj-history:#7a4fe0;--radius:18px;--shadow:0 1px 2px #13203d0f, 0 8px 24px #13203d12;--font:ui-rounded, "SF Pro Rounded", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0d1324;--surface:#161e35;--surface-2:#1f2a47;--text:#e9efff;--muted:#a3b0cd;--border:#2b3857;--accent:#6b95ff;--accent-deep:#3f63c7;--accent-soft:#1f2e57;--accent-contrast:#0b1226;--focus:#ffd166;--st-mastered-bg:#123227;--st-mastered-fg:#8fe0bb;--st-progress-bg:#3a2d12;--st-progress-fg:#f5c565;--st-available-bg:#161e35;--st-available-fg:#e9efff;--st-locked-bg:#19233d;--st-locked-fg:#8f9cba;--subj-math:#6b95ff;--subj-geometry:#3fcdb8;--subj-language:#f59b4a;--subj-english:#ff8795;--subj-science:#69d68a;--subj-history:#a88bff;--shadow:0 1px 2px #0006, 0 8px 24px #00000059}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:16px;line-height:1.5}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.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}.skip-link{position:absolute;left:-9999px}.skip-link:focus{background:var(--surface);z-index:10;padding:8px 12px;top:8px;left:16px}.site-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.brand{color:var(--text);align-items:center;gap:10px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.brand-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-contrast);border-radius:8px;place-items:center;font-weight:800;display:grid}.grade-pill{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:13px}.page{max-width:1200px;margin:0 auto;padding:32px 24px 64px}h1{letter-spacing:-.01em;margin:0 0 6px;font-size:30px;line-height:1.2}.lede{color:var(--muted);max-width:65ch;margin:0 0 28px}.crumbs{color:var(--muted);margin-bottom:10px;font-size:14px}.subject h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:28px 0 12px;font-size:15px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.course-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);height:100%;color:var(--text);flex-direction:column;gap:4px;padding:18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.course-card:hover{border-color:var(--accent);transform:translateY(-1px)}.course-code{color:var(--accent);letter-spacing:.04em;font-size:12px;font-weight:700}.course-name{font-size:19px;font-weight:650}.course-meta{color:var(--muted);font-size:14px}.course-track{color:var(--muted);margin-top:auto;padding-top:8px;font-size:13px}.error-panel{border-radius:var(--radius);background:color-mix(in srgb, #c9453a 10%, var(--surface));border:1px solid #c9453a;padding:16px 18px}.map-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.legend{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.legend-item{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:14px;display:flex}.btn-quiet{font:inherit;border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:14px}.map-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}@media (max-width:900px){.map-layout{grid-template-columns:1fr}.detail{order:-1;position:static!important}}.units{gap:16px;display:grid}.unit{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.unit h2{margin:0 0 12px;font-size:17px}.unit-num{color:var(--muted);margin-right:4px;font-weight:500}.skills{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.skill{text-align:left;width:100%;height:100%;font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:2px 8px;padding:10px 12px;font-size:15px;display:grid}.skill .status-icon{grid-row:span 2;line-height:1.4}.skill .prereq-count{opacity:.8;grid-column:2;font-size:12px}.skill.is-selected{outline:2px solid var(--accent);outline-offset:1px}.status-mastered{background:var(--st-mastered-bg);color:var(--st-mastered-fg)}.status-inProgress{background:var(--st-progress-bg);color:var(--st-progress-fg)}.status-available{background:var(--st-available-bg);color:var(--st-available-fg)}.status-locked{background:var(--st-locked-bg);color:var(--st-locked-fg)}.skill.status-available{border-color:var(--accent)}.detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;position:sticky;top:16px}.detail-empty{color:var(--muted);margin:0}.detail-code{color:var(--accent);letter-spacing:.04em;margin:0;font-size:12px;font-weight:700}.detail-title{margin:2px 0 8px;font-size:21px;line-height:1.25}.detail-status{border-radius:999px;margin:0 0 6px;padding:3px 10px;font-size:14px;display:inline-block}.detail h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px;font-size:13px}.ref-list{margin:0;padding-left:18px}.ref-list li{margin:3px 0}.link-btn{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;text-decoration:underline}.muted{color:var(--muted)}.small{font-size:13px}.tags{flex-wrap:wrap;gap:6px;margin:0;display:flex}.tag{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:12px}.preview-box{border-top:1px dashed var(--border);gap:6px;margin-top:20px;padding-top:14px;display:grid}.preview-box label{font-size:14px;font-weight:600}.preview-box select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:6px 8px}.preview-box p{margin:0}@media (max-width:480px){.page{padding:20px 16px 48px}.site-header{padding:12px 16px}h1{font-size:25px}}.work-area{--wa-bad:#b3261e;--wa-bad-bg:color-mix(in srgb, #c9453a 10%, var(--surface));--wa-ok:var(--st-mastered-fg);--wa-paper:#fffdf8;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:12px;min-width:0;padding:12px;display:grid}@media (prefers-color-scheme:dark){.work-area{--wa-bad:#ff8a80;--wa-paper:#f3f1ea}}.work-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.work-title{margin:0;font-size:16px}.work-tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;gap:4px;padding:3px;display:flex}.work-tab{font:inherit;min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 16px;font-size:15px;font-weight:600}.work-tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}.work-panel{min-width:0}.work-panel[hidden]{display:none}.work-btn{font:inherit;cursor:pointer;background:var(--surface);min-height:36px;color:var(--text);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:4px 12px;font-size:14px;display:inline-flex}.work-btn:hover:not(:disabled){border-color:var(--accent)}.work-btn:disabled{opacity:.45;cursor:not-allowed}.work-btn[aria-pressed=true],.work-btn[aria-checked=true],.work-btn[aria-expanded=true]{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.work-btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);font-weight:600}.work-btn.danger{border-color:var(--wa-bad);color:var(--wa-bad)}.work-btn.icon{min-width:36px;padding:4px;font-size:18px;line-height:1}.draw{gap:8px;display:grid}.draw-toolbar{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.draw-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.draw-confirm{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:inline-flex}.swatch{cursor:pointer;background:var(--swatch);border:3px solid var(--surface);width:32px;height:32px;box-shadow:0 0 0 1px var(--border);border-radius:50%;padding:0}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--text)}.swatch:disabled{opacity:.35;cursor:not-allowed}.draw-surface{border:1px solid var(--border);border-radius:8px;width:100%;min-width:0;overflow:hidden}.draw-canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:var(--wa-paper);cursor:crosshair;background-image:radial-gradient(circle,#d9d5ca 1px,#0000 1.2px);background-size:24px 24px;display:block}.draw-canvas.tool-eraser{cursor:cell}.steps{gap:10px;display:grid}.steps-help{margin:0}.steps-help code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:13px}.steps-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.step{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:6px 8px}.step-row{grid-template-columns:auto minmax(0,1fr) 18px auto;align-items:center;gap:6px;display:grid}.step-num{color:var(--muted);text-align:right;min-width:1.4em;font-size:13px;font-weight:700}.step-input{border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;min-height:38px;color:var(--text);border-radius:6px;padding:6px 8px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:16px}.step-mark{text-align:center;font-weight:700}.step-ok{border-color:color-mix(in srgb, var(--wa-ok) 45%, var(--border))}.step-ok .step-mark{color:var(--wa-ok)}.step-bad{border:2px solid var(--wa-bad);background:var(--wa-bad-bg)}.step-bad .step-mark{color:var(--wa-bad)}.step-bad .step-input{border-color:var(--wa-bad)}.step-preview{min-height:1.6em;padding:4px 0 0 calc(1.4em + 6px);font-size:17px;overflow-x:auto}.step-msg{margin:4px 0 0 calc(1.4em + 6px);font-size:14px}.step-msg.is-bad{color:var(--wa-bad);font-weight:600}.steps-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.steps-status{min-height:1.5em;margin:0;font-size:14px}.steps-status.is-error{color:var(--wa-bad)}.work-notes{resize:vertical;width:100%;min-height:220px;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 12px;line-height:1.5}.tool-tray{border-top:1px dashed var(--border);gap:10px;padding-top:10px;display:grid}.tool-buttons{flex-wrap:wrap;gap:6px;display:flex}.tool-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:10px}.tool-panel[hidden]{display:none}.tool-panel-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tool-panel-head h3{margin:0;font-size:15px}.calc{gap:8px;max-width:360px;display:grid}.calc-display{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:2px;padding:8px 10px;display:grid;position:relative}.calc-input{text-align:right;color:var(--text);background:0 0;border:0;width:100%;min-width:0;padding:2px 0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:20px}.calc-mode{letter-spacing:.06em;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:0 4px;font-size:11px;font-weight:800;position:absolute;top:6px;left:8px}.calc-result{text-align:right;color:var(--muted);overflow-wrap:anywhere;min-height:1.4em;font-size:14px}.calc-result.is-error{color:var(--wa-bad)}.calc-angle{gap:6px;display:flex}.calc-keys{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.calc-key{font:inherit;cursor:pointer;background:var(--surface);min-height:42px;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:0 4px;font-size:17px}.calc-key:hover{border-color:var(--accent)}.calc-key.k-op{background:var(--surface-2);font-weight:700}.calc-key.k-fn{color:var(--accent);font-size:15px}.calc-key.k-eq{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);grid-column:1/-1;font-weight:700}.formula-sheet{gap:8px;margin:0;display:grid}.formula{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:2px;padding:8px 10px;display:grid}.formula dt{color:var(--muted);font-size:13px;font-weight:600}.formula dd{margin:0;font-size:17px;overflow-x:auto}.math-text p{margin:0 0 .75em}.math-text p:last-child{margin-bottom:0}.work-demo{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (min-width:1000px){.work-demo{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.work-demo-json{grid-column:1/-1}}.work-demo-question{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.work-demo h2{margin:0 0 10px;font-size:17px}.work-demo-json pre{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;max-height:360px;margin:0;padding:12px;font-size:12px;overflow:auto}@media (max-width:480px){.work-area{padding:8px}.work-tab{padding:4px 12px}.calc{max-width:none}}
:root{--ok:#0f6b46;--ok-bg:#dff5ea;--bad:#b3261e;--bad-bg:#fde8e8;--warn:#8a5a00;--warn-bg:#fff0d1}@media (prefers-color-scheme:dark){:root{--ok:#7fd8ab;--ok-bg:#123227;--bad:#ff9c92;--bad-bg:#3b1b20;--warn:#f5c565;--warn-bg:#3a2d12}}.site-nav{gap:18px;margin-left:28px;margin-right:auto;display:flex}.site-nav a{color:var(--text);font-size:15px;text-decoration:none}.site-nav a:hover{color:var(--accent)}.user-area{align-items:center;gap:12px;font-size:15px;display:flex}.user-name{color:var(--muted)}@media (max-width:640px){.site-header{flex-wrap:wrap;gap:8px}.site-nav{order:3;gap:14px;width:100%;margin:0;overflow-x:auto}}.btn{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled,.btn-quiet:disabled{opacity:.55;cursor:not-allowed}.btn-small{padding:6px 12px;font-size:14px}.btn-quiet{align-items:center;text-decoration:none;display:inline-flex}.page.narrow{max-width:520px}.page.narrow-wide{max-width:860px}.stack{gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px;overflow-x:auto}.card h2{margin:0 0 12px;font-size:18px}.form-card{gap:14px;display:grid}.form-card h1{margin:0;font-size:26px}.field{gap:4px;display:grid}.field label,.field-row label{font-size:14px;font-weight:600}.field input,.field select,.field textarea,.card textarea,.workflow input,.generate-row input,.row-actions select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:100%;padding:9px 11px}.card textarea{resize:vertical}.field-hint{color:var(--muted);margin:0;font-size:13px}.field-error{color:var(--bad);margin:0;font-size:14px}.field-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.form-error{background:var(--bad-bg);color:var(--bad);border:1px solid color-mix(in srgb, var(--bad) 35%, transparent);border-radius:8px;padding:10px 12px}.form-error ul{margin:4px 0 0;padding-left:18px}.notice{background:var(--warn-bg);color:var(--warn);border-radius:8px;margin:0;padding:10px 12px}.segmented{border:0;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;display:grid}.segmented legend{margin-bottom:6px;font-size:14px;font-weight:600}.segmented label{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:15px;display:flex}.segmented label.is-on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.checks{border:0;flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;display:flex}.checks legend{width:100%;margin-bottom:6px;font-size:14px;font-weight:600}.checks label,.check{align-items:flex-start;gap:8px;font-size:15px;display:flex}.row-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.pill{background:var(--surface-2);border:1px solid var(--border);vertical-align:middle;border-radius:999px;margin-left:6px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.pill-Active,.status-pill-Published{background:var(--ok-bg);color:var(--ok);border-color:#0000}.pill-PendingConsent,.status-pill-InReview,.status-pill-Approved,.pill-warn{background:var(--warn-bg);color:var(--warn);border-color:#0000}.pill-Deactivated,.status-pill-Retired,.status-pill-Suspended{background:var(--st-locked-bg);color:var(--st-locked-fg)}.child-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.child-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.child-head h2{margin:0}.child-head p{margin:2px 0 0}.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0;display:grid}.stats div{background:var(--surface-2);border-radius:8px;padding:10px 12px}.stats dt{color:var(--muted);font-size:13px}.stats dd{margin:0;font-size:22px;font-weight:700}.consent-box{border:1px dashed var(--border);border-radius:8px;gap:10px;margin:12px 0;padding:14px;display:grid}.consent-box h3{margin:0;font-size:16px}.consent-box p{margin:0}.review-badge{background:var(--warn-bg);color:var(--warn);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.skill .review-badge{grid-column:2;justify-self:start;margin:2px 0 0}.scope-badge{border:1px solid var(--border);background:var(--surface-2);color:var(--muted,inherit);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.skill .scope-badge{grid-column:2;justify-self:start;margin:2px 0 0}.practice-btn{margin:4px 0 8px}.practice-page{max-width:1280px}.player{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:20px;display:grid}@media (max-width:960px){.player{grid-template-columns:1fr}}.player .card{margin:0}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px;font-size:13px;font-weight:700}.q-stem{margin:0 0 18px;font-size:22px;font-weight:500;line-height:1.5}.q-stem:focus{outline:none}.q-stem p{margin:0 0 8px}.answer-form{gap:14px;display:grid}.choices{border:0;gap:8px;margin:0;padding:0;display:grid}.choice{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;font-size:17px;display:flex;position:relative}.choice input{opacity:0;pointer-events:none;position:absolute}.choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.choice.is-on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.choice-id{border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.choice.is-on .choice-id{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.inline-answer input{max-width:320px;font-size:20px}.input-with-unit{align-items:center;gap:8px;display:flex}.unit{color:var(--muted)}.math-preview{min-height:28px;font-size:20px}.hints{background:var(--surface-2);border-radius:8px;gap:6px;margin:16px 0 0;padding:12px 12px 12px 32px;display:grid}.result{border:1px solid var(--border);border-radius:10px;gap:10px;margin-top:18px;padding:16px;display:grid}.result.is-correct{background:var(--ok-bg);border-color:color-mix(in srgb, var(--ok) 40%, transparent)}.result.is-wrong{background:var(--bad-bg);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}.result p{margin:0}.result-head{font-size:20px;font-weight:700}.is-correct .result-head{color:var(--ok)}.is-wrong .result-head{color:var(--bad)}.level-change{font-weight:600}.solution{background:var(--surface);border-radius:8px;padding:10px 14px}.solution summary{cursor:pointer;font-weight:600}.solution ol,.item-preview ol{gap:8px;padding-left:20px;display:grid}.reason{color:var(--muted);font-size:14px;margin:2px 0 0!important}.final-answer{font-weight:700;margin-top:8px!important}.table{border-collapse:collapse;width:100%;font-size:15px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.table th{color:var(--muted);font-size:13px;font-weight:600}.table .num{text-align:right;font-variant-numeric:tabular-nums}.plain-list{gap:10px;margin:0 0 12px;padding:0;list-style:none;display:grid}.template-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:6px 12px;padding-bottom:10px;display:grid}.template-row .workflow{grid-column:1/-1}.workflow{gap:6px;display:grid}.workflow input{max-width:420px;padding:6px 10px;font-size:14px}.editor-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:1000px){.editor-layout{grid-template-columns:1fr}}.version-bar{border-bottom:1px solid var(--border);gap:10px;margin-bottom:12px;padding-bottom:12px;display:grid}.code-area{tab-size:2;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.45}.generate-row{border-top:1px dashed var(--border);margin-top:14px;padding-top:14px}.generate-row input{width:80px}.row-actions select{width:auto}.item-preview{border:1px solid var(--border);border-radius:8px;gap:8px;margin:12px 0;padding:14px;display:grid}.item-preview .q-stem{margin:0;font-size:17px}.item-preview p{margin:0}.item-preview details summary{cursor:pointer;font-size:14px;font-weight:600}.item-preview-meta{align-items:center;gap:6px;display:flex}.item-preview-meta .pill{margin-left:0}.preview-choices{margin:0}.preview-choices .is-answer{color:var(--ok);font-weight:700}.learn-page{gap:20px;display:grid}.lesson h2,.examples h2{margin:24px 0 8px;font-size:20px}.lesson-text p{margin:0 0 12px}.vocab{gap:10px;margin:0;display:grid}.vocab dt{font-weight:700}.vocab dd{color:var(--muted);margin:2px 0 0}.vocab dd p{margin:0}.demo{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;gap:12px;margin:0;padding:14px;display:grid}.demo-title{font-weight:700}.demo-stage{text-align:center;align-content:center;gap:10px;min-height:110px;display:grid}.demo-math{font-size:1.4rem;overflow-x:auto}.demo-caption p{margin:0}.summary-list{gap:6px;margin:0;padding-left:20px;display:grid}.summary-list p{margin:0}.example{border:1px solid var(--border);border-radius:10px;margin:10px 0;padding:10px 14px}.example summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:8px;font-weight:600;display:flex}.example .inline-math,.example .inline-math p{margin:0;display:inline}.example-steps{gap:10px;margin:12px 0;padding-left:22px;display:grid}.example-steps p{margin:0}.example .final-answer{margin:8px 0!important}.example .row-actions{margin-top:10px}.placement-page .card{margin-top:0}.plain-bullets{gap:6px;margin:0 0 14px;padding-left:20px;display:grid}.placement-progress{width:100%;height:8px;accent-color:var(--accent,#2f6fed);margin:4px 0 14px}.placement-card p{margin:0 0 10px}.placement-skills{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.placement-skills li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.dashboard{gap:16px;margin-bottom:8px;display:grid}.dashboard h1{margin:0}.dashboard .card{margin-bottom:0}.dashboard h2{margin:0 0 8px;font-size:18px}.dashboard progress,.child-progress progress{width:100%;height:10px;accent-color:var(--accent);margin:6px 0;display:block}.stat-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.stat-big{margin:2px 0 6px;font-size:1.6rem;font-weight:700}.stat p{margin:0 0 4px}.badge-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.badge-list .badge{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:4px 12px;font-size:14px}.course-progress{gap:12px;margin:0;padding:0;list-style:none;display:grid}.course-progress-head{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.dash-settings{margin:0}.goal-form{flex-wrap:wrap;align-items:end;gap:10px 14px;margin-top:8px;display:flex}.goal-form label{gap:4px;font-size:14px;display:grid}.goal-form input{width:100px}.child-progress{margin:12px 0}.rewards{background:var(--ok-bg);color:var(--ok);border-radius:8px;gap:4px;margin:10px 0;padding:10px 12px;display:grid}.rewards p{margin:0;font-weight:600}.rewards.is-animated{animation:.5s ease-out reward-pop}.rewards.is-animated .rewards-level,.rewards.is-animated .rewards-badge{animation:.7s ease-out reward-bounce}.rewards-plain{margin:6px 0}@keyframes reward-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes reward-bounce{0%{opacity:0;transform:translateY(6px)}60%{opacity:1;transform:translateY(-3px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.rewards.is-animated,.rewards.is-animated *{animation:none!important}}.trophies-page{gap:16px;display:grid}.cert-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.cert-card{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.cert-card p{margin:0 0 4px}.cert-title{font-size:1.05rem;font-weight:700}.child-certs{margin:12px 0}.child-certs h3{margin:0 0 8px;font-size:16px}.verify-good{color:var(--ok);margin:0 0 12px;font-size:1.1rem;font-weight:700}.verify-bad{color:var(--danger,#b3261e);margin:0 0 8px;font-size:1.1rem;font-weight:700}.verify-facts{gap:8px;margin:0 0 12px;display:grid}.verify-facts div{grid-template-columns:140px 1fr;gap:12px;display:grid}.verify-facts dt{color:var(--muted)}.verify-facts dd{margin:0;font-weight:600}.graph-input{gap:12px;max-width:640px;display:grid}.graph-figure{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);touch-action:manipulation;width:100%;height:auto;max-height:520px}.graph-controls{flex-wrap:wrap;align-items:flex-start;gap:12px 20px;display:flex}.graph-controls fieldset{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin:0;padding:6px 12px 8px;display:flex}.graph-controls legend{padding:0 4px;font-size:13px;font-weight:600}.graph-controls label{align-items:center;gap:6px;font-size:15px;display:inline-flex}.graph-controls input[type=number]{width:4.5em;padding:4px 6px}.speak-btn{border:1px solid var(--border);background:var(--surface-2);min-width:32px;min-height:28px;color:var(--text);cursor:pointer;vertical-align:middle;border-radius:999px;margin-left:8px;padding:0 8px;font-size:14px;line-height:1}.speak-btn:hover:not(:disabled){border-color:var(--accent)}.speak-btn.is-on{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.speak-btn:disabled{opacity:.55;cursor:not-allowed}.item-audio{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:8px;margin:4px 0 12px;padding:12px;display:grid}.item-audio-buttons{flex-wrap:wrap;gap:8px;display:flex}.item-audio-text{margin:0;font-size:18px}.say-it-list{gap:12px;margin:12px 0;padding:0;list-style:none;display:grid}.say-it{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:8px;padding:12px;display:grid}.say-it-head{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.say-it-text{font-size:20px;font-weight:600}.say-it-actions{flex-wrap:wrap;gap:8px;display:flex}.say-it-status p{margin:0}.word-chips{flex-wrap:wrap;gap:8px;margin:8px 0;padding:0;list-style:none;display:flex}.word-chip{border:2px solid var(--border);background:var(--surface-2);border-radius:999px;padding:4px 10px;font-weight:600}.word-chip.is-correct{border-color:var(--accent)}.word-chip.is-close{border-style:dashed}.word-chip.is-wrong,.word-chip.is-missing{border-style:dotted}.lesson-video{gap:8px;max-width:760px;margin:12px 0 20px;display:grid}.lesson-video-frame{aspect-ratio:16/9;border-radius:var(--radius);background:#000;position:relative;overflow:hidden}.lesson-video-frame video,.lesson-video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.lesson-video-shield{background:0 0;position:absolute;inset:0}.lesson-video-bar{align-items:center;gap:12px;display:flex}.lesson-video-progress{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex:1;height:8px;overflow:hidden}.lesson-video-progress>div{background:var(--accent);height:100%}.lesson-video figcaption{margin:0}.lesson-video-transcript summary{cursor:pointer;font-weight:600}.ai-review{gap:8px;margin-top:12px;display:grid}.ai-review-result{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px}.ai-findings{gap:6px;margin:8px 0 0;padding-left:20px;display:grid}.ai-verdict-ok{border-color:var(--accent)}.ai-verdict-concerns{border-style:dashed}.ai-verdict-wrong{border-style:dotted;border-width:2px}.role-set{border:0;flex-wrap:wrap;gap:4px 14px;margin:0 0 6px;padding:0;display:flex}.role-set legend{margin-bottom:4px;padding:0;font-weight:600}.adhoc-chosen{flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.adhoc-unit{border:0;margin:12px 0 0;padding:0}.adhoc-unit legend{margin-bottom:4px;font-weight:600}.adhoc-nav{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.adhoc-nav .is-answered{border-color:var(--accent,currentColor);font-weight:700}.adhoc-review{padding:0;list-style:none}.adhoc-review .is-wrong{border-left:4px solid #b3261e}.adhoc-review .is-right{border-left:4px solid #1b7f3b}
:root{--glyph-ink:#fff}@media (prefers-color-scheme:dark){:root{--glyph-ink:#0b1226}}body{background:var(--bg);font-family:var(--font)}h1{letter-spacing:-.03em;font-size:clamp(28px,4.6vw,44px);font-weight:850;line-height:1.08}h2{letter-spacing:-.01em}.lede{font-size:17px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}.page{max-width:1180px}.site-header{background:0 0;border-bottom:0;gap:14px;padding:14px 24px}.brand{letter-spacing:-.02em;font-weight:850}.brand-mark{width:34px;height:34px;box-shadow:0 3px 0 var(--accent-deep);border-radius:11px}.site-nav{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;gap:4px;margin:0 auto;padding:5px;display:flex}.site-nav a{color:var(--muted);border-radius:999px;padding:8px 16px;font-size:15px;font-weight:700;text-decoration:none}.site-nav a:hover{color:var(--text)}.site-nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.user-name{font-weight:700}.tabbar{display:none}@media (max-width:640px){.site-header{flex-wrap:nowrap;padding:12px 16px}.site-nav{display:none}.brand{margin-right:auto}.user-name{display:none}.page{padding-bottom:96px}.tabbar{z-index:30;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.tabbar a{text-align:center;color:var(--muted);white-space:nowrap;border-radius:12px;flex:1 0 auto;padding:10px 12px;font-size:13px;font-weight:800;text-decoration:none}.tabbar a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}}.btn{box-shadow:0 4px 0 var(--accent-deep);border:0;border-radius:14px;padding:12px 22px;font-size:16px;font-weight:800;transition:transform 80ms,box-shadow 80ms}.btn:hover:not(:disabled){filter:none;transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--accent-deep);transform:translateY(3px)}.btn:disabled{box-shadow:none;transform:none}.btn-small{box-shadow:0 3px 0 var(--accent-deep);border-radius:12px;padding:8px 14px;font-size:14px}.btn-quiet{border:2px solid var(--border);background:var(--surface);color:var(--text);box-shadow:0 3px 0 var(--border);border-radius:12px;padding:8px 16px;font-size:15px;font-weight:700;transition:transform 80ms,box-shadow 80ms}.btn-quiet:hover:not(:disabled){border-color:var(--accent)}.btn-quiet:active:not(:disabled){box-shadow:0 1px 0 var(--border);transform:translateY(2px)}.btn-quiet:disabled{box-shadow:none}@media (prefers-reduced-motion:reduce){.btn,.btn-quiet,.course-card{transition:none}.btn:active:not(:disabled),.btn-quiet:active:not(:disabled),.course-card:hover{transform:none}}.card,.unit,.detail,.work-area,.say-it,.item-audio,.tool-panel,.ai-review-result{border-radius:var(--radius)}.card,.unit,.detail{box-shadow:var(--shadow)}.card{padding:22px}.field input,.field select,.field textarea,.card textarea,.workflow input,.generate-row input,.row-actions select{border:2px solid var(--border);border-radius:12px;padding:10px 12px}.goal-form input,.goal-form select,.dash-settings select,.preview-box select,.row-actions select{font:inherit;color:var(--text);background:var(--surface);border:2px solid var(--border);border-radius:12px;padding:8px 10px}.field label,.field-row label{font-size:14px}.pill,.tag,.review-badge,.scope-badge{font-weight:800}.table th{letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--border);font-size:12px}.table td{padding:12px 10px}.notice{border-radius:14px;padding:12px 16px}.form-error,.error-panel{border-radius:14px}progress{appearance:none;background:var(--surface-2);border:0;border-radius:99px;width:100%;height:12px;overflow:hidden}progress::-webkit-progress-bar{background:var(--surface-2);border-radius:99px}progress::-webkit-progress-value{background:var(--ok);border-radius:99px}progress::-moz-progress-bar{background:var(--ok);border-radius:99px}.subject h2{color:var(--muted)}.course-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.course-card{box-shadow:var(--shadow);gap:6px;padding:20px;transition:transform .12s,border-color .12s}.course-card:hover{border-color:var(--c,var(--accent));transform:translateY(-2px)}.glyph{background:var(--c,var(--accent));width:48px;height:48px;color:var(--glyph-ink);box-shadow:0 3px 0 color-mix(in srgb, var(--c,var(--accent)) 70%, #000);border-radius:14px;place-items:center;margin-bottom:6px;font-size:20px;font-weight:900;display:grid}.course-code{color:var(--c,var(--accent))}.course-name{letter-spacing:-.01em;font-size:20px;font-weight:800}.dashboard{gap:18px}.next-card{color:#fff;background:linear-gradient(135deg,#2559e8 0%,#3470ff 100%);border:0}.next-card .eyebrow{color:#fff;opacity:.92}.next-card h2{color:#fff;margin:6px 0 14px;font-size:26px}.next-card p{color:#fff}.next-card .btn{color:#1c49c9;background:#fff;box-shadow:0 4px #b9c9f5}.next-card .btn-quiet{color:#fff;box-shadow:none;background:0 0;border-color:#ffffffa6}@media (prefers-color-scheme:dark){.next-card{background:linear-gradient(135deg,#2a3f7e,#33509e)}}.stat-row{gap:16px}.stat-big{letter-spacing:-.02em;font-size:1.8rem;font-weight:850}.badge-list .badge{font-weight:700}.unit{padding:18px}.skill{border:2px solid var(--border);border-radius:14px;padding:12px 14px;font-weight:600}.skill.status-available{border-color:var(--accent)}.skill.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.legend-item{font-weight:600}.detail-title{letter-spacing:-.01em}.q-stem{letter-spacing:-.01em;font-size:clamp(22px,3vw,28px);font-weight:700}.choice{border:2px solid var(--border);background:var(--surface);box-shadow:0 3px 0 var(--border);border-radius:16px;padding:14px 16px;font-size:19px}.choice:hover{border-color:var(--accent)}.choice.is-on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 3px 0 var(--accent)}.choice-id{border-width:2px;border-radius:10px;width:32px;height:32px;font-size:14px;font-weight:850}.choice.is-on .choice-id{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.result{border-radius:18px;padding:18px}.hints,.solution{border-radius:14px}.inline-answer input,.work-btn,.work-tab,.calc-key{border-radius:12px}.say-it,.item-audio{box-shadow:var(--shadow)}.word-chip{font-weight:700}.adhoc-nav .btn,.adhoc-nav button{border-radius:10px;min-width:38px}.adhoc-review .card{padding:18px}.page.home{position:relative}.page.home:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(900px 320px at 90% -10%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%), radial-gradient(760px 300px at 0% 0%, color-mix(in srgb, var(--subj-geometry) 14%, transparent), transparent 70%), radial-gradient(600px 260px at 55% 30%, color-mix(in srgb, var(--subj-language) 8%, transparent), transparent 70%);height:560px;position:absolute;inset:0 0 auto}.subject-strip{scrollbar-width:thin;scrollbar-color:var(--border) transparent;margin:0 -6px 18px;overflow-x:auto}.subject-strip ul{gap:8px;margin:0;padding:4px 6px 8px;list-style:none;display:flex}.subject-strip a{white-space:nowrap;background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;padding:8px 14px 8px 8px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.subject-strip a:hover{border-color:var(--c,var(--accent))}.small-glyph{width:28px;height:28px;box-shadow:none;border-radius:9px;margin:0;font-size:14px}.dash-hero{margin-bottom:2px}.dash-hero .eyebrow{margin:0 0 2px}.next-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.next-course{color:#fff;background:#fff3;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:800}.how-h{color:var(--accent);letter-spacing:-.01em;margin:6px 0 -4px;font-size:24px;font-weight:750}.week-card{padding:0;overflow:hidden}.week-title{color:var(--muted);margin:0;padding:16px 22px 0;font-weight:700}.week-grid{grid-template-columns:repeat(3,1fr);display:grid}.week-item{border-left:1px solid var(--border);grid-template-columns:auto 1fr;align-items:center;gap:2px 14px;padding:18px 22px;display:grid}.week-item:first-child{border-left:0}.week-ico{color:var(--accent);background:var(--accent-soft);border-radius:14px;grid-row:span 2;place-items:center;width:44px;height:44px;font-size:28px;display:grid}.week-label{color:var(--muted);font-size:14px}.week-value{letter-spacing:-.02em;font-size:24px;font-weight:800;line-height:1.2}.week-foot{border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 55%, var(--surface));grid-template-columns:1fr 1fr;gap:20px;padding:16px 22px 20px;display:grid}.level-block p,.streak-block p{margin:0 0 4px}.level-line,.streak-line{font-size:17px}.awards-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.awards-head h2{margin:0}.award-tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.award-tile{text-align:center;background:var(--surface-2);border-radius:16px;justify-items:center;gap:4px;padding:14px 10px;display:grid}.award-art{font-size:40px;line-height:1.1}.progress-tiles{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.progress-tile{border:2px solid var(--border);color:var(--text);background:var(--surface);border-radius:16px;align-items:center;gap:14px;padding:12px 14px;text-decoration:none;display:flex}.progress-tile:hover{border-color:var(--c,var(--accent))}.progress-tile .glyph{flex:none;margin:0}.progress-body{flex:1;gap:4px;min-width:0;display:grid}.progress-body progress{height:10px}.all-h{margin:18px 0 2px;font-size:22px}.course-progress-line{gap:4px;margin-top:6px;display:grid}.course-progress-line progress{height:10px}.landing{grid-template-columns:1.2fr 1fr;align-items:center;gap:24px;margin:8px 0 28px;display:grid}.landing h1{font-size:clamp(32px,5.2vw,52px)}.landing h1 em{color:var(--accent);font-style:italic}.landing-cards{gap:14px;display:grid}.landing-card{color:var(--text);justify-items:start;gap:4px;text-decoration:none;display:grid}.landing-card .glyph{margin-bottom:4px}.landing-card:hover{border-color:var(--accent)}@media (max-width:760px){.week-grid{grid-template-columns:1fr}.week-item{border-left:0;border-top:1px solid var(--border);padding:14px 18px}.week-item:first-child{border-top:0}.week-foot,.landing{grid-template-columns:1fr}}
