:root{--mq-blue:#3157d5;--mq-purple:#7657d8;--mq-green:#2a9d68;--mq-orange:#f4a340;--mq-bg:#f5f7fb;--mq-text:#223047}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--mq-bg);color:var(--mq-text)}a{text-decoration:none;color:inherit}.topbar{background:#fff;border-bottom:1px solid #e3e7ef;padding:14px 20px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:800;font-size:1.35rem;color:var(--mq-blue)}.container{max-width:1100px;margin:0 auto;padding:24px}.card{background:#fff;border:1px solid #e2e6ee;border-radius:18px;padding:22px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.skill-card{min-height:160px;display:flex;flex-direction:column;justify-content:space-between}.skill-card h3{font-size:1.35rem;margin:0}.muted{color:#6c778b}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:12px;padding:10px 18px;font-weight:700;cursor:pointer;background:var(--mq-blue);color:#fff}.btn.secondary{background:#e9edff;color:#2946a8}.auth-wrap{max-width:440px;margin:60px auto}.form-row{margin-bottom:15px}.form-row label{display:block;font-weight:700;margin-bottom:6px}.form-row input,.form-row select{width:100%;padding:12px 14px;border:1px solid #cfd6e2;border-radius:10px;font-size:16px}.problem{font-size:clamp(2rem,8vw,4.6rem);font-weight:900;text-align:center;padding:35px 10px}.answer-input{font-size:2rem;text-align:center;max-width:260px;margin:0 auto;display:block}.notice{padding:12px 15px;border-radius:10px;margin:12px 0}.notice.good{background:#e7f7ef;color:#166742}.notice.bad{background:#fdeaea;color:#9a2323}.progress-track{height:12px;border-radius:999px;background:#e8ebf1;overflow:hidden}.progress-fill{height:100%;background:var(--mq-green)}.stat{font-size:1.6rem;font-weight:800}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:center}.hero h1{font-size:clamp(2rem,5vw,3.8rem);margin:.1em 0}.hero-bubble{font-size:6rem;text-align:center}@media(max-width:700px){.hero{grid-template-columns:1fr}.hero-bubble{display:none}.container{padding:16px}}
.center{text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:800;color:var(--mq-purple);margin:0}.practice-wrap{max-width:900px}.practice-head{display:flex;gap:20px;justify-content:space-between;align-items:end;margin-bottom:18px}.practice-head h1{margin:.15rem 0 0}.practice-stats{display:flex;gap:10px;flex-wrap:wrap}.practice-stats span{background:#fff;border:1px solid #e2e6ee;border-radius:999px;padding:8px 12px;font-weight:700}.problem-card{padding:28px}.answer-form{max-width:520px;margin:0 auto}.practice-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn:disabled{opacity:.55;cursor:not-allowed}.notice.hint{background:#fff5d8;color:#72520a}.teaching-card{margin-bottom:18px;border-left:6px solid var(--mq-orange)}.teaching-card h2{margin-top:0}.hint-panel{margin:12px auto 22px;max-width:680px;background:#f7f3ff;border:1px solid #ddd3fb;border-radius:14px;padding:16px}.hint-list{line-height:1.6}.hint-list li+li{margin-top:6px}.visual-panel{margin-top:14px}.visual-title{text-align:center;font-weight:700;margin-bottom:12px}.counter-groups{display:flex;gap:22px;justify-content:center;flex-wrap:wrap}.counter-group{display:flex;gap:7px;flex-wrap:wrap;max-width:220px;padding:12px;border:2px dashed #ccd3df;border-radius:14px}.counter-dot{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--mq-green)}.counter-dot.small{width:16px;height:16px}.counter-array{display:grid;grid-template-columns:repeat(var(--cols),22px);gap:6px;justify-content:center}.division-groups{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.division-group{display:flex;gap:4px;flex-wrap:wrap;max-width:110px;padding:8px;border:2px solid #d8ddeb;border-radius:12px}.numberline{display:flex;gap:3px;justify-content:center;flex-wrap:wrap}.number-tick{min-width:42px;padding:10px 6px;text-align:center;border-top:4px solid #aeb7c8;font-weight:700}.number-tick.active{border-color:var(--mq-purple);background:#f5f0ff;border-radius:8px}.placevalue-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:520px;margin:0 auto}.placevalue-box>div{background:#f6f8fb;border-radius:12px;padding:14px;text-align:center}.placevalue-box strong,.placevalue-box span{display:block}.placevalue-box span{font-size:1.6rem;font-weight:900;margin-top:5px}.mastery-meta{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;color:#6c778b;flex-wrap:wrap}
@media(max-width:700px){.practice-head{align-items:flex-start;flex-direction:column}.problem-card{padding:20px}.counter-array{grid-template-columns:repeat(var(--cols),18px)}.counter-dot{width:18px;height:18px}.placevalue-box{grid-template-columns:1fr}}

/* Phase 3: child-facing adventure layer */
.top-actions{display:flex;gap:8px;flex-wrap:wrap}.narrow{max-width:820px}.small{font-size:.86rem}.spacer{margin-top:24px}.text-link{color:var(--mq-blue);font-weight:800}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:32px 0 15px}.section-heading h2{margin:.15rem 0 0}.student-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-bottom:24px}.student-hero h1{font-size:clamp(2rem,5vw,3.4rem);margin:.08em 0}.avatar-badge{width:100px;height:100px;border-radius:28px;display:grid;place-items:center;font-size:4rem;background:#fff;border:1px solid #e2e6ee}.reward-strip{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.reward-strip span{background:#fff;border:1px solid #e2e6ee;border-radius:999px;padding:10px 13px;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.daily-card{background:linear-gradient(135deg,#fff 0%,#f5f0ff 100%)}.card-title-row{display:flex;justify-content:space-between;gap:12px;align-items:start}.card-title-row h2,.mini-stats h2{margin:.15rem 0}.daily-icon{font-size:3rem}.progress-track.big{height:16px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.stat-grid>div{background:#f6f8fb;border-radius:14px;padding:12px;text-align:center}.stat-grid strong,.stat-grid span{display:block}.stat-grid strong{font-size:1.45rem}.stat-grid span{font-size:.75rem;color:#6c778b;margin-top:4px}.operation-symbol{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:1.7rem;font-weight:900;margin-bottom:12px;background:#f1f4fb}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.card-actions .btn{flex:1}.operation-addition .operation-symbol{background:#e7f7ef;color:#166742}.operation-subtraction .operation-symbol{background:#eaf0ff;color:#2946a8}.operation-multiplication .operation-symbol{background:#f7efff;color:#6844aa}.operation-division .operation-symbol{background:#fff2df;color:#8d5a0a}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:14px}.avatar-option{position:relative;background:#fff;border:2px solid #e2e6ee;border-radius:18px;padding:18px 12px;display:flex;align-items:center;flex-direction:column;gap:8px;cursor:pointer;text-align:center}.avatar-option input{position:absolute;opacity:0;pointer-events:none}.avatar-option.selected,.avatar-option:has(input:checked){border-color:var(--mq-blue);background:#eef2ff}.avatar-option:focus-within{outline:3px solid #cfd8ff;outline-offset:2px}.avatar-emoji{font-size:3rem}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px}.achievement{background:#fff;border:1px solid #e2e6ee;border-radius:18px;padding:18px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}.achievement h2{font-size:1.05rem;margin:0 0 5px}.achievement p{margin:0 0 8px;color:#566177}.achievement-icon{font-size:2.5rem}.achievement.locked{filter:grayscale(1);opacity:.58}.skill-path{position:relative;margin-top:26px}.skill-path:before{content:"";position:absolute;left:31px;top:25px;bottom:25px;width:5px;border-radius:999px;background:#dce2ed}.path-stop{position:relative;display:grid;grid-template-columns:64px 1fr;gap:18px;margin-bottom:22px}.path-marker{z-index:1;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#fff;border:5px solid #c9d1df;font-size:1.7rem;font-weight:900}.path-stop.started .path-marker{border-color:#89a1ef}.path-stop.growing .path-marker{border-color:var(--mq-orange)}.path-stop.mastered .path-marker{border-color:var(--mq-green);background:#effaf4}.path-copy{background:#fff;border:1px solid #e2e6ee;border-radius:18px;padding:18px}.path-copy h2{margin:.2rem 0 12px}.path-copy p{color:#6c778b}.path-state{text-transform:uppercase;font-size:.72rem;font-weight:900;letter-spacing:.08em;color:#6c778b}.adventure-card{margin-top:18px;border-top:6px solid var(--mq-purple)}.battle-wrap{max-width:900px}.battle-stage{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin:22px 0}.fighter{background:#fff;border:1px solid #e2e6ee;border-radius:22px;padding:20px;text-align:center;min-width:0}.fighter-emoji{font-size:clamp(4rem,10vw,7rem);line-height:1.1}.fighter strong{display:block;font-size:1.15rem;margin:8px 0}.hearts{font-size:1.4rem;letter-spacing:3px}.versus{font-weight:1000;font-size:1.1rem;color:#788397}.monster-health{height:14px;background:#eceff4;border-radius:999px;overflow:hidden;margin:10px auto 5px;max-width:230px}.monster-health>div{height:100%;background:#d45252;transition:width .25s ease}.monster.defeated .fighter-emoji{animation:mq-defeat .55s ease forwards}.battle-question{border-top:6px solid var(--mq-orange)}.battle-btn{font-size:1.05rem}.victory-icon{font-size:4rem}.battle-feedback{font-weight:700}@keyframes mq-defeat{to{transform:rotate(12deg) scale(.75);opacity:.45}}@media(prefers-reduced-motion:reduce){.monster-health>div{transition:none}.monster.defeated .fighter-emoji{animation:none;opacity:.55}}@media(max-width:700px){.student-hero{grid-template-columns:auto 1fr}.reward-strip{grid-column:1/-1;justify-content:flex-start}.avatar-badge{width:76px;height:76px;border-radius:22px;font-size:3rem}.dashboard-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:repeat(3,1fr)}.battle-stage{grid-template-columns:1fr 42px 1fr;gap:8px}.fighter{padding:13px 8px}.fighter-emoji{font-size:3.8rem}.hearts{font-size:1rem;letter-spacing:0}.versus{text-align:center}.avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Phase 4: parent, teacher, class, assignment, and reporting views */
.adult-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.adult-hero h1{font-size:clamp(2rem,4vw,3rem);margin:.1em 0}.adult-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 26px}.adult-stats .card{text-align:center}.adult-stats strong,.adult-stats span{display:block}.adult-stats strong{font-size:2rem}.adult-stats span{color:#6c778b;margin-top:4px}.adult-two-col{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:22px;align-items:start}.class-meta{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0 18px;color:#566177}.class-meta span{background:#f6f8fb;border-radius:10px;padding:8px 10px}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e6ee;border-radius:18px}.data-table{width:100%;border-collapse:collapse;min-width:620px}.data-table th,.data-table td{text-align:left;padding:14px 16px;border-bottom:1px solid #edf0f5;vertical-align:middle}.data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#6c778b;background:#fafbfc}.data-table tr:last-child td{border-bottom:0}.link-button{border:0;background:transparent;color:#a23939;font:inherit;font-weight:700;cursor:pointer;padding:8px}.empty-state{text-align:center;color:#6c778b;padding:34px}.assignment-card{position:relative}.assignment-card h3{margin-top:12px}.status-pill{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#edf1f7;color:#566177}.status-pill.done{background:#e7f7ef;color:#166742}.status-pill.overdue{background:#fdeaea;color:#9a2323}.status-pill.active{background:#eaf0ff;color:#2946a8}.needs-attention{border-left:5px solid #d45252}.assignment-grid{margin-bottom:26px}
@media(max-width:760px){.adult-hero{align-items:flex-start;flex-direction:column}.adult-stats{grid-template-columns:1fr}.adult-two-col{grid-template-columns:1fr}.data-table{min-width:560px}}

/* Phase 5: richer practice modes and new games */
.mode-switch{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 0 16px}.mode-switch .btn{min-width:120px}.story-problem{font-size:clamp(1.35rem,4vw,2.35rem);line-height:1.3;max-width:780px;margin:0 auto}.game-wrap{max-width:900px}.race-track{margin:20px 0}.race-road{height:72px;background:#e8ebf1;border-radius:999px;position:relative;overflow:hidden;border:4px solid #d2d8e3}.race-progress{position:absolute;inset:0 auto 0 0;background:#dff5e9;transition:width .25s ease}.race-car{position:absolute;top:14px;font-size:2.2rem;z-index:2;transition:left .25s ease}.finish{position:absolute;right:15px;top:13px;font-size:2.3rem}.rocket-status{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;margin:20px 0}.rocket-ship{font-size:5rem}.rocket-status strong{font-size:1.2rem}.card-actions{align-items:stretch}.card-actions .btn{min-width:90px}@media(prefers-reduced-motion:reduce){.race-progress,.race-car{transition:none}}@media(max-width:650px){.mode-switch .btn{flex:1 1 45%}.rocket-status{grid-template-columns:1fr;text-align:center}.rocket-ship{font-size:4rem}}

/* Phase 6 curriculum controls */
.answer-choices{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:10px}.answer-choice{position:relative;min-width:74px}.answer-choice input{position:absolute;opacity:0;pointer-events:none}.answer-choice span{display:flex;min-height:52px;align-items:center;justify-content:center;padding:10px 18px;border:2px solid var(--border,#d6dbe5);border-radius:14px;background:#fff;font-size:1.1rem;font-weight:700;cursor:pointer}.answer-choice input:checked+span{border-color:#5b4ce8;box-shadow:0 0 0 3px rgba(91,76,232,.14)}.answer-choice input:focus-visible+span{outline:3px solid #111;outline-offset:2px}.curriculum-visual{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding:14px}.compare-visual strong{font-size:2rem}.compare-visual span{font-size:1.6rem}.place-digits span{display:inline-flex;width:48px;height:54px;align-items:center;justify-content:center;border:2px solid #d6dbe5;border-radius:10px;font-size:1.6rem;font-weight:800}.coin-row .coin{display:inline-flex;width:54px;height:54px;border:2px solid #8d7c42;border-radius:50%;align-items:center;justify-content:center;font-weight:800;background:#fff8cf}.fraction-bar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(28px,1fr);max-width:420px;margin:14px auto;border:2px solid #606a80;border-radius:8px;overflow:hidden}.fraction-bar span{height:52px;border-right:1px solid #606a80;background:#fff}.fraction-bar span:last-child{border-right:0}.fraction-bar span.filled{background:#dcd8ff}
@media(max-width:520px){.answer-choice{flex:1 1 30%}.answer-choice span{padding:10px}.place-digits span{width:40px;height:48px}.coin-row .coin{width:48px;height:48px}}
/* Phase 7 instructional visuals */
.algorithm-stack{max-width:260px;margin:1rem auto;text-align:right;font-size:2rem;font-weight:800;line-height:1.25;padding:1rem 2rem;background:var(--panel,#fff);border:2px solid #d8dee9;border-radius:16px}.algorithm-stack span{float:left}.algorithm-stack hr{border:0;border-top:3px solid currentColor;margin:.25rem 0}.algorithm-stack .muted{font-size:.9rem;text-align:center;font-weight:600}.long-division{display:flex;justify-content:center;align-items:flex-start;gap:.4rem;font-size:2rem;font-weight:800;margin:1rem auto}.long-division strong{border-top:3px solid currentColor;border-left:3px solid currentColor;border-radius:10px 0 0 0;padding:.25rem 1rem}.decimal-places{display:flex;justify-content:center;align-items:end;gap:.4rem;margin:1rem 0}.decimal-places div{min-width:78px;text-align:center;border:2px solid #d8dee9;border-radius:12px;padding:.5rem}.decimal-places small{display:block;font-size:.7rem}.decimal-places strong{font-size:2rem}.decimal-places b{font-size:2rem;padding-bottom:.35rem}.fraction-equation-visual{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.fraction-equation-visual .fraction-bar{min-width:180px}
/* Phase 8 learning-flow additions */
.learning-flow-grid{margin-top:1.25rem}.recommendation-grid{margin-bottom:1.5rem}.weekly-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.75rem}.weekly-days>div{border:1px solid var(--border,#d8dee8);border-radius:14px;padding:.8rem;text-align:center}.weekly-days span{display:block;font-size:.85rem;opacity:.72;margin-top:.25rem}.path-stop.review{border-color:#b87333}.path-stop.review .path-marker{transform:scale(1.03)}.plain-list{padding-left:1.25rem}.plain-list li{margin:.55rem 0}
