@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(../media/nunito-latin-600-normal.0q0ia45j-6ls_.woff2)format("woff2"),url(../media/nunito-latin-600-normal.0h9cr-bs8ac2x.woff)format("woff")}
@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(../media/nunito-latin-700-normal.3_3w32ku8mlvo.woff2)format("woff2"),url(../media/nunito-latin-700-normal.1o-18nuhd5q9g.woff)format("woff")}
@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(../media/nunito-latin-800-normal.0fk28i9bscp4k.woff2)format("woff2"),url(../media/nunito-latin-800-normal.1sn9ps1hnuqka.woff)format("woff")}
@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(../media/nunito-vietnamese-600-normal.1qmejxpk9n4l_.woff2)format("woff2"),url(../media/nunito-vietnamese-600-normal.3kt1_f5zihrv2.woff)format("woff")}
@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(../media/nunito-vietnamese-700-normal.1tlqja42i996_.woff2)format("woff2"),url(../media/nunito-vietnamese-700-normal.01zbqrf59qltx.woff)format("woff")}
@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(../media/nunito-vietnamese-800-normal.44n_xf65wv35e.woff2)format("woff2"),url(../media/nunito-vietnamese-800-normal.3v5v6utsrszfn.woff)format("woff")}
:root{--primary:#2563eb;--on-primary:#fff;--canvas:#eff6ff;--surface:#fff;--ink:#0f172a;--muted:#475569;--accent:#f59e0b;--outline:#64748b;--error:#b91c1c;--error-surface:#fee2e2;--success:#166534;--success-surface:#dcfce7;--radius:16px;--child-target:56px;--adult-target:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);margin:0;font-family:Nunito,system-ui,sans-serif;font-size:18px;font-weight:600;line-height:1.5}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:#1d4ed8}h1,h2,p{margin-top:0}h1{margin-bottom:24px;font-size:32px;font-weight:800;line-height:1.25}h2{font-size:24px;line-height:1.3}p{margin-bottom:20px}small{color:var(--muted);font-size:15px}button,a,input,select{touch-action:manipulation}:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.skip{z-index:9;background:#fff;padding:16px;position:absolute;top:-100px;left:16px}.skip:focus{top:8px}.app-shell{max-width:1168px;margin:auto;padding:24px}.app-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;min-height:56px;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:16px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:32px;display:grid}.role-tag{background:#dbeafe;border-radius:999px;padding:8px 16px;font-size:16px}.panel{background:var(--surface);border:1px solid #cbd5e1;border-radius:24px;min-width:0;padding:32px;box-shadow:0 8px 24px #0f172a0a}.split{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.welcome-copy{padding:24px 0}.welcome-copy h1{font-size:44px;line-height:1.2}.welcome-copy p{max-width:460px}.eyebrow{color:#1d4ed8;letter-spacing:.08em;margin-bottom:16px;font-size:14px;font-weight:800}.math-friends{justify-content:center;align-items:center;gap:12px;max-width:450px;padding:40px 0;font-size:32px;display:flex}.math-friends span{background:#dbeafe;border-bottom:5px solid #93c5fd;border-radius:24px;place-items:center;width:72px;height:88px;font-size:42px;font-weight:800;display:grid}.math-friends .amber{border-color:var(--accent);background:#fef3c7}.account-form,.account-form fieldset{flex-direction:column;gap:16px;min-width:0;display:flex}.account-form fieldset{border:0;margin:0;padding:0}.field{flex-direction:column;gap:8px;display:flex}label{font-size:16px;font-weight:800}input,select{border:2px solid var(--outline);width:100%;min-height:48px;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}.action{border:2px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;text-align:center;border-radius:16px;justify-content:center;align-items:center;min-width:48px;min-height:48px;padding:12px 20px;font-weight:800;line-height:1.4;text-decoration:none;display:inline-flex}.action.secondary{color:var(--ink);border-color:var(--outline);background:#fff}.action:disabled{cursor:default;color:#475569;box-shadow:none;background:#e2e8f0;border-color:#64748b}.action:not(:disabled):hover{filter:brightness(.96)}.action:not(:disabled):active{box-shadow:none}.actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.text-link{align-items:center;min-height:56px;margin-top:8px;font-weight:800;display:inline-flex}.notice{background:var(--success-surface);color:var(--success);border:1px solid;border-radius:8px;margin:16px 0;padding:16px}.notice.error{background:var(--error-surface);color:var(--error)}.child-panel{max-width:760px;margin:auto}.child-panel .action{min-width:56px;min-height:56px;box-shadow:0 4px #dbeafe}.child-panel .account-form{max-width:400px;margin:auto}.profile-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:24px 0;display:grid}.profile{border:2px solid var(--outline);overflow-wrap:anywhere;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.profile h2,.profile p{margin:0}.avatar{color:#92400e;background:#fef3c7;border-radius:50%;place-items:center;min-width:64px;min-height:64px;font-size:32px;display:grid}.pin-display{text-align:center;letter-spacing:12px;min-height:64px;font-size:32px}.pin-count{text-align:center;margin:0;font-size:16px}.digit-pad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.digit-pad .action{font-size:28px}.digit-pad .zero{grid-column:1}.digit-pad .erase{grid-column:2/4;font-size:16px}.friendly-star{color:#f59e0b;text-align:center;text-shadow:0 4px #92400e;margin:24px 0;font-size:100px;line-height:1.2}.page-title{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.page-title h1{margin-bottom:8px}.account-list{margin:0;padding:0;list-style:none}.account-list li{border-bottom:1px solid #cbd5e1;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;display:flex}.account-list li:last-child{border:0}.account-list span,.account-list small{display:block}.account-list strong{overflow-wrap:anywhere}.account-list .action{font-size:15px}.management{margin-top:24px}.management .account-form{max-width:480px;margin-top:24px}.muted{color:var(--muted);margin-top:24px;font-size:16px}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:32px 0;font-size:14px;display:flex}footer a{align-items:center;min-height:48px;display:inline-flex}.status{border:1px solid var(--outline);border-radius:16px;gap:16px;padding:24px;display:flex}.dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-top:8px}.dot.ready{background:var(--success)}.refresh{min-height:48px;margin-top:16px;padding:12px}body>main{max-width:1120px;margin:24px auto;padding:24px}body>main header{align-items:center;gap:12px;margin-bottom:32px;display:flex}@media (max-width:1023px){.split{grid-template-columns:1fr}.welcome-copy{padding:0}.welcome-copy h1{font-size:36px}.math-friends{display:none}.panel{padding:24px}.admin-grid{gap:24px}.page-title{flex-direction:column;align-items:flex-start}}@media (max-width:767px){.app-shell{padding:16px}.app-header{flex-wrap:wrap;margin-bottom:24px}.panel{padding:20px}.brand{font-size:17px}.role-tag{font-size:14px}.account-list li,.actions{flex-direction:column;align-items:stretch}.actions>*{width:100%}.welcome-copy h1{font-size:32px}.profile-list{grid-template-columns:1fr}h1{overflow-wrap:anywhere}}.practice-nav{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.practice-nav a{align-items:center;min-height:56px;font-weight:800;display:inline-flex}.child-welcome{justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;display:flex}.child-welcome .friendly-star{margin:0;font-size:88px}.child-welcome p:last-child{margin:0}.home-cards{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.home-cards .action,.basic-options .action,.basic-layout .action,.result-actions .action,.session-summary .action,.takeover-notice .action{min-width:56px;min-height:56px}.home-cards .text-link{display:flex}.quiet-card{background:#f8fbff}.option-group{border:0;margin:24px 0;padding:0}.option-group legend{margin-bottom:12px;font-weight:800}.option-buttons,.table-options{flex-wrap:wrap;gap:12px;display:flex}.table-options .action{flex:1 0 100px}.action[aria-pressed=true]{border:3px solid var(--primary);color:var(--ink);background:#dbeafe}.basic-options{max-width:760px;margin:auto}.count-pill{background:#fef3c7;border-radius:999px;padding:12px 20px;font-weight:800}.save-status{color:var(--muted);margin:12px 0 24px}.basic-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.equation-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.equation-list li{border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px;display:flex}.equation-label{font-variant-numeric:tabular-nums;min-width:128px;font-size:25px;font-weight:800}.answer-cell{border:2px solid var(--outline);min-width:72px;min-height:56px;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;font-size:26px;font-weight:800}.answer-cell[aria-pressed=true]{border:3px solid var(--primary);background:#dbeafe;box-shadow:0 0 0 3px #dbeafe}.answer-cell:disabled{cursor:default;opacity:1}.answer-feedback{flex-basis:100%;font-size:16px}.equation-list .correct{background:var(--success-surface);color:var(--success)}.equation-list .wrong{background:var(--error-surface);color:var(--error)}.number-options{grid-template-columns:repeat(5,minmax(56px,1fr));gap:8px;display:grid}.number-options .action{padding:8px;font-size:25px}.clear-answer,.check-work{width:100%;margin-top:20px}.selected-equation{font-size:16px}.result-actions,.badge-panel{margin-top:24px}.reconnect{margin-bottom:24px}.takeover-notice{color:#92400e;background:#fef3c7}.session-summary{text-align:center}.session-summary .actions{justify-content:center}.progress-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.progress-table{border:2px solid var(--outline);background:#fff;border-radius:16px;min-width:0}.progress-table summary{cursor:pointer;min-height:112px;padding:16px}.progress-table summary strong,.progress-table summary span,.progress-table summary small{display:block}.progress-table[open]{grid-column:span 2}.progress-table ul{margin:0;padding:0 16px 16px;list-style:none}.progress-table li{border-top:1px solid #cbd5e1;padding:12px 0}.progress-table li strong,.progress-table li span,.progress-table li small{display:block}.progress-table.mastered{border-color:var(--success);background:var(--success-surface)}.progress-table.needs-review{background:#fffbeb;border-color:#92400e}.badge-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.badge{text-align:center;border:2px solid var(--outline);border-radius:24px;padding:20px 12px}.badge>span{color:var(--muted);font-size:48px}.badge.earned{background:#fef3c7;border-color:#92400e}.badge.earned>span{color:#92400e}.badge h3{font-size:20px}.report-panels{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.report-percentage{font-size:28px;font-weight:800}.wrong-facts summary{cursor:pointer;min-height:56px;padding:12px 0}.wrong-facts li{padding:8px 0}.panel h3{margin-top:24px}button{overflow-wrap:anywhere}@media (max-width:1023px){.basic-layout{grid-template-columns:1fr}.progress-map{grid-template-columns:repeat(2,minmax(0,1fr))}.number-options{grid-template-columns:repeat(5,minmax(56px,1fr))}.answer-bank{max-width:100%}}@media (max-width:767px){.home-cards,.report-panels{grid-template-columns:1fr}.child-welcome{gap:12px}.child-welcome .friendly-star{flex-shrink:0;font-size:56px}.badge-gallery{grid-template-columns:1fr}.progress-table[open]{grid-column:1/-1}.number-options{grid-template-columns:repeat(4,minmax(56px,1fr))}.equation-label{min-width:116px;font-size:23px}.equation-board{padding:16px}.progress-table summary{padding:12px}.progress-table summary small{font-size:14px}.practice-nav{gap:12px}.practice-nav a{font-size:16px}.count-pill{overflow-wrap:anywhere;max-width:100%}}.basic-layout.completed{grid-template-columns:minmax(0,1fr);max-width:760px;margin-inline:auto}.result-actions{max-width:760px;margin-inline:auto}.equation-label{min-width:190px;font-size:40px}.answer-cell{font-size:40px}.basic-layout.completed .answer-feedback{flex-basis:auto}@media (max-width:767px){.equation-label{min-width:122px;font-size:26px}.answer-cell{font-size:28px}.basic-layout.completed .answer-feedback{flex-basis:100%}}.audio-controls{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin:0 0 20px;display:flex}.audio-controls .action{min-width:56px;min-height:56px;font-size:1rem}.prepared-list{gap:20px;padding:0;list-style:none;display:grid}.prepared-list>li{border-bottom:1px solid var(--outline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.prepared-list h2,.prepared-list h3{margin-bottom:4px}.prepared-list p{margin:0}.child-prepared .action{min-width:56px;min-height:56px}.reflex-board,.reflex-options{max-width:760px;margin:24px auto}.reflex-equation{text-align:center;margin:24px 0;font-size:clamp(32px,6vw,48px);font-weight:800}.timer-bar{gap:8px;margin:16px 0;display:grid}.timer-bar progress{accent-color:#2563eb;width:100%;height:20px}.timer-bar.warning{color:#92400e}.timer-bar.warning progress{accent-color:#92400e;animation:1.5s ease-in-out infinite timer-pulse}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0;display:grid}.choice-grid .action{min-height:72px;font-size:28px}.reflex-digits{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:420px;margin:20px auto;display:grid}.reflex-digits .action{min-height:56px}.erase-digit{grid-column:span 2}.reflex-submit{width:100%;margin-top:16px}.reflex-feedback{border-radius:16px;margin-top:20px;padding:24px}.reflex-feedback.correct{color:#166534;background:#dcfce7}.reflex-feedback.wrong{color:#b91c1c;background:#fee2e2}.reflex-feedback.timeout{color:#92400e;background:#fef3c7}.timed-results{padding-left:24px}.timed-results li{margin:8px 0}@keyframes timer-pulse{50%{opacity:.75}}@media (prefers-reduced-motion:reduce){.timer-bar.warning progress{animation:none}}@media (max-width:400px){.choice-grid{grid-template-columns:1fr}}
