:root{--color-bg:#fff6e5;--color-bg-deep:#ffe7b8;--color-surface:#fff;--color-surface-soft:#fffaf0;--color-line:#f1e2c4;--color-text:#3b2a1a;--color-muted:#7a6650;--color-primary:#ffbe2e;--color-primary-strong:#e08a00;--color-primary-soft:#fff1cc;--color-primary-ink:#4a2c00;--color-correct:#2fb36b;--color-correct-soft:#dff6e8;--color-try-again:#ff7a45;--color-try-again-soft:#ffe8dc;--color-focus:#1f6feb;--color-math:#4c8dff;--color-math-soft:#e5efff;--color-english:#ff5d9e;--color-english-soft:#ffe6f0;--color-it:#14b8a6;--color-it-soft:#dcf7f3;--radius:24px;--radius-small:14px;--stem-size:30px;--font-child:"Nunito", system-ui, sans-serif;--font-parent:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--shadow:0 10px 30px #7a52141f;--shadow-small:0 4px 12px #7a52141a;--press-edge:0 6px 0}.theme-calm{--color-bg:#f2f6f8;--color-bg-deep:#dcebf0;--color-line:#dde6ea;--color-primary:#2bb3b1;--color-primary-strong:#13807e;--color-primary-soft:#dff4f3;--color-primary-ink:#fff;--radius:16px;--stem-size:24px}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-child);-webkit-font-smoothing:antialiased;margin:0}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.child-screen{background:radial-gradient(circle at 8% 12%, #ffbe2e38 0 120px, transparent 121px), radial-gradient(circle at 92% 18%, #ff5d9e1f 0 90px, transparent 91px), radial-gradient(circle at 88% 88%, #4c8dff29 0 140px, transparent 141px), radial-gradient(circle at 6% 92%, #14b8a61f 0 100px, transparent 101px), var(--color-bg);min-height:100vh;padding:24px 16px 48px;position:relative;overflow-x:hidden}.child-screen--center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.child-title{letter-spacing:-.01em;margin:0;font-size:clamp(28px,5vw,38px);font-weight:900}.child-lead{color:var(--color-muted);max-width:36ch;margin:0;font-size:clamp(18px,3vw,22px)}.corner-link{color:var(--color-muted);font-family:var(--font-parent);box-shadow:var(--shadow-small);background:#ffffffb3;border-radius:999px;padding:8px 14px;font-size:14px;text-decoration:none;position:absolute;top:16px;right:16px}.corner-link:hover{color:var(--color-text)}.big-button,.pin-key,.avatar-choice{font:inherit;cursor:pointer;border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);border:none;transition:transform .12s,box-shadow .12s}.big-button{background:var(--color-primary);color:var(--color-primary-ink);box-shadow:var(--press-edge) var(--color-primary-strong);padding:16px 44px;font-size:24px;font-weight:900}.big-button:hover:not(:disabled){box-shadow:0 8px 0 var(--color-primary-strong);transform:translateY(-2px)}.big-button:active:not(:disabled){box-shadow:0 2px 0 var(--color-primary-strong);transform:translateY(4px)}.big-button--quiet{background:var(--color-surface);color:var(--color-text);box-shadow:var(--press-edge) var(--color-line)}.big-button--quiet:hover:not(:disabled){box-shadow:0 8px 0 var(--color-line)}.big-button--quiet:active:not(:disabled){box-shadow:0 2px 0 var(--color-line)}.big-button:disabled{opacity:.45;cursor:not-allowed}.text-button{font:inherit;color:var(--color-muted);text-underline-offset:4px;cursor:pointer;background:0 0;border:none;font-size:17px;font-weight:700;text-decoration:underline}.avatar-picker{flex-wrap:wrap;justify-content:center;gap:20px;margin:0;padding:0;list-style:none;display:flex}.avatar-choice{min-width:170px;box-shadow:var(--press-edge) var(--color-line), var(--shadow);flex-direction:column;align-items:center;gap:10px;padding:28px 24px 22px;font-size:24px;font-weight:800;display:flex}.avatar-choice:hover{transform:translateY(-4px)rotate(-1deg)}.avatar-choice:active{box-shadow:0 2px 0 var(--color-line);transform:translateY(3px)}.avatar{place-items:center;line-height:1;display:inline-grid}.avatar--large{background:var(--color-primary-soft);border-radius:50%;width:104px;height:104px;font-size:64px}.avatar--small{font-size:28px}.pin-pad{flex-direction:column;align-items:center;gap:24px;display:flex}.pin-dots{gap:16px;display:flex}.pin-dots--shake{animation:.4s shake}.pin-dot{border:3px solid var(--color-primary-strong);border-radius:50%;width:22px;height:22px;transition:transform .15s,background .15s}.pin-dot--filled{background:var(--color-primary-strong);transform:scale(1.15)}.pin-keys{grid-template-columns:repeat(3,84px);gap:14px;display:grid}.pin-key{height:84px;box-shadow:var(--press-edge) var(--color-line);font-size:34px;font-weight:900}.pin-key:active:not(:disabled){box-shadow:0 2px 0 var(--color-line);transform:translateY(4px)}.pin-key:disabled{opacity:.5;cursor:not-allowed}.pin-key--delete{background:var(--color-primary-soft)}.pin-keys .pin-key:nth-child(10){grid-column:2}.mascot{overflow:visible}.mascot-shadow{fill:#7a521424}.mascot-feet{fill:none;stroke:#ff9a1f;stroke-width:4px;stroke-linecap:round}.mascot-comb{fill:#ff6b4a}.mascot-belly{fill:#fff6d2;opacity:.85}.mascot-wing{fill:#f5a800}.mascot-beak{fill:#ff9a1f}.mascot-cheek{fill:#ff8fa8;opacity:.7}.mascot-eyes{fill:#3b2a1a}.mascot-line{fill:none;stroke:#3b2a1a;stroke-width:4px;stroke-linecap:round}.mascot-glint{fill:#fff}.mascot--idle,.mascot--think{animation:3s ease-in-out infinite bob}.mascot--wave .mascot-wing--right{transform-origin:96px 66px;animation:1.2s ease-in-out infinite wave}.mascot--cheer{animation:.9s ease-in-out infinite hop}.theme-calm .mascot-body{filter:saturate(.85)}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes wave{50%{transform:rotate(-14deg)}}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-10px)}}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}.subject--math{--subject:var(--color-math);--subject-soft:var(--color-math-soft)}.subject--english{--subject:var(--color-english);--subject-soft:var(--color-english-soft)}.subject--it{--subject:var(--color-it);--subject-soft:var(--color-it-soft)}.subject-badge{background:var(--subject-soft);color:var(--color-text);box-shadow:inset 0 0 0 2px var(--subject);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-weight:800;display:inline-flex}.child-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:960px;margin:0 auto 8px;display:flex}.who-chip{background:var(--color-surface);box-shadow:var(--shadow-small);border-radius:999px;align-items:center;gap:8px;padding:6px 16px 6px 8px;font-size:18px;font-weight:800;display:inline-flex}.ticket-chip{font:inherit;background:var(--color-surface);box-shadow:var(--shadow-small);color:var(--color-text);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:12px;padding:10px 18px;font-size:18px;font-weight:800;transition:transform .12s;display:inline-flex}.ticket-chip:hover{transform:translateY(-2px)}.ticket-chip-streak{border-left:2px solid var(--color-line);padding-left:12px}.today-layout{flex-direction:column;align-items:center;gap:24px;max-width:760px;margin:0 auto;padding-top:16px;display:flex}.hero{align-items:center;gap:12px;width:100%;display:flex}.hero .mascot{flex-shrink:0}.speech{border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);flex-direction:column;flex:1;gap:8px;padding:24px 28px;display:flex;position:relative}.speech:before{content:"";border:14px solid #0000;border-left:0;border-right-color:var(--color-surface);position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.speech .child-lead{max-width:none}.today-card{border-radius:var(--radius);background:var(--color-surface);width:100%;box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:20px;padding:28px;display:flex}.subject-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;width:100%;margin:0;padding:0;list-style:none;display:grid}.subject-card{border-radius:var(--radius-small);background:var(--subject-soft);border-bottom:6px solid var(--subject);flex-direction:column;align-items:center;gap:4px;padding:18px 12px;display:flex}.subject-card-icon{font-size:40px}.subject-card-name{font-size:20px;font-weight:900}.subject-card-count{color:var(--color-muted);font-size:17px;font-weight:700}.today-minutes{color:var(--color-muted);margin:0;font-size:19px;font-weight:700}.doing-screen{flex-direction:column;align-items:center;gap:24px;display:flex}.doing-header{flex-direction:column;gap:14px;width:min(880px,100%);font-size:19px;font-weight:800;display:flex}.doing-header-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.doing-count{white-space:nowrap;flex:1}.work-clock{background:var(--color-surface);color:var(--color-muted);box-shadow:var(--shadow-small);border-radius:999px;padding:6px 14px;font-weight:700}.work-clock--over{background:var(--color-try-again-soft);color:#b2461b}.progress-dots{gap:6px;margin:0;padding:0;list-style:none;display:flex}.progress-dots li{background:var(--color-line);border-radius:999px;flex:1;height:12px;transition:background .2s}.progress-dots .progress-dot--done{background:var(--color-correct)}.progress-dots .progress-dot--current{background:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.question-card{border-radius:var(--radius);border-top:10px solid var(--subject,var(--color-primary));background:var(--color-surface);width:min(880px,100%);box-shadow:var(--shadow);padding:32px}.question-instruction{color:var(--color-muted);margin:0 0 10px;font-size:19px;font-weight:700}.question-stem{font-size:var(--stem-size);white-space:pre-line;margin:0 0 28px;font-weight:900;line-height:1.4}.speak-button{background:var(--color-primary-soft);vertical-align:middle;cursor:pointer;border:none;border-radius:50%;place-items:center;width:40px;height:40px;font-size:20px;display:inline-grid}.speak-button:hover{background:var(--color-primary)}.choices{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.choices--two{grid-template-columns:repeat(2,1fr)}.choice{min-height:76px;font:inherit;text-align:left;color:var(--color-text);border:3px solid var(--color-line);border-radius:var(--radius-small);background:var(--color-surface-soft);box-shadow:0 4px 0 var(--color-line);cursor:pointer;align-items:center;gap:14px;padding:12px 20px;font-size:24px;font-weight:800;transition:transform .12s,border-color .12s,background .12s;display:flex}.choice:hover{border-color:var(--subject,var(--color-primary));transform:translateY(-2px)}.choice:active{box-shadow:0 2px 0 var(--color-line);transform:translateY(2px)}.choice--picked{border-color:var(--subject,var(--color-primary-strong));background:var(--subject-soft,var(--color-primary-soft));box-shadow:0 4px 0 var(--subject,var(--color-primary-strong))}.choice-key{background:var(--color-surface);width:36px;height:36px;box-shadow:inset 0 0 0 2px var(--color-line);border-radius:50%;flex-shrink:0;place-items:center;font-size:18px;display:inline-grid}.choice--picked .choice-key{background:var(--subject,var(--color-primary));color:#fff;box-shadow:none}.typed-answer{align-items:center;gap:12px;display:flex}.typed-input{min-width:0;font:inherit;color:var(--color-text);border:3px solid var(--color-line);border-radius:var(--radius-small);background:var(--color-surface-soft);flex:0 460px;padding:16px 20px;font-size:28px;font-weight:800}.typed-input:focus{border-color:var(--subject,var(--color-primary-strong));background:var(--color-surface);outline:none}.typed-input::placeholder{color:#c4b398;font-weight:700}.typed-unit{font-size:24px;font-weight:800}.doing-nav{justify-content:space-between;gap:16px;width:min(880px,100%);display:flex}.confirm-box{border-radius:var(--radius);background:var(--color-surface);width:min(880px,100%);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 24px;padding:24px;display:flex}.confirm-box .child-lead{color:var(--color-text);flex-basis:100%;font-weight:800}.sentence-builder{flex-direction:column;gap:18px;width:100%;display:flex}.sentence-line{border:3px dashed var(--subject,var(--color-primary));border-radius:var(--radius-small);background:var(--subject-soft,var(--color-surface));flex-wrap:wrap;align-items:center;gap:8px;min-height:72px;padding:12px;display:flex}.sentence-hint{color:var(--color-muted);font-size:18px;font-weight:700}.tile-pool{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tile{font:inherit;background:var(--color-primary);color:var(--color-primary-ink);box-shadow:0 4px 0 var(--color-primary-strong);cursor:pointer;border:none;border-radius:14px;padding:10px 18px;font-size:24px;font-weight:800;transition:transform .12s}.tile:hover{transform:translateY(-2px)}.tile:active{box-shadow:0 1px 0 var(--color-primary-strong);transform:translateY(3px)}.tile--placed{background:var(--color-surface);color:var(--color-text);box-shadow:0 4px 0 var(--color-line)}.result-screen{flex-direction:column;align-items:center;gap:24px;display:flex}.result-hero{border-radius:var(--radius);background:linear-gradient(180deg, var(--color-primary-soft), var(--color-surface) 60%);width:min(880px,100%);box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;display:flex}.stars{gap:8px;margin:0;font-size:52px;display:flex}.star{filter:grayscale();opacity:.25}.star--on{filter:none;opacity:1;animation:.5s ease-out both pop}.star--on:nth-child(2){animation-delay:.15s}.star--on:nth-child(3){animation-delay:.3s}.score-ring{background:conic-gradient(var(--color-correct) calc(var(--score) * 1%), var(--color-line) 0);border-radius:50%;place-items:center;width:150px;height:150px;margin:4px 0;display:grid}.score-ring span{background:var(--color-surface);border-radius:50%;place-items:center;width:118px;height:118px;padding:8px;font-size:22px;font-weight:900;line-height:1.2;display:grid}.result-list{flex-direction:column;gap:14px;width:min(880px,100%);margin:0;padding:0;list-style:none;display:flex}.result-item{border-radius:var(--radius-small);background:var(--color-surface);box-shadow:var(--shadow-small);padding:20px 24px;font-size:19px}.result-item p{margin:6px 0}.result-item--correct{border-left:8px solid var(--color-correct)}.result-item--retry{border-left:8px solid var(--color-try-again)}.result-verdict{font-weight:900}.result-item--correct .result-verdict{color:#1d7d48}.result-item--retry .result-verdict{color:#b2461b}.result-stem{font-size:22px;font-weight:800}.result-explanation{background:var(--color-surface-soft);color:var(--color-muted);border-radius:12px;padding:10px 14px}.tickets-screen{gap:18px}.ticket-stub{border-radius:var(--radius-small);background:linear-gradient(135deg, #ffd25e, var(--color-primary));color:var(--color-primary-ink);box-shadow:var(--shadow);text-align:left;align-items:center;gap:20px;padding:22px 32px;display:flex;position:relative}.ticket-stub:before,.ticket-stub:after{content:"";background:var(--color-bg);border-radius:50%;width:26px;height:26px;position:absolute;top:50%;transform:translateY(-50%)}.ticket-stub:before{left:-13px}.ticket-stub:after{right:-13px}.ticket-stub-icon{border-right:3px dashed #4a2c004d;padding-right:20px;font-size:48px}.ticket-balance{margin:0;font-size:30px;font-weight:900}.ticket-each{opacity:.8;margin:4px 0 0;font-size:17px;font-weight:700}.streak-pill{background:var(--color-try-again-soft);border-radius:999px;margin:0;padding:8px 18px;font-size:18px;font-weight:800}.ticket-countdown{border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);flex-direction:column;align-items:center;padding:20px 36px;display:flex}.countdown{font-variant-numeric:tabular-nums;color:var(--color-primary-strong);margin:0;font-size:64px;font-weight:900}.ticket-history{border-radius:var(--radius);background:var(--color-surface);width:min(560px,100%);box-shadow:var(--shadow-small);text-align:left;padding:18px 22px}.ticket-history h2{margin:0 0 10px;font-size:20px}.ticket-history ul{flex-direction:column;margin:0;padding:0;font-size:17px;list-style:none;display:flex}.ticket-history li{border-bottom:1px dashed var(--color-line);padding:8px 0}.ticket-history li:last-child{border-bottom:none}.ticket-plus{color:#1d7d48;font-weight:900}.ticket-minus{color:var(--color-muted);font-weight:900}.earned-tickets{border-radius:var(--radius-small);background:var(--color-surface);box-shadow:var(--shadow-small);padding:14px 22px}.earned-tickets .ticket-balance{font-size:22px}.earned-tickets ul{color:var(--color-muted);text-align:center;margin:6px 0 0;padding:0;font-size:17px;list-style:none}@media (width<=600px){.hero{text-align:center;flex-direction:column}.speech:before{border:14px solid #0000;border-top:0;border-bottom-color:var(--color-surface);top:-14px;left:50%;transform:translate(-50%)}.question-card{padding:22px 18px}.today-card{padding:20px 16px}.pin-keys{grid-template-columns:repeat(3,76px)}.pin-key{height:76px}.big-button{padding:14px 28px;font-size:21px}}.matching{flex-direction:column;gap:14px;display:flex}.matching-columns{grid-template-columns:1fr 1fr;gap:14px 28px;display:grid}.matching-column{flex-direction:column;gap:12px;display:flex}.match-card{min-height:60px;font:inherit;text-align:left;color:var(--color-text);border:3px solid var(--color-line);border-radius:var(--radius-small);background:var(--color-surface-soft);box-shadow:0 4px 0 var(--color-line);cursor:pointer;align-items:center;gap:10px;padding:10px 16px;font-size:21px;font-weight:800;transition:transform .12s,border-color .12s;display:flex;position:relative}.match-card:hover{transform:translateY(-2px)}.match-card--chosen{border-color:var(--subject,var(--color-primary-strong));background:var(--subject-soft,var(--color-primary-soft));transform:scale(1.03)}.match-card--pair1{--pair:#4c8dff}.match-card--pair2{--pair:#ff5d9e}.match-card--pair3{--pair:#14b8a6}.match-card--pair4{--pair:#f59e0b}.match-card--pair5{--pair:#8b5cf6}[class*=match-card--pair]{border-color:var(--pair);box-shadow:0 4px 0 var(--pair)}.match-number{background:var(--pair);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:15px;display:inline-grid}.passage{font-size:var(--stem-size);margin:0;font-weight:800;line-height:2.1}.blank-input{font:inherit;color:var(--subject,var(--color-primary-strong));text-align:center;border:none;border-bottom:4px solid var(--subject,var(--color-primary));background:var(--subject-soft,var(--color-primary-soft));border-radius:10px 10px 4px 4px;margin:0 6px;padding:2px 10px}.blank-input:focus{outline:3px solid var(--color-focus);outline-offset:2px}@media (width<=600px){.matching-columns{gap:10px}.match-card{min-height:52px;padding:8px 10px;font-size:17px}}.lesson-card{border-radius:var(--radius);border-left:10px solid var(--subject);background:linear-gradient(90deg, var(--subject-soft), var(--color-surface) 70%);width:100%;box-shadow:var(--shadow);align-items:center;gap:16px;padding:20px 24px;display:flex}.lesson-card-icon{font-size:44px}.lesson-card-body{flex-direction:column;flex:1;gap:2px;font-size:21px;display:flex}.lesson-card-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:15px;font-weight:800}.lesson-card .big-button{padding:12px 28px;font-size:20px}.lesson-screen{flex-direction:column;align-items:center;gap:22px;display:flex}.lesson-step-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.lesson-step-head .question-stem{margin:0}.lesson-text{white-space:pre-line;margin:0;font-size:23px;line-height:1.6}.worked-example{border-left:6px solid var(--subject);border-radius:var(--radius-small);background:var(--subject-soft);margin-top:18px;padding:16px 20px;font-size:22px;font-weight:700}.worked-example p{margin:4px 0}.lesson-count{color:var(--color-muted);align-self:center;font-size:18px;font-weight:800}.lesson-intro{text-align:center}.doing-nav--end{justify-content:flex-end}.lesson-check-intro{text-align:center;width:min(720px,100%)}.try-feedback{border-radius:var(--radius-small);background:var(--color-surface);width:min(880px,100%);box-shadow:var(--shadow-small);padding:16px 22px;font-size:19px}.try-feedback p{margin:6px 0}.try-feedback--right{border-left:8px solid var(--color-correct)}.try-feedback--wrong{border-left:8px solid var(--color-try-again)}@media (width<=600px){.lesson-card{flex-wrap:wrap}.lesson-text{font-size:20px}}.lesson-screen>.progress-dots,.lesson-screen .doing-header{width:min(880px,100%)}.test-note{color:var(--color-muted);margin:0;font-size:16px;font-weight:700}.essay{flex-direction:column;gap:6px;display:flex}.essay-input{width:100%;font:inherit;color:var(--color-text);border:3px solid var(--color-line);border-radius:var(--radius-small);background:var(--color-surface-soft);resize:vertical;padding:16px 18px;font-size:22px;line-height:1.6}.essay-input:focus{border-color:var(--subject,var(--color-primary-strong));background:var(--color-surface);outline:none}.essay-count{color:var(--color-muted);align-self:flex-end;margin:0;font-size:16px;font-weight:700}.result-feedback{background:var(--color-primary-soft);white-space:pre-line;border-radius:12px;padding:10px 14px}.parent-shell,.parent-login{--p-bg:#f5f6f8;--p-surface:#fff;--p-line:#e6e8ec;--p-line-soft:#f0f2f5;--p-text:#1d2433;--p-muted:#667085;--p-primary:#0f8b8d;--p-primary-hover:#0b7476;--p-primary-soft:#e3f4f4;--p-danger:#c4320a;--p-danger-soft:#fef0eb;--p-warning-soft:#fff4dc;--p-radius:14px;--p-shadow:0 1px 2px #1018280d, 0 1px 3px #1018280f;background:var(--p-bg);min-height:100vh;color:var(--p-text);font-family:var(--font-parent);font-size:15px;line-height:1.5}.parent-shell{grid-template-columns:248px minmax(0,1fr);display:grid}.parent-sidebar{background:var(--p-surface);border-right:1px solid var(--p-line);flex-direction:column;gap:20px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.parent-brand{align-items:center;gap:10px;padding:0 8px;display:flex}.parent-brand .mascot{animation:none}.parent-brand span{flex-direction:column;line-height:1.2;display:flex}.parent-brand strong{font-family:var(--font-child);font-size:17px;font-weight:900}.parent-brand small{color:var(--p-muted);font-size:12px}.parent-nav{flex-direction:column;flex:1;gap:2px;display:flex}.parent-nav a{color:var(--p-muted);border-radius:10px;align-items:center;gap:12px;padding:9px 12px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.parent-nav a:hover{background:var(--p-line-soft);color:var(--p-text)}.parent-nav a[aria-current=page]{background:var(--p-primary-soft);color:var(--p-primary-hover);font-weight:600}.parent-nav-label{flex:1}.nav-icon{flex-shrink:0}.nav-count{background:var(--p-danger);color:#fff;text-align:center;border-radius:999px;min-width:22px;padding:1px 7px;font-size:12px;font-weight:700}.parent-shell button.parent-leave{color:var(--p-muted);text-align:left;background:0 0;align-items:center;gap:10px;padding:9px 12px;font-weight:500;display:flex}.parent-shell button.parent-leave:hover{background:var(--p-line-soft);color:var(--p-text)}.parent-page{width:100%;max-width:960px;margin:0 auto;padding:32px 28px 64px}.parent-page>section>h1{letter-spacing:-.01em;margin:0 0 6px;font-size:26px;font-weight:700}.parent-page>section>h1+.hint{margin-bottom:20px;font-size:15px}.parent-page>section>h1:not(:has(+.hint)){margin-bottom:20px}.parent-page h2{margin:0 0 12px;font-size:18px;font-weight:600}.parent-page h3{margin:4px 0 10px;font-size:16px;font-weight:600}.card{border:1px solid var(--p-line);border-radius:var(--p-radius);background:var(--p-surface);box-shadow:var(--p-shadow);margin-bottom:20px;padding:22px 24px}.card .card{box-shadow:none;background:#fbfcfd}.card-list{margin:0;padding:0;list-style:none}.hint{color:var(--p-muted);margin:0;font-size:14px}.form-error{background:var(--p-danger-soft);color:var(--p-danger);border-radius:8px;margin:0;padding:8px 12px}[role=status]{color:var(--p-primary-hover)}.form{flex-direction:column;gap:10px;display:flex}.form label,.settings-grid label{font-weight:500}.parent-shell input:not([type=checkbox],[type=radio]),.parent-shell select,.parent-shell textarea,.parent-login input{font:inherit;background:var(--p-surface);color:var(--p-text);border:1px solid #d0d5dd;border-radius:10px;padding:9px 12px;transition:border-color .12s,box-shadow .12s}.parent-shell input:focus,.parent-shell select:focus,.parent-shell textarea:focus,.parent-login input:focus{border-color:var(--p-primary);box-shadow:0 0 0 4px var(--p-primary-soft);outline:none}.parent-shell input[type=checkbox],.parent-shell input[type=radio]{accent-color:var(--p-primary);width:16px;height:16px}.parent-shell textarea{resize:vertical;min-height:84px}.parent-shell button,.parent-login button,label.button{font:inherit;background:var(--p-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-weight:600;transition:background .12s;display:inline-flex}.parent-shell button:hover:not(:disabled),.parent-login button:hover:not(:disabled),label.button:hover{background:var(--p-primary-hover)}.parent-shell button.secondary,label.button.secondary{background:var(--p-surface);color:var(--p-text);box-shadow:inset 0 0 0 1px #d0d5dd}.parent-shell button.secondary:hover:not(:disabled),label.button.secondary:hover{background:var(--p-line-soft)}.parent-shell button:disabled,.parent-login button:disabled{opacity:.55;cursor:not-allowed}label.button.is-busy{opacity:.6;cursor:progress}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form input{width:6em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.photo-button{flex-direction:column;align-items:flex-start;gap:6px;margin:8px 0 16px;display:flex}.photo-button:focus-within label.button{outline:2px solid var(--p-primary);outline-offset:2px}.child-picker{border:1px solid var(--p-line);background:var(--p-surface);border-radius:12px;align-items:center;gap:10px;margin-bottom:20px;padding:6px 6px 6px 14px;font-weight:500;display:inline-flex}.settings-grid{grid-template-columns:max-content 10em;align-items:center;gap:10px 16px;display:grid}.operator-options,.avatar-options,.bonus-list{border:none;margin:4px 0;padding:0}.operator-options{flex-wrap:wrap;gap:16px;display:flex}.operator-options legend,.avatar-options legend,.bonus-list legend{margin-bottom:6px;font-weight:500}.bonus-list{flex-direction:column;gap:8px;display:flex}.bonus-list .inline-form input[type=number]{width:4.5em}.avatar-options{flex-wrap:wrap;gap:8px;display:flex}.avatar-option{border:1px solid var(--p-line);cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:6px 10px;font-size:26px;display:flex}.avatar-option:has(input:checked){border-color:var(--p-primary);background:var(--p-primary-soft)}.badge{background:var(--p-line-soft);color:#475467;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge--learned{color:#067647;background:#dcfae6}.badge--warning{background:var(--p-warning-soft);color:#93370d}.badge--current{color:#2d3fa8;background:#e0eaff}.badge--review{color:#5925dc;background:#f0e9ff}.badge--challenge{color:#93370d;background:#fef0c7}.child-card{align-items:flex-start;gap:18px;display:flex}.child-card .avatar--small{background:#fff4d6;border-radius:50%;place-items:center;width:56px;height:56px;font-size:32px;display:grid}.child-card-body{flex-direction:column;flex:1;gap:8px;display:flex}.child-card h2{margin:0;font-size:18px}.child-card p{color:var(--p-muted);margin:0}.lesson-list{margin:8px 0 16px;padding:0;list-style:none}.lesson-row{border-bottom:1px solid var(--p-line-soft);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 4px;display:flex}.lesson-list>li:last-child .lesson-row{border-bottom:none}.lesson-row-title{flex:1;min-width:12em;font-weight:500}.lesson-progress{white-space:nowrap}.lesson-row button{padding:6px 12px;font-size:14px}.toc-rows{margin:8px 0;padding:0;list-style:none}.toc-row{border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px;display:flex}.toc-row--doubtful{background:var(--p-warning-soft)}.toc-code{width:7em}.toc-title{flex:1;min-width:12em}.table-scroll{overflow-x:auto}.week-plan{border-collapse:collapse;min-width:100%}.week-plan th,.week-plan td{text-align:center;border-bottom:1px solid var(--p-line-soft);padding:8px 6px}.week-plan thead th{color:var(--p-muted);font-size:13px;font-weight:600}.week-plan th[scope=row]{text-align:left;white-space:nowrap;font-weight:600}.parent-shell .week-plan input{text-align:center;width:3.5em;padding:6px}.week-plan tfoot td,.week-plan tfoot th{color:var(--p-muted);border-bottom:none;font-size:13px}.upcoming-list{margin:8px 0 0;padding:0;list-style:none}.upcoming-day{border-bottom:1px solid var(--p-line-soft);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.upcoming-day:last-child{border-bottom:none}.upcoming-date{white-space:nowrap;background:var(--p-primary-soft);min-width:6.5em;color:var(--p-primary-hover);text-align:center;border-radius:8px;padding:4px 8px;font-weight:600}.upcoming-what{flex:1;min-width:10em}.upcoming-day--off .upcoming-date,.upcoming-day--rest .upcoming-date,.upcoming-day--outside_year .upcoming-date{background:var(--p-line-soft);color:var(--p-muted)}.upcoming-day--off .upcoming-what,.upcoming-day--rest .upcoming-what,.upcoming-day--outside_year .upcoming-what{color:var(--p-muted)}.upcoming-day .inline-form input{width:12em}.preview-list{counter-reset:question;flex-direction:column;gap:12px;margin:16px 0 0;padding:0;list-style:none;display:flex}.preview-list>li{border:1px solid var(--p-line);counter-increment:question;border-radius:12px;padding:14px 16px 14px 52px;position:relative}.preview-list>li:before{content:counter(question);background:var(--p-primary-soft);width:26px;height:26px;color:var(--p-primary-hover);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;top:14px;left:14px}.preview-list p{margin:4px 0}.preview-list ul{margin:4px 0;padding-left:20px}.preview-stem{margin:6px 0;font-size:17px;font-weight:600}.item-actions{border-top:1px dashed var(--p-line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;display:flex}.parent-shell .item-actions button{padding:6px 12px;font-size:13px}.inbox-item{border-left:4px solid var(--p-primary);flex-direction:column;gap:6px;display:flex}.inbox-item--done{border-left-color:var(--p-line);opacity:.65}.inbox-title{margin:0;font-size:16px;font-weight:600}.inbox-decision input{flex:1;min-width:12em}.adjust-form{margin:14px 0 4px}.adjust-form input{flex:1;width:auto;min-width:8em}.ledger-list{flex-direction:column;margin:14px 0 0;padding:0;list-style:none;display:flex}.ledger-list li{border-bottom:1px solid var(--p-line-soft);padding:8px 0}.ledger-list li:last-child{border-bottom:none}.parent-shell .ticket-plus{color:#067647}.parent-shell .ticket-minus{color:var(--p-muted)}.usage-table{border-collapse:collapse;margin:12px 0}.usage-table th,.usage-table td{text-align:right;border-bottom:1px solid var(--p-line-soft);padding:6px 14px}.usage-table th{color:var(--p-muted);font-size:13px;font-weight:600}.usage-table th:first-child,.usage-table td:first-child{text-align:left}.dialog{width:calc(100% - 32px);max-width:400px;font-family:var(--font-parent);border:none;border-radius:16px;padding:24px;box-shadow:0 20px 50px #10182840}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10182873}.dialog h2{margin:0 0 4px;font-size:18px}.parent-login{background:radial-gradient(circle at 50% 0%, var(--p-primary-soft), var(--p-bg) 60%);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px 16px;display:flex}.parent-login-card{width:min(400px,100%);padding:32px 28px}.parent-login-card .mascot{align-self:center}.parent-login-card h1{text-align:center;margin:0 0 8px;font-size:22px}.parent-login-card button{margin-top:8px;padding:11px 18px}.parent-login-back{color:var(--p-muted);text-decoration:none}.parent-login-back:hover{color:var(--p-text)}@media (width<=900px){.parent-shell{grid-template-columns:minmax(0,1fr)}.parent-sidebar{z-index:10;border-right:none;border-bottom:1px solid var(--p-line);flex-flow:wrap;align-items:center;gap:8px 12px;height:auto;padding:10px 16px 0}.parent-brand{flex:1;padding:0}.parent-nav{scrollbar-width:none;flex-direction:row;flex-basis:100%;order:3;overflow-x:auto}.parent-nav a{border-bottom:2px solid #0000;border-radius:0;flex-shrink:0;padding:10px 12px}.parent-nav a[aria-current=page]{border-bottom-color:var(--p-primary);background:0 0}.parent-page{padding:24px 16px 48px}}@media (width<=600px){.child-card{flex-wrap:wrap}.settings-grid{grid-template-columns:1fr}.card{padding:18px 16px}.parent-brand small,.parent-leave-label{display:none}.preview-list>li{padding-left:44px}}.form>input[type=date],.form>input[type=time],.form>input[type=number],.form>select{align-self:flex-start;min-width:14em}.form>input:not([type]),.form>input[type=text],.form>input[type=email],.form>input[type=password],.form>textarea{max-width:40rem}.form>button[type=submit]{align-self:flex-end}.parent-login-card>button[type=submit]{align-self:stretch}.expander{margin:4px 0 8px}.expander>summary{color:var(--p-primary-hover);cursor:pointer;border:1px dashed #b8c0cc;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-weight:600;list-style:none;display:inline-flex}.expander>summary::-webkit-details-marker{display:none}.expander>summary:hover{background:var(--p-primary-soft);border-color:var(--p-primary)}.expander[open]>summary{margin-bottom:12px}.move-buttons{gap:2px;display:inline-flex}.parent-shell button.icon-button{width:28px;height:28px;padding:0;font-size:14px}.parent-shell button.icon-button:disabled{opacity:.25}.source-buttons{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.source-buttons .photo-button{margin:0}.guess-note{white-space:normal;border-radius:10px;align-self:flex-start;padding:8px 12px;font-size:13px}.school-notes{border-top:1px solid var(--p-line);margin-top:20px;padding-top:16px}.note-list,.example-list{flex-direction:column;gap:8px;margin:10px 0;padding:0;list-style:none;display:flex}.note{border-left:4px solid var(--p-primary);background:var(--p-primary-soft);border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 12px;display:flex}.note--ended{border-left-color:var(--p-line);background:var(--p-line-soft);opacity:.75}.note-text{flex:100%;font-weight:500}.note .hint{flex:1}.parent-shell .note button{padding:4px 10px;font-size:13px}.lesson-examples{border:1px dashed var(--p-line);border-radius:var(--p-radius);margin:-8px 0 16px;padding:16px 20px}.lesson-examples h4{margin:0 0 4px;font-size:15px}.example-list li{background:var(--p-line-soft);border-radius:8px;align-items:center;gap:10px;padding:6px 10px;display:flex}.example-list li span{flex:1}.worksheet-pick{border:1px solid var(--p-line);border-radius:10px;flex-direction:column;gap:8px;margin:8px 0;padding:12px;display:flex}.worksheet-pick label{align-items:flex-start;gap:8px;display:flex}.learn-ahead{margin:10px 0 0}.teaching-panel{border:1px solid var(--p-line);border-radius:var(--p-radius);background:#fbfcfd;margin:0 0 16px;padding:18px 20px}.teaching-panel h4{margin:14px 0 6px;font-size:15px}.teaching-steps{flex-direction:column;gap:10px;margin:8px 0;padding-left:20px;display:flex}.teaching-steps li{background:var(--p-surface);box-shadow:var(--p-shadow);border-radius:10px;padding:10px 12px}.teaching-steps h4{margin:2px 0 4px}.teaching-text{white-space:pre-line;margin:0}.worked-lines{background:var(--p-line-soft);white-space:pre-wrap;border-radius:8px;margin:8px 0 0;padding:10px 12px;font-family:inherit}.teaching-questions{margin:4px 0;padding-left:20px}.teaching-questions p{margin:2px 0}.parent-shell{--p-chart:#0d9488}.stat-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-tile{border:1px solid var(--p-line);border-radius:var(--p-radius);background:var(--p-surface);flex-direction:column;gap:4px;padding:16px 18px;display:flex}.stat-tile-label{color:var(--p-muted);font-size:13px}.stat-tile-value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.chart-pair{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;padding-bottom:36px;display:grid}.week-bars{margin:0}.week-bars figcaption{margin-bottom:12px;font-weight:600}.week-bars-plot{border-bottom:1px solid var(--p-line);align-items:flex-end;gap:6px;height:170px;padding-top:24px;display:flex}.week-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.week-bar-fill{background:var(--p-chart);border-radius:4px 4px 0 0;width:100%;max-width:32px}.week-bar:hover .week-bar-fill{filter:brightness(.9)}.week-bar-value{color:var(--p-text);font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:12px;font-weight:600}.week-bar-day{color:var(--p-muted);font-size:11px;position:absolute;bottom:-22px}.week-bar-tip{z-index:1;background:var(--p-text);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;transition:opacity .12s;position:absolute;bottom:calc(100% + 4px)}.week-bar:hover .week-bar-tip{opacity:1}.subject-scores{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.subject-scores li{grid-template-columns:7em 1fr 11em;align-items:center;gap:12px;display:grid}.subject-score-name{font-weight:600}.subject-score-track{background:var(--p-line-soft);border-radius:999px;height:10px;overflow:hidden}.subject-score-track span{background:var(--p-chart);border-radius:999px;height:100%;display:block}.subject-score-value{color:var(--p-muted);font-variant-numeric:tabular-nums;font-size:14px}.skill-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 20px;display:grid}.skill-lines{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.skill-lines li{background:var(--p-line-soft);border-radius:8px;flex-direction:column;padding:8px 10px;display:flex}@media (width<=600px){.subject-scores li{grid-template-columns:1fr;gap:4px}}.essay-feedback{background:var(--p-primary-soft);white-space:pre-line;border-radius:8px;padding:8px 12px}
