@import url('./turn-path-builder.css?v=turn-path-20261019-r2');
@import url('./angle-arm-v1.css?v=y3-through-sp01-20261019-r1');
@import url('./minute-clock-builder.css?v=y3-through-sp01-20261019-r1');
@import url('./coin-collection-builder.css?v=y3-through-sp01-20261019-r1');
@import url('./spatial-model-builder.css?v=y3-through-sp01-20261019-r5');
@import url('./story-counters.css?v=fn05-r2');
:root{font-family:system-ui,sans-serif;color:#183a3d;background:#f5f7f6}*{box-sizing:border-box}body{margin:0}header{background:#174e54;color:white;padding:1rem 4%;display:flex;justify-content:space-between;align-items:center;gap:1rem}header a{color:white}nav,.actions,.filters{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}main{max-width:1150px;margin:auto;padding:1.5rem}section,article,form{background:white;border:1px solid #cad8d6;padding:1.2rem;margin:1rem 0}label{display:block;margin:.8rem 0}input,select,button{font:inherit;padding:.65rem;max-width:100%}input,select{border:1px solid #879e9c;border-radius:4px}label input:not([type=checkbox]):not([type=radio]),label select{display:block;width:100%;max-width:30rem;margin-top:.3rem}button{cursor:pointer;background:#17606a;color:white;border:0;border-radius:4px}button:disabled{opacity:.5;cursor:default}a{color:#155d68}h1{font-size:1.8rem}h2{font-size:1.2rem}small,.quiet{color:#506966}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem;border-bottom:1px solid #dce5e3}.table-wrap{overflow:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.grid article{margin:0}#message:empty{display:none}#message{padding:.8rem;background:#e3eeee}#visual svg{width:100%;height:auto;max-height:320px}#visual img{max-width:100%;max-height:320px;object-fit:contain}#visual{text-align:center}#questionForm{max-width:760px;margin:auto}#feedback{background:#e7f2ef;padding:1rem}pre{white-space:pre-wrap}input:focus,select:focus,button:focus,a:focus{outline:3px solid #db9a25;outline-offset:2px}[hidden]{display:none!important}@media(max-width:620px){header{align-items:flex-start;flex-direction:column}main{padding:1rem}th,td{padding:.5rem}h1{font-size:1.5rem}}

.dev-banner{margin:0;padding:.8rem;background:#fff0c2;color:#49350b;font-weight:700;text-align:center}.notice-body{white-space:pre-wrap}textarea{display:block;width:100%;max-width:45rem;min-height:6rem;font:inherit;padding:.6rem}#paperAssignments section{margin:1rem 0}



.progress-picture{display:flex;gap:1.5rem;align-items:center;background:#fff;border-radius:16px;padding:1.5rem;margin:1rem 0}.progress-ring{--progress:0%;flex-shrink:0;width:140px;height:140px;border-radius:50%;background:conic-gradient(#17606a var(--progress),#e5efed 0);display:grid;place-items:center}.progress-ring strong{width:112px;height:112px;border-radius:50%;background:white;display:grid;place-content:center;font-size:2rem}.progress-ring span{font-size:1rem}.skill-card{border-radius:14px}.skill-icon{font-size:2.5rem;color:#17606a}.roster{display:flex;gap:1rem;flex-wrap:wrap}progress{width:100%;height:16px;accent-color:#17606a}button{margin:.25rem}#qaRoles{max-width:1150px;margin:1rem auto}@media(max-width:500px){.progress-picture{flex-direction:column;align-items:flex-start}}

/* Role workspaces: calm portal chrome, compact management and focused learning. */
:root{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:#243746;background:#f3f5f8;font-size:14px;--accent:#146b78;--line:#dfe5ec;--muted:#607080}body>header{height:60px;background:#143b45;padding:0 28px;position:sticky;top:0;z-index:10;box-shadow:0 1px 5px #182b3920}body>header>a{font-size:17px;font-weight:650;text-decoration:none}body>header nav a{font-size:13px;text-decoration:none}body>header button{background:#ffffff15;border:1px solid #ffffff50}main{max-width:1600px;padding:24px;margin:auto}h1,h2,h3{color:#223746;line-height:1.3}h1{font-size:28px;font-weight:650;letter-spacing:-.6px}h2{font-size:18px;font-weight:600}p{line-height:1.65}section,article,form{border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:0 2px 5px #182b3903}input,select,textarea{border:1px solid #bbc7d2;border-radius:5px;background:#fff;color:#243746}input,select,button{min-height:38px;padding:8px 12px}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--accent)}button{font-weight:600;background:var(--accent);border-radius:5px;margin:0;transition:background .15s}button:hover:not(:disabled){background:#0d5663}button.secondary{background:#fff;border:1px solid #bbc7d2;color:#294857}button.secondary:hover:not(:disabled){background:#edf3f6}label{font-size:13px;font-weight:600;line-height:1.5}label input,label select,label textarea{font-weight:400}small,.quiet{color:var(--muted)}a{color:#126b85}fieldset{border:1px solid var(--line);border-radius:6px;padding:12px 16px}fieldset label{display:inline-flex;gap:8px;align-items:center;margin:8px 16px 8px 0}summary{cursor:pointer;font-weight:600;padding:12px 0}table{font-size:13px}th{font-weight:600;background:#f7f9fb;color:#526577;white-space:nowrap}td{vertical-align:top;line-height:1.6}th,td{border-bottom:1px solid #e7ecf1;padding:14px 16px}tbody tr:hover{background:#f7fafc}td:last-child{min-width:210px}td button{background:#fff;border:1px solid #d3dee6;color:#245363;font-size:12px;min-height:30px;padding:4px 8px;margin:3px}td button:hover:not(:disabled){background:#e9f3f6}td [data-status][data-active=true]{color:#146d46}td [data-status][data-active=false]{color:#9f3942}.table-wrap{border:1px solid var(--line);border-radius:6px;background:#fff}.grid{gap:20px}.grid form{margin:0}.filters{align-items:end;gap:16px;margin-bottom:20px}.filters label{flex:1;min-width:180px;margin:0}.filters input,.filters select{max-width:none!important}.workspace-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 130px);background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.workspace-nav{background:#f9fafc;border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column}.workspace-brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:650;padding:0 10px 26px}.workspace-brand small{display:block;font-size:11px;font-weight:400;margin-top:3px}.brand-mark{width:34px;height:34px;border-radius:8px;color:white;background:#146b78;display:grid;place-items:center}.workspace-nav nav{display:flex;flex-direction:column;gap:5px;align-items:stretch}.workspace-nav button{display:flex;align-items:center;gap:12px;text-align:left;background:transparent;color:#526476;font-size:13px;min-height:44px;padding:12px;font-weight:500;border-left:3px solid transparent}.workspace-nav button:hover:not(:disabled){background:#ecf1f5;color:#173e4b}.workspace-nav button[aria-current=page]{color:#0f6370;background:#e6f1f3;border-left-color:#146b78;font-weight:650}.nav-dot{width:7px;height:7px;border-radius:2px;border:1px solid currentColor;flex-shrink:0}.workspace-nav button[aria-current=page] .nav-dot{background:currentColor}.workspace-help{margin-top:auto;padding:36px 10px 8px;color:#71808e;font-size:12px;line-height:1.7}.workspace-content{padding:30px 36px 40px;min-width:0;background:#f7f9fb}.workspace-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.workspace-heading h1{margin:5px 0 8px}.workspace-heading p{margin:0;color:#657789}.workspace-heading .eyebrow{font-size:10px;font-weight:700;letter-spacing:1.4px;color:#57808b}.role-badge{display:inline-block;border:1px solid #d7e4e8;background:#eef5f6;color:#315e69;border-radius:20px;padding:7px 12px;font-size:11px;white-space:nowrap}.panel-title{font-size:18px;margin:0 0 18px;outline:none}.workspace-panel>p{color:#607080}.workspace-panel>section:first-of-type{margin-top:0}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}.summary-card{margin:0;padding:20px;background:#fff;border-top:3px solid #90b8c0}.summary-card small{display:block;font-size:12px}.summary-card strong{display:block;font-size:30px;font-weight:600;line-height:1.4;margin:8px 0;color:#254c59}.summary-card span{display:block;color:#788694;font-size:11px}.quick-actions h2,.notice-summary h2{margin-top:0}.quick-actions p{color:#6c7c89}.quick-actions .actions{margin-top:20px}.notice-summary{background:#f1f6f8}.system-summary p{color:#657787;font-size:13px}.account-pager{display:flex;gap:12px;align-items:center;margin-top:16px}.account-pager p{margin-right:auto;color:#657787;font-size:12px}.account-toolbar{background:white;border:1px solid var(--line);padding:16px;border-radius:6px}.progress-picture{border:1px solid var(--line);padding:26px;box-shadow:none}.progress-ring{width:112px;height:112px}.progress-ring strong{width:90px;height:90px;font-size:26px}.roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.roster label{border:1px solid var(--line);padding:10px;border-radius:5px;background:#f8fafb;margin:0}#setupResult:not([hidden]){border-left:4px solid var(--accent);overflow-wrap:anywhere}#notices>h2,#tutorSlides>h2{margin-top:0}#qaRoles{max-width:1544px;margin:16px auto;padding:12px 20px;background:#fff9e8;border:1px solid #eaddb5}#qaRoles h2{font-size:13px;margin:0}#qaRoles p{font-size:11px;margin:6px 0}#qaRoles button{font-size:11px;min-height:28px;margin:3px;padding:5px 10px;background:#735b24}.auth-page{max-width:520px;margin:36px auto}.auth-page>h1{text-align:center}.auth-page>p{text-align:center;color:#6c7c89}.auth-page form{box-shadow:0 6px 24px #1c40500a}.auth-page #signin button{width:100%;margin-top:12px}#questionForm label{font-size:16px}#questionForm{padding:30px}.skill-card h2{font-size:17px}.skill-card button{width:100%;margin-top:10px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #1686b5;outline-offset:3px}@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-content{padding:24px}.workspace-shell{grid-template-columns:190px minmax(0,1fr)}}@media(max-width:760px){main{padding:12px}body>header{height:auto;min-height:58px;padding:12px 16px;flex-direction:row;align-items:center}body>header nav a{display:none}.workspace-shell{display:block}.workspace-nav{padding:14px;border-right:0;border-bottom:1px solid var(--line)}.workspace-brand{padding:0 0 12px}.workspace-nav nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:5px}.workspace-nav button{flex-shrink:0;min-height:38px;border-left:0;border-bottom:3px solid transparent;padding:9px 12px}.workspace-nav button[aria-current=page]{border-left:0;border-bottom-color:#146b78}.workspace-help{display:none}.workspace-content{padding:20px 16px}.workspace-heading{margin-bottom:22px}.workspace-heading h1{font-size:24px}.role-badge{display:none}.summary-grid{gap:10px}.summary-card{padding:14px}.summary-card strong{font-size:25px}.grid{grid-template-columns:1fr}section,form{padding:18px}.account-pager{flex-wrap:wrap}.account-pager p{width:100%;margin:0}.actions button{flex:1}#qaRoles{margin:12px}.progress-picture{flex-direction:row}.progress-ring{width:90px;height:90px}.progress-ring strong{width:72px;height:72px}.progress-picture small{font-size:11px}}
.skip-link{position:fixed;top:-80px;left:16px;background:white;color:#164c60;padding:12px 18px;z-index:30;border:2px solid #146b78;border-radius:5px}.skip-link:focus{top:8px}#app:focus{outline:none}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* SVG presentation attributes remain usable under style-src 'self'. */
.progress-ring{background:none;position:relative;display:grid;place-items:center}.progress-circle{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.progress-circle circle{fill:none;stroke-width:12}.progress-track{stroke:#e5efed}.progress-fill{stroke:#17606a;stroke-linecap:butt}.progress-ring strong{position:relative;background:transparent}.topic-page-link{display:block;font-weight:600;margin:12px 0 18px;line-height:1.5;text-underline-offset:3px}.link-context{display:block;font-weight:400;font-size:11px;color:#607080}

.code-assignment{margin-top:20px;padding:20px;border:1px solid var(--line);border-radius:6px;background:#f4f9f8}.code-assignment h3{margin-top:0}.code-assignment p{overflow-wrap:anywhere}

/* Commercial learning journeys. Role identity changes hierarchy, not permissions. */
:root{--accent:#196558;--line:#e2e8e8;--muted:#667b79;background:#f2f5f5;color:#233e3a}
body>header{background:#123b34;box-shadow:none}
.workspace-shell{border-radius:18px;box-shadow:0 10px 40px #163f3510;border-color:#e1e9e6}
.workspace-nav{background:#fcfdfc;padding:28px 16px;border-color:#e5ebe8}
.workspace-brand{padding-bottom:36px;font-size:19px}.brand-mark{background:#1c6656;border-radius:11px}
.workspace-nav button{border:0;border-radius:9px;font-size:14px;padding:13px 14px;gap:13px}
.workspace-nav button[aria-current=page]{background:#e7f1eb;color:#185640;border-left:0}
.workspace-content{background:#f7f9f7;padding:34px 38px}.workspace-heading{margin-bottom:30px}
.workspace-heading h1{font-size:30px;letter-spacing:-.8px;color:#1e3d34}.workspace-heading p{color:#647971}
.identity-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.role-badge,.expiry-pill{border-radius:24px;font-size:11px;padding:7px 11px;font-weight:600}
.expiry-pill{background:#edf4ef;color:#2b634d;border:1px solid #d7e6dc}.expiry-pill.soon{background:#fff4de;color:#7b5513;border-color:#f1d8a7}.expiry-pill.expired{background:#fff0ed;color:#a33d33;border-color:#edc3bd}
.role-tutor{--accent:#235b85}.role-tutor .workspace-nav button[aria-current=page]{background:#eaf1f8;color:#235b85}.role-tutor .brand-mark{background:#235b85}
.role-admin{--accent:#226080}.role-admin .workspace-content{background:#f6f8fb}.role-admin .workspace-shell{border-radius:10px}
.role-student{--accent:#176852}.role-student .workspace-content,.role-individual .workspace-content{background:#fafaf6}
.role-student .workspace-heading h1{font-size:34px}.role-student button{min-height:46px}
.continue-hero{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:32px;align-items:center;padding:38px;margin:0 0 26px;border-radius:20px;background:#eaf2e9;border:1px solid #dde9db;box-shadow:none;overflow:hidden}
.continue-hero .eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:750;color:#51775b;margin:0 0 16px}
.continue-hero h2{font-size:34px;letter-spacing:-1px;font-weight:650;color:#214a37;line-height:1.15;margin:0 0 18px;max-width:550px}
.continue-hero p{font-size:15px;color:#506e57;max-width:520px;line-height:1.7}
.continue-hero button{padding:13px 22px;border-radius:10px;min-height:48px;margin-top:12px;font-size:15px;box-shadow:0 4px 10px #20554015}.continue-hero button span{margin-left:24px}
.hero-progress .progress-picture{display:block;text-align:center;background:transparent;padding:0;margin:0;border:0;box-shadow:none}
.hero-progress .progress-ring{width:150px;height:150px;margin:auto}.hero-progress .progress-ring strong{width:122px;height:122px;color:#244c37}
.hero-progress .progress-picture h2{font-size:12px;letter-spacing:0;margin:16px 0 0}.hero-progress .progress-picture p,.hero-progress .progress-picture small{display:none}.hero-progress .progress-track{stroke:#d3e3d0}.hero-progress .progress-fill{stroke:#377b4e;stroke-linecap:round}
.learning-emblem{height:170px;width:170px;border-radius:50%;background:#d9e9d4;display:grid;place-items:center;margin:auto;border:14px solid #e2eedc}.learning-emblem span{font-size:78px;color:#558346}
.support-note{display:inline-block;background:#fff9;border:1px solid #d3e3ce;border-radius:10px;padding:12px 16px;margin-top:8px;font-size:13px;color:#426b42}
.compact-summary{gap:16px;margin-bottom:25px}.compact-summary .summary-card{padding:19px 22px;border-radius:13px;display:grid;grid-template-columns:1fr auto;align-items:center}.compact-summary .summary-card strong{grid-column:2;grid-row:1/3;font-size:25px}.compact-summary .summary-card small{font-size:13px}.compact-summary .summary-card span{font-size:11px}
.notice-summary{border-radius:13px;box-shadow:none}.notice-summary h2{font-size:15px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.section-heading h2{font-size:24px;margin:6px 0}.section-heading p{margin:6px 0;color:#6e7f88}.section-heading .eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700}
.student-directory{padding:26px;border-radius:15px;margin:0 0 24px}.student-directory .filters{padding:16px;background:#f5f8fb;border:1px solid #e7edf3;border-radius:10px}
.student-row{display:flex;gap:16px;align-items:center;border:0;border-bottom:1px solid #e7edf0;box-shadow:none;border-radius:0;margin:0;padding:20px 0}.student-row:last-child{border-bottom:0}
.person-avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#e8eff5;color:#325e7d;font-size:18px;font-weight:650;flex-shrink:0}
.student-identity{flex:1}.student-identity h3{margin:0 0 5px;font-size:16px}.student-identity small,.student-activity small,.family-row small{display:block;font-weight:400;font-size:12px;margin-top:5px}.student-activity{margin-right:14px}.student-activity strong{font-size:12px;font-weight:600}
.student-row button{font-size:12px;border-radius:7px;min-height:38px}.tutor-intro{display:block;background:#eaf1f7;border-color:#dce7f1}.tutor-intro h2{color:#274e6c}.tutor-intro p{color:#577185}
.assignment-workspace{padding:28px;margin-top:0;border-radius:15px}.assignment-workspace>h2{font-size:25px;margin:0 0 8px}.assignment-workspace>p{color:#607384;margin-bottom:28px}
.assignment-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:26px}.assignment-columns h3{font-size:16px;margin:0 0 22px;display:flex;align-items:center;gap:10px}.step-number{height:26px;width:26px;display:grid;place-items:center;border-radius:50%;background:#eaf1f7;color:#235b85;font-size:12px}
.assignment-students{min-width:0}.assignment-students .filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f5f8fb;border-radius:10px;padding:14px}.assignment-students .filters label{min-width:0;font-size:11px}.assignment-students .filters label:nth-child(2){grid-column:1/-1;grid-row:1}
.assignment-preview{background:#f5f8fb;padding:22px;border-radius:12px;align-self:start;border:1px solid #e5edf4;position:sticky;top:85px}.assignment-preview .code-assignment{background:#fff;margin-top:20px;padding:20px;border-radius:10px}.code-assignment .actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}.code-assignment .actions button{min-height:43px;border-radius:7px}.code-assignment p{font-size:13px;line-height:1.8}.code-assignment h3{font-size:16px}
.roster{display:block;max-height:510px;overflow:auto;border:1px solid #e0e8ee;border-radius:10px;background:#fff}.roster label{display:flex;align-items:center;gap:12px;margin:0;padding:13px 16px;border-bottom:1px solid #edf1f5;font-weight:400}.roster label:last-child{border:0}.roster label:has(input:checked){background:#edf4fb}.roster input{height:18px;width:18px}.student-choice-copy strong{font-size:13px}.student-choice-copy small{display:block;font-size:11px;margin-top:4px}
.list-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:#617588;margin:15px 0}.list-pager>div{display:flex;gap:8px}.list-pager button{font-size:12px;min-height:34px;padding:5px 10px}
.family-context{display:flex;align-items:center;gap:24px;background:#fff;border-radius:13px;padding:17px 22px;margin:0 0 26px;border:1px solid #e5e9df;position:sticky;top:70px;z-index:5;box-shadow:0 4px 15px #233e3010}.family-context>div:first-child{min-width:120px}.family-context>div>small{display:block;font-size:9px;letter-spacing:1.4px;font-weight:700;margin-bottom:5px}.family-context strong{font-size:14px;color:#314733}.profile-pills{display:flex;gap:8px;flex-wrap:wrap}.profile-pills button{background:#f5f7f1;color:#4e6547;border:1px solid #e3e8dc;border-radius:25px;font-size:12px;padding:8px 14px;min-height:38px}.profile-pills button[aria-pressed=true]{background:#e3eedc;border-color:#b7ccaa;color:#315d2c}.profile-pills small{color:inherit}
.family-overview{border-radius:15px}.family-overview .person-avatar{background:#eef1e6;color:#5e713c}.family-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-top:1px solid #e8ece2}.family-row>div{flex:1}.family-row strong{font-size:14px}.family-row button{font-size:12px}
.learning-card{border-radius:15px!important;padding:25px!important;display:flex;flex-direction:column;border-top:0!important;box-shadow:0 3px 10px #1c403005!important}.learning-card h2{font-size:21px;margin:12px 0 8px;color:#29453a}.subject-marker{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#4a7158;background:#eef5e9;border-radius:7px;padding:8px 11px;align-self:flex-start;margin-bottom:14px}.subject-english .subject-marker{background:#f7eee7;color:#956544}.subject-science .subject-marker{background:#eaf1f8;color:#52738e}.learning-card>button{margin-top:10px;min-height:43px;border-radius:8px}.learning-card .topic-page-link{font-size:12px}.learning-card .link-context{font-size:10px}.learning-card progress{height:8px}.learning-card>p{font-size:12px;color:#647971}
.empty-state{padding:30px;text-align:center}.learning-context{border-left:3px solid #2a7157;background:#eef5ef;padding:12px 18px;font-size:13px;border-radius:5px}
.loading-state{padding:40px;background:#fff;border-radius:14px}.skeleton{height:80px;border-radius:12px;background:#edf1ed;margin-bottom:20px}.skeleton.short{height:24px;width:60%}
@media(min-width:1000px){.role-tutor .summary-grid{grid-template-columns:1fr 1fr}.role-student .summary-grid,.role-individual .summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1050px){.workspace-shell{grid-template-columns:190px minmax(0,1fr)}.workspace-content{padding:28px 24px}.continue-hero{padding:28px;grid-template-columns:1fr 150px;gap:20px}.continue-hero h2{font-size:28px}.student-row{flex-wrap:wrap}.student-activity{margin-left:59px}.assignment-columns{grid-template-columns:1fr}.assignment-preview{position:static}.family-context{flex-direction:column;align-items:flex-start;gap:12px}}
@media(max-width:700px){main{padding:12px}.workspace-shell{display:block;border-radius:14px}.workspace-nav{padding:12px;border-right:0;border-bottom:1px solid #e3e9e5}.workspace-brand,.workspace-help{display:none}.workspace-nav nav{flex-direction:row;overflow-x:auto;flex-wrap:nowrap;gap:4px}.workspace-nav button{white-space:nowrap;flex-shrink:0;font-size:12px;min-height:42px}.workspace-content{padding:22px 18px}.workspace-heading{flex-direction:column;gap:12px}.workspace-heading h1,.role-student .workspace-heading h1{font-size:27px}.identity-status{justify-content:flex-start}.continue-hero{display:block;padding:26px}.continue-hero h2{font-size:29px}.hero-progress{margin-top:24px}.hero-progress .progress-picture{display:flex;align-items:center;gap:15px;text-align:left}.hero-progress .progress-ring{margin:0;width:95px;height:95px}.hero-progress .progress-ring strong{width:75px;height:75px;font-size:25px}.hero-progress .progress-picture h2{margin:0;font-size:13px}.hero-progress .progress-picture p{display:block;font-size:12px}.learning-emblem{display:none}.family-context{position:static}.section-heading{align-items:flex-start}.student-directory,.assignment-workspace{padding:18px}.student-row .actions{margin-left:59px;flex-wrap:wrap}.student-activity{display:none}.compact-summary .summary-card{padding:15px}.compact-summary .summary-card strong{font-size:21px}.family-overview{padding:20px}.profile-pills{gap:6px}.profile-pills button{min-height:44px}.role-student,.role-individual{padding-bottom:70px}.role-student .workspace-nav,.role-individual .workspace-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;background:#fff;border-top:1px solid #e1e8e0;padding:8px 10px;box-shadow:0 -3px 15px #27412e10}.role-student .workspace-nav nav,.role-individual .workspace-nav nav{justify-content:space-around}.role-student .workspace-nav button,.role-individual .workspace-nav button{font-size:11px;padding:10px 7px;display:block;flex:1;text-align:center}.role-student .nav-dot,.role-individual .nav-dot{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.progress-fill[stroke-dasharray="0 100"]{stroke:transparent}
#view-overview>.panel-title,#view-assign>.panel-title{display:none}


.learning-card.practice-complete,.skill-card.practice-complete{background:#edf0ef;border-color:#b7c0bd;color:#40504a;box-shadow:none}
.practice-complete .subject-marker,.practice-complete .skill-icon{color:#52645c}
.practice-complete button{background:#53675d;color:#fff}
.completion-label{font-weight:700;color:#405b4e}


/* Science evidence: external styles respect the site's CSP. */
#visual .science-evidence{margin:1rem 0;padding:1rem;border:1px solid #bfd4d5;border-radius:14px;background:#f7fbfa;text-align:left}
#visual .science-evidence-title{font-weight:700;margin-bottom:.75rem}
#visual .science-evidence-image{display:block;width:100%;height:auto;max-height:400px;object-fit:contain;margin:auto}
#visual .science-evidence-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:.75rem;margin:.75rem 0 0}
#visual .science-evidence-record{background:#fff;border:1px solid #d4e3e2;border-radius:10px;padding:.8rem;min-width:0;overflow-wrap:anywhere}
#visual .science-evidence-record dt{font-weight:700}
#visual .science-evidence-record dd{margin:.35rem 0 0}


/* Finite strand celebration: remains visible, never blocks navigation. */
.strand-celebration{position:relative;overflow:hidden;text-align:center;padding:2rem 1rem;margin:1rem 0 1.5rem;border:3px solid #137d64;border-radius:24px;background:linear-gradient(135deg,#e7fff1,#fff8dc);color:#174538;isolation:isolate}
.strand-celebration h2{margin:.5rem 0;font-size:clamp(1.4rem,4vw,2rem)}
.strand-celebration p{position:relative;margin:.5rem auto;max-width:48ch}
.skill-badge{display:grid;place-items:center;width:76px;height:76px;margin:0 auto .75rem;border-radius:50%;background:#ffce46;border:5px solid white;box-shadow:0 3px 0 #bc8a16;color:#174538;font-size:48px;transform:rotate(-8deg)}
.celebration-stamp{font-weight:900;font-size:clamp(1.8rem,6vw,3rem);letter-spacing:.02em;transform:rotate(-3deg);text-shadow:2px 2px 0 white;color:#08604b}
.celebration-focus{font-size:1.2rem;font-weight:800}
.completion-confetti{position:absolute;inset:0;pointer-events:none;z-index:-1}
.completion-confetti i{position:absolute;left:calc(var(--piece)*8.3%);top:8%;width:9px;height:17px;background:#ef729d;transform:rotate(calc(var(--piece)*31deg));animation:strand-confetti 1.8s ease-out both;animation-delay:calc(var(--piece)*35ms)}
.completion-confetti i:nth-child(3n){background:#24a98a;top:70%}.completion-confetti i:nth-child(3n + 1){background:#edb72c;top:45%}.completion-confetti i:nth-child(4n){background:#648ee4}
@keyframes strand-confetti{from{opacity:0;translate:0 -45px}25%{opacity:1}to{opacity:.75;translate:0 35px}}
@media(prefers-reduced-motion:reduce){.completion-confetti i{animation:none}}

/* Compact question-bank cards: aligned actions without fixed content heights. */
#codes{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px}
#codes .learning-card{padding:16px!important;border-radius:12px!important;min-width:0}
#codes .subject-marker{padding:5px 8px;margin-bottom:8px}
#codes h2{font-size:18px;line-height:1.3;margin:8px 0}
#codes .topic-page-link{margin:6px 0 12px}
#codes .learning-card>p{margin:6px 0 10px}
.learning-card-actions{display:grid;gap:8px;margin-top:auto;padding-top:8px}
.learning-card-actions button{width:100%;min-height:44px;border-radius:8px;margin:0;padding:8px 10px}
.strand-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));gap:12px}
.strand-grid .skill-card{display:flex;flex-direction:column;min-width:0;padding:16px}
.strand-grid .skill-icon{font-size:24px;line-height:1.1}
.strand-grid h2{margin:8px 0;font-size:17px}
.strand-grid p{margin:4px 0 12px}
.strand-grid button{margin-top:auto;min-height:44px}
.workspace-content:has(#codes){padding:22px}
.workspace-content:has(#codes) .workspace-heading{margin-bottom:16px}
.workspace-content:has(#codes) .filters{gap:12px;margin-bottom:12px}
.workspace-content:has(#codes) .panel-title{margin-bottom:12px}
@media(min-width:761px) and (max-width:1100px){
 .workspace-shell:has(#codes){grid-template-columns:160px minmax(0,1fr)}
 .workspace-shell:has(#codes) .workspace-nav{padding:18px 10px}
 .workspace-shell:has(#codes) .workspace-nav button{padding:10px;font-size:13px}
 .workspace-content:has(#codes){padding:16px}
}
@media(max-width:760px){
 #codes{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
 .workspace-content:has(#codes){padding:16px 12px}
 .workspace-content:has(#codes) .workspace-heading{gap:8px}
 .workspace-content:has(#codes) .workspace-heading h1{font-size:24px}
}


.group-targets{display:flex;flex-wrap:wrap;gap:8px}.group-targets button[aria-pressed="true"]{outline:3px solid #165a63;outline-offset:2px}.counter-bin{border:2px solid #84a7b0;border-radius:14px;padding:10px;margin:10px 0;background:#f5fafb}.counter-bin h3{font-size:1rem;margin:0 0 6px}.counter-bin-items{display:flex;flex-wrap:wrap;gap:6px}.movable-counter{min-width:44px;min-height:44px;padding:4px!important;background:#fff!important;color:#176778!important;border:1px solid #83aab2!important;font-size:28px!important}.movable-counter:focus-visible{outline:3px solid #162d55;outline-offset:2px}[data-group-builder]{border:0;padding:0;min-width:0}.n03-model{margin:12px auto}
#visual svg.n03-model{max-height:none;max-width:660px;width:100%;height:auto}.n03-model{max-width:660px;width:100%;height:auto;display:block}


/* Subject-first question bank: keep a growing catalogue scannable. */
.subject-tabs{display:flex;gap:0;margin:0 0 22px;border-bottom:1px solid #dbe5e1;background:#fff}.subject-tab{position:relative;min-width:150px;min-height:52px;background:transparent;color:#667b79;border:0;border-right:1px solid #e2e9e6;border-radius:0;padding:12px 22px;text-align:center;box-shadow:none}.subject-tab span{font-size:15px;font-weight:700}.subject-tab:hover{background:#f4f8f6;color:#28674e}.subject-tab.is-active{background:#eaf5ef;color:#176852}.subject-tab.is-active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#176852}.code-grid .learning-card>small{color:#607b73;font-weight:650;font-size:11px;letter-spacing:.2px}@media(max-width:700px){.subject-tabs{overflow-x:auto}.subject-tab{min-width:120px;flex:1;padding:11px 15px}}

/* Curriculum browser: subjects across top, years left, topics within year. */
.catalogue-browser{padding:0;background:transparent;border:0;box-shadow:none}
.catalogue-layout{display:grid;grid-template-columns:110px minmax(0,1fr);gap:22px}
.year-rail{display:flex;flex-direction:column;gap:5px;border-right:1px solid #dce7e1;padding-right:12px;align-self:start;position:sticky;top:80px}
.year-rail-button{min-height:44px;background:transparent;color:#536b62;text-align:left;border:0;border-radius:7px;padding:10px;font-size:13px}
.year-rail-button.is-active{background:#176852;color:white;font-weight:700}
.catalogue-main{min-width:0}.catalogue-main h3{font-size:25px;margin:0 0 16px;color:#244f3c}
.catalogue-search{max-width:440px}.topic-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 10px}
.topic-tab{background:white;color:#526b60;border:1px solid #d5e3da;border-radius:20px;min-height:40px;padding:8px 14px;font-size:12px}
.topic-tab.is-active{background:#e5f2e9;border-color:#76a68a;color:#176852;font-weight:700}
#catalogueCount{font-size:12px;color:#657d71}
@media(max-width:760px){.catalogue-layout{display:block}.year-rail{position:static;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid #dce7e1;padding:0 0 8px;margin-bottom:18px}.year-rail-button{white-space:nowrap;flex-shrink:0}.subject-tab{min-width:0}.catalogue-main h3{font-size:23px}}

/* Compact, separated actions after strand and quick-check completion. */
.completion-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0}
.completion-actions button{flex:0 1 auto;min-height:38px;padding:7px 12px;font-size:13px;line-height:1.35;margin:0;white-space:normal}

/* Picture choices are the answer controls, with one clear target per choice. */
#questionForm h1{font-size:clamp(24px,3vw,32px);line-height:1.35;margin:18px 0 24px;letter-spacing:-.5px}
#questionForm .picture-answers{border:0;padding:0;margin:20px 0 24px;min-width:0}
.picture-answers legend{font-size:14px;color:#607080;margin-bottom:12px}
.picture-answer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
#questionForm label.picture-answer{position:relative;display:flex;flex-direction:column;gap:12px;margin:0;padding:16px;border:2px solid #dce6e5;border-radius:16px;background:#fff;cursor:pointer;min-width:0}
.picture-answer:hover{border-color:#75a6a7!important;background:#f7fbfa!important}
.picture-answer:has(input:checked){border-color:#146b78!important;background:#eaf6f3!important;box-shadow:0 0 0 1px #146b78}
.picture-answer:has(input:focus-visible){outline:3px solid #1686b5;outline-offset:3px}
.picture-answer:has(input:disabled){cursor:default}
.picture-answer input{position:absolute;top:19px;right:16px;width:20px;height:20px;margin:0}
.picture-answer-heading{display:flex;align-items:center;gap:10px;min-height:28px}
.picture-answer-heading strong{width:30px;height:30px;border-radius:9px;background:#edf3f2;display:grid;place-items:center;color:#294b53}
.picture-answer-check{display:none;color:#146b78;font-weight:800}
.picture-answer:has(input:checked) .picture-answer-check{display:inline}
.picture-answer .quantity-picture{width:100%;height:auto;display:block}
#visual .preschool-choice-pictures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#visual .preschool-choice-pictures section{margin:0;padding:14px;border-radius:14px}
#visual .preschool-object-group{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:38px;min-height:72px;align-items:center}
#visual .preschool-object-group.compact{font-size:32px}
aside[aria-label="Foundation number teaching"],aside[aria-label="Learning support"]{max-width:760px;margin:20px auto;border:1px solid #dce6e5;border-radius:12px;background:#fff;padding:4px 18px}
aside[aria-label="Foundation number teaching"]>details+details{border-top:1px solid #e4eceb}
aside[aria-label="Foundation number teaching"] summary{min-height:48px;color:#315863}
aside[aria-label="Foundation number teaching"] li{line-height:1.7;margin:10px 0}
@media(max-width:560px){#questionForm{padding:20px 16px}.picture-answer-grid{grid-template-columns:1fr;gap:10px}#questionForm label.picture-answer{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;padding:12px 38px 12px 12px;gap:6px}.picture-answer-heading{flex-direction:column;gap:4px}.picture-answer input{top:calc(50% - 10px);right:12px}.picture-answer .quantity-picture{max-height:160px}#visual .preschool-choice-pictures{grid-template-columns:1fr}}

/* Keep the prompt, picture and response together; optional support follows. */
#questionForm.question-card{max-width:980px;padding:22px;margin:16px auto;scroll-margin-top:80px}
#questionForm.question-card h1{margin:0 0 10px;font-size:clamp(22px,2.4vw,30px);outline:none;white-space:pre-line}
#qaList article p:first-of-type{white-space:pre-line}
#questionForm.question-card .practice-focus{font-size:13px;margin:0 0 8px;color:#607080}
#questionForm #practiceProgress,#questionForm #quickCheckProgress{padding:8px 10px;margin:0 0 12px;box-shadow:none;font-size:12px}
#questionForm #practiceProgress p,#questionForm #quickCheckProgress p{margin:0}
.question-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:24px}
.question-layout:has(>#visual[hidden]){grid-template-columns:1fr}
#questionForm #visual svg,#questionForm #visual img{max-height:260px!important;object-fit:contain}
#questionForm .question-response>label{margin:0 0 8px;padding:10px 12px;background:#f7faf9;border:1px solid #dce6e5;border-radius:9px;min-height:44px}
#questionForm .question-response>button{min-height:44px}
#questionForm .picture-answers{margin:0 0 14px}
.question-qa{max-width:980px;margin:10px auto;padding:0 12px;background:#fff;border:1px solid #dce6e5;border-radius:9px;font-size:12px}
.question-qa summary{padding:10px 0;min-height:40px}
.question-qa p{margin:6px 0}
.question-qa button{margin:0 8px 10px 0}
#questionForm #feedback{margin:12px 0;padding:12px;font-size:14px}
#questionForm #feedback p{margin:5px 0}
@media(max-width:700px){.question-layout{grid-template-columns:1fr;gap:12px}#questionForm.question-card{padding:16px;margin:12px auto;scroll-margin-top:80px}#questionForm #visual svg,#questionForm #visual img{max-height:180px!important}#questionForm .picture-answer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#questionForm label.picture-answer{display:flex;flex-direction:column;padding:10px 8px;gap:6px}#questionForm .picture-answer-heading{flex-direction:row;min-height:22px}#questionForm .picture-answer-heading strong{width:24px;height:24px}#questionForm .picture-answer input{position:static;align-self:flex-end;width:18px;height:18px}#questionForm .picture-answer .quantity-picture{min-height:62px;max-height:126px}}


/* Count-out controls also serve from the development root shell. */
.count-builder{border:0;padding:0;margin:0;min-width:0}.count-builder legend{font-size:1rem;margin-bottom:.5rem}.count-supply{display:grid;grid-template-columns:repeat(5,minmax(42px,1fr));gap:6px;max-width:350px;margin:8px auto}#questionForm .count-supply button{min-height:44px;padding:6px;border:2px solid #a6b7be;background:#fff;border-radius:9px;position:relative}#questionForm .count-supply button span{display:block;width:25px;height:25px;border:2px solid #173968;border-radius:50%;background:#2766c7;margin:auto}#questionForm .count-supply button[aria-pressed=true]{border-color:#137b55;background:#e1f5ed}#questionForm .count-supply button[aria-pressed=true]:after{content:'✓';position:absolute;right:1px;top:-6px;font-size:21px;color:#103c2f;background:#fff;border-radius:50%}#questionForm .count-supply button:focus-visible{outline:3px solid #f6a800;outline-offset:2px}.count-frames{gap:0;padding:2px;border:2px solid #173968}.count-frames button{border-radius:0}.count-builder p{font-size:.92rem;margin:.4rem 0}
.count-builders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.count-builders .count-supply{grid-template-columns:repeat(5,minmax(32px,1fr))}.count-builders #questionForm .count-supply button{min-width:32px}@media(max-width:600px){.count-builders{grid-template-columns:1fr}}
/* FN03 counted diagrams keep readable labels and full outlines at their column width. */
#questionForm.fn03-question #visual img{max-height:none!important;width:100%;height:auto}

/* Count-trace digits are assessed evidence; give those diagrams the full row. */
#questionForm.fn03-count-trace .question-layout{grid-template-columns:1fr}
@media(max-width:700px){#questionForm.fn03-count-trace #visual{margin-inline:-12px}#questionForm.fn03-question .question-response>label{font-size:14px;line-height:1.4;padding:5px 10px;min-height:44px}}
@media(max-width:700px){#questionForm.fn03-question #quickCheckProgress{padding:6px 10px;margin-bottom:8px}#questionForm.fn03-question #quickCheckProgress p{line-height:1.4}}

/* Keep count traces readable without stretching them beyond their authored size. */
@media(min-width:701px){#questionForm.fn03-count-trace #visual{max-width:620px;width:100%;margin-inline:auto}}

/* Tablet home: compact content, with full detail on its dedicated tabs. */
@media(min-width:701px){
 body:has(.workspace-shell)>header{height:52px}
 main:has(.workspace-shell){padding:8px 12px}
 .workspace-shell{min-height:calc(100dvh - 70px);grid-template-columns:158px minmax(0,1fr)}
 .workspace-shell .workspace-nav{padding:12px 8px}
 .workspace-brand{padding:0 4px 12px;font-size:15px}
 .workspace-brand .brand-mark{width:28px;height:28px}
 .workspace-nav nav{gap:2px}
 .workspace-nav button{min-height:44px;padding:8px;font-size:12px}
 .workspace-help{padding:12px 4px 0;font-size:11px}
 .workspace-shell .workspace-content{padding:12px 16px}
 .workspace-shell .workspace-heading{margin-bottom:10px;gap:12px;align-items:center}
 .workspace-heading h1,.role-student .workspace-heading h1{font-size:24px;margin:0 0 4px}
 .workspace-heading .eyebrow{display:none}
 .workspace-heading p{font-size:12px;line-height:1.4}
 .identity-status{gap:4px;max-width:220px}
 .workspace-panel>.panel-title{margin:0 0 8px;font-size:17px}
 #view-overview>p{display:none}
 #view-overview>.panel-title{display:none}
 #view-overview .continue-hero{padding:18px;margin:0 0 10px;gap:16px;grid-template-columns:minmax(0,1fr) 130px;border-radius:12px}
 #view-overview .continue-hero h2{font-size:25px;line-height:1.2;margin:0 0 8px;letter-spacing:-.4px}
 #view-overview .continue-hero p{font-size:13px;line-height:1.4;margin:4px 0}
 #view-overview .continue-hero .eyebrow{font-size:10px;margin-bottom:6px}
 #view-overview .continue-hero button{min-height:44px;padding:8px 14px;margin-top:8px;font-size:14px}
 #view-overview .tutor-intro{display:block}
 #view-overview .hero-progress .progress-picture{padding:0;margin:0}
 #view-overview .hero-progress .progress-ring{width:92px;height:92px}
 #view-overview .hero-progress .progress-ring strong{width:72px;height:72px;font-size:24px}
 #view-overview .hero-progress .progress-picture h2{font-size:12px;margin:6px 0 0}
 #view-overview .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 10px}
 .role-admin #view-overview .summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 #view-overview .summary-card{padding:10px 12px;border-radius:8px}
 #view-overview .summary-card strong{font-size:22px;margin:2px 0}
 #view-overview .summary-card span{font-size:11px}
 #view-overview .notice-summary{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0}
 #view-overview .notice-summary h2{font-size:15px;margin:0}
 #view-overview .notice-summary p{margin:0;flex:1;font-size:13px}
 #view-overview .notice-summary button{min-height:44px}
 #view-overview .system-summary,#view-overview .quick-actions{padding:12px;margin:0 0 10px}
 #view-overview .system-summary h2,#view-overview .quick-actions h2{font-size:16px;margin:0 0 6px}
 #view-overview .system-summary p{margin:3px 0;line-height:1.4}
 #view-overview .quick-actions>p{display:none}
 #view-overview .quick-actions .actions{margin:0;gap:8px}
 #view-overview .quick-actions button{min-height:44px;font-size:12px}
 .workspace-content .family-context{position:static;flex-direction:row;align-items:center;gap:10px;padding:8px 12px;margin:0 0 10px;box-shadow:none}
 .family-context label{margin:0;white-space:nowrap}
 .family-context select{flex:1;min-width:0;min-height:44px}
 .family-context button{min-height:44px;font-size:12px}
 .workspace-content .subject-tabs{margin-bottom:8px}
 .workspace-content .subject-tab{min-height:44px;padding:8px 12px}
 .workspace-content .catalogue-main h3{font-size:20px;margin:0 0 6px}
 .workspace-content .catalogue-search{margin:0 0 8px}
 .workspace-content .topic-tabs{gap:4px;margin:6px 0}
 .workspace-content .topic-tab{min-height:44px;padding:6px 10px}
 .workspace-content #catalogueCount{margin:4px 0;font-size:12px}
 .workspace-content #codes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .workspace-content .learning-card{padding:10px 12px}
 .workspace-content .learning-card h2{font-size:16px;margin:5px 0}
 .workspace-content .learning-card p{margin:4px 0;line-height:1.3;font-size:12px}
 .workspace-content .learning-card button{min-height:44px}
 .workspace-content .list-pager{margin-top:8px}
 .workspace-content .list-pager button{min-height:44px}
}
@media(min-width:1100px) and (min-height:850px){.workspace-content #codes{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Keep touch inputs readable; let the browser reveal them above its keyboard. */
#questionForm input[inputmode]{font-size:18px;min-height:48px;scroll-margin-block:90px;touch-action:manipulation}
@media(hover:none){
 body:has(#questionForm input[inputmode]:focus) .learning-context,
 #questionForm:has(input[inputmode]:focus) .practice-focus,
 #questionForm:has(input[inputmode]:focus) #practiceProgress,
 #questionForm:has(input[inputmode]:focus) #quickCheckProgress{display:none}
 #questionForm:has(input[inputmode]:focus){padding:12px;margin:0 auto}
 #questionForm:has(input[inputmode]:focus) h1{font-size:19px;margin:0 0 8px}
 #questionForm:has(input[inputmode]:focus) #visual svg,
 #questionForm:has(input[inputmode]:focus) #visual img{max-height:100px!important}
}

@media(min-width:701px){
 .workspace-content #codes .learning-card{padding:10px 12px!important}
 .workspace-content .learning-card .subject-marker{padding:4px 7px;margin-bottom:5px}
 .workspace-content .catalogue-layout{grid-template-columns:86px minmax(0,1fr);gap:12px}
}

/* Built-in answer pad avoids the tablet OS keyboard covering the activity. */
.number-entry-pad{max-width:264px;margin:8px 0}
.number-pad-label{font-size:12px!important;margin:0 0 6px!important;line-height:1.3}
.number-pad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#questionForm .number-pad-grid button{min-width:44px;min-height:44px;padding:6px;font-size:20px;background:#edf4f1;color:#214a3a;border:1px solid #adc6b9;border-radius:8px;touch-action:manipulation}
#questionForm .number-pad-grid [data-number-key="clear"]{font-size:13px}
.number-pad-tools{display:flex;gap:6px;margin-top:6px}
#questionForm .number-pad-tools button{min-height:44px;min-width:44px;padding:6px 10px;font-size:13px}
#questionForm .number-pad-active{border:2px solid #176852;background:#f4fbf6}
@media(min-width:701px){
 #questionForm.has-number-pad{max-width:940px;padding:12px;margin:8px auto}
 #questionForm.has-number-pad h1{font-size:22px;line-height:1.3;margin:0 0 8px}
 #questionForm.has-number-pad .practice-focus{font-size:13px;margin:4px 0}
 #questionForm.has-number-pad .question-response>label{margin:4px 0}
 #questionForm.has-number-pad #practiceProgress,#questionForm.has-number-pad #quickCheckProgress{padding:6px 10px;margin:6px 0}
 #questionForm.has-number-pad #practiceProgress p,#questionForm.has-number-pad #quickCheckProgress p{margin:0;font-size:12px}
 #questionForm.has-number-pad:not(.fn03-question):not(.fn04-question) #visual svg,#questionForm.has-number-pad:not(.fn03-question):not(.fn04-question) #visual img{max-height:240px!important}
}

@media(min-width:701px){
 .workspace-content:has(#codes){padding:12px 16px}
 .workspace-content #codes h2{font-size:16px;margin:5px 0}
 .workspace-content #codes .topic-page-link{margin:4px 0 6px;font-size:12px}
 .workspace-content:has(#codes) .catalogue-layout{margin-top:8px}
}
.test-agreement{max-width:720px;margin:12px auto;padding:20px}
.test-agreement li{margin:8px 0;line-height:1.5}
.test-acceptance{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px;background:#f2f7f4;border-radius:8px}
.test-acceptance input{width:24px;height:24px;flex:0 0 24px}
.test-score{padding:20px;background:#edf7f1;border:1px solid #b7d7c4;border-radius:12px}
.test-complete-badge{font-weight:700;color:#176852}

.number-pad-toggle{display:none}
@media(max-width:700px){
 #questionForm .number-pad-toggle{display:block;min-height:44px;margin:4px 0;font-size:14px}
 .number-entry-pad:not(.pad-open) .number-pad-grid,.number-entry-pad:not(.pad-open) .number-pad-tools,.number-entry-pad:not(.pad-open) .number-pad-label{display:none}
 .number-entry-pad{max-width:none}
}
@media(min-width:701px) and (max-height:900px){
 .number-entry-pad{max-width:none}
 .number-pad-grid{grid-template-columns:repeat(6,minmax(44px,1fr));gap:4px}
 #questionForm .number-pad-grid button{font-size:17px}
 #questionForm .number-pad-grid [data-number-key="clear"]{font-size:11px}
}

@media(min-width:701px){
 #view-catalogue>.panel-title,#view-catalogue>p{display:none}
 .workspace-content #codes .subject-marker,.workspace-content #codes .learning-card>small{display:none}
 .workspace-content:has(#codes) .workspace-heading{margin-bottom:8px}
 .workspace-content #codes .learning-card>p{margin:4px 0;font-size:12px;line-height:1.3}
 .workspace-content #codes .learning-card-actions{padding-top:4px}
}
.auth-page{max-width:1400px;margin:16px auto}
.auth-page>h1,.auth-page>p{text-align:left}
.auth-page #signupDetails{margin:12px 0}
@media(min-width:701px){
 .auth-page #signin{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:16px;padding:18px 24px}
 .auth-page #signin h2{grid-column:1/-1;margin:0}
 .auth-page #signin label{margin:0}
 .auth-page #signin input{max-width:none;min-height:44px}
 .auth-page #signin button{width:auto;min-height:44px;margin:0}
}

#questionForm.fn04-question #visual img{max-height:none!important;width:100%;height:auto}

.completion-confetti i:nth-child(1){--piece:0}
.completion-confetti i:nth-child(2){--piece:1}
.completion-confetti i:nth-child(3){--piece:2}
.completion-confetti i:nth-child(4){--piece:3}
.completion-confetti i:nth-child(5){--piece:4}
.completion-confetti i:nth-child(6){--piece:5}
.completion-confetti i:nth-child(7){--piece:6}
.completion-confetti i:nth-child(8){--piece:7}
.completion-confetti i:nth-child(9){--piece:8}
.completion-confetti i:nth-child(10){--piece:9}
.completion-confetti i:nth-child(11){--piece:10}
.completion-confetti i:nth-child(12){--piece:11}


/* Results stay inside the existing workspace tab and preserve tablet fit. */
#view-reports{overflow:auto}#view-reports small{display:block}#view-reports .table-wrap{overflow:auto}#view-reports table{width:100%;border-collapse:collapse}#view-reports th,#view-reports td{text-align:left;padding:10px;vertical-align:top;border-bottom:1px solid #dbe5eb}#view-reports button,#view-reports select{min-height:44px}#view-reports details{margin:12px 0}#view-reports summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:700}.report-note{font-size:12px;color:#475d70}.report-answer{border:1px solid #dbe5eb;border-radius:10px;padding:12px;margin:10px 0;overflow-wrap:anywhere}.report-paging{display:flex;gap:12px;align-items:center;margin:12px 0}.report-summary strong{font-size:24px!important}@media(max-width:800px){#view-reports .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}



/* Tutor next steps and direct assignment */
.tutor-next-steps{margin:1rem 0}.tutor-next-card{padding:1rem;border:1px solid #cbd5e1;border-radius:14px;background:#fff;margin:.75rem 0}.tutor-next-card h3{margin-top:0}
.quick-assign{width:min(640px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:24px;border:1px solid #cbd5e1;border-radius:18px;color:#172b3a;background:white}.quick-assign::backdrop{background:rgb(15 23 42 / .5)}
.quick-assign [data-quick-results]{display:grid;gap:10px;margin-top:16px}.quick-assign [data-quick-code]{text-align:left;min-height:56px;white-space:normal}.quick-assign small{display:block;margin-top:4px}.quick-assign label{display:block;margin:12px 0}.quick-assign input,.quick-assign select{width:100%;min-height:44px}.quick-assign button:focus-visible{outline:3px solid #d48a00;outline-offset:3px}
@media(max-width:600px){.quick-assign{padding:16px}.tutor-next-card .actions{display:flex;flex-wrap:wrap}.tutor-next-card button{min-height:44px}}
#view-overview .tutor-next-steps button,.quick-assign button{min-height:44px}


/* Teaching library: compact rows, scoped so the question-bank cards are unchanged. */
#tutorSlides .teaching-slide-list{display:flex;flex-direction:column;gap:0;border:1px solid #dbe5df;border-radius:10px;overflow:hidden;background:#fff}
#tutorSlides .teaching-slide-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;margin:0;padding:8px 12px;border:0;border-bottom:1px solid #e5ece7;border-radius:0;box-shadow:none;background:#fff}
#tutorSlides .teaching-slide-row:last-child{border-bottom:0}
#tutorSlides .teaching-slide-row:hover{background:#f5faf7}
#tutorSlides .teaching-slide-copy{min-width:0;flex:1}
#tutorSlides .teaching-slide-copy h4{margin:0;font-size:15px;line-height:1.35;font-weight:650;overflow-wrap:anywhere}
#tutorSlides .teaching-slide-copy p{margin:3px 0 0;font-size:12px;line-height:1.3;color:#53665b;overflow-wrap:anywhere}
#tutorSlides .teaching-slide-row button{flex:0 0 auto;min-height:44px;margin:0;padding:8px 14px;font-size:13px;white-space:nowrap}
#tutorSlides .teaching-slide-list>p{margin:0;padding:12px}
@media(max-width:480px){
 #tutorSlides .teaching-slide-row{gap:8px;padding:8px}
 #tutorSlides .teaching-slide-copy h4{font-size:14px}
 #tutorSlides .teaching-slide-row button{padding:8px 10px;font-size:12px}
}

/* Tutor question bank uses a dense list with 24 skills per page. */
.workspace-content #codes.tutor-skill-list{display:flex;flex-direction:column;gap:0;border:1px solid #dbe5df;border-radius:10px;overflow:hidden;background:#fff}
#codes.tutor-skill-list .tutor-skill-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:10px 12px;border:0;border-bottom:1px solid #e5ece7;border-radius:0;box-shadow:none;background:#fff;min-width:0}
#codes.tutor-skill-list .tutor-skill-row:last-child{border-bottom:0}
#codes.tutor-skill-list .tutor-skill-copy{min-width:0;flex:1}
.workspace-content #codes.tutor-skill-list h2{margin:0;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
#codes.tutor-skill-list .tutor-skill-meta{margin:3px 0;font-size:12px;color:#53665b}
.workspace-content #codes.tutor-skill-list .topic-page-link{margin:2px 0 0;font-size:12px}
#codes.tutor-skill-list .tutor-skill-actions{display:flex;gap:8px;flex:0 0 auto}
#codes.tutor-skill-list button{min-height:44px;margin:0;padding:8px 12px;font-size:13px;white-space:nowrap}
@media(max-width:600px){
 #codes.tutor-skill-list .tutor-skill-row{align-items:stretch;flex-direction:column;gap:8px}
 #codes.tutor-skill-list .tutor-skill-actions{flex-wrap:wrap}
 #codes.tutor-skill-list .tutor-skill-actions button{flex:1;white-space:normal}
}

/* Shared compact catalogue progress for student and adult profiles. */
#codes.tutor-skill-list progress{display:block;width:min(240px,100%);height:8px;margin:6px 0 3px}
#codes.tutor-skill-list .skill-list-progress{font-size:12px;margin:0;color:#53665b}


/* Commercial curriculum-alignment catalogue: clear public mapping, compact on desktop. */
.alignment-intro{margin:0 0 14px;padding:18px 20px;border:1px solid #d9e7df;border-radius:14px;background:linear-gradient(135deg,#f5fbf7,#fff)}
.alignment-intro .eyebrow{margin:0 0 5px;color:#287158;font-size:11px;font-weight:800;letter-spacing:.08em}
.alignment-intro h2{margin:0 0 6px;font-size:23px;color:#173c30}
.alignment-intro p:last-child{margin:0;max-width:760px;color:#4a5d54;line-height:1.45}
.alignment-search{display:block;max-width:620px;margin:0 0 14px;font-weight:700;color:#28463a}
.alignment-search input{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:11px 12px;border:1px solid #bfcfc5;border-radius:9px;background:#fff;font:inherit;color:#173c30}
.alignment-search input:focus{outline:3px solid #b8dbc9;outline-offset:2px;border-color:#287158}
.alignment-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.alignment-card{display:flex;flex-direction:column;min-height:156px;padding:17px 18px;border:1px solid #d9e4dd;border-radius:14px;background:#fff;box-shadow:0 3px 10px rgb(23 60 48 / .05)}
.alignment-card:hover{border-color:#8ebba4;box-shadow:0 7px 18px rgb(23 60 48 / .10)}
.alignment-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:12px;line-height:1.3}
.alignment-year{color:#4c6357;font-weight:650}
.alignment-code{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#eaf5ee;color:#1d664c;font-weight:800;white-space:nowrap}
.alignment-card h3{margin:12px 0 8px;color:#173c30;font-size:18px;line-height:1.25}
.alignment-reference{margin:auto 0 0;color:#64746b;font-size:12px}
.alignment-reference strong{color:#425a4d;font-weight:700}
.alignment-card .topic-page-link{margin:9px 0 0;font-size:13px;font-weight:700}
.alignment-empty{margin:0;padding:16px;border:1px dashed #bfcfc5;border-radius:12px;color:#4a5d54}
@media(max-width:700px){.alignment-cards{grid-template-columns:1fr}.alignment-card{min-height:0}.alignment-intro{padding:16px}.alignment-intro h2{font-size:21px}}


.worksheet-fields{min-width:0;padding:.8rem;border:1px solid #9cafb4;border-radius:8px}.worksheet-fields p{line-height:3.2;overflow-wrap:anywhere}.worksheet-fields input{display:inline-block;width:4.5em;max-width:30vw;min-width:44px;min-height:44px;padding:.4em;margin:.2em;font:inherit;vertical-align:middle}.n02-teaching-models{display:flex;flex-wrap:wrap;gap:1rem}.n02-teaching-models figure{max-width:100%;margin:0}.n02-teaching-models img{display:block;max-width:100%;height:auto}

.adult-supervision-tip{margin:0 0 16px;padding:14px 16px;border:1px solid #b9d8ce;border-radius:12px;background:#eff8f3;color:#173f36}
.adult-supervision-tip h2{margin:0 0 8px;font-size:19px;line-height:1.3}
.adult-supervision-tip p{margin:0 0 12px;line-height:1.5}
.adult-supervision-tip button{min-height:44px}


/* M04: preserve legible clocks and touch targets under shared compact-player rules. */
#questionForm.m04-question [data-clock-builder] button{min-height:44px!important;min-width:44px!important}
#questionForm.m04-question #visual img{max-height:none!important;width:100%;height:auto}
#questionForm.m04-question #visual{max-width:640px;margin-inline:auto}
#questionForm.m04-question .picture-answer-grid{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}

/* M05: keep turn paths, diagrams and controls readable at every viewport. */
#questionForm.m05-question [data-turn-builder] button,#questionForm.m05-question [data-spatial-builder] button,#questionForm.m05-question .adult-observation button{min-height:44px!important;min-width:44px!important}
#questionForm.m05-question #visual img,#questionForm.m05-question #visual svg{max-height:none!important;width:100%;height:auto}
#questionForm.m05-question #visual{max-width:640px;margin-inline:auto}
#questionForm.m05-question .m05-turn-actions{display:flex;flex-wrap:wrap;gap:8px;margin-block:10px}
#questionForm.m05-question .picture-answer-grid{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}

#questionForm.m05-question.m05-question.m05-question.m05-question #visual img,#questionForm.m05-question.m05-question.m05-question.m05-question #visual svg{max-height:none!important}

/* Scoped SP01 construction board: dots are direct keyboard/touch targets. */
.sp01-question.sp01-question #visual img{width:100%;max-width:520px;max-height:none!important;object-fit:contain}
.shape-board{position:relative;width:100%;max-width:300px;aspect-ratio:1;margin:12px auto}.shape-board [data-shape-drawing]{position:absolute;inset:0}.shape-dots{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr)}
.sp01-question.sp01-question .shape-dots button{background:transparent;color:#123749;border:0;border-radius:50%;width:100%;height:100%;min-width:44px;min-height:44px;font-size:20px;margin:0;padding:0}.sp01-question .shape-dots button[aria-pressed=true]{background:#24746f22;outline:2px solid #24746f;outline-offset:-14px}.shape-actions{display:flex;gap:8px;flex-wrap:wrap}.shape-actions button{min-height:44px}.sp01-question [data-shape-builder] p{line-height:1.45}.sp01-question [data-shape-builder] select{min-height:44px}

/* Keep SP02 maps and numbered location evidence readable. */
#questionForm.sp02-question .question-layout{grid-template-columns:1fr}
#questionForm.sp02-question #visual{width:100%;max-width:560px;margin-inline:auto}
#questionForm.sp02-question #visual svg,#questionForm.sp02-question #visual img{width:100%;height:auto;max-height:none!important}
#questionForm.sp02-question .sp02-panel{margin:0}
#questionForm.sp02-question .sp02-panel svg{display:block;width:100%;max-width:400px;height:auto;margin-inline:auto}


/* ST01 source records and child-built tables remain readable above controls. */
#questionForm.st01-question .question-layout{grid-template-columns:1fr}
#questionForm.st01-question #visual{width:100%;max-width:760px;margin-inline:auto}
#questionForm.st01-question #visual img{height:auto;max-height:none!important}
#questionForm.st01-question .st01-panels{grid-template-columns:1fr}
#questionForm.st01-question .st01-panel img{max-height:none!important}

#questionForm.st01-question .st01-model td,#questionForm.st01-question .st01-model th{min-width:0;white-space:normal;overflow-wrap:anywhere}

/* ST02 graphs preserve full unit scales and readable labels in each viewport. */
#questionForm.st02-question .question-layout{grid-template-columns:1fr}
#questionForm.st02-question #visual{width:100%;max-width:760px;margin-inline:auto}
#questionForm.st02-question #visual svg{height:auto;max-height:none!important}
#questionForm.st02-question .st01-panels,.st02-support .st01-panels{grid-template-columns:1fr}
#questionForm.st02-question .st01-model td,#questionForm.st02-question .st01-model th,.st02-support .st01-model td,.st02-support .st01-model th{min-width:0;white-space:normal;overflow-wrap:anywhere}
#questionForm.st02-question .st01-record-controls [data-data-preview]{width:100%;max-width:560px}


/* Year 3 inverse-operation models: retain full labels and image aspect ratio. */
#questionForm.y3a01-question .question-layout{grid-template-columns:1fr}
#questionForm.y3a01-question #visual{width:100%;max-width:560px;margin-inline:auto}
#questionForm.y3a01-question #visual img{height:auto;max-height:none!important}
.y3a01-support{max-width:980px;margin:16px auto}
.y3a01-support img{height:auto;max-height:none!important}

#questionForm.y3n02-question .question-layout{grid-template-columns:1fr}
#questionForm.y3n02-question #visual{width:100%;max-width:560px;margin-inline:auto}
#questionForm.y3n02-question #visual img{height:auto;max-height:none!important}
.y3n02-support{max-width:980px;margin:16px auto}
.y3n02-support img{height:auto;max-height:none!important}

.y3a01-support .y3-worked-model,.y3n02-support .y3-worked-model{display:block;width:100%;max-width:480px;height:auto;margin-inline:auto}
#visual img.question-raster{display:block;height:auto;box-sizing:border-box;margin-inline:auto;border-radius:12px}
#questionForm.y3n03-question .question-layout{grid-template-columns:1fr}
#questionForm.y3n03-question #visual{width:100%;max-width:560px;margin-inline:auto}
#questionForm.y3n03-question.y3n03-question.y3n03-question.y3n03-question #visual img{display:block;width:100%;height:auto;max-height:none!important;margin-inline:auto}
.y3n03-support{max-width:980px;margin:16px auto}
.y3n03-support .y3n03-worked-model{display:block;width:100%;max-width:480px;height:auto;max-height:none!important;margin:12px auto}
.y3n03-support section{padding-block:10px;border-bottom:1px solid #d4e3df}


/* Labelled mathematical records: native controls wrap at phone widths. */
.structured-record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}.structured-record-field{display:flex;flex-direction:column;gap:6px;min-width:0}.structured-record-field select,.structured-record-field input{box-sizing:border-box;max-width:100%;width:100%;min-height:44px}.structured-record-field select{white-space:normal;height:auto;padding:10px}.structured-record-field span{overflow-wrap:anywhere}

.structured-support img{display:block;width:min(100%,560px);height:auto;max-height:none;margin:12px auto}.structured-support section{margin-block:18px}.structured-record-preview{overflow-wrap:anywhere;line-height:1.6;margin-top:18px;padding:12px;background:#f1f7f5;border-radius:8px}.structured-record select{font-size:1rem}.structured-record{min-width:0}

/* Year 3 metric diagrams retain labelled graduations, including tall comparisons. */
#questionForm.y3m02-question .question-layout{grid-template-columns:1fr}
#questionForm.y3m02-question #visual{width:100%;max-width:640px;margin-inline:auto}
#questionForm.y3m02-question.y3m02-question #visual img.question-raster{display:block;width:100%;height:auto;max-height:none!important;margin-inline:auto}
.m02-diagram-open{margin-top:12px;min-height:44px}
.m02-diagram-dialog{width:min(96vw,1000px);max-width:96vw;max-height:96vh;padding:16px;border:2px solid #17606a;border-radius:10px;color:#183a3d;background:#fff}
.m02-diagram-dialog::backdrop{background:rgb(0 0 0 / .6)}
.m02-diagram-dialog h2{margin:0;font-size:1.2rem}
.m02-diagram-toolbar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.m02-diagram-toolbar button{min-height:44px;min-width:44px}
.m02-diagram-toolbar output{min-width:4em;text-align:center}
.m02-diagram-viewport{overflow:auto;max-height:70vh;border:1px solid #a6bfbc;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#questionForm .m02-diagram-viewport img{display:block;max-width:none;height:auto;max-height:none!important;margin:0}

.y3m02-support img{display:block;width:min(100%,640px);height:auto;max-height:none;margin-block:12px}

/* Practical response actions remain usable before an observation is recorded. */
#questionForm .adult-observation > button[data-response-complete],
#questionForm .adult-observation > button[data-not-observed]{min-width:44px;min-height:44px;max-width:calc(100% - 8px);margin:4px}

/* CSP-safe original Year 2 turn and route teaching visuals. */
.m05-learning .m05-worked-turn{width:260px;max-width:100%;height:auto}
.m05-learning .m05-worked-route{width:300px;max-width:100%;height:auto}


/* Release regression fixes: preserve readable diagrams and 44px controls. */
@media(min-width:701px) and (max-height:720px){
 #questionForm.fn01-question{padding:12px}
 #questionForm.fn01-question h1{font-size:22px;line-height:1.3}
}
@media(max-width:700px){
 #questionForm.fn03-question:not(.fn03-count-trace) #visual{width:100%;max-width:284px;margin-inline:auto}
}
@media(min-width:701px) and (max-height:850px){
 #questionForm.fn03-question{padding:12px}
 #questionForm.fn03-question h1{font-size:22px;line-height:1.3}
 #questionForm.fn03-question .question-layout{gap:12px}
 #questionForm.fn03-count-trace #visual{max-width:520px}
 #questionForm.fn04-question{padding:12px}
 #questionForm.fn04-question h1{font-size:22px;line-height:1.3}
}

/* Year 4 mathematical models retain readable grids, unit labels and tall comparisons. */
#questionForm:has(#visual img[src^="/question-images/ac9m4n0"]) .question-layout{grid-template-columns:1fr}
#questionForm:has(#visual img[src^="/question-images/ac9m4n0"]) #visual{width:100%;max-width:560px;margin-inline:auto}
#questionForm:has(#visual img[src^="/question-images/ac9m4n0"]) #visual img{display:block;width:100%;height:auto;max-height:none!important;margin-inline:auto}

/* Pattern and clock controls use external styles under the existing CSP. */
.pattern-builder .pattern-builder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px}
.pattern-builder .pattern-builder-card{border:1px solid #b6cecb;border-radius:12px;padding:9px;background:#f5f9f7}
.pattern-builder [data-pattern-card]{border:2px solid #24746f;background:#fff}
.pattern-builder .pattern-builder-dots{display:block;max-width:100%;height:auto;margin:0 auto}
.pattern-builder label input[data-pattern-count]{width:5em;margin-inline:4px}
.pattern-builder .pattern-builder-actions{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.clock-hand-face{width:100%;max-width:320px;height:auto;display:block;margin:auto}
[data-clock-builder] .clock-hand-panel{border:1px solid #aec5c5;padding:10px;border-radius:10px}
[data-clock-builder] .clock-hand-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
[data-clock-builder] .clock-hand-controls{display:grid;gap:10px}
[data-clock-builder] [data-clock-turn]{min-height:44px}

/* Time diagrams retain their original scoped rules without inline style tags. */
.time-model{max-width:600px;margin:16px auto;color:#17344a;font-family:inherit;line-height:1.45}.time-model *{box-sizing:border-box}.time-model figcaption{font-weight:700;font-size:18px;margin:0 0 10px}.time-model .time-cards{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.time-model .time-card{border:2px solid #456979;border-radius:10px;background:#f2f8fb;padding:10px 12px;flex:1 1 140px;min-width:130px;overflow-wrap:normal;word-break:normal;font-size:18px}.time-model .time-card small{display:block;font-size:14px;color:#365568}.time-model .time-record{width:100%;table-layout:fixed;border-collapse:collapse;font-size:17px}.time-model .time-record th,.time-model .time-record td{padding:10px;border:1px solid #68818d;text-align:left;overflow-wrap:break-word;word-break:normal}.time-model .time-record th:first-child{width:40%}.time-model .time-calendar{table-layout:fixed;width:100%;border-collapse:collapse;font-size:18px;background:white}.time-model .time-calendar caption{font-size:21px;font-weight:700;margin-bottom:10px}.time-model .time-calendar th{font-size:13px;background:#eaf3f7;padding:8px 0}.time-model .time-calendar td{height:40px;text-align:center;border:1px solid #8096a0;padding:4px 0}.time-model .time-calendar .marked{border:2px solid #174e72;border-radius:50%;display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;background:#fff1c7}.time-model .time-note{font-size:15px;margin:10px 0}.time-model .time-ordinal{font-weight:700;color:#395d75;margin-right:6px}@media(max-width:380px){.time-model .time-card{font-size:17px;padding:9px}.time-model .time-calendar th{font-size:12px}}
/* SVG width/height attributes retain each brief-look card's intrinsic size. */
svg.brief-model{width:auto;max-width:100%;height:auto}
svg.brief-model.brief-model-narrow{max-width:66%}

/* Keep intrinsic table and select widths inside the active question column. */
#questionForm .question-layout>#visual,#questionForm .question-layout>.question-response{min-width:0}
@media(max-width:700px){#questionForm .question-layout{grid-template-columns:minmax(0,1fr)}}
/* Preserve the worked-example clock size under the existing CSP. */
svg.m04-worked-clock{width:240px;max-width:100%;height:auto}
