:root{--navy:#10243e;--blue:#1d5fbf;--blue-dark:#154a97;--sky:#eaf3ff;--paper:#fbfaf6;--ink:#172033;--muted:#687386;--line:#dbe1e9;--green:#16715a;--green-bg:#e8f6f0;--amber:#8d5a0a;--amber-bg:#fff6df;--red:#9b3440;--red-bg:#fff0f1;--shadow:0 18px 55px rgba(17,36,62,.11);--soft-shadow:0 8px 28px rgba(16,36,62,.07)}
*{box-sizing:border-box}html{font-family:Inter,ui-rounded,"SF Pro Rounded",system-ui,-apple-system,sans-serif;background:var(--paper);color:var(--ink)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 86% 3%,#dceaff 0,transparent 29rem),var(--paper)}button,input{font:inherit}button{touch-action:manipulation}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:white;padding:.75rem;z-index:20}.screen[hidden],[hidden]{display:none!important}
header{height:68px;padding:0 max(24px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(16,36,62,.08)}.brand{font-weight:950;letter-spacing:-.04em;color:var(--navy);text-decoration:none;font-size:1.2rem}.brand span{font-weight:700;letter-spacing:0}.course{font-size:.84rem;color:var(--muted);font-weight:700}.course span{color:var(--blue);margin-right:.55rem;letter-spacing:.08em;font-size:.7rem}
main{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:56px 0 90px}.screen{display:none}.screen.active{display:block;animation:rise .22s ease-out}.screen:not(#session){max-width:720px;margin-inline:auto}@keyframes rise{from{opacity:0;transform:translateY(6px)}}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-size:.73rem;font-weight:900;margin-bottom:.55rem}h1,.screen-heading{font-size:clamp(2.35rem,6vw,4.4rem);line-height:.98;letter-spacing:-.055em;margin:.15rem 0 1rem;color:var(--navy)}.lede{font-size:1.1rem;color:var(--muted);margin:0 0 2rem;line-height:1.5}
.profiles{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile{appearance:none;border:1px solid var(--line);background:rgba(255,255,255,.9);border-radius:24px;padding:22px;text-align:left;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:14px;cursor:pointer;box-shadow:var(--soft-shadow);transition:.16s}.profile:hover,.profile:focus-visible{transform:translateY(-2px);border-color:var(--blue);box-shadow:var(--shadow)}.profile .avatar{width:58px;height:58px;border-radius:18px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:1.55rem;font-weight:950}.profile.samantha .avatar{background:#75509b}.profile strong{display:block;font-size:1.3rem;color:var(--navy)}.profile small{display:block;margin-top:4px;color:var(--muted);font-weight:650}.profile b{font-size:1.45rem;color:var(--blue)}.week-note{margin:22px 2px 0;color:var(--muted);font-size:.88rem;line-height:1.45}.week-note strong{color:var(--navy)}
.topline,.session-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.back{border:0;background:transparent;color:var(--muted);font-weight:800;cursor:pointer;min-height:44px;padding:8px 2px}.topline{margin-bottom:34px}#learner-pill{background:var(--sky);color:var(--blue);padding:8px 12px;border-radius:999px;font-weight:850;font-size:.85rem}
.mission-card{background:var(--navy);color:white;border-radius:30px;padding:34px;margin:24px 0 0;box-shadow:var(--shadow);position:relative;overflow:hidden}.mission-card:after{content:"";position:absolute;width:190px;height:190px;border:30px solid rgba(255,255,255,.055);border-radius:50%;right:-62px;top:-74px}.mission-card .label{color:#a9ccff;text-transform:uppercase;font-size:.72rem;letter-spacing:.11em;font-weight:900;position:relative;z-index:1}.mission-card h2{font-size:clamp(2rem,5vw,2.75rem);letter-spacing:-.035em;margin:.55rem 0 .4rem;color:white;position:relative;z-index:1}.mission-card p{color:#cdd8e7;max-width:560px;line-height:1.5;margin:0 0 1.35rem;position:relative;z-index:1}.mission-card .mission-meta{font-weight:850;color:#fff;margin-bottom:.9rem}.primary-button{border:0;border-radius:14px;background:var(--blue);color:white;min-height:54px;padding:0 24px;font-weight:900;cursor:pointer;box-shadow:0 7px 18px rgba(29,95,191,.2)}.primary-button:hover{background:var(--blue-dark)}.primary-button:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #afd0ff;outline-offset:2px}.primary-button:disabled{cursor:not-allowed;opacity:.45}.mission-card .primary-button{background:white;color:var(--navy);position:relative;z-index:1}.mission-card .primary-button:hover{background:#f4f8ff}
.session-head{margin-bottom:28px}.progress-cluster{width:min(430px,64vw)}.progress-copy{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.78rem;color:var(--muted);margin-bottom:7px}.progress-copy strong{color:var(--navy);font-size:.87rem}.progress-track{height:7px;border-radius:999px;background:#dfe5ec;overflow:hidden}.progress-track span{display:block;height:100%;width:0;border-radius:inherit;background:var(--blue);transition:width .2s ease}
.question-wrap{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:30px;padding:clamp(24px,4vw,42px);box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:30px;align-items:start}.question-main{min-width:0}.question-wrap .screen-heading{font-size:clamp(1.7rem,4vw,2.65rem);line-height:1.08;margin-bottom:1.35rem}.question-body{font-size:1.14rem;line-height:1.58;color:var(--muted);margin-bottom:20px}.question-body small{display:block;margin-top:8px;color:#7d8796}.math{font-variant-numeric:tabular-nums;font-weight:900;color:var(--navy);font-size:1.15em}.scaffold-note{margin:0 0 1rem;padding:12px 14px;border:1px solid #efd69a;border-radius:12px;background:#fff7df;color:#6f5016;font-weight:750;line-height:1.45}
.answer-label{display:block;margin:18px 0 7px;font-size:.78rem;font-weight:900;color:var(--navy)}.answer-input{width:100%;height:64px;border:2px solid #cfd6df;border-radius:15px;padding:0 18px;font-size:1.35rem;font-weight:800;color:var(--navy);background:#fff;margin-bottom:12px}.answer-input:disabled{background:#f1f4f7;color:#8c95a3}.answer-input:focus{outline:3px solid #bad7ff;border-color:var(--blue)}#answer-form>.primary-button{width:100%}.guided-locked .answer-label{color:var(--muted)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.choice{min-height:60px;border:2px solid #d4dae3;border-radius:14px;background:white;color:var(--navy);font-size:1.1rem;font-weight:850;cursor:pointer}.choice.selected{border-color:var(--blue);background:var(--sky)}
.feedback{margin-top:18px;border-radius:16px;padding:18px;line-height:1.5}.feedback.good{background:var(--green-bg);color:var(--green)}.feedback.bad{background:var(--red-bg);color:var(--red)}.feedback strong{display:block;margin-bottom:5px;font-size:1.03rem}.worked{margin-top:12px;padding-top:12px;border-top:1px solid currentColor;color:var(--ink)}.feedback-note{margin-top:10px;font-weight:750}.feedback .primary-button{margin-top:15px}
/* Place-value workspace */
.place-value-workspace{margin:20px 0 18px;padding:16px;border:1px solid #cfdbea;border-radius:20px;background:#f7faff}.pv-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.pv-topline strong{display:block;color:var(--navy);font-size:1.02rem}.pv-kicker{display:block;color:var(--blue);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;font-weight:900;margin-bottom:3px}.pv-move-count{font-size:.72rem;color:var(--muted);font-weight:850;white-space:nowrap}.pv-instruction{margin:10px 0 12px;color:var(--muted);font-size:.86rem;line-height:1.45}.pv-scroll{overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #d6e0ec;border-radius:14px;background:#fff;scrollbar-width:thin}.pv-grid{display:grid;grid-template-columns:repeat(7,minmax(74px,1fr)) 32px repeat(3,minmax(74px,1fr));min-width:806px}.pv-column{min-width:0;border-right:1px solid #e3e9f0}.pv-column:last-child{border-right:0}.pv-label{height:42px;padding:7px 4px;display:grid;place-items:center;text-align:center;color:#5f6e80;font-size:.61rem;font-weight:850;line-height:1.05;background:#f7f9fc;border-bottom:1px solid #e3e9f0}.pv-label-short{display:none}.pv-slot{height:70px;display:flex;align-items:center;justify-content:center;gap:3px}.pv-digit{width:42px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:1.35rem;font-weight:950;box-shadow:0 5px 12px rgba(16,36,62,.16);animation:token-in .16s ease-out}.pv-decimal{display:grid;place-items:center;align-content:center;background:#fff7df;color:var(--navy);border-right:1px solid #e3e9f0}.pv-decimal span{font-size:2rem;font-weight:950;line-height:.7}.pv-decimal small{font-size:.55rem;color:var(--amber);font-weight:900;text-transform:uppercase;margin-top:8px}.pv-controls{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;margin-top:12px}.pv-controls button{min-height:48px;border:1px solid #c8d5e4;border-radius:12px;background:#fff;color:var(--navy);font-weight:850;padding:0 12px;cursor:pointer}.pv-controls button:first-child,.pv-controls button:last-child{background:var(--sky);border-color:#bad0eb;color:var(--blue-dark)}.pv-controls button:disabled{opacity:.38;cursor:not-allowed}.pv-status{min-height:42px;margin-top:10px;padding:10px 12px;border-radius:11px;background:#eef3f8;color:var(--muted);font-size:.82rem;font-weight:750;line-height:1.4}.pv-status.needs-check{background:var(--amber-bg);color:var(--amber)}.pv-status.ready{background:var(--green-bg);color:var(--green)}@keyframes token-in{from{opacity:.6;transform:scale(.96)}}
/* Scratchwork remains optional and secondary */
.scratch-panel{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fafcff}.scratch-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 15px}.scratch-head strong,.scratch-head small{display:block}.scratch-head strong{color:var(--navy)}.scratch-head small{margin-top:2px;color:var(--muted);font-size:.74rem}.scratch-toggle,.scratch-actions button{min-height:44px;padding:0 14px;border:1px solid #c9d4e2;border-radius:11px;background:#fff;color:var(--navy);font-weight:850;cursor:pointer}.scratch-body{padding:0 12px 12px}.scratch-body canvas{display:block;width:100%;height:340px;border:1px solid #cfd9e5;border-radius:13px;background:#fff;touch-action:none;cursor:crosshair}.scratch-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.result-mark{width:72px;height:72px;border-radius:24px;background:var(--green-bg);color:var(--green);display:grid;place-items:center;font-size:2rem;font-weight:950;margin-bottom:22px}.result-score{font-size:1.15rem;color:var(--muted)}.result-analysis{margin:22px 0}.result-message{background:#fff;border:1px solid var(--line);padding:18px;border-radius:16px;color:var(--navy);font-weight:750;line-height:1.5}footer{text-align:center;color:#87909e;font-size:.75rem;padding:0 18px calc(28px + env(safe-area-inset-bottom))}[data-math-cloud-status][data-state="saved"]{color:var(--green)}[data-math-cloud-status][data-state="saving"],[data-math-cloud-status][data-state="loading"]{color:var(--blue)}[data-math-cloud-status][data-state="offline"],[data-math-cloud-status][data-state="unlinked"]{color:var(--amber)}
@media(max-width:899px){.question-wrap{grid-template-columns:1fr}.scratch-body canvas{height:290px}.scratch-panel{max-width:760px}}
@media(max-width:620px){header{height:60px;padding-inline:16px}.brand{font-size:1.05rem}.course span{display:none}.course{font-size:.7rem;max-width:55vw;text-align:right}main{width:min(100% - 24px,1120px);padding-top:34px;padding-bottom:70px}.profiles{grid-template-columns:1fr}.profile{padding:17px;border-radius:20px}.topline{margin-bottom:24px}.mission-card{padding:25px;border-radius:24px}.session-head{margin-bottom:18px;align-items:flex-start}.progress-cluster{width:min(260px,68vw)}.progress-copy{gap:8px}.question-wrap{padding:20px 16px 24px;gap:18px;border-radius:22px}.question-wrap .screen-heading{font-size:2rem}.question-body{font-size:1.08rem}.choice-grid{grid-template-columns:1fr}.place-value-workspace{margin-inline:-4px;padding:12px;border-radius:16px}.pv-label-full{display:none}.pv-label-short{display:inline}.pv-grid{grid-template-columns:repeat(7,64px) 28px repeat(3,64px);min-width:668px}.pv-label{height:34px;font-size:.66rem}.pv-slot{height:58px}.pv-digit{width:36px;height:42px;font-size:1.2rem;border-radius:10px}.pv-controls{grid-template-columns:1fr 72px 1fr}.pv-controls button{min-height:50px;padding-inline:6px;font-size:.82rem}.pv-topline{display:block}.pv-move-count{display:block;margin-top:6px}.scratch-body canvas{height:250px}#answer-form:not([hidden]){position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:5;margin:14px -6px 0;padding:10px;border:1px solid rgba(207,217,229,.9);border-radius:17px;background:rgba(251,250,246,.96);box-shadow:0 10px 34px rgba(16,36,62,.15);backdrop-filter:blur(12px)}.answer-label{margin-top:0}h1,.screen-heading{font-size:2.55rem}}
/* The place-value chart follows the active number instead of reserving ten fixed columns. */
.primary-button:disabled{cursor:not-allowed;opacity:1;background:#6f7f94;color:#fff;box-shadow:none}
.pv-grid{--pv-column-min:60px;--pv-decimal-width:26px;grid-template-columns:var(--pv-columns);min-width:0;width:100%}
.pv-label{padding:6px 4px;color:#42556c;font-size:.65rem;overflow-wrap:anywhere}
.pv-scroll-hint{margin:7px 2px 0;color:var(--blue-dark);font-size:.76rem;font-weight:750}
.pv-controls button:disabled{opacity:.55}
.pv-status{color:#526276}
@media(max-width:620px){.place-value-workspace{padding:12px 12px calc(100px + env(safe-area-inset-bottom))}.pv-grid{--pv-column-min:42px;--pv-decimal-width:20px;grid-template-columns:var(--pv-columns);min-width:0}.pv-label{height:42px;padding:4px 2px;font-size:.62rem}.pv-label-full,.pv-label-short{display:inline}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{max-width:min(420px,calc(100% - 32px));border:0;border-radius:22px;padding:26px;color:var(--navy);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(16,36,62,.35)}dialog h2{margin:0 0 8px;font-size:1.45rem}dialog p{color:var(--muted);line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dialog-actions button:first-child{min-height:48px;border:1px solid #c9d4e2;border-radius:12px;background:#fff;color:var(--navy);font-weight:850;padding:0 14px}
/* Chromebooks have ample canvas, so use it for a child-readable type scale instead of dashboard density. */
@media(min-width:900px){html{font-size:112.5%}.eyebrow,.mission-card .label{font-size:.78rem}.answer-label,.progress-copy{font-size:.82rem}.progress-copy strong{font-size:.94rem}.question-body{font-size:1.22rem}.pv-kicker,.pv-move-count,.pv-instruction,.pv-status,.pv-scroll-hint{font-size:max(.78rem,14px)}.pv-label{font-size:max(.72rem,13px);line-height:1.15}.scratch-head small,footer{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.component-stack{display:grid;gap:16px;margin-bottom:18px}.component-field{display:grid;gap:9px;margin:0;padding:14px;border:1px solid #cbd9e8;border-radius:14px;background:#f8fbff;min-width:0}.component-field legend{padding:0 5px;font-weight:800;color:#17324f}.component-field .choice-grid{margin:0}.division-model{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin:12px 0 8px}.division-model-group{display:flex;flex-wrap:wrap;align-content:flex-start;gap:5px;min-height:82px;padding:10px;border:2px solid #7996b8;border-radius:12px;background:#f5f9ff}.disk{display:grid;place-items:center;border-radius:999px;font-style:normal;font-size:.68rem;font-weight:800;color:#10243e}.disk.tenths{width:34px;height:34px;background:#86c9f4;border:2px solid #2477aa}.disk.hundredths{width:25px;height:25px;background:#ffd98c;border:2px solid #ad7414}.tape-model{margin:12px 0;padding:14px;border:1px solid #9db2ca;border-radius:14px;background:#f8fbff;text-align:center}.tape-model>div{display:flex;margin-top:9px}.tape-part{flex:1;min-width:38px;padding:15px 5px;border:2px solid #38668f;border-right-width:0;font-weight:900}.tape-part:last-child{border-right-width:2px}.worked-steps{padding:12px 14px;border:1px solid #cbd9e8;border-radius:12px;background:#f8fbff}.worked-steps ol{margin:8px 0 0;padding-left:24px}.feedback.neutral{background:#edf3f8;border-color:#a9bbcb;color:#18334e}.test-review{margin-top:14px;padding:14px;border:1px solid #cbd9e8;border-radius:12px;background:#fff;text-align:left}.test-review div{margin-top:6px}.test-review p{margin:8px 0 0;color:#425b72}
@media(max-width:620px){.component-field .choice-grid{grid-template-columns:1fr}.division-model{grid-template-columns:repeat(2,minmax(0,1fr))}}
