@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/bricolage-grotesque-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/bricolage-grotesque-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/source-sans-3-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/source-sans-3-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/source-sans-3-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f5f7fa;--surface: #ffffff;--paper: #fbfcfe;--grid: #dfe6f0;--ink: #18212f;--muted: #5a6678;--line: #d9e0ea;--accent: #1f5fbf;--accent-ink: #ffffff;--accent-soft: #e3ecfa;--support: #d6265b;--support-soft: #fde8ee;--pen: #c2410c;--math: #1f5fbf;--phys: #0e7490;--chem: #be185d;--cj: #7c3aed;--good: #1d7a4a;--good-soft: #e2f3ea;--warn: #9a6200;--warn-soft: #fbf0d9;--bad: #a63a3a;--bad-soft: #f8e4e4;--logic: #0e7490;--hist: #8a4b2a;--g0: #d1343f;--g1: #2563c9;--g2: #1f8a4c;--g3: #e0a400;--g4: #8b4fd8;--g5: #6b7280;--display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--body: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #10151d;--surface: #171e29;--paper: #131a24;--grid: #253042;--ink: #e6ebf2;--muted: #9aa6b8;--line: #2a3443;--accent: #7aa8ef;--accent-ink: #0d1520;--accent-soft: #1c2a40;--support: #ff7aa2;--support-soft: #3a1d29;--pen: #fb923c;--math: #7aa8ef;--phys: #5ccfe6;--chem: #f48fb8;--cj: #b69cf7;--good: #6fcf9b;--good-soft: #16302a;--warn: #e6b45c;--warn-soft: #33291a;--bad: #ec8f8f;--bad-soft: #3a2023;--logic: #5cc6db;--hist: #e0a27c;--g0: #f0727a;--g1: #74a6f2;--g2: #5ccf8c;--g3: #f2c94c;--g4: #b794f4;--g5: #a3abb8;color-scheme:dark}}:root[data-theme=dark]{--bg: #10151d;--surface: #171e29;--paper: #131a24;--grid: #253042;--ink: #e6ebf2;--muted: #9aa6b8;--line: #2a3443;--accent: #7aa8ef;--accent-ink: #0d1520;--accent-soft: #1c2a40;--support: #ff7aa2;--support-soft: #3a1d29;--pen: #fb923c;--math: #7aa8ef;--phys: #5ccfe6;--chem: #f48fb8;--cj: #b69cf7;--good: #6fcf9b;--good-soft: #16302a;--warn: #e6b45c;--warn-soft: #33291a;--bad: #ec8f8f;--bad-soft: #3a2023;--logic: #5cc6db;--hist: #e0a27c;--g0: #f0727a;--g1: #74a6f2;--g2: #5ccf8c;--g3: #f2c94c;--g4: #b794f4;--g5: #a3abb8;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.5}h1,h2,h3{font-family:var(--display);line-height:1.15;margin:0;text-wrap:balance}h1{font-size:clamp(26px,5vw,36px)}h2{font-size:22px}h3{font-size:18px}p{margin:0}button,input,select{font:inherit;color:inherit}button{font-size:16px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=text],input[type=password],input[type=search],input[type=date],select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);min-width:0;font-size:17px}input.wide{width:100%}input.code{width:9ch;letter-spacing:.2em;text-transform:uppercase;text-align:center;font-weight:600}.signin input.code{flex:1 1 13em;min-width:0;max-width:16em}#root>main{max-width:820px;margin:0 auto;padding-block:20px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:24px}.demo-banner{background:var(--warn-soft);color:var(--warn);text-align:center;font-size:13px;padding:4px 16px}.loading{color:var(--muted)}.loading .unreachable{color:var(--ink);max-width:460px;margin:48px auto 0}.loading .unreachable button{justify-self:start}.outbox-note{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:20;margin:0;max-width:calc(100vw - 32px);width:max-content;background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:6px 14px;font-size:14px;text-align:center;pointer-events:none}.muted{color:var(--muted)}.small{font-size:14px}.task-source{margin:4px 0 0;font-size:12px}.hint{color:var(--muted);font-size:14px}.error{color:var(--bad)}.eyebrow{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.stack{display:grid;gap:10px}.num{font-variant-numeric:tabular-nums;text-align:right}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:grid;gap:12px}#root>main>section:not([class]){display:grid;gap:12px;align-content:start}#root>main>section:not([class])>.section-head{margin-bottom:0}.signin{max-width:460px!important;padding-top:48px!important}.brand{display:grid;gap:8px}.brand h1{font-size:44px;color:var(--accent)}.social{width:100%;text-align:left;padding:11px 14px;font-weight:600;display:flex;align-items:center;gap:10px}.social svg{width:20px;height:20px;flex:none}.social:disabled svg{opacity:.5}.social .soon{font-weight:400;opacity:.8}.signin.landing{max-width:1120px!important;padding-top:20px!important}.landing-hero{display:grid;gap:20px}.landing-login{display:grid;gap:16px;align-content:start;min-width:0}.landing-tagline{font-size:18px;color:var(--muted);max-width:34em}.landing-chips{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}.landing-chips li{font-size:14px;font-weight:600;color:var(--good);background:var(--good-soft);border-radius:999px;padding:3px 12px 3px 10px}.landing-chips li:before{content:"✓";margin-right:6px}.landing-preview{display:none}.landing-features{display:grid;gap:16px}.feature-grid{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.feature{--tone: var(--accent);display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.feature h3{font-size:17px;margin-bottom:2px}.feature p{color:var(--muted);font-size:15px;line-height:1.45}.feature-icon{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:color-mix(in srgb,var(--tone) 85%,var(--ink));background:color-mix(in srgb,var(--tone) 15%,transparent)}.feature-icon .icon{width:22px;height:22px}.landing-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;background:var(--accent-soft);border-radius:12px;padding:14px 16px}.landing-cta p{font-weight:600}@media(min-width:900px){.signin.landing{padding-top:32px!important;gap:40px}.landing-hero{grid-template-columns:minmax(0,1fr) minmax(360px,420px);gap:48px;align-items:center}.landing .brand{gap:14px}.landing .brand h1{font-size:60px}.landing-tagline{font-size:20px}.landing-preview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;margin-top:18px;max-width:520px}.feature{flex-direction:column;gap:10px;padding:18px}.feature-icon{width:44px;height:44px}}.preview-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 8%,transparent);display:grid;gap:10px;align-content:space-between}.preview-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.preview-chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-weight:600;white-space:nowrap}.preview-streak{color:var(--muted);white-space:nowrap}.preview-task{font-family:var(--display);font-size:26px;font-weight:700;white-space:nowrap}.preview-answer{display:inline-block;min-width:2.4em;text-align:center;border:2px solid var(--good);border-radius:8px;padding:0 6px;color:var(--good);background:var(--good-soft)}.preview-ok{color:var(--good)}.preview-progress{height:8px;border-radius:999px;background:var(--grid);overflow:hidden}.preview-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.preview-chart{grid-template-columns:repeat(7,1fr);grid-template-rows:1fr;align-items:end;gap:6px;height:150px}.preview-chart span{border-radius:4px 4px 2px 2px;background:color-mix(in srgb,var(--good) 75%,transparent)}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.topbar .logo{font-family:var(--display);font-weight:700;font-size:22px;color:var(--accent);margin-right:auto}.topbar button.logo{background:none;border:0;padding:0;min-height:0;line-height:inherit;cursor:pointer;text-align:left}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.kids{display:grid;gap:10px}.kid{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.kid.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.kid-main{display:flex;gap:12px;align-items:center;border:0;background:none;text-align:left;padding:4px;min-width:0}.kid-main span{display:grid}.kid-actions{display:flex;flex-wrap:wrap;gap:6px}.form{display:grid;gap:14px}.form label{display:grid;gap:4px;font-weight:600;font-size:15px}.form fieldset{border:0;padding:0;margin:0}.form legend{font-weight:600;font-size:15px;margin-bottom:4px}.avatars{display:flex;flex-wrap:wrap;gap:6px}.avatar-pick{display:inline-flex;padding:4px;line-height:0}.avatar-pick.on{border-color:var(--accent);background:var(--accent-soft)}.pair-body{display:flex;flex-wrap:wrap;gap:18px;align-items:center}.pair-body img{border-radius:8px;background:#fff;padding:6px}.pair-body .stack{flex:1;min-width:220px}.pair-code{font-family:var(--display);font-size:34px;letter-spacing:.18em;font-weight:700}#pair-link{flex:1;min-width:0;font-size:14px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:4px;align-content:start}.tile .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tile .value{font-family:var(--display);font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.progress{height:8px;background:var(--accent-soft);border-radius:99px;overflow:hidden;flex:1}.progress>div{height:100%;background:var(--accent);border-radius:99px;transition:width .3s}.analytics{display:grid;gap:16px}.callout{background:var(--warn-soft);border-radius:10px;padding:12px 14px}.chart{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;overflow-x:auto}.chart svg{width:100%;min-width:0;height:auto;display:block}.chart .bar-hit{fill:transparent;cursor:pointer;outline:none}.chart .bar-hit.sel,.chart .bar-hit:focus-visible{fill:var(--accent);fill-opacity:.12;stroke:var(--accent);stroke-width:1.5}.chart-day{margin:6px 0 0;min-height:1.4em}.gridline{stroke:var(--grid);stroke-width:1}.axis-label{fill:var(--muted);font-size:11px;font-family:var(--body)}.bar-seg.correct,.swatch.correct{fill:var(--good);background:var(--good)}.bar-seg.partial,.swatch.partial{fill:var(--warn);background:var(--warn)}.bar-seg.wrong,.swatch.wrong{fill:var(--bad);background:var(--bad)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:6px}.legend>span{display:inline-flex;align-items:center;gap:6px}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.cell-bar{display:flex;align-items:center;gap:8px;min-width:110px}.bar{flex:1;height:8px;background:var(--accent-soft);border-radius:99px;overflow:hidden}.bar>div{height:100%;background:var(--good);border-radius:99px}.bar>div.weak{background:var(--bad)}.bars{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.bars li{display:grid;grid-template-columns:minmax(0,1fr) 2fr 5.5ch;gap:10px;align-items:center}.bars .num{white-space:nowrap}.recent{list-style:none;padding:0;margin:0;display:grid;gap:6px}.recent li{display:grid;grid-template-columns:10px minmax(0,1fr) auto 4ch;gap:10px;align-items:center;font-size:15px}.dot{width:10px;height:10px;border-radius:50%}.dot.good{background:var(--good)}.dot.part{background:var(--warn)}.dot.bad{background:var(--bad)}.child-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.child-head>div{flex:1 1 140px;min-width:0}.start-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}.start-btn{padding:26px 14px;font-family:var(--display);font-size:22px;font-weight:700;border-radius:14px;border-width:2px}.start-btn.math{border-color:var(--math);color:var(--math)}.start-btn.cj,.start-btn.sj,.start-btn.pj,.start-btn.aj{border-color:var(--cj);color:var(--cj)}.start-btn.prv,.start-btn.pri,.start-btn.pr{border-color:var(--good);color:var(--good)}.start-btn.vl{border-color:var(--warn);color:var(--warn)}.start-btn.dj{border-color:var(--hist);color:var(--hist)}.start-btn.z{border-color:var(--pen);color:var(--pen)}.start-btn.fy{border-color:var(--phys);color:var(--phys)}.start-btn.ch{border-color:var(--chem);color:var(--chem)}.start-btn.mix{border-color:var(--ink)}.start-btn.log{border-color:var(--logic);color:var(--logic)}.practice-head{display:flex;align-items:center;gap:12px}.practice-head .count{font-variant-numeric:tabular-nums;color:var(--muted)}.summary{text-align:center;justify-items:center;padding:32px}.summary .big{font-family:var(--display);font-size:40px;font-weight:700}.task{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:grid;gap:16px}.prompt{font-size:19px}.passage{margin:0;background:var(--paper);border-left:3px solid var(--line);padding:10px 14px;border-radius:4px}.frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;line-height:1.1;margin:0 3px;font-variant-numeric:tabular-nums}.frac>span:first-child{border-bottom:1.5px solid currentColor;padding:0 3px}.figure{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow-x:auto;padding:6px}.figure svg{display:block;max-width:100%;height:auto;margin:0 auto}.figure svg.clickable{cursor:crosshair;touch-action:manipulation}.figure .gl{stroke:var(--grid);stroke-width:1}.figure .axis{stroke:var(--muted);stroke-width:1.2}.figure .shape{fill:none;stroke:var(--ink);stroke-width:2}.figure .shape.thin{stroke-width:1.2}.figure .tile{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.2}.figure .dot{fill:var(--ink)}.figure .tap{fill:var(--surface);stroke:var(--ink);stroke-width:2;cursor:pointer}.figure .tap.sel{fill:var(--accent);stroke:var(--accent)}.figure .mark{fill:var(--pen)}.figure .solution{fill:none;stroke:var(--good);stroke-width:2;stroke-dasharray:4 3}.figure .guide{stroke:var(--warn);stroke-width:2;stroke-dasharray:6 4;pointer-events:none}.figure text{fill:var(--ink);font-family:var(--body);font-size:14px}.figure text.small{fill:var(--muted);font-size:11px}.options{display:grid;gap:4px}.options.pics{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.options.pics .option{border-color:var(--line);flex-wrap:wrap;justify-content:center}.review-pics{margin:8px 0}.figure .balances{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px}.figure .balances svg{margin:0}.figure.small{padding:2px;border:none;background:transparent}.figure.small svg{max-height:120px;width:auto;max-width:100%}.figure .cell{fill:var(--surface);stroke:var(--line);stroke-width:1}.figure .q{fill:var(--muted);font-family:var(--display);font-weight:700}.figure text.big{font-size:16px;font-weight:700}.figure .stand{fill:var(--line);stroke:var(--ink);stroke-width:1.5}.figure .cellbg{fill:var(--surface)}.figure .gl-cell{fill:none;stroke:var(--grid);stroke-width:1}.figure .frame{fill:none;stroke:var(--ink);stroke-width:1.5}.figure .sheet{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}.figure .hole{fill:var(--ink)}.figure .mirror{stroke:var(--pen);stroke-width:2;stroke-dasharray:6 4}.figure .domino,.figure .die{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}.figure .pip{fill:var(--ink)}.figure .clock{fill:var(--surface);stroke:var(--ink);stroke-width:2}.figure .tick{stroke:var(--muted);stroke-width:1.5}.figure .hand{stroke:var(--ink);stroke-width:2;stroke-linecap:round}.figure .hand.hour{stroke-width:4}.figure .set{fill-opacity:.12;stroke-width:2}.figure .set.a{fill:var(--g1);stroke:var(--g1)}.figure .set.b{fill:var(--g0);stroke:var(--g0)}.figure .street{stroke:var(--muted);stroke-width:3;stroke-linecap:round}.figure .via{fill:var(--g3);stroke:var(--ink);stroke-width:1.5}.figure .face{fill:var(--surface);stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round}.figure .face.front{fill:var(--paper)}.figure .face.side{fill:var(--grid)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.option{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;border:1px solid transparent;cursor:pointer}.option:hover{background:var(--bg)}.option.on{border-color:var(--accent);background:var(--accent-soft)}.yesno{display:grid;grid-template-columns:1fr auto auto;gap:8px 14px;align-items:center}.yesno .head{font-size:12px;color:var(--muted);text-align:center}.yesno input{width:20px;height:20px}.match{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.match label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}.match select{max-width:100%}.fill{display:grid;gap:10px}.fill select{margin:0 4px;padding:4px 6px}.order{list-style:none;padding:0;margin:0;display:grid;gap:6px}.order li{display:flex;gap:8px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.order li span{flex:1;min-width:0}.order li button{padding:2px 10px}.mark-ok,.mark-bad{opacity:1}select.mark-ok,input.mark-ok{border-color:var(--good);box-shadow:0 0 0 1px var(--good)}select.mark-bad,input.mark-bad{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.option.mark-ok,.order li.mark-ok{border-color:var(--good);background:var(--good-soft)}.option.mark-bad,.order li.mark-bad{border-color:var(--bad);background:var(--bad-soft)}.yesno span.mark-ok{color:var(--good)}.yesno span.mark-bad{color:var(--bad)}.fix{display:inline-block;margin:0 4px;padding:1px 8px;border-radius:6px;background:var(--good-soft);color:var(--good);font-weight:600}.feedback{border-radius:10px;padding:12px 14px;font-size:16px}.feedback.good{background:var(--good-soft)}.feedback.part{background:var(--warn-soft)}.feedback.bad{background:var(--bad-soft)}.feedback .explain{color:var(--muted);font-size:15px;margin-top:4px}.actions{display:flex;justify-content:flex-end}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:8px}.segmented button{border:0;border-radius:0;background:transparent;padding:8px 14px}.segmented button+button{border-left:1px solid var(--line)}.segmented button.on{background:var(--accent);color:var(--accent-ink)}.segmented button:disabled{opacity:.4;cursor:not-allowed}.plans{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:6px}.plans li{display:flex;gap:10px;align-items:center;justify-content:space-between}.members{list-style:none;padding:0;margin:0;display:grid;gap:8px}.members li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between}.answer{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.answer>:not(input):not(.keys){flex-basis:100%}.keys{display:inline-flex;gap:6px}.keys button{min-width:44px;min-height:44px;font-size:20px;padding:0 10px}.topic-chips{display:flex;flex-wrap:wrap;gap:6px}.topic-chips label{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-weight:400}.topic-chips label.on{border-color:var(--accent);background:var(--accent-soft)}.topic-chips input{margin:0}.topic-group+.topic-group{margin-top:8px}.task-dots{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}.task-dots button{width:34px;height:34px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface, transparent);font-variant-numeric:tabular-nums;font-size:14px}.task-dots button.current{border:2px solid var(--accent);font-weight:700}.task-dots button.good{background:var(--good-soft);border-color:var(--good);color:var(--good)}.task-dots button.part{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.task-dots button.bad{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.practice .skip{justify-content:flex-end;margin-top:8px}.callout.resume{margin-bottom:14px}.paused-tests>h2{margin:0 0 8px;font-size:17px}.paused-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.paused-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding-top:10px;border-top:1px solid var(--line)}.paused-row:first-child{padding-top:0;border-top:0}.paused-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 220px}.paused-progress{display:flex;align-items:center;gap:8px;max-width:260px}.paused-tests>p{margin:10px 0 0}.callout.retry{margin-bottom:14px;background:var(--bad-soft);display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between}.callout.retry p{margin:0;display:grid;gap:2px}select.lang{font-size:14px;padding:4px 8px}.family-switch{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%}select.family-select{font-size:14px;padding:4px 8px;max-width:min(260px,70vw);text-overflow:ellipsis}.family-name b{font-size:17px}.signin .lang-row{display:flex;justify-content:flex-end}.child-head>.head-actions{flex:none;margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.head-actions .row{justify-content:flex-end}.start-picked{width:100%;margin:4px 0 12px}.start>h2{margin-bottom:10px}.friends{display:grid;gap:10px}.friends h2,.friends h3,.friends p{margin:0}.board,.challenges{list-style:none;padding:0;margin:0;display:grid;gap:8px}.board li,.challenges li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:flex;gap:8px;align-items:center}.board li.me{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.board .rank{font-family:var(--display);font-weight:700;width:2ch}.board .who,.challenges .who{flex:1;min-width:0;display:grid}.board .num{font-weight:700;white-space:nowrap}.outcome{font-weight:700}.outcome.win{color:var(--good)}.outcome.lose{color:var(--muted)}.tests{list-style:none;padding:0;margin:0;display:grid;gap:6px}.tests>li{border:1px solid var(--line);border-radius:10px;background:var(--surface)}.tests>li.on{border-color:var(--accent)}.test-row{width:100%;display:grid;grid-template-columns:10px minmax(0,1fr) auto 5ch;gap:10px;align-items:center;text-align:left;border:0;background:none;padding:10px 12px}.test-when{display:grid;min-width:0}.test-times{display:grid;justify-items:end;text-align:right;line-height:1.3}.test-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.test-tag{font-size:12px;line-height:1.4;padding:0 6px;border-radius:6px;border:1px solid var(--line);color:var(--muted)}.test-tag.discarded{border-color:var(--bad);color:var(--bad)}.tests>li.discarded .test-row>:not(.test-when){opacity:.55}.tests>li.archived{border-style:dashed}.test-tools{margin-bottom:8px}.discarded-note{border-left:3px solid var(--bad);padding-left:8px;margin:0}.test-detail{display:grid;gap:12px;padding:0 12px 12px}.test-facts{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0}.test-facts dt,.review-answers dt{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.test-facts dd,.review-answers dd{margin:0}label.check{display:inline-flex;gap:6px;align-items:center;font-size:15px}.review{list-style:none;padding:0;margin:0;display:grid;gap:10px}.review-task{border-left:4px solid var(--line);background:var(--paper);border-radius:8px;padding:10px 12px;display:grid;gap:8px}.review-task.good{border-left-color:var(--good)}.review-task.part{border-left-color:var(--warn)}.review-task.bad{border-left-color:var(--bad)}.review-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:baseline}.review-prompt{overflow-wrap:anywhere}.review-head .score{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.score.good,.review-answers dd.good{color:var(--good)}.score.part,.review-answers dd.part{color:var(--warn)}.score.bad,.review-answers dd.bad{color:var(--bad)}.review-answers{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px 16px;margin:0;overflow-wrap:anywhere}.review-task details summary{cursor:pointer;color:var(--muted);font-size:14px}button.danger{color:var(--bad)}.badges{display:grid;gap:8px}.badges h2,.badges h3,.badges p{margin:0}.badge-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.badge{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 8px}.badge.earned{border-color:var(--good);background:var(--good-soft)}.badge.locked{border-style:dashed;border-radius:12px;flex:1 1 140px}.badge.locked .badge-emoji{filter:grayscale(1);opacity:.45}.badge-emoji{font-size:22px;line-height:1;flex:none}.badge-text{display:grid;min-width:0;flex:1}.badge-name{font-weight:600;overflow-wrap:anywhere}.badge-bar{display:block;height:4px;border-radius:2px;background:var(--line);overflow:hidden;margin-top:2px}.badge-bar>span{display:block;height:100%;background:var(--accent)}.badges.compact .badge{padding:3px 10px 3px 6px;font-size:14px}.badges.compact .badge-emoji{font-size:18px}.badge-toast{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:20;width:min(420px,calc(100vw - 32px));display:flex;gap:12px;align-items:center;background:var(--surface);border:2px solid var(--good);border-radius:16px;padding:12px 14px;box-shadow:0 10px 30px #0000002e;animation:badge-pop .45s cubic-bezier(.2,1.4,.4,1) both}.badge-toast-emoji{font-size:40px;line-height:1;animation:badge-wiggle .9s ease-in-out .3s 2}.badge-toast-text{flex:1;min-width:0;display:grid}@keyframes badge-pop{0%{opacity:0;transform:translate(-50%,24px) scale(.9)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes badge-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg) scale(1.1)}75%{transform:rotate(12deg) scale(1.1)}}@media(prefers-reduced-motion:reduce){.badge-toast,.badge-toast-emoji{animation:none}}.avatar-button{padding:4px;border-radius:22px;border:2px dashed transparent;background:transparent;line-height:0}.avatar-button:hover,.avatar-button[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.wardrobe-open{margin-top:4px;padding:4px 12px;border-radius:999px}.rank-card{display:flex;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.rank-emoji{font-size:40px;line-height:1;flex:none}.rank-text{flex:1;min-width:0;display:grid;gap:2px}.rank-text .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.rank-name{font-family:var(--display);font-size:24px;line-height:1.15}.rank-tagline{font-style:italic}.hint-box{background:var(--warn-soft);border-radius:10px;padding:8px 12px;margin:8px 0}.actions .hint-btn{margin-right:auto}.actions{gap:8px;flex-wrap:wrap}.hint-mark{margin-left:6px;font-size:.95em}.option.struck{opacity:.45;text-decoration:line-through;cursor:not-allowed}.figure .struck{opacity:.25}.figure .paper,.figure .shape.paper{fill:var(--paper)}.figure .shape.thick{stroke-width:4}.figure .liquid{fill:var(--accent-soft);stroke:none}.figure .liquid-dot{fill:var(--accent)}.figure .liquid-stream{fill:none;stroke:var(--accent);stroke-width:4;opacity:.6}.figure .stone{fill:var(--muted);stroke:var(--ink);stroke-width:1.2}.figure .ray{fill:none;stroke:var(--pen);stroke-width:2.5}.figure .ray-head{fill:var(--pen)}.figure .guide-static{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:6 4}.figure .glass{fill:var(--surface);stroke:var(--ink);stroke-width:2}.figure .hot{fill:#d43a2f}.figure .flame{fill:#f59e0b;stroke:#d43a2f;stroke-width:1.5}.figure .steam{fill:none;stroke:var(--muted);stroke-width:2}.figure .north{fill:#d43a2f}.figure .south{fill:#2f6fd6}.figure .north-stroke{fill:none;stroke:#d43a2f;stroke-width:16}.figure .south-stroke{fill:none;stroke:#2f6fd6;stroke-width:16}.figure text.pole{fill:#fff;font-weight:700;font-size:16px}.figure .electron{fill:var(--accent)}.figure .nucleus{fill:var(--warn-soft);stroke:var(--warn);stroke-width:2}.figure .cell{fill:var(--surface);stroke:var(--line);stroke-width:1.2}.figure .hl{fill:var(--warn-soft);stroke:var(--warn);stroke-width:3}.figure text.sym{font-weight:700;font-size:16px}.figure text.seg{fill:var(--pen);font-weight:700}.figure .ghs-frame{fill:#fff;stroke:#d40000;stroke-width:9}.figure .ghs-ink{fill:#111}.figure .paper-filter{fill:#f3efe2;stroke:var(--muted);stroke-width:1}.figure .muddy{fill:#a07850;opacity:.7}.figure .sediment{fill:#a07850}.figure .sand{fill:#c9a86a}.figure .filing{stroke:var(--ink);stroke-width:2.2}.figure .spot1{fill:#2f6fd6}.figure .spot2{fill:#d43a2f}.figure .spot3{fill:#e0a400}.order li.hinted{border-style:dashed;border-color:var(--warn)}.joke{font-weight:600;margin-bottom:4px}.reward-pick,.reward-got{display:grid;gap:8px;justify-items:center;text-align:center;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.reward-pick h3,.reward-pick p{margin:0}.reward-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;width:100%}.reward-option{display:grid;justify-items:center;gap:2px;padding:10px 8px;border-radius:12px}.reward-emoji{font-size:34px;line-height:1.1}.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:8px 0;font-size:14px}.legal-links a{color:var(--muted)}.legal-links a:hover{color:var(--accent)}.app-version{text-align:center;margin:0 0 8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}label.check.wrap{align-items:flex-start;line-height:1.4}label.check.wrap input{margin-top:3px;flex:none}label.check a{color:var(--accent)}button.danger{color:var(--bad);border-color:var(--bad);background:transparent}button.danger.solid{background:var(--bad);border-color:var(--bad);color:var(--surface);font-weight:600}.panel.confirm{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.panel.confirm h3{color:var(--bad)}button.report-open{justify-self:start;background:transparent;border:0;padding:2px 0;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:3px}.report-status{font-size:14px;color:var(--warn)}.report-status.fixed{color:var(--good)}.report-status.rejected,.report-status.duplicate{color:var(--muted)}.report-form{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:10px}.report-form fieldset{border:0;padding:0;margin:0;display:grid;gap:4px}.report-form legend{font-weight:600;font-size:15px;margin-bottom:4px}.report-form .field,.admin-report .field{display:grid;gap:4px;font-size:15px}textarea{font:inherit;color:inherit;font-size:16px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);width:100%;resize:vertical}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.admin-counts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.admin-counts button{font-size:14px;padding:4px 10px;font-family:ui-monospace,monospace}.admin-counts button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.admin-reports{list-style:none;margin:0;padding:0;display:grid;gap:12px}.admin-report{display:grid;gap:8px}.admin-report .meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:var(--muted)}.admin-report code,.admin-table code{font-size:13px;overflow-wrap:anywhere}.admin-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.admin-tiles div{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid}.admin-tiles b{font-family:var(--display);font-size:26px;font-variant-numeric:tabular-nums}.admin-table{width:100%;border-collapse:collapse;font-size:15px}.admin-table td{padding:4px 6px;border-bottom:1px solid var(--line)}.admin-table td.num{width:1%;white-space:nowrap}.admin-db-warning{background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:10px 12px;margin:0}.admin-db-warning p{margin:0}.admin-db-warning ol{margin:6px 0 0;padding-left:22px}.admin-users-filters{flex-wrap:wrap}.admin-users-filters input[type=search]{min-width:0;flex:1 1 200px}.admin-users-scroll{overflow-x:auto;max-width:100%}.admin-users th{text-align:left;font-size:13px;font-weight:600;color:var(--muted);padding:4px 6px;border-bottom:1px solid var(--line);white-space:nowrap}.admin-users td{vertical-align:top}.admin-users td:first-child{overflow-wrap:anywhere}.admin-user-row{cursor:pointer}.admin-user-row:hover,.admin-user-row[aria-expanded=true]{background:var(--accent-soft)}.admin-user-toggle{all:unset;cursor:pointer;overflow-wrap:anywhere}.admin-user-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.admin-user-roles{display:flex;flex-wrap:wrap;gap:4px}.admin-role{font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);background:var(--paper);white-space:nowrap}.admin-role.admin{border-color:var(--accent);color:var(--accent);font-weight:600}.admin-user-details td{background:var(--paper)}.admin-user-more .meta{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted)}.admin-user-families{margin:0;padding-left:18px;display:grid;gap:6px}.admin-users .narrow-only,.admin-user-more .narrow-only{display:none}@media(max-width:640px){.admin-users .wide-only{display:none}.admin-user-more .narrow-only{display:inline}}.teacher-form{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:900px){.teacher-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.teacher-form input[type=text]{width:100%}.teacher-form .field,.teacher .field{display:grid;gap:4px;font-size:15px}.teacher-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.teacher-options{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.teacher-options .row{flex-wrap:nowrap}.teacher .grow,.admin .grow{flex:1;min-width:0}.mono{font-family:ui-monospace,monospace;font-size:14px}.teacher-problems{margin:0;padding-left:20px}.teacher-status{font-weight:600}.teacher-status.approved,.teacher-status.done{color:var(--good)}.teacher-status.rejected,.teacher-status.revoked{color:var(--bad)}.teacher-status.pending,.teacher-status.changes,.teacher-status.open{color:var(--warn)}.teacher-samples{margin:6px 0 0;padding-left:20px;display:grid;gap:4px}.teacher-samples button{border:0;background:none;padding:0;min-height:0;text-align:left;color:inherit;font:inherit;font-size:14px;cursor:pointer;text-decoration:underline dotted}.teacher-votes{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}.teacher-preview .task{margin:0}.teacher-areas{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.area-checks{display:grid;gap:4px 12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.verdict-ok{color:var(--good)}.verdict-problem{color:var(--bad)}.area-progress{display:grid;gap:6px;font-size:15px}.area-progress progress{width:100%;height:10px;accent-color:var(--good)}.area-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.area-item{border:1px solid var(--line);border-radius:10px;background:var(--paper);overflow:hidden}.area-item.open{border-color:var(--accent)}.area-row{display:grid;gap:2px;width:100%;text-align:left;border:0;border-radius:0;background:transparent;padding:8px 12px;cursor:pointer}.area-row:hover{background:var(--accent-soft)}.area-title{font-weight:600;overflow-wrap:anywhere}.area-row .meta{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px;color:var(--muted)}.area-row code{font-size:12px;overflow-wrap:anywhere}.area-inspector{padding:0 12px 12px}.area-inspector .task{margin:0}.area-answer{align-content:start}.area-form{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0}.area-form .field{display:grid;gap:4px}.area-form textarea,.area-reports textarea{width:100%}.verdict-choice{font-weight:600}.area-reports{margin-top:4px}.area-reports>*+*{margin-top:10px}.area-reports summary{cursor:pointer;display:flex;align-items:center;gap:8px}.area-review input[type=search]{min-width:0;flex:1 1 180px}.area-row.static{cursor:default}.area-row.static:hover{background:transparent}.area-report-review summary{cursor:pointer}.teacher-role{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.queue-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.queue-items button{min-width:40px;min-height:40px;padding:0 8px;border-radius:999px;font-weight:600}.queue-items button.done{background:var(--good-soft);color:var(--good);border-color:var(--good)}.queue-items button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}.queue-actions{justify-content:center}button.big{font-size:19px;padding:12px 28px;min-width:min(240px,100%)}.reviewer-editor{margin:0;min-width:0}.reviewer-editor .meta{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--muted)}.reviewer-editor select{min-width:0;max-width:100%}input.narrow{width:6em}.cov-chip button.link{background:transparent;border:0;padding:0 2px;min-height:0;color:inherit;cursor:pointer}.cov-chips{display:inline-flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}.cov-chip{display:inline-flex;align-items:center;gap:2px;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;line-height:1.6;border:1px solid var(--line);background:var(--surface);color:var(--muted);margin:0;width:fit-content}.cov-chip.good{background:var(--good-soft);color:var(--good);border-color:transparent}.cov-chip.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.cov-chip.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.cov-chip.off{opacity:.55}.cov-chip.missing{text-decoration:line-through}.subjects-overview{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.subjects-card{display:grid;gap:6px;width:100%;height:100%;text-align:left;align-content:start;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:inherit;padding:12px;cursor:pointer}.subjects-card:hover{border-color:var(--accent)}.subjects-card .meta,.subjects-summary{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px;color:var(--muted)}.subjects-summary b{color:var(--ink);font-size:16px}.subjects-grades{display:flex;flex-wrap:wrap;gap:6px}.subjects-grades button{min-height:36px;padding:0 10px}.subjects-grades button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.subjects-grades button[aria-pressed=true] .muted{color:inherit}.subjects-grades button.gap{border-color:var(--bad);color:var(--bad)}.subjects-grades button.none{opacity:.6}.subjects-grade h3{margin:4px 0 0}.subjects-topic{padding:8px;display:grid;gap:6px}.subjects-topic-head{display:grid;gap:2px;padding:0 4px}.subjects-topic-head .meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;color:var(--muted)}.subjects-templates .area-item{background:var(--surface)}.subjects-admin input[type=search]{min-width:0;flex:1 1 180px}.subjects-admin .tabs{flex-wrap:wrap}.subjects-not-taught summary{cursor:pointer}.review-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.review-row>:first-child{flex:1 1 auto;min-width:0}.review-row.overturned>:first-child{opacity:.55;text-decoration:line-through}.teacher-figure{border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}.cfig-obj{display:grid;gap:8px;min-width:0}.cfig-field{min-width:0}.cfig-group{display:grid;gap:4px;min-width:0}.cfig-label{font-size:14px}.cfig-list{display:grid;gap:6px;min-width:0}.cfig-list.inline{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.cfig-item{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.cfig-list:not(.inline)>.cfig-item{border-left:3px solid var(--line);padding-left:8px}.cfig-item>.cfig-obj{flex:1}.cfig-tuple,.cfig-opt,.cfig-glyph{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.teacher-form input.cfig-num{width:5.5em}.teacher-form input.cfig-num.mono{width:8em}.options.multi .fix{margin-left:6px}.help-link{font-size:15px;color:var(--accent);text-decoration:none;padding:6px 8px;border-radius:8px}.help-link:hover{text-decoration:underline}.help-q{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--accent);font-family:var(--body);font-size:15px;font-weight:700;line-height:1;text-decoration:none;vertical-align:middle}.help-q:hover{border-color:var(--accent)}.help-q.kid{width:38px;height:38px;font-size:20px;background:var(--accent-soft);border-color:var(--accent)}.with-help{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.label-row{display:inline-flex;align-items:center;gap:6px}.signin .lang-row{align-items:center;gap:8px}.level-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.level-row .segmented{margin-bottom:0}.actions .hint-wrap{display:inline-flex;align-items:center;gap:6px;margin-right:auto}button.tip-btn{position:relative}button.tip-btn:not(.tip-custom){display:inline-grid;place-items:center;flex:none;align-self:center;vertical-align:middle;width:22px;height:22px;min-width:22px;min-height:22px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-family:var(--body);font-size:13px;font-weight:700;line-height:1}button.tip-btn:not(.tip-custom):before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}button.tip-btn:not(.tip-custom):hover{border-color:var(--accent);color:var(--accent)}button.tip-btn.tip-custom{padding:0;border:0;background:transparent;border-radius:8px;color:inherit;line-height:1;cursor:help}.tip-bubble{position:fixed;z-index:100;width:max-content;max-width:min(300px,calc(100vw - 16px));background:var(--ink);color:var(--bg);border-radius:8px;padding:8px 10px;box-shadow:0 6px 18px #00000038;font-family:var(--body);font-size:14px;font-weight:400;line-height:1.4;text-transform:none;letter-spacing:normal;text-align:left}.tip-bubble[hidden]{display:none}.help-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow-y:auto;overscroll-behavior:contain;background:var(--bg)}.help{max-width:820px;margin:0 auto;display:grid;gap:20px;padding:0 max(16px,env(safe-area-inset-right,0px)) 64px max(16px,env(safe-area-inset-left,0px))}.help-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 10px;background:var(--bg);border-bottom:1px solid var(--line)}.help-head h1:focus{outline:none}.help-toc{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px}.help-toc ul{margin:4px 0 0;padding-left:18px;font-size:15px}.help-toc a{color:var(--accent)}.help-section{display:grid;gap:12px;scroll-margin-top:76px}.help-section+.help-section{margin-top:12px}.help-q-a{display:grid;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px;scroll-margin-top:76px}.help-q-a ul{margin:0;padding-left:22px;display:grid;gap:4px}.help-kids .help-q-a{font-size:19px;line-height:1.55}.help-kids .help-q-a h3{font-size:21px}.help-q-a code{font-size:13px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:1px 4px;overflow-wrap:anywhere}.help-q-a .legal-links{justify-content:flex-start}legend.label-row{padding:0}.teacher-link.accepted{color:var(--good)}.teacher-note{margin:0 0 10px;background:var(--paper);border-left:3px solid var(--accent);padding:8px 12px;border-radius:4px;display:grid;gap:2px;overflow-wrap:anywhere}.note-mark{color:var(--accent)}.pupil-name{display:inline-flex;gap:10px;align-items:center;min-width:0}.pupil-name>span{min-width:0;overflow-wrap:anywhere}.week-bars{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px}.week-bars li{display:grid;grid-template-columns:4.5em 1fr 3.5em;gap:8px;align-items:center}.topic-lists{display:grid;gap:4px 16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.topic-lists ul{margin:0;padding-left:18px}.pupil-results h4,.topic-lists h4{margin:8px 0 4px}.child-teachers input.code{width:15ch}.mistake-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.mistake-filters label{display:grid;gap:4px;font-weight:600;font-size:14px;min-width:0}.mistake-filters select,.mistake-filters input{width:100%;min-width:0}.mistake-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:0}.mistake-meta .fixed{color:var(--good)}.mistake-meta .unfixed{color:var(--bad)}.mistake-meta button.link{background:transparent;border:0;padding:2px 0;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.retry-mark{color:var(--accent);font-weight:600}.parent-shell{--side-w: 272px;min-height:100vh;min-height:100dvh}.parent-main{width:100%;max-width:1120px;margin:0 auto;min-width:0;padding:12px max(16px,env(safe-area-inset-right,0px)) calc(96px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:grid;gap:16px;align-content:start}.parent-main>section:not([class]){display:grid;gap:12px;align-content:start}.icon{display:block;flex:none}.nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:15px;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .15s ease,color .15s ease}.nav-item .icon{width:22px;height:22px;color:var(--muted);transition:color .15s ease,background-color .2s ease}.nav-item:hover{background:var(--bg)}.nav-item.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item.on .icon{color:var(--accent)}.nav-item:focus-visible,.kid-tab:focus-visible,.glance-item:focus-visible,.fold-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.icon-btn,.side-toggle{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;flex:none;border:0;border-radius:10px;background:transparent;color:var(--muted)}.icon-btn:hover,.side-toggle:hover{background:var(--bg);color:var(--ink)}.settings-row{display:flex;flex-wrap:wrap;gap:8px}.settings-row select{min-height:40px}.kid-tab{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:15px;text-align:left;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.kid-tab:hover{background:var(--bg)}.kid-tab.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.kid-tab-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phone-head{position:sticky;top:0;z-index:10;display:grid;gap:6px;margin:-12px calc(-1*max(16px,env(safe-area-inset-right,0px))) 0 calc(-1*max(16px,env(safe-area-inset-left,0px)));padding:6px max(16px,env(safe-area-inset-right,0px)) 6px max(16px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.chips-bar{padding:2px 0}.kid-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.kid-chips::-webkit-scrollbar{display:none}.kid-chips .kid-tab{flex:none;scroll-snap-align:start;padding:4px 16px 4px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.kid-chips .kid-tab.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.phone-head{grid-template-columns:minmax(0,1fr)}.phone-bar{min-height:44px;flex-wrap:nowrap;gap:4px}.phone-bar .logo{flex:0 1 auto;min-width:32px;overflow:hidden;white-space:nowrap}.phone-bar .logo{text-decoration:none;font-size:20px}.phone-bar .logo .mascot{flex:none}.phone-bar .logo-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.phone-bar .family-switch{flex:0 1 auto;min-width:72px}.phone-bar select.family-select{width:100%;max-width:100%}.phone-bar:has(.family-switch) .logo-name{display:none}.phone-bar .help-link{padding-inline:6px}@media(max-width:419px){.phone-bar .logo{font-size:18px}}@media(max-width:379px){.phone-bar .logo-name{display:none}}.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:6px max(6px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -4px 18px #0000000d}.bottom-bar .nav-item{flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:4px 2px;font-size:12px;text-align:center;color:var(--muted)}.bottom-bar .nav-item:hover{background:transparent}.bottom-bar .nav-item .icon{width:56px;height:30px;padding:3px 16px;border-radius:999px}.bottom-bar .nav-item.on{background:transparent;color:var(--accent)}.bottom-bar .nav-item.on .icon{background:var(--accent-soft)}.bottom-bar .nav-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet{width:100%;max-width:100%;max-height:88dvh;margin:auto 0 0;padding:0;border:0;background:transparent;color:var(--ink);overflow:visible}.sheet::backdrop{background:#080c1473}.sheet-body{max-width:600px;margin:0 auto;max-height:88dvh;overflow-y:auto;display:grid;gap:12px;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;padding:8px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));box-shadow:0 -10px 40px #0000002e}.sheet[open] .sheet-body{animation:sheet-up .26s cubic-bezier(.2,.8,.2,1)}.sheet[open]::backdrop{animation:sheet-fade .26s ease}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-fade{0%{opacity:0}}.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--line);justify-self:center}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-head h2{font-size:20px}.sheet-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.sheet-links .nav-item{min-height:56px;background:var(--bg);border-radius:12px}.sheet-links .nav-item.on{background:var(--accent-soft)}.sheet-settings{border-top:1px solid var(--line);padding-top:12px}.sheet-settings select{flex:1}.sidebar{display:none}@media(min-width:900px){.parent-shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);transition:grid-template-columns .2s ease}.parent-shell.side-collapsed{--side-w: 76px}.sidebar{display:block;min-width:0;background:var(--surface);border-right:1px solid var(--line)}.side-inner{display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:12px 10px}.bottom-bar,.phone-head,.phone-bar,.chips-bar,.sheet{display:none!important}.parent-main{padding:28px 32px 40px;gap:20px}}.side-top{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:2px 2px 8px}.side-logo{display:flex;align-items:center;gap:8px;min-width:0;padding:6px;border-radius:10px;text-decoration:none}.side-logo .logo{font-family:var(--display);font-weight:700;font-size:18px;color:var(--accent);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.logo-mark{width:28px;height:28px;border-radius:8px;flex:none}.side-nav{display:grid;gap:2px;align-content:start}.side-family{padding:0 2px 6px}.side-family .family-switch,.side-family select.family-select{width:100%;max-width:100%}.side-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:12px 12px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-kids{display:grid;gap:2px}.side-kids .kid-tab{width:100%}.side-kids .kid-tab.on{box-shadow:inset 3px 0 0 var(--accent)}.nav-item.add,.nav-item.add .icon{color:var(--accent)}.side-links{list-style:none;margin:0;padding:0;display:grid;gap:2px}.side-sep{border:0;border-top:1px solid var(--line);margin:10px 6px}.side-foot{margin-top:auto;display:grid;gap:6px;padding-top:10px;border-top:1px solid var(--line)}.side-collapsed .nav-text,.side-collapsed .side-label,.side-collapsed .kid-tab-name,.side-collapsed .side-family{display:none}@media(pointer:fine){.side-inner .nav-item,.side-inner .kid-tab{min-height:38px;padding-block:5px}}.side-collapsed .side-top{flex-direction:column}.side-collapsed .side-toggle .icon{transform:scaleX(-1)}.side-collapsed .nav-item,.side-collapsed .kid-tab{justify-content:center;padding-inline:0}.side-collapsed .side-kids,.side-collapsed .side-links{padding-top:6px}.page-head{display:grid;gap:2px}.page-head h1{font-size:26px;display:flex;align-items:center;gap:10px}@media(max-width:899px){.child-head-row{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.child-page,.overview,.overview-grid,.family-grid{display:grid;gap:16px;align-content:start;min-width:0}.child-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 16px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,var(--accent-soft),var(--surface) 65%)}.child-card-text{display:grid;gap:1px;min-width:0}.child-card h1{font-size:28px}.child-card .kid-actions{grid-column:1 / -1}.child-card .kid-actions button{min-height:44px}@media(min-width:720px){.child-card{grid-template-columns:auto minmax(0,1fr) auto;padding:18px 20px}.child-card .kid-actions{grid-column:auto;justify-content:flex-end}}.glance ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:10px}.glance-item{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--ink);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.glance-item:hover{border-color:var(--accent);box-shadow:0 2px 12px #00000012}.glance-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--accent)}.glance-icon .icon{width:22px;height:22px}.glance-text{display:grid;min-width:0;flex:1;line-height:1.3}.glance-go{width:20px;height:20px;color:var(--muted);transform:rotate(-90deg)}@media(min-width:1200px){.overview-grid{grid-template-columns:minmax(0,1fr) 290px;align-items:start}.overview-grid>.glance{grid-column:2;grid-row:1;position:sticky;top:24px}.overview-grid>.overview-stats{grid-column:1;grid-row:1}.overview-grid .glance ul{grid-template-columns:minmax(0,1fr)}}@media(min-width:1360px){.family-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.panel h2.h3{font-size:18px}.tests>li{scroll-margin-top:72px}.fold{background:var(--surface);border:1px solid var(--line);border-radius:14px;min-width:0}.fold-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.fold-title{grid-area:1 / 1 / 2 / 3;font-size:inherit}.fold-toggle{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;width:100%;min-height:56px;padding:14px 52px 14px 16px;border:0;border-radius:14px;background:transparent;color:var(--ink);text-align:left}.fold-head:has(.fold-extra) .fold-toggle{padding-right:96px}.fold-toggle:hover{background:color-mix(in srgb,var(--bg) 60%,transparent)}.fold-name{font-family:var(--display);font-size:18px;font-weight:700}.fold-summary{font-family:var(--body);font-size:14px;font-weight:400;color:var(--muted)}.fold-chevron{position:absolute;right:14px;top:50%;width:22px;height:22px;margin-top:-11px;color:var(--muted);transition:transform .2s ease}.fold.open .fold-chevron{transform:rotate(180deg)}.fold-extra{grid-area:1 / 2;z-index:1;display:flex;align-items:center;gap:6px;margin-right:52px}.fold-body{display:grid;gap:12px;padding:0 16px 16px;min-width:0}.fold-body[hidden]{display:none}.fold-body>.panel,.fold-body>section>.panel:not(.confirm){border:0;border-radius:0;padding:0;background:none;box-shadow:none}.fold-body>.panel>h3.with-help:first-child,.fold-body>section>h2.with-help:first-child{display:none}.fold-body>section{display:grid;gap:12px}@media(prefers-reduced-motion:reduce){.sheet[open] .sheet-body,.sheet[open]::backdrop{animation:none}}.parent-main>*,.fold-body>*,.overview-grid>*,.family-grid>*,.child-page>*{min-width:0}@media(min-width:1000px){#root>main.child,#root>main.practice{max-width:960px}}@media(pointer:coarse){.task-dots button{width:44px;height:44px}button:not(.tip-btn):not(.admin-user-toggle),.option,select,input[type=text],input[type=password],input[type=date]{min-height:44px}a.help-link,.phone-bar .logo,.side-logo{display:inline-flex;align-items:center;min-height:44px}button.tip-btn:not(.tip-custom):before{top:-11px;right:-11px;bottom:-11px;left:-11px}button.tip-btn.tip-custom:before{content:"";position:absolute;top:-11px;right:-11px;bottom:-11px;left:-11px}.help-q{position:relative}.help-q:after{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px}.help-q.kid:after{top:-3px;right:-3px;bottom:-3px;left:-3px}.donate-button{min-height:44px}}.donate-card{gap:8px;margin-bottom:12px}.donate-card h3,.donate-card p{margin:0}.donate-buttons{display:flex;flex-wrap:wrap;gap:8px}.donate-button{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-weight:600;text-decoration:none;border:1px solid transparent}.donate-button:hover{filter:brightness(1.08)}.donate-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.donate-mark{width:20px;height:20px;flex:none}.donate-paypal{background:#003087;color:#fff}.donate-revolut{background:#191c1f;color:#fff;border-color:#3a4048}.donate-kofi{background:#29abe0;color:#0b1d26}.donate-bmc{background:#fd0;color:#000}.donate-link{margin:12px 0 0;text-align:center;font-size:14px}.donate-link a{color:var(--muted)}.donate-link a:hover{color:var(--accent)}.help-q-a .donate-buttons{margin-top:4px}.side-support{padding:0 2px 6px}.support-btn{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border-radius:999px;background:var(--support-soft);color:var(--support);font-weight:600;font-size:15px;text-decoration:none;border:1px solid color-mix(in srgb,var(--support) 35%,transparent);transition:filter .15s ease,transform .15s ease}.support-btn .icon{width:22px;height:22px;fill:currentColor}.support-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.support-btn:focus-visible{outline:2px solid var(--support);outline-offset:2px}.support-btn.compact{flex:none;justify-content:center;width:44px;padding:0}.side-collapsed .support-btn{justify-content:center;width:44px;margin-inline:auto;padding:0}@media(prefers-reduced-motion:no-preference){.support-btn .icon{animation:support-beat 2.4s ease-in-out 1s 3}}@keyframes support-beat{0%,to{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}}.chip-generated{padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600}.example-picks{gap:6px}.example-picks button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tour{--tour-dim: rgb(8 12 20 / .55);position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}:root[data-theme=dark] .tour{--tour-dim: rgb(0 0 0 / .68)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tour{--tour-dim: rgb(0 0 0 / .68)}}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.tour-dim path{fill:var(--tour-dim)}.tour-spot{position:fixed;border-radius:12px;pointer-events:none;box-shadow:0 0 0 3px var(--accent)}.tour.gliding .tour-spot{transition:left .25s ease,top .25s ease,width .25s ease,height .25s ease}.tour.gliding .tour-dim path{transition:d .25s ease}.tour.gliding .tour-bubble.float{transition:left .25s ease,top .25s ease}.tour-bubble{position:fixed;z-index:1;width:min(360px,calc(100vw - 24px));display:grid;gap:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:16px 18px 14px;box-shadow:0 16px 48px #00000047;animation:tour-in .2s ease}.tour-bubble.center{left:50%;top:50%;transform:translate(-50%,-50%)}.tour-bubble.sheet{left:0;right:0;width:auto;border-radius:0;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}.tour-bubble.sheet.bottom{bottom:0;border-bottom:0;border-radius:20px 20px 0 0;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}.tour-bubble.sheet.top{top:0;border-top:0;border-radius:0 0 20px 20px;padding-top:calc(14px + env(safe-area-inset-top,0px))}.tour-count{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--accent)}.tour-title{font-size:20px}.tour-text{display:grid;gap:6px;font-size:16px;line-height:1.45}.tour-dots{display:flex;gap:5px}.tour-dots span{width:7px;height:7px;border-radius:50%;background:var(--line)}.tour-dots span.on{background:var(--accent);width:18px;border-radius:4px}.tour-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center;margin-top:2px}.tour-actions .tour-skip{margin-right:auto;padding-inline:4px}.tour-actions button{min-height:44px}.tour-bubble.kid{border:2px solid var(--accent);border-radius:22px}.tour-bubble.kid.sheet.bottom{border-bottom:0;border-radius:22px 22px 0 0}.tour-bubble.kid.sheet.top{border-top:0;border-radius:0 0 22px 22px}.tour-bubble.kid .tour-title{font-size:24px}.tour-bubble.kid .tour-text{font-size:18px}.tour-bubble.kid .tour-actions .primary{border-radius:999px;padding-inline:20px}@keyframes tour-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.tour.gliding .tour-spot,.tour.gliding .tour-dim path,.tour.gliding .tour-bubble.float{transition:none}.tour-bubble{animation:none}}.tour-again{font-size:15px;padding:4px 10px}.av{position:relative;display:inline-block;width:1em;height:1em;line-height:1;vertical-align:middle;flex:none}.av-layer{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none}.av-emoji{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none}.av-layer>svg{display:block;width:100%;height:100%}.av-avatar .av-emoji{filter:drop-shadow(0 .01em .02em rgb(0 0 0 / .18))}.av-head .av-emoji,.av-hand .av-emoji,.av-pet .av-emoji,.av-face .av-emoji{filter:drop-shadow(0 .01em .015em rgb(0 0 0 / .3))}.av-home,.av-garden{opacity:.95}.av-stage{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:26%;overflow:hidden}.compact .av-stage{border-radius:50%}.av-bg-sky{background:radial-gradient(circle at 30% 25%,#ffffff 0 6%,transparent 7%),linear-gradient(#8fd3ff,#d9f1ff)}.av-bg-sunset{background:linear-gradient(#ff8a65,#ffcc80 55%,#fff3e0)}.av-bg-candy{background:repeating-linear-gradient(45deg,#ffd1e8 0,#ffd1e8 .08em,#fff0f7 .08em,#fff0f7 .16em)}.av-bg-meadow{background:linear-gradient(#b3e5fc 0,#b3e5fc 55%,#a5d6a7 55%)}.av-bg-ocean{background:radial-gradient(ellipse at 50% 120%,#4dd0e1 0 40%,transparent 41%),linear-gradient(#81d4fa,#0288d1)}.av-bg-night{background:radial-gradient(circle at 20% 22%,#fff59d 0 2%,transparent 3%),radial-gradient(circle at 78% 30%,#fff 0 1.6%,transparent 2.5%),radial-gradient(circle at 65% 12%,#fff 0 1.2%,transparent 2%),radial-gradient(circle at 82% 18%,#fffde7 0 7%,transparent 8%),linear-gradient(#1a237e,#4527a0)}.av-bg-space{background:radial-gradient(circle at 80% 22%,#ffb74d 0 9%,#ff7043 10%,transparent 11%),radial-gradient(circle at 18% 70%,#fff 0 1.4%,transparent 2.2%),radial-gradient(circle at 30% 18%,#fff 0 1.2%,transparent 2%),radial-gradient(circle at 60% 80%,#e1bee7 0 1.4%,transparent 2.2%),linear-gradient(135deg,#0d0b2e,#311b92)}.av-bg-rainbow{background:radial-gradient(circle at 50% 110%,#fff 0,#fff 34%,#b39ddb 35%,#b39ddb 40%,#64b5f6 41%,#64b5f6 46%,#81c784 47%,#81c784 52%,#fff176 53%,#fff176 58%,#ffb74d 59%,#ffb74d 64%,#e57373 65%,#e57373 70%,#e3f2fd 71%)}.av-bg-gold{background:radial-gradient(circle,#fffde7 0,#fffde7 52%,#ffe082 53%,#ffe082 60%,#ffca28 61%,#ffca28 72%,#ff8f00 73%)}.mascot{display:inline-block;flex:none;overflow:visible;vertical-align:middle}.mascot g,.mascot path{transform-box:fill-box}.mascot .m-wing{fill:#eef6ff;stroke:#8fb3d9;stroke-width:1;opacity:.95}.mascot .m-wing-l{transform-origin:100% 60%}.mascot .m-wing-r{transform-origin:0% 60%}.mascot .m-arm{transform-origin:0% 100%}.mascot .m-eyes{transform-origin:center}.mascot .m-tassel{transform-origin:0% 0%}.mascot .m-jump{transform-origin:50% 100%}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .mascot .m-cap>path{stroke:#7f93ba;stroke-width:1.2}}:root[data-theme=dark] .mascot .m-cap>path{stroke:#7f93ba;stroke-width:1.2}@media(prefers-reduced-motion:no-preference){.mascot .m-eyes{animation:m-blink 4.6s infinite}.mascot.bob.pose-idle .m-float{animation:m-bob 3.2s ease-in-out infinite}.mascot.pose-fly .m-wing-l{animation:m-flap-l .22s ease-in-out infinite alternate}.mascot.pose-fly .m-wing-r{animation:m-flap-r .22s ease-in-out infinite alternate}.mascot.pose-fly .m-tassel{animation:m-tassel .44s ease-in-out infinite alternate}.mascot.pose-wave .m-arm{animation:m-wave .5s ease-in-out 3 alternate,m-arm-away .3s ease-in 1.5s forwards}.mascot.pose-happy .m-jump{animation:m-jump .6s ease-in-out 2}.mascot-paused .mascot *{animation-play-state:paused!important}}@keyframes m-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes m-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.6px)}}@keyframes m-flap-l{0%{transform:rotate(18deg)}to{transform:rotate(-22deg)}}@keyframes m-flap-r{0%{transform:rotate(-18deg)}to{transform:rotate(22deg)}}@keyframes m-tassel{0%{transform:rotate(-6deg)}to{transform:rotate(8deg)}}@keyframes m-wave{0%{transform:rotate(14deg)}to{transform:rotate(-24deg)}}@keyframes m-arm-away{to{opacity:0}}@keyframes m-jump{0%,to{transform:translateY(0) scale(1)}15%{transform:translateY(0) scale(1.08,.9)}50%{transform:translateY(-14%) scale(.96,1.05)}85%{transform:translateY(0) scale(1.05,.94)}}.landing-hero{position:relative}@media(max-width:899px){.landing .brand h1{font-size:min(44px,9.6vw)}}.mascot-layer{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:3}.mascot-bird{position:absolute;left:0;top:0;padding:0;margin:0;border:0;background:none;border-radius:50%;pointer-events:auto;cursor:pointer;will-change:transform;-webkit-tap-highlight-color:transparent}.mascot-bird:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.mascot-bird.flying{pointer-events:none}.mascot-bird .mascot{display:block;filter:drop-shadow(0 3px 4px rgb(0 0 0 / .18))}.mascot-bird:not(.ready){visibility:hidden}.brand-title .mascot{margin:-12px 0 -6px 6px}.side-logo .mascot{width:28px;height:28px}.phone-bar .logo{display:inline-flex;align-items:center;gap:4px}.child-head h1 .mascot{margin:-10px 0 -6px 6px}.summary .mascot{margin-bottom:-6px}.feedback.good .mascot{float:right;margin:-4px -4px 0 8px}.mascot-empty{display:flex;align-items:center;gap:12px}.mascot-empty>p{flex:1 1 auto;min-width:0}.wardrobe{display:grid;gap:14px}.wardrobe-top{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}.wardrobe-preview{padding:8px;border-radius:22px;background:var(--paper);border:1px solid var(--line);line-height:0}.wardrobe-info{display:grid;gap:8px;min-width:0}.wardrobe-info p{margin:0}.wardrobe-count b{font-size:18px}.wardrobe-next .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.wardrobe-next ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}.wardrobe-next li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.wardrobe-next li>span:last-child{display:grid;gap:2px;min-width:0}.item-bar{display:block;height:6px;border-radius:3px;background:var(--grid);overflow:hidden;width:100%}.item-bar>span{display:block;height:100%;background:var(--accent);border-radius:3px}.wardrobe-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.wardrobe-tab{position:relative;display:grid;justify-items:center;gap:2px;min-width:68px;padding:6px 8px;border-radius:12px;font-size:13px;line-height:1.15;flex:none}.wardrobe-tab>span:first-child{font-size:22px;line-height:1}.wardrobe-tab.on{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.wardrobe-tab .dot{position:absolute;top:4px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--support)}.wardrobe-panel{display:grid;gap:10px}.wardrobe-panel>p{margin:0}.wardrobe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.wardrobe-item{position:relative;display:grid;justify-items:center;align-content:start;gap:4px;padding:10px 6px;border-radius:14px;text-align:center;min-height:112px}.wardrobe-item .name{font-size:14px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.wardrobe-item .why{font-size:12px;line-height:1.25;color:var(--muted);overflow-wrap:anywhere}.wardrobe-item .muted.small{font-size:12px}.wardrobe-item .item-bar{width:80%}.wardrobe-item.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent) inset}.wardrobe-item.locked{background:var(--paper);border-style:dashed;cursor:default}.wardrobe-item.locked .item-art,.wardrobe-item.locked .av{filter:grayscale(1);opacity:.4}.wardrobe-item:disabled{opacity:1}.wardrobe.read-only .wardrobe-item{cursor:default}.wardrobe-item .new-tag{position:absolute;top:6px;right:6px;font-size:11px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--support);color:#fff}.wardrobe-item .worn-tag{font-size:12px;color:var(--accent);font-weight:600}.none-art{font-size:34px;color:var(--muted)}.item-art{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;flex:none}.item-art>.av-emoji{width:100%;height:100%}.item-art>svg{width:100%;height:100%}.item-art.slot-garden>svg{height:auto}.item-art.slot-hair,.item-art.slot-face{background:radial-gradient(circle at 50% 60%,#f3d6b5 0 38%,transparent 39%);border-radius:50%}.item-bg{width:100%;height:100%;border-radius:26%;border:1px solid var(--line)}.outfit-cheer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0a101c73}.outfit-cheer{position:relative;width:min(420px,100%);max-height:calc(100vh - 32px);overflow:auto;display:grid;justify-items:center;gap:8px;padding:20px;text-align:center;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px #00000040}.outfit-cheer h2{margin:4px 0 0;font-size:22px}.outfit-cheer p{margin:0}.outfit-cheer-scene{position:relative;display:flex;align-items:flex-end;gap:4px;padding:6px 10px 0}.outfit-cheer-pickle{margin-left:-14px}.outfit-cheer-name{display:inline-flex;align-items:center;gap:8px;font-size:18px}.outfit-cheer-pickle-line{color:var(--good);font-weight:600}.outfit-cheer-more{display:grid;justify-items:center;gap:4px}.outfit-cheer-more ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.outfit-cheer .row{justify-content:center;margin-top:6px}.sparkles{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;pointer-events:none;background:radial-gradient(circle at 12% 20%,#ffd54f 0 3px,transparent 4px),radial-gradient(circle at 88% 14%,#ff80ab 0 3px,transparent 4px),radial-gradient(circle at 80% 70%,#80deea 0 3px,transparent 4px),radial-gradient(circle at 6% 74%,#b39ddb 0 3px,transparent 4px),radial-gradient(circle at 50% 2%,#ffd54f 0 2px,transparent 3px)}@media(prefers-reduced-motion:no-preference){.outfit-cheer{animation:outfit-pop .45s cubic-bezier(.2,1.4,.4,1) both}.outfit-cheer-avatar{animation:outfit-bounce 1.2s ease-in-out .4s 2}.sparkles{animation:outfit-twinkle 1.6s ease-in-out infinite alternate}}@keyframes outfit-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes outfit-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-10px) rotate(-3deg)}70%{transform:translateY(0) rotate(2deg)}}@keyframes outfit-twinkle{0%{opacity:.35;transform:scale(.96)}to{opacity:1;transform:scale(1.04)}}@media(max-width:560px){.wardrobe-top{grid-template-columns:1fr;justify-items:center}.wardrobe-info{justify-items:stretch;width:100%}.wardrobe-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}.campaign-cards{display:grid;gap:12px;margin:14px 0}.campaign-card{display:grid;gap:10px;min-width:0;padding:14px 16px;border-radius:14px;border:1px solid var(--warn);background:linear-gradient(135deg,var(--warn-soft),var(--surface) 70%)}.campaign-card.won{border-color:var(--good);background:linear-gradient(135deg,var(--good-soft),var(--surface) 70%)}.campaign-head{display:flex;align-items:center;gap:12px;min-width:0}.campaign-emoji{font-size:38px;line-height:1;flex:none}.campaign-emoji.small{font-size:26px}.campaign-titles{display:grid;min-width:0;flex:1}.campaign-titles h2{margin:0;font-size:20px;overflow-wrap:anywhere}.campaign-days{flex:none;font-size:13px;font-weight:600;color:var(--warn);background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:3px 10px;white-space:nowrap}.campaign-body{margin:0;overflow-wrap:anywhere;white-space:pre-line}.campaign-goal{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.campaign-progress{display:flex;align-items:center;gap:10px;min-width:0}.campaign-progress .progress{height:12px}.campaign-card.won .progress>div{background:var(--good)}.campaign-won{margin:0;color:var(--good)}.campaign-reward{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.campaign-reward .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.campaign-reward ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.campaign-reward li{background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:14px}@media(max-width:480px){.campaign-head{flex-wrap:wrap}.campaign-days{order:3}}.campaign-rows{list-style:none;margin:0;padding:0;display:grid;gap:12px}.campaign-rows li{display:flex;gap:10px;align-items:flex-start;min-width:0}.campaign-row-text{display:grid;gap:4px;flex:1;min-width:0}.admin-campaigns .campaign-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.admin-campaign{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--paper);display:grid;gap:8px;min-width:0}.admin-campaign-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-campaign-head b{overflow-wrap:anywhere}.campaign-meta{display:flex;flex-wrap:wrap;gap:2px 16px;font-size:14px;color:var(--muted);min-width:0}.campaign-meta>span{overflow-wrap:anywhere}.campaign-phase{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:99px;padding:2px 8px;border:1px solid var(--line)}.campaign-phase.active{color:var(--good);border-color:var(--good);background:var(--good-soft)}.campaign-phase.scheduled{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.campaign-phase.draft{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.campaign-phase.ended{color:var(--muted)}.campaign-stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}.campaign-stats b{font-variant-numeric:tabular-nums}.campaign-form{display:grid;gap:14px}.campaign-form fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:10px;min-width:0;margin:0}.campaign-form legend{font-weight:600;padding:0 4px}.campaign-form .field{display:grid;gap:4px;min-width:0}.campaign-form input[type=text],.campaign-form textarea,.campaign-form input[type=datetime-local],.campaign-form select{width:100%;max-width:100%;box-sizing:border-box}.campaign-form input[type=number],.campaign-form input[type=datetime-local]{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);min-width:0;font-size:17px}.campaign-form input[type=number]{width:8em;max-width:100%;box-sizing:border-box}.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.campaign-checks{display:flex;flex-wrap:wrap;gap:6px 14px}.campaign-checks label{display:inline-flex;gap:6px;align-items:center}.campaign-topics{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px}.campaign-editor{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:1100px){.campaign-editor{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);align-items:start}.campaign-preview{position:sticky;top:12px}}.campaign-preview{display:grid;gap:8px;min-width:0}.campaign-settings{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:8px}.campaign-langs{flex-wrap:wrap;max-width:100%}.campaign-langs button{white-space:nowrap;padding:8px 10px}.pocket-fields{display:grid;gap:10px;scroll-margin-top:96px}.pocket-fields p{margin:0}.pocket-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px}.pocket-grid input,.pocket-grid select{width:100%;min-width:0}.pocket-hint{font-weight:400}.pocket{display:grid;gap:10px;min-width:0}.pocket p{margin:0}.pocket h4{margin:6px 0 0;font-size:15px}.pocket-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.pocket-stats .value{overflow-wrap:anywhere}.pocket-balance{border-color:var(--good);background:linear-gradient(135deg,var(--good-soft),var(--surface) 75%)}.pocket-balance .value{color:var(--good)}.pocket-payout{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--paper)}.pocket-payout h4{margin:0}.pocket-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.pocket-list li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:6px;min-width:0}.pocket-list li:last-child{border-bottom:0}.pocket-list li b:last-child{margin-left:auto}.pocket-note{flex-basis:100%;overflow-wrap:anywhere}.good-text{color:var(--good)}.warn-text{color:var(--warn)}.jar-card{display:flex;gap:14px;align-items:center;padding:12px 16px;border-radius:14px;border:1px solid var(--good);background:linear-gradient(135deg,var(--good-soft),var(--surface) 70%);min-width:0}.jar-picture{position:relative;flex:none;width:76px}.jar-svg{display:block;width:76px;height:auto}.jar-glass{fill:none;stroke:var(--good);stroke-width:3}.jar-lid{fill:var(--good)}.jar-fill{fill:var(--warn-soft);transition:y .8s ease,height .8s ease}.jar-coin{fill:var(--g3);stroke:var(--warn);stroke-width:2}.jar-drop{fill:var(--g3);stroke:var(--warn);stroke-width:2;opacity:0}.jar-text{display:grid;gap:3px;min-width:0;flex:1}.jar-text .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.jar-balance-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.jar-balance{font-family:var(--display);font-size:30px;line-height:1.1;color:var(--good);overflow-wrap:anywhere;transform-origin:left center}.jar-text .progress{height:10px;margin:4px 0 2px}.jar-text .progress>div{background:var(--good)}.jar-say{margin:4px 0 0;font-weight:600}.jar-pop{white-space:nowrap;font-weight:700;font-size:14px;color:var(--good);background:var(--surface);border:1px solid var(--good);border-radius:99px;padding:1px 8px;animation:jar-pop 2.4s ease forwards}.jar-card.grew .jar-svg{animation:jar-wobble .9s ease .5s;transform-origin:50% 100%}.jar-card.grew .jar-drop{animation:jar-drop .7s ease-in forwards}.jar-card.grew .jar-balance{animation:jar-glow 1.4s ease .6s}@keyframes jar-drop{0%{opacity:1;transform:translateY(-10px)}80%{opacity:1;transform:translateY(46px)}to{opacity:0;transform:translateY(54px)}}@keyframes jar-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg) scale(1.04)}50%{transform:rotate(5deg) scale(1.06)}75%{transform:rotate(-3deg)}}@keyframes jar-pop{0%{opacity:0;transform:translateY(10px) scale(.8)}20%{opacity:1;transform:translateY(-2px) scale(1.1)}85%{opacity:1;transform:translateY(-4px) scale(1)}to{opacity:0;transform:translateY(-12px)}}@keyframes jar-glow{0%,to{transform:none}40%{transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.jar-card.grew .jar-svg,.jar-card.grew .jar-drop,.jar-card.grew .jar-balance,.jar-pop{animation:none}.jar-fill{transition:none}}@media(max-width:400px){.jar-card{gap:10px;padding:10px 12px}.jar-picture,.jar-svg{width:60px}.jar-balance{font-size:26px}}.hw-cards{display:grid;gap:12px;margin:14px 0}.hw-notice{margin:0}.hw-card{display:grid;gap:8px;min-width:0;padding:14px 16px;border-radius:14px;border:1px solid var(--accent);background:linear-gradient(135deg,var(--accent-soft),var(--surface) 70%)}.hw-card.overdue{border-color:var(--bad);background:linear-gradient(135deg,var(--bad-soft),var(--surface) 70%)}.hw-card.highlight{box-shadow:0 0 0 3px var(--accent)}.hw-head{display:flex;align-items:center;gap:12px;min-width:0}.hw-emoji{font-size:34px;line-height:1;flex:none}.hw-titles{display:grid;min-width:0;flex:1}.hw-titles h2{margin:0;font-size:20px;overflow-wrap:anywhere}.hw-titles .muted{overflow-wrap:anywhere}.hw-topics{margin:0;overflow-wrap:anywhere}.hw-due{font-size:14px;color:var(--muted)}.hw-due b{color:var(--ink)}.hw-due.soon b{color:var(--warn)}.hw-due.overdue b{color:var(--bad)}.hw-note{margin:0;padding:6px 10px;border-left:3px solid var(--line);background:var(--surface);border-radius:0 8px 8px 0;white-space:pre-line;overflow-wrap:anywhere}.hw-card>p{margin:0}.hw-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hw-actions .segmented{margin-bottom:0}.class-share input[type=text]{flex:1;min-width:0;font-family:monospace;font-size:13px}.class-share .row{flex-wrap:wrap}.class-share .pair-code{margin:0}.classes{display:grid;gap:14px}.class-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.class-item{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);min-width:0}.class-item>div{display:grid;gap:2px;min-width:0}.class-item b{overflow-wrap:anywhere}.class-meta{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:14px;color:var(--muted)}.class-form .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.class-form label{display:grid;gap:4px}.class-form label.check{display:inline-flex;gap:6px;align-items:center}.class-form .times{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.class-form .when{display:flex;gap:6px;flex-wrap:wrap}.class-form .when input{min-width:0}.class-form .topic-picker{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--paper)}.class-pupils li .pupil-name{flex:1;min-width:0}.class-pupils li .pupil-name b{overflow-wrap:anywhere}.nick-form{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.nick-form input{width:14ch;min-width:0}.hw-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.hw-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);display:grid;gap:6px;min-width:0}.hw-item-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;justify-content:space-between}.hw-item-head b{overflow-wrap:anywhere}.hw-item p{margin:0;overflow-wrap:anywhere}.hw-phase{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:99px;padding:2px 8px;border:1px solid var(--line);white-space:nowrap}.hw-phase.open{color:var(--good);border-color:var(--good);background:var(--good-soft)}.hw-phase.later{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.hw-phase.closed{color:var(--muted)}.hw-summary{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.hw-summary li{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 12px;display:grid;min-width:7ch}.hw-summary b{font-size:20px}.hw-status{font-size:13px;font-weight:600;border-radius:99px;padding:2px 8px;white-space:nowrap;border:1px solid var(--line)}.hw-status.done{color:var(--good);border-color:var(--good);background:var(--good-soft)}.hw-status.late{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.hw-status.in_progress{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.hw-status.not_started{color:var(--muted)}.results-table td,.results-table th{white-space:nowrap}.results-table td.name{white-space:normal;min-width:10ch}.results-table button{padding:4px 10px}.results-table tr.on td{background:var(--accent-soft)}.topic-bars{list-style:none;margin:0;padding:0;display:grid;gap:6px}.topic-bars li{display:grid;grid-template-columns:minmax(0,14rem) minmax(60px,1fr) 5ch;gap:10px;align-items:center}.topic-bars li>span:first-child{overflow-wrap:anywhere}@media(max-width:520px){.topic-bars li{grid-template-columns:minmax(0,1fr) 5ch}.topic-bars li .bar{grid-column:1 / -1;grid-row:2}}.class-join .child-pick{list-style:none;margin:0;padding:0;display:grid;gap:6px}.class-join .child-pick label{display:flex;gap:8px;align-items:center}.class-join dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}.class-join dt{color:var(--muted)}.class-join dd{margin:0;overflow-wrap:anywhere}.child-classes li>div{display:grid;gap:2px;min-width:0;flex:1}.child-classes li b{overflow-wrap:anywhere}.code-form{display:flex;gap:6px;flex-wrap:wrap}.code-form input{width:12ch;font-family:var(--display);letter-spacing:.12em;text-transform:uppercase}.parent-hw li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:space-between}.parent-hw li>div{display:grid;gap:2px;min-width:0;flex:1}.topic-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.topic-tags li{background:var(--accent-soft);color:var(--ink);border-radius:99px;padding:3px 10px;font-size:14px;overflow-wrap:anywhere}.class-topics .topic-picker{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--paper)}.blindmap svg{touch-action:manipulation}.blindmap .mr{fill:var(--accent-soft);fill-rule:evenodd;stroke:var(--muted);stroke-width:1px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.blindmap .mr.hl{fill:var(--pen)}.blindmap .mr.pick{cursor:pointer}.blindmap .mr.pick:hover{fill:color-mix(in srgb,var(--accent) 35%,var(--accent-soft))}.blindmap .mr.sel,.blindmap .mr.sel:hover{fill:var(--accent)}.blindmap .mr.ok{fill:var(--good)}.blindmap .mr.bad{fill:var(--bad)}.blindmap .mr:focus{outline:none}.blindmap .mr-edge{fill:none;fill-rule:evenodd;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.blindmap .mr-edge.focus{stroke:var(--accent);stroke-width:3px}.blindmap .mc{fill:var(--ink);stroke:var(--surface);stroke-width:2px;vector-effect:non-scaling-stroke}.blindmap .mc.hl{fill:var(--pen);stroke:var(--ink)}.blindmap .mc.pick{cursor:pointer}.blindmap .mc.sel{fill:var(--accent);stroke:var(--ink)}.blindmap .mc.ok{fill:var(--good);stroke:var(--ink)}.blindmap .mc.bad{fill:var(--bad);stroke:var(--ink)}.blindmap .mc:focus{outline:none}.blindmap .mc.focus{stroke:var(--accent);stroke-width:3px}.blindmap svg.live{cursor:pointer}.blindmap .map-credit{color:var(--muted);font-size:11px;text-align:right;line-height:1;margin-top:2px}:root{--inf: #4d55c8;--inf-soft: #e7e8fb;--inf-code: #f3f5f9}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--inf: #9aa1f5;--inf-soft: #262a52;--inf-code: #0e141d}}:root[data-theme=dark]{--inf: #9aa1f5;--inf-soft: #262a52;--inf-code: #0e141d}.start-btn.inf{border-color:var(--inf);color:var(--inf)}.figure .robot-cell{fill:var(--surface);stroke:var(--grid);stroke-width:1}.figure .robot-wall{fill:var(--muted);stroke:var(--ink);stroke-width:1}.figure .robot-frame{fill:none;stroke:var(--ink);stroke-width:1.5}.figure .robot-star{fill:var(--g3);stroke:var(--ink);stroke-width:1;stroke-linejoin:round}.figure .robot-body{fill:var(--inf);stroke:var(--ink);stroke-width:1.5}.figure .robot-eye{fill:var(--surface)}.figure .robot-dir{fill:var(--surface);stroke:var(--ink);stroke-width:1;stroke-linejoin:round}.figure .robot-mark{fill:var(--inf-soft);stroke:var(--inf);stroke-width:1.5}.figure .robot-mark-text{fill:var(--ink);font-family:var(--display);font-size:16px;font-weight:700}.inf-code{margin:0;padding:10px 12px;background:var(--inf-code);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px;line-height:1.55;white-space:pre;overflow-x:auto;color:var(--ink)}.inf-code .ln{display:inline-block;min-width:2ch;margin-right:12px;color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none}.inf-blocks{display:grid;gap:4px;padding:6px;justify-items:start}.inf-block{padding:5px 12px;border-radius:8px;font-weight:600;border:1px solid var(--line);border-left:6px solid var(--inf);background:var(--inf-soft);color:var(--ink)}.inf-block.control{border-left-color:var(--warn);background:var(--warn-soft)}.inf-block.say{border-left-color:var(--g4)}.inf-table{border-collapse:collapse;margin:4px auto;font-variant-numeric:tabular-nums}.inf-table th,.inf-table td{border:1px solid var(--line);padding:4px 12px;text-align:right}.inf-table th{background:var(--inf-soft);font-weight:600;text-align:center}.bell{position:relative;display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:10px;color:var(--muted);text-decoration:none}.bell .icon{width:22px;height:22px}.bell:hover{background:var(--bg);color:var(--ink)}.bell.on{background:var(--accent-soft);color:var(--accent)}.bell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.bell-count{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--support);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface)}.side-top .bell{margin-left:auto}.side-collapsed .side-top .bell{margin-left:0}.notif-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.notif-panel{padding:6px}.notif-panel>p{padding:12px;margin:0}.notif-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.notif-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:start;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.notif-item:hover{background:var(--bg)}.notif-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notif-item.unread{background:var(--accent-soft)}.notif-item.unread:hover{background:color-mix(in srgb,var(--accent-soft) 70%,var(--bg))}.notif-emoji{font-size:22px;line-height:1.2}.notif-text{display:grid;gap:2px;min-width:0}.notif-text b{font-weight:600;overflow-wrap:anywhere}.notif-body{color:var(--muted);font-size:14px;overflow-wrap:anywhere}.notif-item.unread .notif-body{color:var(--ink)}.notif-time{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.notif-settings fieldset{border:0;padding:0;margin:0}.notif-settings legend{font-weight:600;padding:0;margin-bottom:4px}.notif-matrix-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}.notif-matrix{border-collapse:collapse;width:100%;font-size:15px}.notif-matrix th,.notif-matrix td{padding:6px 8px;border-bottom:1px solid var(--line)}.notif-matrix thead th{font-size:13px;font-weight:600;color:var(--muted);text-align:left;vertical-align:bottom}.notif-matrix tbody th{font-weight:400;font-size:15px;text-align:left;text-transform:none;letter-spacing:normal;color:var(--ink)}.notif-matrix td,.notif-matrix .notif-kid{text-align:center;width:64px}.notif-matrix .notif-kid .avatar{display:block;font-size:22px}.notif-matrix .notif-kid span{display:block;max-width:72px;margin:0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-matrix input[type=checkbox],.notif-checks input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.notif-matrix tbody tr:hover{background:var(--bg)}.notif-checks{display:grid;gap:6px}.notif-checks input[type=radio]{width:20px;height:20px;accent-color:var(--accent)}.notif-email-to{overflow-wrap:anywhere}.notif-delivery{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}@media(max-width:480px){.notif-matrix th,.notif-matrix td{padding:6px 4px}.notif-matrix tbody th{font-size:14px}.notif-matrix td,.notif-matrix .notif-kid{width:52px}}
