:root{--bg: #f2f4f1;--surface: #ffffff;--surface-2: #e9eee9;--ink: #17232a;--muted: #56666d;--line: #d9e0da;--accent: #34548f;--accent-ink: #ffffff;--accent-soft: #eaeef5;--good: #2f6b4f;--good-bg: #e6f0ea;--warn: #7a5a1c;--warn-bg: #f6efdc;--bad: #a1463c;--bad-bg: #f6e7e4;--on-strong: #ffffff;--paper: #ffffff;--fs-fluent: #c5dcb8;--fs-fluent-ink: #233a1a;--fs-slow: #eee0ac;--fs-slow-ink: #4a3d10;--fs-missed: #edc4bd;--fs-missed-ink: #5a2019;--land: #e7e3d6;--water: #d9e8f3;--grid: #c3d6e8;--border-map: #ffffff;--route: #ad3126;--map-ink: #5a4d33;--map-water-ink: #3c6b95;--map-halo: rgba(255, 255, 255, .85);--map-a: #8fb0ee;--map-b: #f1a088;--map-c: #f3d27e;--map-d: #dba6d0;--map-e: #9fd6b8;--brand: #2b3f66;--meter-weak: #d9a89f;--meter-mid: #dcc690;--meter-strong: #9ec3aa;--kid: var(--accent);--radius: 12px;--shadow: 0 1px 2px rgba(23, 35, 42, .06);--font-display: "Bricolage Grotesque", Figtree, system-ui, sans-serif;--font-body: Figtree, system-ui, -apple-system, "Segoe UI", sans-serif;--font-read: Andika, Figtree, system-ui, sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--bg);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f161a;--surface: #162026;--surface-2: #1d2a31;--ink: #e6edee;--muted: #9aabb1;--line: #2a3a41;--accent: #9db3e0;--accent-ink: #0b1633;--accent-soft: #1f2b40;--good: #8ccaa8;--good-bg: #143428;--warn: #dcc08a;--warn-bg: #382a0f;--bad: #e3a59c;--bad-bg: #3c1c18;--on-strong: #0f161a;--fs-fluent: #2e4630;--fs-fluent-ink: #e9f7df;--fs-slow: #4a4224;--fs-slow-ink: #fff6cf;--fs-missed: #4d2d29;--fs-missed-ink: #ffe5e1;--land: #2a3033;--water: #16303f;--grid: #26404f;--border-map: #0f161a;--route: #ff9c90;--map-ink: #e2d6bd;--map-water-ink: #9cc3e4;--map-halo: rgba(15, 22, 26, .85);--brand: #b9c8e6;--meter-weak: #8a5049;--meter-mid: #8a7642;--meter-strong: #4f7a5f;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f161a;--surface: #162026;--surface-2: #1d2a31;--ink: #e6edee;--muted: #9aabb1;--line: #2a3a41;--accent: #9db3e0;--accent-ink: #0b1633;--accent-soft: #1f2b40;--good: #8ccaa8;--good-bg: #143428;--warn: #dcc08a;--warn-bg: #382a0f;--bad: #e3a59c;--bad-bg: #3c1c18;--on-strong: #0f161a;--fs-fluent: #2e4630;--fs-fluent-ink: #e9f7df;--fs-slow: #4a4224;--fs-slow-ink: #fff6cf;--fs-missed: #4d2d29;--fs-missed-ink: #ffe5e1;--land: #2a3033;--water: #16303f;--grid: #26404f;--border-map: #0f161a;--route: #ff9c90;--map-ink: #e2d6bd;--map-water-ink: #9cc3e4;--map-halo: rgba(15, 22, 26, .85);--brand: #b9c8e6;--meter-weak: #8a5049;--meter-mid: #8a7642;--meter-strong: #4f7a5f;--shadow: none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh;font-family:var(--font-body);font-size:16px;color:var(--ink);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.15;font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;text-wrap:balance}h1{font-size:clamp(1.7rem,4vw,2.4rem);letter-spacing:-.025em}h2{font-size:1.3rem}h3{font-size:1.05rem}p{line-height:1.55;margin:0 0 .75em}button,input,select,textarea{font:inherit;color:inherit}button,select,input,label,.map-marker,.map-state{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{user-select:none;-webkit-user-select:none}@media(hover:hover){.btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--ink) 30%,var(--line))}.btn.primary:hover:not(:disabled){filter:brightness(1.07)}.kid-card:hover{border-color:var(--kid)}.choice:hover:not(:disabled){border-color:var(--kid)}.map-state.explore:hover{fill:var(--accent)}.nav-item:hover{background:var(--surface-2)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row{display:flex;align-items:center}.row.between{justify-content:space-between}.row.center{justify-content:center}.row.wrap{flex-wrap:wrap}.gap{gap:.6rem}.gap-lg{gap:1.5rem}.stack{display:grid;gap:1rem}.muted{color:var(--muted)}.small{font-size:.88rem}.eyebrow{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .3em;font-weight:700}.lead{font-size:1.05rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.two-col.wide{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start}.btn{border:1px solid var(--line);background:var(--surface);padding:.55rem 1rem;border-radius:10px;cursor:pointer;font-weight:700;min-height:44px;transition:border-color .15s,filter .15s}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.ghost{background:transparent}.btn.danger{background:var(--bad);color:var(--on-strong);border-color:var(--bad)}.btn.small{padding:.35rem .75rem;min-height:36px;font-size:.88rem}textarea,input,select{border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;background:var(--surface)}textarea{width:100%;resize:vertical;margin-bottom:.8rem;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}.brand{display:inline-flex;align-items:center;gap:.55rem;color:var(--brand)}.brand svg{flex:none;display:block}.brand-words{display:grid;line-height:.95}.brand-name{font-family:var(--font-display);font-weight:800;font-size:1.3rem;letter-spacing:-.03em;color:var(--ink)}.brand-sub{font-family:var(--font-body);font-weight:700;font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brand);margin-top:.12rem}.brand.stacked{flex-direction:column;gap:.7rem;text-align:center}.brand.stacked .brand-name{font-size:2rem}.brand.stacked .brand-sub{font-size:.8rem}.signin{min-height:100vh;display:grid;place-items:center;padding-block:2rem;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.signin-card{width:min(400px,100%);display:grid;gap:1rem;justify-items:stretch;padding:2rem 1.6rem}.signin-card .brand{justify-self:center}.signin-card input{min-height:48px;font-size:1.1rem}.home{max-width:980px;margin:0 auto;padding-block:1.5rem 3rem;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:1.75rem}.home-bar{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap}.home-bar .row{gap:.5rem}.home-hello h1{margin:.15rem 0 .35rem}.motto{font-family:var(--font-display);font-size:1.05rem;color:var(--muted);margin:0}.kid-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem}.kid-slot{--kid-soft: color-mix(in srgb, var(--kid) 14%, var(--surface));display:grid;align-content:start;gap:1rem;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.25rem;box-shadow:var(--shadow)}.kid-top{display:flex;align-items:center;gap:.9rem}.avatar{width:64px;height:64px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:2.1rem;background:var(--kid-soft)}.avatar.sm{width:40px;height:40px;font-size:1.3rem}.kid-name{font-family:var(--font-display);font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.05}.kid-meta{color:var(--muted);font-size:.95rem}.star-count{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;background:var(--surface-2);border-radius:999px;padding:.25rem .7rem;white-space:nowrap}.kid-actions{display:grid;gap:.5rem}.kid-card{display:flex;justify-content:space-between;align-items:center;gap:.8rem;width:100%;padding:.95rem 1.1rem;min-height:60px;border-radius:12px;border:1px solid var(--kid);background:var(--kid);color:var(--on-strong);font-weight:700;font-size:1.1rem;cursor:pointer;text-align:left}.kid-card .kid-meta{color:inherit;opacity:.85;font-weight:400;font-size:.92rem}.drill-card-btn{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;width:100%;padding:.85rem 1.1rem;min-height:56px;border-radius:12px;border:1px solid var(--line);background:var(--kid-soft);font:inherit;font-weight:700;font-size:1.05rem;color:var(--ink);cursor:pointer;text-align:left;touch-action:manipulation}.drill-card-btn .kid-meta{font-weight:400;font-size:.92rem}.done-note{font-size:.88rem;color:var(--good);font-weight:700}.drill-progress{flex:1;height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:0 .8rem}.drill-progress span{display:block;height:100%;background:var(--kid);transition:width .3s}.drill-card{display:grid;justify-items:center;gap:1rem}.drill-card>.eyebrow{justify-self:start}.drill-problem{font-family:var(--font-display);font-size:clamp(2.8rem,10vw,4.5rem);font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums}.drill-answer{display:inline-block;min-width:1.4em;text-align:center;color:var(--muted)}.drill-answer.shown{color:var(--bad)}.drill-card.right .drill-answer{color:var(--good)}.drill-card.right{border-color:var(--good);background:var(--good-bg)}.drill-timer{width:min(320px,100%);height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.drill-timer span{display:block;height:100%;background:var(--muted);opacity:.45;transform-origin:left;animation:drain linear forwards}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.drill-timer span{animation-timing-function:steps(6)}}.badge{background:var(--good-bg);color:var(--good);border-radius:999px;padding:.2rem .7rem;font-size:.85rem}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#14182073;display:grid;place-items:center;padding:16px;z-index:20}.modal{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.5rem;display:grid;gap:.8rem;width:min(360px,100%)}.modal label{display:grid;gap:.4rem}.practice{max-width:760px;margin:0 auto;padding-block:1rem 3rem;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:1rem}.practice.empty{text-align:center;padding-top:4rem}.practice-top{display:flex;align-items:center;gap:.8rem;justify-content:space-between}.progress{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;flex:1}.dot{width:12px;height:12px;border-radius:50%;background:var(--line)}.dot.done{background:var(--kid)}.dot.now{background:var(--surface);border:3px solid var(--kid)}.kid-chip{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;white-space:nowrap}.question{display:grid;gap:1rem}.prompt{font-family:var(--font-read);font-size:1.7rem;font-weight:700;text-align:center;margin:.3rem 0}.prompt.big{font-size:2.1rem}.visual{display:flex;justify-content:center;min-height:60px;overflow-x:auto;padding:.3rem 0}.big-emoji{font-size:4.5rem;text-align:center}.read-word{font-family:var(--font-read);font-size:4.5rem;font-weight:700;letter-spacing:.08em}.passage{font-family:var(--font-read);font-size:1.3rem;line-height:1.7;background:var(--surface-2);border-radius:12px;padding:1rem 1.2rem;margin:0}.state-quiz{width:100%;max-width:520px}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.choice{border:2px solid var(--line);background:var(--surface);border-radius:12px;padding:1rem;font-size:1.3rem;cursor:pointer;min-height:64px;font-family:var(--font-read)}.choices.emoji .choice{font-size:3rem;padding:.6rem}.choices.word .choice{font-size:1.8rem}.choices.plain .choice{font-size:1.8rem;font-weight:700}.choices.text .choice{font-size:1.1rem;text-align:left}.choice.right{border-color:var(--good);background:var(--good-bg)}.choice.wrong{border-color:var(--bad);background:var(--bad-bg)}.choice:disabled{cursor:default}.feedback{text-align:center;font-weight:600;font-size:1.15rem;margin:0;padding:.6rem;border-radius:12px}.feedback.right{background:var(--good-bg);color:var(--good)}.feedback.retry{background:var(--warn-bg);color:var(--warn)}.feedback.shown{background:var(--surface-2)}.question-foot{border-top:1px solid var(--line);padding-top:.8rem}.help-btn{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.keypad-wrap{display:grid;justify-items:center;gap:.8rem}.answer-input{font-family:var(--font-display);font-size:2.4rem;width:8ch;min-height:1.6em;text-align:center;font-weight:700;border:2px solid var(--line);border-radius:12px;padding:.3rem;background:var(--surface)}.keypad{display:grid;grid-template-columns:repeat(3,72px);gap:.5rem}.key{height:60px;font-size:1.5rem;font-family:var(--font-display);font-weight:700;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer}.key-go{grid-column:3;grid-row:4;background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-size:1rem}.trace{display:grid;gap:.5rem;justify-items:end}.trace-canvas{width:100%;height:240px;border:2px solid var(--line);border-radius:12px;background:var(--paper);touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.help-panel{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--radius);padding:1.2rem;display:grid;gap:.8rem}.help-panel h3{margin:0}.help-steps{margin:0;padding-left:1.3rem;display:grid;gap:.4rem;font-size:1.1rem;line-height:1.5}.letter-tiles{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.letter-tile{font-family:var(--font-read);font-size:2rem;width:64px;height:64px;border-radius:12px;border:2px solid var(--line);background:var(--surface);cursor:pointer}.math-help{display:grid;gap:.8rem;background:var(--surface);border-radius:10px;padding:1rem}.math-help-stage{display:flex;gap:1rem;align-items:flex-end;justify-content:center;flex-wrap:wrap;min-height:120px}.math-help-group{display:flex;align-items:flex-end;gap:1rem}.math-help-text{font-size:1.1rem;margin:0}.math-sign{font-family:var(--font-display);font-size:2.2rem;font-weight:700;align-self:center}.tower-group{display:grid;justify-items:center;gap:.3rem}.tower-row{display:flex;align-items:flex-end;gap:4px}.tower{margin:0}.mus{margin:0;display:grid;justify-items:center;gap:.3rem;max-width:100%}.mus svg{max-width:100%;height:auto}.mus-number,.mus-stack{display:grid;justify-items:start;gap:.5rem;max-width:100%}.tower-label{font-weight:600;font-size:.95rem;color:var(--muted)}.group-ring{border:2px dashed var(--line);border-radius:14px;padding:.5rem .7rem}.summary{text-align:center;display:grid;gap:.6rem;justify-items:center}.score{font-size:1.2rem;font-weight:600}.parent{min-height:100vh}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}.parent-head{background:var(--surface);border-bottom:1px solid var(--line);padding-block:.75rem 0;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));position:sticky;top:env(safe-area-inset-top,0px);z-index:5}.parent-head-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;max-width:1240px;margin:0 auto .6rem}.parent-head-row .brand{margin-right:auto}.tabs{display:flex;gap:.15rem;overflow-x:auto;max-width:1240px;margin:0 auto;scrollbar-width:none}.tab{border:none;background:none;padding:.65rem .8rem;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;color:var(--muted);font-weight:700;font-size:.95rem}.tab.active{color:var(--ink);border-color:var(--ink)}.parent-layout{max-width:1240px;margin:0 auto;padding-block:1.25rem 4rem;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:1.5rem}.parent-body{min-width:0}.side-nav{display:none}.nav-group{display:grid;gap:.1rem}.nav-group+.nav-group{margin-top:1.1rem}.nav-item{display:flex;align-items:center;gap:.6rem;border:none;background:none;text-align:left;padding:.55rem .7rem;border-radius:8px;color:var(--muted);font-weight:700;cursor:pointer;min-height:40px}.nav-item.active{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}@media(min-width:960px){.parent-layout{grid-template-columns:210px minmax(0,1fr)}.side-nav{display:block;position:sticky;top:calc(env(safe-area-inset-top,0px) + 5rem);align-self:start}.parent-head .tabs{display:none}.parent-head{padding-bottom:.1rem}}.understood{border-top:1px solid var(--line);padding:.9rem 0}.chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.chip{display:inline-flex;align-items:stretch;border-radius:999px;border:1px solid var(--line);overflow:hidden}.chip button{border:none;background:none;cursor:pointer;padding:.35rem .7rem}.chip-x{border-left:1px solid color-mix(in srgb,currentColor 15%,transparent)!important}.chip.struggling{background:var(--bad-bg);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 30%,transparent)}.chip.practiced{background:var(--surface-2)}.chip.strong{background:var(--good-bg);color:var(--good);border-color:color-mix(in srgb,var(--good) 30%,transparent)}.chip em{font-style:normal;font-weight:600}.add-skill{border-radius:999px;padding:.35rem .7rem;font-size:.9rem}.missed{background:var(--warn-bg);border-radius:12px;padding:.8rem 1rem;margin:.8rem 0}.missed ul{margin:.4rem 0}.tomorrow{border-top:1px solid var(--line);padding-top:1rem}.plan-list{list-style:none;padding:0;margin:0;display:grid;gap:.35rem}.tag{font-size:.72rem;font-weight:700;letter-spacing:.02em;border-radius:999px;padding:.12rem .5rem;background:var(--surface-2);color:var(--muted)}.tag.focus{background:var(--bad-bg);color:var(--bad)}.tag.building{background:var(--warn-bg);color:var(--warn)}.tag.review{background:var(--good-bg);color:var(--good)}.note{border-top:1px solid var(--line);padding-top:.8rem;margin-top:.8rem}.kid-head{display:flex;gap:.8rem;align-items:center;border-bottom:1px solid var(--line);padding-bottom:.7rem;margin-bottom:.8rem}.kid-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.8rem}.stats div{border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;display:grid}.stats strong{font-family:var(--font-display);font-size:1.5rem;font-variant-numeric:tabular-nums}.stats span{font-size:.8rem;color:var(--muted)}.focus-box{background:var(--surface-2);border-radius:10px;padding:.6rem .8rem;margin-bottom:.8rem;font-size:.95rem}.subject{margin:.9rem 0}.meter-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(60px,1fr) 96px;gap:.6rem;align-items:center;padding:.25rem 0;font-size:.92rem}.meter{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.meter-fill{display:block;height:100%;border-radius:999px}.meter-fill.weak{background:var(--meter-weak)}.meter-fill.mid{background:var(--meter-mid)}.meter-fill.strong{background:var(--meter-strong)}.meter-tag{font-size:.78rem;font-weight:600;text-align:right}.meter-tag.weak{color:var(--bad)}.meter-tag.mid{color:var(--warn)}.meter-tag.strong{color:var(--good)}.sessions{width:100%;border-collapse:collapse;font-size:.9rem}.sessions th,.sessions td{text-align:left;padding:.35rem .3rem;border-bottom:1px solid var(--line)}.sessions th{color:var(--muted);font-weight:500}.topic-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.topic-tab{border:1px solid var(--line);background:var(--surface);padding:.5rem .9rem;border-radius:999px;cursor:pointer}.topic-tab.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pack{display:grid;gap:1.2rem}.stack>*,.pack>*,.pack-grid>*,.two-col>*{min-width:0}.pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;align-items:start}.points{padding-left:1.2rem;margin:0 0 .8rem;display:grid;gap:.45rem;line-height:1.5}.timeline{list-style:none;padding:0;margin:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:.6rem;overflow-x:auto;padding-bottom:.4rem}.timeline li{border-top:2px solid var(--accent);background:var(--surface-2);border-radius:0 0 10px 10px;padding:.6rem;display:grid;gap:.2rem;font-size:.92rem}.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}.person{display:flex;gap:.6rem;background:var(--surface-2);border-radius:12px;padding:.7rem}.person p{margin:.2rem 0 0}.person-emoji{font-size:1.8rem}.add-quiz{background:var(--surface-2);border-radius:12px;padding:1rem}.map svg{width:100%;height:auto;display:block}.map-state.explore,.map-marker{cursor:pointer}.map-marker-label{font-size:15px;font-weight:600;paint-order:stroke;stroke:var(--map-halo);stroke-width:4px;fill:var(--ink)}.map-label{font-size:18px;font-weight:700;fill:var(--map-ink);paint-order:stroke;stroke:var(--map-halo);stroke-width:3px}.map-label.ocean{fill:var(--map-water-ink);font-style:italic;font-weight:500}.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:0;margin:.5rem 0;font-size:.88rem}.swatch{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px}.map-caption{font-size:.92rem;color:var(--muted);margin:.3rem 0 0}.walk{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;padding-top:max(1rem,env(safe-area-inset-top,0px))!important;padding-bottom:max(1rem,env(safe-area-inset-bottom,0px))!important;background:var(--bg);z-index:30;display:grid;grid-template-rows:auto 1fr auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:1rem}.walk-slide{max-width:820px;margin:0 auto;width:100%;text-align:center;overflow-y:auto;display:grid;align-content:safe center;gap:.6rem}.walk-slide .map{max-width:620px;margin:0 auto;width:100%}.walk-emoji{font-size:5rem}.walk-slide h2{font-size:2.2rem}.walk-slide p{font-family:var(--font-read);font-size:1.5rem;line-height:1.6;max-width:60ch;margin-inline:auto}.walk footer{max-width:820px;margin:0 auto;width:100%}.reader{display:grid;gap:.5rem}.slider{display:grid;gap:.3rem}.option{display:grid;gap:.5rem;border:2px solid var(--line);border-radius:14px;padding:1rem;cursor:pointer}.option.active{border-color:var(--accent)}.option.inline{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem .9rem;border-width:1px;border-radius:10px;min-height:44px}.option.inline.active{box-shadow:inset 0 0 0 1px var(--accent)}.option .row{flex-wrap:wrap;align-items:flex-end}.field{display:grid;gap:.35rem;margin-bottom:.6rem;min-width:0}.field select{font:inherit;font-size:1rem;padding:.55rem .6rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);width:100%;min-width:0;min-height:44px}.sync-chip{font-size:.82rem;font-weight:700;padding:.3rem .7rem;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.sync-chip.synced{background:var(--good-bg);color:var(--good)}.sync-chip.offline,.sync-chip.no-access{background:var(--warn-bg);color:var(--warn)}.goals{display:grid;gap:1.1rem;margin-top:.6rem}.goal .meter{height:8px;margin:.45rem 0 .3rem}.goal .meter span{display:block;height:100%;border-radius:999px;background:var(--accent)}.goal p{margin:0}.log-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem 1rem;align-items:end;margin-bottom:.8rem}.log-form .field{margin:0}.log-form input:not([type=checkbox]),.log-form select{width:100%;min-height:44px;min-width:0}.log-form .minutes-input{width:5.5rem}.pill{min-height:44px;min-width:52px;padding:0 .9rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:700;touch-action:manipulation}.pill.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.check{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;cursor:pointer}.check input{width:22px;height:22px;accent-color:var(--accent)}.day-log h3{font-size:1rem;margin:.8rem 0 .3rem}.day-log ul{list-style:none;margin:0;padding:0}.day-log li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.2rem 0;border-bottom:1px solid var(--line)}.table-wrap{overflow-x:auto;margin-bottom:.8rem}.month-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.month-table th,.month-table td{text-align:right;padding:.45rem .6rem;border-bottom:1px solid var(--line)}.month-table th:first-child,.month-table td:first-child{text-align:left}.month-table tr.empty td{color:var(--muted)}.month-table tr.sum td{font-weight:700;border-top:2px solid var(--ink)}.subject-list{display:flex;flex-wrap:wrap;gap:0 1.2rem;margin-bottom:.6rem}.hour-drafts{display:grid;gap:.4rem;margin-bottom:.5rem}.hour-draft{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;padding:.3rem 0;border-bottom:1px solid var(--line)}.hour-draft select{min-height:44px}.hour-draft .minutes{display:inline-flex;align-items:center;gap:.35rem}.hour-draft .minutes input{width:5rem;min-height:44px}.fact-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.3rem}.fact-grid{display:grid;grid-template-columns:repeat(10,minmax(38px,1fr));gap:3px;min-width:400px}.fact-cell{display:grid;place-items:center;padding:.5rem 0;border-radius:6px;font-size:.85rem;font-variant-numeric:tabular-nums;border:1px solid transparent;white-space:nowrap}.fact-cell.fs-fluent{background:var(--fs-fluent);color:var(--fs-fluent-ink)}.fact-cell.fs-slow{background:var(--fs-slow);color:var(--fs-slow-ink)}.fact-cell.fs-missed{background:var(--fs-missed);color:var(--fs-missed-ink)}.fact-cell.fs-new{background:var(--surface);border-color:var(--line);color:var(--ink)}.fact-cell.fs-locked{background:var(--surface-2);color:var(--muted);opacity:.55}.fact-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:.8rem;font-size:.9rem}.fact-legend span{display:inline-flex;align-items:center;gap:.35rem}.fact-legend i.fact-cell{width:1.1rem;height:1.1rem;padding:0}.option .tower-label{font-size:.75rem}.kid-edit{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line)}.kid-edit input[type=number]{width:4.5rem}@media(max-width:520px){.fact-grid{min-width:0;grid-template-columns:repeat(10,minmax(0,1fr));gap:2px}.fact-grid .fact-cell{font-size:.66rem;letter-spacing:-.03em;padding:.5rem 0;border-radius:4px}.choices{grid-template-columns:1fr 1fr}.choices.text{grid-template-columns:1fr}.prompt{font-size:1.4rem}.keypad{grid-template-columns:repeat(3,64px)}.meter-row{grid-template-columns:1fr 80px}.meter-row .meter{grid-column:1 / -1;grid-row:2}.home-head{flex-direction:column}}.walk-slide .map-caption{font-family:Lexend,sans-serif;font-size:1rem}@media(pointer:coarse){.btn.small{min-height:44px;padding:.5rem .9rem}.chip button{padding:.6rem .8rem;min-height:44px}.chip-x{min-width:44px}.add-skill,.topic-tab,.tab{min-height:44px}input[type=range]{height:36px}}.today-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem;align-items:start}.today-group{display:grid;gap:.6rem}.today-group h3{margin:0}.todos{list-style:none;margin:0;padding:0;display:grid}.todos.other{opacity:.85}.todo{display:flex;align-items:center;gap:.5rem;border-top:1px solid var(--line)}.todo-main{flex:1;min-width:0;display:flex;align-items:center;gap:.75rem;border:none;background:none;padding:.65rem 0;text-align:left;cursor:pointer;min-height:52px}.todo-box{width:24px;height:24px;flex:none;border-radius:7px;border:1.5px solid color-mix(in srgb,var(--ink) 35%,var(--line));display:grid;place-items:center;font-size:.85rem;font-weight:800;color:var(--on-strong)}.todo.done .todo-box{background:var(--kid);border-color:var(--kid)}.todo.done .todo-text strong{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent)}.todo-text{display:grid;min-width:0}.todo-mins{display:inline-flex;align-items:center;gap:.25rem;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.92rem;white-space:nowrap}.step{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:700}.star-btn{justify-self:start}.week-list,.verse-list,.star-history,.prizes{list-style:none;margin:0;padding:0;display:grid}.week-list li,.verse-list li,.star-history li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem 0;border-top:1px solid var(--line);flex-wrap:wrap}.lesson-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:.8rem 1.2rem}.lesson-field input{width:5.5rem;min-height:44px}.prizes{gap:.8rem}.prize .meter{margin-top:.35rem}.prize.ready .small{color:var(--good);font-weight:700}.prize-edit{display:grid;gap:.5rem;margin-bottom:.8rem}.prize-edit input:not([type=number]){flex:1;min-width:0}.prize-edit .minutes input{width:5rem}.treasure-title{font-size:1.4rem;margin:0}.treasure-card{display:grid;gap:.8rem;justify-items:stretch;text-align:left}.treasure-card .big-emoji{font-size:2.6rem;text-align:left}.family-code ul{margin:0;padding-left:1.1rem;columns:2 12rem;line-height:1.7}.verse{margin:0;padding:1rem 1.1rem;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0}.verse+.verse{margin-top:.7rem}.verse p{font-family:var(--font-read);font-size:1.3rem;line-height:1.6;margin:0 0 .4rem;max-width:60ch}.verse footer{font-weight:700}.warmup{text-align:center;display:grid;gap:1rem;justify-items:center}.warmup ol{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;width:min(420px,100%)}.warmup li{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;font-size:1.2rem;font-family:var(--font-read);text-align:left}.warmup li span{font-size:1.8rem}.icon-btn{display:inline-flex;align-items:center;gap:.4rem}.listen-btn{display:inline-flex;align-items:center;gap:.7rem;padding:.9rem 1.5rem;min-height:64px;border-radius:999px;border:1px solid color-mix(in srgb,var(--kid) 40%,var(--line));background:color-mix(in srgb,var(--kid) 12%,var(--surface));color:var(--ink);font-weight:700;font-size:1.15rem;cursor:pointer}.voice-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.voice-row select{flex:1;min-width:min(100%,240px);min-height:44px}.quality{font-size:.72rem;font-weight:700;border-radius:999px;padding:.12rem .5rem;background:var(--surface-2);color:var(--muted)}.quality.natural{background:var(--good-bg);color:var(--good)}
