:root{--navy:#002d74;--navy2:#0a3e83;--yellow:#ffce07;--ink:#263442;--muted:#64707d;--line:#dce3ec;--paper:#f4f6fa;--green:#186446;--mint:#edf8f0;--amber:#745600;--radius:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--navy)}:focus-visible{outline:3px solid #477fd6;outline-offset:4px}.skip{position:absolute;top:-80px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:8px}.reviewbar{background:#e8edf5;color:#384d68;padding:8px 38px;font-size:10px;letter-spacing:1.2px;font-weight:800;display:flex;align-items:center;gap:8px}.review-dot{width:6px;height:6px;border-radius:50%;background:var(--navy)}.review-detail{font-weight:500;letter-spacing:.1px;margin-left:12px;font-size:11px}header{height:96px;padding:14px 38px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;text-decoration:none;color:var(--navy);font-size:19px;font-weight:850;line-height:1.1;letter-spacing:1px}.brand img{width:153px;height:auto}.brand-rule{height:39px;width:1px;background:var(--line);margin:0 21px}.brand small{font-size:9px;letter-spacing:2px}.header-right{display:flex;align-items:center;gap:18px}.preview-pill{font-size:10px;letter-spacing:1.1px;padding:6px 10px;border:1px solid var(--line);border-radius:30px;font-weight:700}.textbutton{background:none;border:0;color:var(--navy);font-weight:650;font-size:12px;padding:8px}.shell{display:grid;grid-template-columns:225px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 190px)}aside{padding:34px 20px 25px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#f9fafc}.sidebar-label,.smallcaps{font-size:9px;font-weight:800;letter-spacing:1.7px;color:var(--muted)}nav{margin:18px 0 45px}nav button{width:100%;text-align:left;display:flex;align-items:center;gap:12px;border:0;background:transparent;border-radius:10px;padding:13px 14px;margin:5px 0;color:var(--muted);font-size:12px;font-weight:650}nav button span{font-size:19px;line-height:1;width:19px}nav button.active{background:var(--navy);color:white;box-shadow:0 5px 10px #002d7410}.side-card{margin:10px 5px;padding:20px 16px;border:1px solid #dfe5ee;border-radius:12px;background:white}.side-card .smallcaps{font-size:8px;letter-spacing:1.3px}.side-card p{font-size:14px;color:var(--navy);font-weight:650;line-height:1.6;margin:12px 0}.side-stars{font-size:24px;color:#b88c00}.side-bottom{margin:auto 12px 0;padding-top:25px;font-size:9px;letter-spacing:1.4px;color:var(--navy);font-weight:700}.side-bottom span{font-size:10px;letter-spacing:0;color:var(--muted);font-weight:400}main{padding:34px 42px 40px;max-width:1250px;width:100%;outline:none}.eyebrow{color:var(--muted);font-size:10px;letter-spacing:1.6px;font-weight:800;margin:0 0 8px}h1{font-size:30px;line-height:1.2;letter-spacing:-1px;margin:0 0 10px;color:var(--navy)}h2{font-size:18px;line-height:1.3;margin:0 0 8px;color:var(--navy);letter-spacing:-.3px}h3{font-size:14px;margin:0 0 7px;color:var(--navy)}p{margin:0 0 14px}.muted{color:var(--muted)}.subtitle{font-size:13px;color:var(--muted);margin:0}.title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.profile-switch{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--muted);min-width:188px}select,input[type=text]{border:1px solid #cbd4e0;border-radius:8px;padding:9px 11px;color:var(--ink);background:white;font-size:12px;max-width:100%}.hero{position:relative;overflow:hidden;background:var(--navy);border-radius:18px;padding:30px 32px;display:grid;grid-template-columns:1fr 170px;color:white;margin-bottom:22px;box-shadow:0 5px 16px #002d7410}.hero h2{color:white;font-size:29px;font-weight:750;letter-spacing:-.6px;max-width:450px;line-height:1.2;margin:8px 0 13px}.hero .eyebrow{color:#d5e0f5;font-size:9px}.hero p{color:#d7e2f5;max-width:460px;font-size:12px;line-height:1.7;margin-bottom:20px}.hero-art{align-self:center;justify-self:center;position:relative;width:130px;height:130px;border-radius:50%;background:#ffffff08;border:1px solid #ffffff25;display:grid;place-items:center}.hero-art:before{content:"";position:absolute;inset:-16px;border:1px solid #ffffff10;border-radius:50%}.hero-art svg{width:81px;height:81px}.hero-art .star{position:absolute;color:var(--yellow);font-size:25px;right:-12px;top:0}.primary,.secondary{border:0;border-radius:9px;padding:11px 17px;min-height:44px;font-size:12px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:10px}.primary{background:var(--yellow);color:var(--navy)}.primary.blue{background:var(--navy);color:white}.primary:hover{filter:brightness(.97)}.secondary{background:white;border:1px solid #cad4e2;color:var(--navy)}.hero .primary{padding:12px 20px}.hero-note{display:inline-block;font-size:10px;color:#c6d6ef;margin-left:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}.stat{border:1px solid var(--line);background:white;border-radius:13px;padding:17px 20px;display:flex;align-items:center;gap:15px}.stat-icon{background:#eef2f8;color:var(--navy);width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:19px}.stat strong{font-size:24px;color:var(--navy);letter-spacing:-.5px;line-height:1.1;display:block}.stat span.label{font-size:10px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.section-head p{font-size:11px;color:var(--muted);margin:0}.section-head h2{margin-bottom:3px}.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.topic-card{border:1px solid var(--line);background:white;border-radius:13px;padding:19px;text-align:left;display:flex;flex-direction:column;position:relative;min-height:172px;transition:transform .15s,border-color .15s}.topic-card:hover{transform:translateY(-2px);border-color:#9aafd0}.topic-icon{background:#f0f3f8;display:grid;place-items:center;width:34px;height:34px;color:var(--navy);border-radius:9px;font-weight:800;font-size:13px;margin-bottom:13px}.topic-card h3{font-size:13px;line-height:1.35}.topic-card p{font-size:10px;color:var(--muted);margin:0 0 12px}.topic-meta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:var(--muted)}.topic-meta .arrow{color:var(--navy);font-size:20px}.badge{display:inline-block;font-size:9px;font-weight:600;border-radius:5px;padding:3px 6px;background:#eef2f7;color:#4d5f76}.badge.gold{background:#fff6ce;color:#745600}.badge.green{background:#e5f3e9;color:var(--green)}.info-strip{border:1px solid #dbe4ee;border-radius:10px;padding:12px 15px;font-size:11px;color:#5d6d81;background:#f9fbfe;margin-top:20px;display:flex;gap:10px;align-items:start}.info-strip strong{color:var(--navy)}.login-demo{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.login-demo summary{font-size:11px;font-weight:700;color:var(--navy);cursor:pointer}.login-row{display:flex;gap:8px;align-items:end;margin-top:12px}.login-row label{font-size:11px;display:flex;flex-direction:column;gap:5px}.login-demo p{font-size:10px;color:var(--muted);margin:8px 0 0}.practice-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:15px}.practice-top p{margin:0;font-size:11px;color:var(--muted)}.save-dot{color:var(--green);font-size:10px;display:flex;gap:5px;align-items:center}.save-dot:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.question-wrap{max-width:800px;margin:0 auto}.question-meta{display:flex;justify-content:space-between;gap:10px;font-size:10px;font-weight:700;letter-spacing:1px;color:var(--muted);margin-bottom:12px}.progress-line{height:4px;background:#e2e8f1;border-radius:5px;overflow:hidden;margin-bottom:28px}.progress-line span{display:block;background:var(--yellow);height:100%}.question-card{padding:30px 34px;background:white;border:1px solid var(--line);border-radius:17px;box-shadow:0 4px 15px #172b4d04}.question-card h1{font-size:25px;line-height:1.45;letter-spacing:-.4px;margin:17px 0 25px;max-width:700px}.question-card .eyebrow{font-size:9px}.choices{display:grid;gap:11px}.choice{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:white;border:1px solid #d2dbe7;border-radius:10px;padding:13px 16px;min-height:59px;color:var(--ink);font-size:14px;line-height:1.5}.choice:hover:not(:disabled){border-color:var(--navy);background:#f6f8fc}.choice .letter{width:29px;height:29px;display:grid;place-items:center;border:1px solid #d6dfeb;background:#f7f9fc;border-radius:7px;font-size:11px;color:var(--muted);flex-shrink:0;font-weight:700}.choice:disabled{opacity:1}.choice.correct{border:2px solid #3f8764;background:#eff8f2}.choice.correct .letter{color:white;background:#267247;border-color:#267247}.choice.incorrect{border:2px solid #c49b28;background:#fff9e5}.feedback{border-radius:11px;background:var(--mint);border:1px solid #c8e2d1;margin-top:20px;padding:15px 18px;font-size:12px}.feedback.wrong{background:#fff9e7;border-color:#ead99d}.feedback strong{display:block;margin-bottom:4px;color:#195d3c;font-size:14px}.feedback.wrong strong{color:#715700}.feedback p{margin:3px 0;color:#3e5548;line-height:1.7}.feedback.wrong p{color:#665b3b}.feedback a{font-size:10px;display:inline-block;margin-top:7px}.question-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:23px}.question-actions small{font-size:10px;color:var(--muted)}.tip{margin:16px 0;background:#fffbed;border:1px solid #f0e2b3;border-radius:10px;padding:13px 15px;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#6b5a2b}.tip p{margin:0}.tip strong{display:block;font-size:10px;color:#806100;margin-bottom:3px}.iconbutton{border:0;background:transparent;color:inherit;font-size:23px;line-height:1;padding:5px;min-width:30px;min-height:30px}.session-footer{margin:20px 0;text-align:center;font-size:10px;color:var(--muted)}.summary{background:white;border:1px solid var(--line);border-radius:18px;padding:32px;text-align:center;max-width:760px;margin:auto}.summary .result-ring{width:123px;height:123px;display:grid;place-items:center;border:10px solid var(--yellow);border-radius:50%;margin:8px auto 23px;font-weight:800;font-size:36px;color:var(--navy);letter-spacing:-1px}.summary h1{font-size:28px}.summary p{font-size:13px;color:var(--muted)}.summary-actions{display:flex;gap:10px;justify-content:center;margin:23px 0}.topic-results{text-align:left;margin-top:25px;border-top:1px solid var(--line);padding-top:20px}.result-row{display:flex;justify-content:space-between;padding:10px 0;gap:10px;border-bottom:1px solid #edf0f5;font-size:12px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:20px}.panel p{font-size:12px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.filters label{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:5px;min-width:130px}.teacher-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.teacher-header .badge{margin-bottom:10px}.tablewrap{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;font-size:11px}.report-table th{text-align:left;font-size:9px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 12px;white-space:nowrap}.report-table td{padding:14px 12px;border-bottom:1px solid #edf0f5;white-space:nowrap}.report-table tbody tr:last-child td{border:0}.report-table td strong{color:var(--navy)}.bar-track{background:#edf1f6;height:7px;border-radius:7px;overflow:hidden;margin-top:7px;width:100%}.bar-track span{background:#446da7;height:100%;display:block;border-radius:7px}.topic-report{display:grid;grid-template-columns:1fr 1fr;gap:17px 30px;margin-top:19px}.topic-report-title{display:flex;justify-content:space-between;gap:12px;font-size:11px}.topic-report small{font-size:9px;color:var(--muted)}.settings{display:grid;grid-template-columns:1fr 1fr;gap:18px}.setting{display:flex;flex-direction:column;gap:6px;font-size:11px}.setting span{color:var(--muted);font-size:10px}.checkline{display:flex;gap:9px;align-items:start;font-size:12px}.checkline input{accent-color:var(--navy);width:16px;height:16px;margin-top:3px}.teacher-caption{font-size:10px;color:var(--muted);margin-top:13px;line-height:1.7}.empty{padding:28px 15px;text-align:center;color:var(--muted);font-size:13px}.sessions{display:grid;gap:10px;margin-top:16px}.session-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:13px 15px;gap:12px;font-size:12px}.session-item small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.sessions-score{font-weight:750;font-size:17px;color:var(--navy)}.error{color:#984515;font-size:11px}.report-links{display:flex;gap:8px;align-items:center}footer{font-size:9px;text-align:center;color:#798391;max-width:1100px;margin:0 auto;padding:17px 25px 22px}footer a{color:#62738a}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#1c344e;color:white;padding:12px 20px;border-radius:10px;font-size:12px;z-index:40;max-width:90%;box-shadow:0 5px 20px #0002;display:none}dialog{border:1px solid var(--line);border-radius:17px;padding:28px 30px;width:620px;max-width:calc(100vw - 32px);color:var(--ink)}dialog::backdrop{background:#00173566}dialog p,dialog li{font-size:12px;line-height:1.7}dialog li{margin:10px 0}dialog ul{padding-left:20px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.dialog-head h2{margin:0}.small-link{font-size:10px}.source-list{display:grid;gap:12px}.source-list details{border-top:1px solid var(--line);padding-top:12px}.source-list summary{cursor:pointer;font-size:12px;color:var(--navy)}.source-list p{font-size:11px;margin-top:8px}.source-list a{font-size:10px}.storage-warning{background:#fff0d7;color:#805100;padding:12px;font-size:12px;margin-bottom:18px;border-radius:8px}@media(min-width:1450px){main{padding:40px 55px}.hero{padding:36px 40px}.hero h2{font-size:34px}.topic-card{min-height:190px}.question-card h1{font-size:28px}}@media(max-width:1050px){.shell{grid-template-columns:190px 1fr}aside{padding-left:16px;padding-right:14px}main{padding:28px 25px}.topics{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr 125px;padding:27px}.hero h2{font-size:27px}.hero-art{width:100px;height:100px}.hero-art svg{width:64px}.stats{gap:10px}.stat{padding:15px 12px;gap:10px}.stat-icon{width:32px;height:32px;font-size:15px}.stat strong{font-size:23px}}@media(max-width:760px){.reviewbar{padding:8px 18px;font-size:8px;gap:6px}.review-detail{font-size:8px;letter-spacing:0;margin-left:5px}header{height:79px;padding:12px 18px}.brand img{width:120px}.brand{font-size:15px}.brand-rule{margin:0 12px;height:31px}.brand small{font-size:7px;letter-spacing:1.6px}.preview-pill{display:none}.textbutton{font-size:10px;padding:6px;max-width:100px}.shell{display:block}aside{padding:10px 15px;border-right:0;border-bottom:1px solid var(--line);background:white}.sidebar-label,.side-card,.side-bottom{display:none}nav{display:flex;gap:6px;margin:0}nav button{margin:0;justify-content:center;font-size:10px;gap:7px;padding:11px 8px}nav button span{font-size:16px;width:16px}main{padding:25px 18px 30px}h1{font-size:27px}.title-row{align-items:start;margin-bottom:22px;gap:13px}.profile-switch{min-width:0;width:145px;flex-shrink:0;font-size:9px}.profile-switch select{font-size:10px;padding:8px}.subtitle{font-size:11px}.hero{padding:25px 23px;grid-template-columns:1fr 90px;border-radius:14px}.hero h2{font-size:26px}.hero p{font-size:11px;margin-bottom:18px}.hero-art{width:72px;height:72px}.hero-art svg{width:48px}.hero-art:before{inset:-11px}.hero-art .star{font-size:20px}.hero-note{display:block;margin:10px 0 0}.stats{gap:8px;margin-bottom:25px}.stat{padding:14px 11px;gap:0;display:block}.stat-icon{display:none}.stat strong{font-size:24px}.stat span.label{font-size:9px}.topic-card{min-height:169px;padding:16px}.topics{gap:10px}.section-head{align-items:start}.section-head p{font-size:10px}.section-head h2{font-size:17px}.question-card{padding:23px 20px}.question-card h1{font-size:22px;line-height:1.4}.choice{padding:12px;font-size:13px;gap:11px}.practice-top{margin-bottom:18px}.practice-top .textbutton{max-width:none}.question-meta{font-size:9px}.question-actions{align-items:start}.question-actions small{font-size:9px;max-width:160px}.question-actions .primary{padding:11px 15px}.progress-line{margin-bottom:20px}.teacher-header{align-items:start}.teacher-header .secondary{font-size:10px;padding:9px 12px}.teacher-header h1{font-size:25px}.filters{gap:9px}.filters label{min-width:100px;flex:1}.panel{padding:18px 16px}.topic-report{grid-template-columns:1fr}.settings{grid-template-columns:1fr}.summary{padding:28px 20px}.summary h1{font-size:26px}.summary-actions{flex-direction:column}.result-row{font-size:11px}footer{font-size:8px}.review-detail{max-width:56%;line-height:1.3}.header-right{gap:0}.source-list summary{font-size:11px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.sr-answer{font-size:10px;display:block;font-weight:600;margin-top:3px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.paper-item{padding:18px 0;border-bottom:1px solid var(--line)}.paper-item p{margin:6px 0 0 15px;color:var(--ink)}input[type=number]{border:1px solid #cbd4e0;border-radius:8px;padding:9px 11px;background:white;min-height:38px;max-width:120px;font-size:12px}@media(max-width:760px){.export-grid{grid-template-columns:1fr}.teacher-header{display:block}.teacher-header>.report-links{margin-top:16px}}
/* Simple code-first entry and a focused learner workspace. */
.shell{display:block;max-width:1440px}.shell main{margin:0 auto;max-width:1040px;min-height:calc(100vh - 210px)}.teacher-mode .shell main{max-width:1280px}.entry-mode .shell main{max-width:780px;padding-top:65px;padding-bottom:45px}.entry-card{text-align:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:42px 48px 30px;box-shadow:0 12px 35px #002d7407}.entry-mark{margin:0 auto 17px;width:48px;height:48px;background:#fff5c9;color:var(--navy);border-radius:14px;display:grid;place-items:center;font-size:28px}.entry-card h1{font-size:36px;line-height:1.18;margin:12px 0 19px;letter-spacing:-1px}.entry-intro{font-size:15px;color:var(--muted);margin-bottom:26px}.entry-card form{text-align:left}.entry-card form>label{display:block;font-size:12px;font-weight:700;color:var(--navy);margin-bottom:8px}.entry-bar{display:flex;gap:10px}.entry-bar input{flex:1;min-width:0;font-size:18px;padding:15px 16px;letter-spacing:1px;border-radius:10px;text-transform:uppercase;min-height:56px}.entry-bar input::placeholder{text-transform:none;letter-spacing:0;font-size:15px}.entry-bar button{font-size:14px;padding:14px 20px;white-space:nowrap}.entry-card .error{font-size:12px;margin:8px 0;min-height:18px}.entry-note{font-size:11px;color:var(--muted);margin:12px 0 22px}.entry-note strong{font-weight:650;color:var(--ink)}.entry-divider{border-top:1px solid var(--line);margin:25px 0 20px}.entry-how{font-size:12px;line-height:1.7;color:#536479;margin:0 auto 8px;max-width:410px}.entry-storage{font-size:10px;color:var(--muted);margin:0}.owner-entry{text-align:center;padding-top:18px}.owner-entry .textbutton{font-size:11px;max-width:none}.coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 24px;margin:15px 0 20px}.practice-top p{font-size:11px}.question-wrap{max-width:800px;margin:auto}.summary-actions+.textbutton{margin:auto}.header-right [hidden]{display:none!important}@media(max-width:760px){.entry-mode .shell main{padding:34px 18px 30px}.entry-card{padding:29px 22px 24px}.entry-card h1{font-size:30px}.entry-intro{font-size:13px}.entry-bar{flex-direction:column;gap:10px}.entry-bar button{width:100%;min-height:50px}.entry-bar input{width:100%;font-size:17px}.coverage-grid{grid-template-columns:1fr}.header-right .textbutton{font-size:9px}.entry-mark{width:42px;height:42px;font-size:25px;margin-bottom:14px}.shell main{padding:25px 18px 30px}.practice-top{gap:12px}.brand img{width:100px}.brand{font-size:13px}.brand-rule{margin:0 9px}.brand small{font-size:6px}}
.practice-mode{background:var(--navy)}.practice-mode header,.practice-mode footer{display:none}.practice-mode .reviewbar{background:#001f53;color:#dce7fb}.practice-mode .review-dot{background:var(--yellow)}.practice-mode .shell{position:relative;background:radial-gradient(circle at 5% 18%,#ffce071a 0 7%,transparent 7.2%),radial-gradient(circle at 95% 85%,#ffce0714 0 15%,transparent 15.2%);min-height:calc(100vh - 33px);overflow:hidden}.practice-mode .shell:before,.practice-mode .shell:after{content:'✦';position:absolute;color:#ffce0745;font-size:130px;z-index:0;pointer-events:none}.practice-mode .shell:before{left:4%;bottom:8%;transform:rotate(-14deg)}.practice-mode .shell:after{right:3%;top:18%;font-size:80px}.practice-mode main{position:relative;z-index:1;padding-top:25px;padding-bottom:50px;max-width:1000px}.practice-mast{display:flex;align-items:center;gap:22px;max-width:800px;margin:0 auto 22px}.practice-mascot{width:185px;height:auto;filter:drop-shadow(0 2px 3px #0002);margin-right:auto}.timer-box{background:var(--yellow);border:2px solid #ffe67d;border-radius:14px;color:var(--navy);padding:8px 19px;text-align:center;min-width:104px;box-shadow:0 4px 0 #001c49}.timer-box span{font-size:8px;display:block;font-weight:800;letter-spacing:1.2px}.timer-box strong{font-size:28px;line-height:1.2;font-variant-numeric:tabular-nums}.finish-quiet{color:#e7efff;background:transparent;border:1px solid #8faed3;border-radius:8px;padding:8px 12px;font-size:11px}.practice-mode .question-card{border:0;border-top:7px solid var(--yellow);box-shadow:0 15px 50px #00153855;padding:34px 35px}.practice-mode .question-card h1{margin:0 0 27px;font-size:28px;line-height:1.4}.practice-mode .choice{min-height:61px;font-size:16px;background:#fbfcff}.practice-mode .choice.correct{background:var(--mint)}.practice-mode .choice.incorrect{background:#fff3e8}.answer-next{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:23px}.answer-message{color:var(--navy);font-size:13px;font-weight:650;margin:0}.summary-star{font-size:53px;color:#d0a000;margin:8px 0 14px}.evidence-message{font-weight:650;color:var(--navy)!important}.score-label{font-weight:700}.next-focus{text-align:left;background:#f0f4fa;border-radius:12px;padding:20px;margin-top:25px}.next-focus>strong{font-size:13px;color:var(--navy)}.next-focus p:last-child{margin:9px 0 0;font-size:12px}.result-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.result-row>strong{font-size:11px;text-align:right}.scoring-settings{display:flex;flex-wrap:wrap;gap:20px;margin:15px 0}.scoring-settings label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted)}@media(max-width:760px){.practice-mode main{padding:20px 16px 35px}.practice-mast{gap:13px;margin-bottom:19px}.practice-mascot{width:145px}.timer-box{padding:7px 13px;min-width:87px}.timer-box strong{font-size:25px}.finish-quiet{font-size:10px;padding:8px}.practice-mode .question-card{padding:24px 19px;border-top-width:6px}.practice-mode .question-card h1{font-size:22px;margin-bottom:23px}.practice-mode .choice{font-size:14px;min-height:59px}.answer-next{align-items:start}.answer-message{font-size:11px;max-width:145px}.answer-next button{font-size:11px;padding:11px 13px}.practice-mode .shell:before{font-size:90px;left:-20px}.practice-mode .shell:after{right:-10px;font-size:65px}.result-row>span{max-width:65%}.scoring-settings{gap:14px}.summary .topic-results{text-align:left}}@media(max-width:380px){.practice-mascot{width:116px}.practice-mast{gap:9px}.timer-box{min-width:76px;padding:7px 10px}.timer-box strong{font-size:24px}.finish-quiet{padding:7px}}

/* Waldo’s Lab — calm school spirit, a little discovery, one clear next step. */
:root {
  --navy: #002d74;
  --navy2: #0a3e83;
  --yellow: #ffce07;
  --ink: #243447;
  --muted: #54647a;
  --line: #dce4ef;
  --paper: #f3f6fb;
  --focus: #1670d2;
}
html { min-width: 280px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button, input, select, a { border-radius: 10px; }
button, a { transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
button:disabled { cursor: default; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
header :focus-visible, .practice-mast :focus-visible, .entry-mode footer :focus-visible { outline-color: var(--yellow); }
.skip:focus { outline-color: var(--yellow); }
.reviewbar {
  min-height: 30px;
  padding: 7px clamp(18px, 4vw, 56px);
  background: #fff8da;
  color: #624b05;
  font-size: 10px;
  letter-spacing: .07em;
  line-height: 1.5;
}
.review-dot { flex: 0 0 6px; background: #9a7300; }
.review-detail { font-size: 10px; color: #655a38; }
header {
  min-height: 92px;
  height: auto;
  padding: 17px clamp(18px, 4vw, 56px);
  border-bottom: 1px solid #ffffff20;
  background: var(--navy);
  color: #fff;
  gap: 24px;
}
.brand { gap: 0; color: #fff; font-size: 23px; letter-spacing: -.6px; line-height: 1.12; }
.brand img { display: block; width: 145px; height: auto; }
.brand-rule { height: 39px; background: #ffffff40; margin: 0 22px; }
.brand small { display: inline-block; margin-top: 5px; font-size: 9px; letter-spacing: .16em; color: #e1eaff; }
.header-right { gap: 13px; }
.header-right .textbutton { color: #eef3ff; min-height: 40px; }
.header-right .textbutton:hover { background: #ffffff13; }
.preview-pill { border-color: #ffffff4a; color: #e6eeff; padding: 6px 11px; }
h1, h2, h3 { text-wrap: balance; }
h1 { font-weight: 800; }
p { text-wrap: pretty; }
.shell { max-width: 1480px; }
.shell main { padding-top: 42px; padding-bottom: 42px; }
.eyebrow { font-size: 10px; color: #536580; letter-spacing: .15em; }
.textbutton { min-height: 40px; }
.textbutton:hover { background: #e8eef7; }
.primary, .secondary {
  min-height: 46px;
  font-size: 13px;
  line-height: 1.4;
  border-radius: 11px;
  text-decoration: none;
}
.primary { box-shadow: 0 2px 0 #002d7420; }
.primary.blue:hover { background: #11458e; filter: none; }
.primary:hover:not(.blue) { background: #ffdb43; filter: none; }
.primary:active:not(:disabled), .secondary:active:not(:disabled) { box-shadow: none; }
.secondary:hover { background: #f5f8fd; border-color: #8a9fbe; }
select, input[type=text], input[type=number] { min-height: 42px; border-color: #7b8eaa; }
input[aria-invalid=true] { border-color: #a74422; box-shadow: 0 0 0 1px #a74422; }
input::placeholder { color: #64748b; opacity: 1; }
.error { color: #9a3517; }

/* The welcome screen uses the mascot’s white artwork on its intended dark field. */
.entry-mode {
  background: #002d74;
  background-image: radial-gradient(ellipse at 15% 42%, #124a93 0, transparent 46%),
    radial-gradient(ellipse at 88% 77%, #07255a 0, transparent 46%);
}
.entry-mode .shell { position: relative; isolation: isolate; min-height: calc(100svh - 186px); }
.entry-mode .shell::before,
.entry-mode .shell::after {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: -1;
  width: 240px;
  height: 240px;
  border: 1px solid #cfddf528;
  border-radius: 50%;
}
.entry-mode .shell::before { top: 98px; left: max(3%, calc(50% - 490px)); transform: rotate(-16deg) scaleX(.58); }
.entry-mode .shell::after { right: max(3%, calc(50% - 495px)); bottom: 72px; transform: rotate(24deg) scaleX(.64); border-color: #ffce0730; }
.entry-mode .shell main { max-width: 792px; padding: 48px 36px 30px; }
.entry-card {
  position: relative;
  padding: 34px 50px 29px;
  border: 1px solid #fff;
  border-top: 5px solid var(--yellow);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 56px #001c4933, 0 4px 0 #ffffff15;
  isolation: isolate;
}
.entry-mark {
  position: relative;
  width: 76px;
  height: 76px;
  margin: 0 auto 17px;
  border-radius: 22px;
  background: #fff6d2 url('assets/lab-emblem.svg') center / 64px 64px no-repeat;
  color: transparent;
  font-size: 0;
  transform: rotate(-5deg);
}
.entry-card > .eyebrow { color: #6e580c; font-size: 10px; letter-spacing: .16em; }
.entry-card h1 { font-size: clamp(31px, 3.6vw, 42px); line-height: 1.13; letter-spacing: -1.25px; margin: 11px auto 15px; max-width: 550px; }
.entry-intro { color: #52627a; font-size: 15px; margin-bottom: 28px; }
.entry-card form > label { font-size: 12px; margin-bottom: 9px; }
.entry-bar { gap: 10px; }
.entry-bar input {
  min-height: 57px;
  background: #f7f9fd;
  border: 1.5px solid #7b8eaa;
  border-radius: 12px;
  padding: 14px 17px;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: .06em;
}
.entry-bar input::placeholder { font-size: 14px; font-weight: 400; letter-spacing: 0; }
.entry-bar input:focus { background: #fff; }
.entry-bar .primary.blue {
  min-height: 57px;
  padding: 14px 22px;
  border: 1px solid #e9ba00;
  background: var(--yellow);
  color: var(--navy);
  font-size: 14px;
}
.entry-bar .primary.blue:hover { background: #ffdb43; }
.entry-card .error { margin: 9px 0 0; min-height: 18px; font-size: 12px; }
.entry-note { font-size: 11px; line-height: 1.65; margin: 9px 0 22px; }
.entry-note strong { display: inline-block; padding: 0 5px; border-radius: 4px; background: #edf2fa; color: var(--navy); letter-spacing: .03em; }
.entry-divider { margin: 22px 0 19px; border-color: #e4eaf2; }
.entry-how { color: #40536e; font-size: 12px; line-height: 1.75; max-width: 440px; margin-bottom: 10px; }
.entry-storage { font-size: 10px; color: #66758a; }
.owner-entry { padding-top: 19px; }
.owner-entry .textbutton { color: #e5edff; font-size: 12px; padding: 10px 17px; border: 1px solid #ffffff4a; border-radius: 30px; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.owner-entry .textbutton:hover { background: #ffffff12; }
.entry-mode footer { color: #c0cee5; font-size: 10px; padding-bottom: 20px; max-width: 900px; }
.entry-mode footer a { color: #e6eeff; text-underline-offset: 3px; }
.owner-entry :focus-visible { outline-color: var(--yellow); }

/* No moving decoration or side content during a question. */
.practice-mode { background: #002d74; }
.practice-mode .reviewbar { background: #00245f; color: #d9e5fa; border-bottom: 1px solid #ffffff15; }
.practice-mode .review-detail { color: #c4d4ed; }
.practice-mode .shell { min-height: calc(100svh - 30px); background: none; }
.practice-mode .shell::before, .practice-mode .shell::after { content: none; }
.practice-mode .shell main { max-width: 1000px; padding-top: 27px; padding-bottom: 48px; }
.practice-mast { max-width: 820px; gap: 18px; margin-bottom: 23px; }
.practice-mascot { width: 158px; height: auto; filter: none; }
.timer-box { min-width: 112px; padding: 8px 17px 9px; border: 1px solid #ffe57b; border-radius: 14px; background: var(--yellow); box-shadow: none; }
.timer-box span { font-size: 8px; line-height: 1.5; letter-spacing: .12em; }
.timer-box strong { font-size: 28px; line-height: 1.15; letter-spacing: -.5px; }
.finish-quiet { min-height: 42px; padding: 9px 14px; border: 1px solid #9fb8de; border-radius: 10px; color: #f1f5ff; font-size: 12px; }
.finish-quiet:hover { background: #ffffff13; border-color: #fff; }
.question-wrap { max-width: 820px; }
.practice-mode .question-card { border-top: 5px solid var(--yellow); border-radius: 20px; padding: 34px 36px 36px; background: #fff; box-shadow: 0 20px 50px #001a463b; }
.practice-mode .question-card h1 { color: #123568; font-size: clamp(22px, 2.3vw, 28px); line-height: 1.42; font-weight: 750; letter-spacing: -.5px; margin: 0 0 27px; text-wrap: pretty; }
.choices { gap: 12px; }
.practice-mode .choice { min-height: 65px; padding: 13px 16px; gap: 16px; background: #f8faff; border: 1.5px solid #738ba9; border-radius: 12px; font-size: 16px; line-height: 1.5; }
.practice-mode .choice:hover:not(:disabled) { background: #eff4fc; border-color: #295d9c; box-shadow: 0 0 0 1px #295d9c; }
.choice .letter { width: 33px; height: 33px; border: 1px solid #b8c8df; border-radius: 9px; background: #fff; color: #31547f; font-size: 12px; }
.practice-mode .choice.correct { border: 2px solid #3f8764; background: #edf8f0; }
.practice-mode .choice.correct .letter { border-color: #246641; background: #246641; color: #fff; }
.practice-mode .choice.incorrect { border: 2px solid #ae7b16; background: #fff7e6; }
.practice-mode .choice.incorrect .letter { border-color: #a97716; background: #fff0c8; color: #705006; }
.sr-answer { font-size: 11px; margin-top: 4px; }
.answer-next { margin-top: 24px; gap: 20px; }
.answer-message { font-size: 13px; color: #264972; }
.answer-next .primary { min-width: 155px; }

/* The end-of-session dashboard is encouraging and easy to scan. */
.summary { border: 1px solid #d5dfed; border-top: 5px solid var(--yellow); border-radius: 22px; padding: 36px 38px 28px; box-shadow: 0 10px 34px #14356d08; max-width: 800px; }
.summary > .eyebrow { font-size: 10px; color: #556882; }
.summary .result-ring { width: 130px; height: 130px; border-width: 9px; background: #fffdf3; box-shadow: 0 0 0 5px #fff7d5; margin: 22px auto 26px; font-size: 36px; }
.summary h1 { font-size: 30px; line-height: 1.2; letter-spacing: -.8px; }
.summary > p { max-width: 570px; margin-left: auto; margin-right: auto; line-height: 1.65; }
.summary-star { display: grid; place-items: center; width: 78px; height: 78px; margin: 18px auto 23px; border-radius: 22px; background: #fff5ce; color: #876600; font-size: 44px; }
.summary-actions { margin: 24px 0 28px; }
.next-focus { background: #eef4fc; border: 1px solid #dce7f6; border-left: 4px solid var(--navy); border-radius: 14px; padding: 22px; }
.next-focus h2 { margin-bottom: 10px; font-size: 18px; }
.next-focus > strong { display: block; font-size: 13px; line-height: 1.6; }
.next-focus p:last-child { line-height: 1.7; }
.topic-results { margin-top: 28px; padding-top: 25px; }
.topic-results .teacher-caption { font-size: 11px; margin: 8px 0 12px; }
.result-row { align-items: center; font-size: 12px; padding: 14px 0; gap: 20px; }
.result-row > span { max-width: 68%; font-weight: 650; color: #25446d; }
.result-row small { font-weight: 400; font-size: 11px; line-height: 1.5; }
.result-row > strong { font-size: 12px; color: #35537b; line-height: 1.5; }
.summary .teacher-caption { font-size: 10px; }

/* Teacher reports share the same visual language, with a quieter work surface. */
.teacher-mode .shell main { max-width: 1280px; }
.teacher-header h1 { font-size: 32px; }
.teacher-header .subtitle { line-height: 1.65; }
.badge { font-size: 10px; border-radius: 6px; padding: 4px 8px; }
.stat { border-radius: 15px; padding: 20px; }
.stat span.label { font-size: 11px; }
.stat-icon { background: #edf3fc; border-radius: 12px; }
.panel { border-radius: 17px; padding: 25px; }
.panel h2 { font-size: 19px; }
.panel p { line-height: 1.7; }
.filters label { font-size: 11px; gap: 7px; }
.filters select { min-height: 42px; }
.report-links { flex-wrap: wrap; }
.report-table { font-size: 12px; }
.report-table th { font-size: 10px; background: #f5f8fd; padding: 12px; }
.report-table td { padding: 15px 12px; }
.report-table tbody tr:hover { background: #f8faff; }
.tablewrap { border: 1px solid #e0e7f1; border-radius: 11px; }
.topic-report { gap: 23px 32px; }
.topic-report-title { font-size: 12px; }
.topic-report small { display: block; margin-top: 5px; font-size: 10px; }
.bar-track { height: 8px; }
.bar-track span { background: #285990; }
.checkline { padding: 7px 0; line-height: 1.5; }
.checkline input { width: 19px; height: 19px; flex: 0 0 19px; margin-top: 1px; }
.scoring-settings label { font-size: 12px; }
.info-strip { border-radius: 12px; line-height: 1.7; }
footer { color: #5e6f86; font-size: 10px; line-height: 1.6; }
footer a { color: #335b8b; text-underline-offset: 3px; }
dialog { border: 1px solid #d5dfed; border-top: 5px solid var(--yellow); border-radius: 20px; padding: 28px 30px; box-shadow: 0 24px 90px #001d5055; max-height: calc(100svh - 40px); overflow-y: auto; }
dialog::backdrop { background: #001a48a3; }
dialog p, dialog li { font-size: 13px; }
.iconbutton { min-width: 40px; min-height: 40px; }
.iconbutton:hover { background: #edf2fa; }
#toast { border-radius: 12px; line-height: 1.5; background: #173a67; }

@media (max-width: 900px) {
  header { gap: 16px; }
  .brand { font-size: 21px; }
  .brand img { width: 125px; }
  .brand-rule { margin: 0 16px; }
  .header-right { gap: 5px; }
  .header-right .preview-pill { display: none; }
  .teacher-header { align-items: flex-start; }
  .teacher-header > .report-links { justify-content: flex-end; }
}
@media (max-width: 760px) {
  .reviewbar { padding: 7px 18px; font-size: 9px; letter-spacing: .04em; }
  .review-detail { font-size: 9px; }
  header { padding: 15px 18px; min-height: 82px; }
  .brand { font-size: 20px; }
  .brand img { width: 105px; }
  .brand-rule { height: 33px; margin: 0 13px; }
  .brand small { font-size: 8px; letter-spacing: .12em; margin-top: 4px; }
  .header-right .textbutton { font-size: 11px; max-width: 86px; padding: 6px 8px; line-height: 1.45; }
  .shell main { padding: 28px 18px 32px; }
  .entry-mode .shell { min-height: calc(100svh - 195px); }
  .entry-mode .shell main { padding: 31px 20px 23px; }
  .entry-mode .shell::before, .entry-mode .shell::after { display: none; }
  .entry-card { border-radius: 21px; padding: 29px 27px 25px; }
  .entry-mark { width: 66px; height: 66px; background-size: 58px 58px; border-radius: 19px; margin-bottom: 17px; }
  .entry-card h1 { font-size: 33px; letter-spacing: -.9px; }
  .entry-intro { font-size: 14px; margin-bottom: 25px; }
  .entry-bar { flex-direction: column; }
  .entry-bar input, .entry-bar .primary.blue { min-height: 54px; width: 100%; }
  .entry-bar .primary.blue { font-size: 14px; }
  .entry-note { font-size: 11px; margin-bottom: 17px; }
  .entry-how { font-size: 12px; }
  .entry-divider { margin: 19px 0 17px; }
  .entry-storage { line-height: 1.65; }
  .owner-entry { padding-top: 18px; }
  .entry-mode footer { padding: 12px 24px 24px; font-size: 9px; }
  .practice-mode .shell main { padding: 21px 18px 35px; }
  .practice-mast { gap: 12px; margin-bottom: 19px; }
  .practice-mascot { width: 133px; }
  .timer-box { min-width: 91px; padding: 7px 12px 8px; border-radius: 12px; }
  .timer-box strong { font-size: 26px; }
  .timer-box span { font-size: 7px; }
  .finish-quiet { min-height: 42px; padding: 9px 10px; font-size: 11px; }
  .practice-mode .question-card { border-radius: 17px; padding: 26px 23px 27px; }
  .practice-mode .question-card h1 { font-size: 23px; line-height: 1.4; margin-bottom: 24px; }
  .practice-mode .choice { min-height: 63px; font-size: 15px; padding: 12px 13px; gap: 12px; }
  .choice .letter { width: 30px; height: 30px; font-size: 11px; }
  .answer-next { align-items: center; gap: 15px; }
  .answer-message { font-size: 12px; max-width: none; }
  .answer-next .primary { min-width: 139px; font-size: 12px; padding: 11px 13px; }
  .summary { border-radius: 19px; padding: 29px 24px 22px; }
  .summary h1 { font-size: 27px; }
  .summary-actions { flex-direction: row; flex-wrap: wrap; }
  .summary-actions > button { flex: 1; }
  .next-focus { padding: 19px; }
  .result-row { gap: 16px; }
  .result-row > span { max-width: 64%; }
  .teacher-header h1 { font-size: 28px; }
  .teacher-header > .report-links { justify-content: flex-start; }
  .panel { padding: 21px 18px; }
  .stat { padding: 17px 13px; }
  .stat span.label { font-size: 10px; }
  .topic-report { grid-template-columns: 1fr; }
  .coverage-grid { gap: 4px; }
  .filters label { min-width: 130px; }
  dialog { padding: 23px; }
}
@media (max-width: 460px) {
  header { padding: 13px 16px; gap: 9px; min-height: 78px; }
  .brand img { width: 83px; }
  .brand-rule { margin: 0 10px; height: 31px; }
  .brand { font-size: 18px; letter-spacing: -.5px; }
  .brand small { font-size: 7px; letter-spacing: .1em; }
  .header-right { width: 65px; flex: 0 0 65px; flex-wrap: wrap; justify-content: flex-end; gap: 0; }
  .header-right .textbutton { padding: 5px; font-size: 10px; max-width: 65px; }
  .entry-mode .shell main { padding: 25px 16px 19px; }
  .entry-card { padding: 27px 22px 24px; }
  .entry-card h1 { font-size: 31px; }
  .entry-card > .eyebrow { font-size: 9px; }
  .entry-intro { font-size: 13px; }
  .entry-how { font-size: 11px; }
  .entry-note { font-size: 10px; }
  .practice-mode .shell main { padding: 19px 13px 30px; }
  .practice-mast { gap: 10px; }
  .practice-mascot { width: 119px; }
  .timer-box { min-width: 83px; padding: 7px 9px; }
  .timer-box strong { font-size: 25px; }
  .practice-mode .question-card { padding: 23px 18px 24px; }
  .practice-mode .question-card h1 { font-size: 21px; letter-spacing: -.3px; }
  .practice-mode .choice { font-size: 14px; gap: 10px; padding: 12px 11px; }
  .answer-next { flex-wrap: wrap; gap: 13px; }
  .answer-next .primary { margin-left: auto; }
  .summary { padding: 26px 19px 22px; }
  .summary h1 { font-size: 25px; }
  .summary > p { font-size: 12px; }
  .summary-actions { flex-direction: column; }
  .summary-actions > button { width: 100%; }
  .result-row { font-size: 11px; }
  .result-row small { font-size: 10px; }
  .result-row > strong { font-size: 11px; }
  .next-focus { padding: 17px; }
  .next-focus h2 { font-size: 17px; }
  .next-focus > strong { font-size: 12px; }
}
@media (max-width: 350px) {
  .brand img { width: 64px; }
  .brand-rule { margin: 0 8px; }
  .brand { font-size: 17px; }
  .entry-card { padding: 25px 18px 22px; }
  .entry-card h1 { font-size: 28px; }
  .practice-mascot { width: 101px; }
  .practice-mast { gap: 8px; }
  .timer-box { min-width: 76px; }
  .finish-quiet { padding: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .entry-mark { color: CanvasText; font-size: 28px; background: Canvas; border: 1px solid CanvasText; }
  .primary, .secondary, .choice, .finish-quiet, .owner-entry .textbutton { border: 1px solid ButtonText; }
  .choice.correct, .choice.incorrect { border-width: 3px; }
  .timer-box { border: 1px solid CanvasText; }
}
