
#school-finder .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#school-finder{max-width:1180px;margin:auto;color:#173b50}
.school-hero{padding:64px 20px 44px;max-width:820px}.school-hero h1{font-size:clamp(2.4rem,5vw,4.1rem);line-height:1.08;letter-spacing:-.04em;margin:16px 0 22px}.school-hero h1 span{color:#397969}.school-hero>p:not(.public-kicker){max-width:660px;line-height:1.65}.school-hero>p{font-size:1.12rem}.school-hero .school-small{font-size:.9rem}
.school-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:32px;padding:12px 20px 48px;align-items:start}.school-list h2{font-size:1.4rem;margin-top:0}.school-list>label,.school-shortlist>label{display:block;font-weight:700;margin:14px 0 8px}
#school-search,#school-entry{width:100%;box-sizing:border-box;min-height:48px;background:white;border:1px solid #9cb3ad;border-radius:12px;padding:12px;font:inherit;color:inherit}#school-finder button{min-height:44px;cursor:pointer}#school-finder button:disabled{cursor:default;opacity:.55}
.school-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.school-filters button{border:1px solid #b3c7c1;border-radius:30px;background:transparent;color:#173b50;padding:9px 15px;font:inherit}.school-filters button[aria-pressed=true]{background:#173b50;color:white;border-color:#173b50}#school-count{font-size:.88rem;color:#4c665e}
.school-card{background:white;border:1px solid #d0ddd6;border-radius:18px;margin:16px 0;overflow:hidden;box-shadow:0 3px 12px #173b5005;transition:border-color .18s ease,box-shadow .18s ease}.school-card[data-selected=true]{border-color:#397969;box-shadow:0 0 0 2px #39796920}.school-card-head{padding:22px 22px 0;display:flex;align-items:start;gap:14px;justify-content:space-between}.school-card h3{font-size:1.23rem;line-height:1.35;margin:7px 0}.school-tag{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#397969;margin:0}.school-area{font-size:.9rem;color:#566b65;margin:0}.school-pick{flex-shrink:0;border:1px solid #c4d6ce;background:#f1f6f3;color:#234f42;border-radius:30px;padding:8px 14px;font-weight:700}.school-pick[aria-pressed=true]{background:#235d4e;color:white}.school-exam{padding:0 22px;line-height:1.65;font-size:.96rem}.school-card summary{padding:17px 22px;border-top:1px solid #e5ece6;cursor:pointer;font-weight:700;font-size:.93rem}.school-card details[open] summary{background:#f2f6f2}.school-detail{padding:4px 22px 18px;line-height:1.65;animation:school-reveal .18s ease-out}.school-note{border-left:3px solid #d5aa69;padding-left:12px;font-size:.92rem}.school-card>.school-evidence{margin:12px 22px 18px}.school-evidence{font-size:.87rem;font-weight:700}.school-sources{display:grid;gap:8px}.school-sources a{font-size:.88rem;text-underline-offset:3px}
.school-shortlist{position:sticky;top:20px;background:#edf3ee;border:1px solid #d1ded2;border-radius:22px;padding:26px;line-height:1.6}.school-shortlist>details>summary{font-weight:700;cursor:pointer;font-size:1.1rem}.school-shortlist-body>label{display:block;font-weight:700}.school-shortlist-body>button{width:100%;margin:7px 0}.school-shortlist-body>p{font-size:.94rem}.school-shortlist h2{font-size:1.55rem;line-height:1.25;margin:12px 0}.school-shortlist>p{font-size:.94rem}.school-shortlist>button{width:100%;margin:7px 0}.school-shortlist ul{padding-left:20px}.school-shortlist li{margin:10px 0}.school-shortlist li button{display:block;background:transparent;border:0;color:#365f52;padding:0;text-decoration:underline;font:inherit;font-size:.85rem}.school-small{font-size:.82rem!important;color:#536b61}.school-missing{border-top:1px solid #d1ded2;margin-top:28px;padding-top:15px}.school-missing h3{font-size:1.1rem}.school-missing p{font-size:.95rem;line-height:1.6}.school-footnote{margin:0 20px 48px;border-top:1px solid #d1ded2;padding:28px 0;max-width:900px;line-height:1.7}.school-footnote h2{font-size:1.5rem}
#school-finder [hidden]{display:none!important}#school-finder :is(button,a,input,select,summary):focus-visible{outline:3px solid #a36b24;outline-offset:4px}#school-save-status{min-height:2.8em}#school-practice{border-top:1px solid #cbd9cd;margin:16px 0;padding-top:8px}#school-practice:empty{display:none}#school-practice h3{font-size:1rem}#school-practice p{font-size:.9rem}
@keyframes school-reveal{from{opacity:.65;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(hover:hover){.school-pick:not(:disabled):hover{box-shadow:0 3px 9px #173b5018}.school-card summary:hover{background:#f2f6f2}}
@media(max-width:760px){.school-workspace{grid-template-columns:1fr;padding:0 14px 32px;gap:20px}.school-shortlist{position:static;grid-row:1;padding:20px}.school-shortlist h2 br{display:none}.school-hero{padding:36px 16px 28px}.school-card-head{padding:18px 16px 0}.school-exam{padding:0 16px}.school-card summary,.school-detail{padding-left:16px;padding-right:16px}.school-card-head h3{font-size:1.13rem}.school-pick{padding:8px 10px}.school-footnote{margin:0 16px 32px}}
@media(prefers-reduced-motion:reduce){.school-card,.school-detail,.school-pick{animation:none;transition:none}}

.practice-library{max-width:900px;margin:28px auto}.practice-library .skill-practice-layout{padding:24px;margin:18px 0;border:1px solid #ccded6;border-radius:16px;background:#fff}.practice-library>p{line-height:1.6}#explore-practice{min-height:48px}
.parent-home-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:18px 0}
.parent-home-facts dt{font-weight:700;color:#17344d;margin-bottom:8px}.parent-home-facts dd{margin:0;line-height:1.6}
@media(max-width:620px){.parent-home-facts{grid-template-columns:1fr;gap:16px}#next-ten-minutes button{width:100%}}

.next-practice-card{border:2px solid #35736b;background:#eef7f3;padding:clamp(20px,4vw,32px);border-radius:20px}.next-practice-card h2{margin-top:4px}.next-practice-card .eyebrow{font-size:.85rem;font-weight:700}.next-practice-card button{min-height:48px}

.pupil-home #optional-skill-games .game-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.member-games main{max-width:800px;margin:auto;padding:20px}.member-games #games{width:100%}.member-games .game-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.member-games .game-option{display:flex;align-items:center;gap:8px;padding:12px;border:2px solid #a6bcb7;border-radius:12px}.member-games .game-option:has(input:checked){border-color:#2b8178;background:#e8f5f3}.member-games .game-option svg,.member-games .game-stimulus svg{width:100%;max-width:120px;height:auto}.member-games .game-stimulus{max-width:150px}.member-games .game-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.member-games fieldset{border:0;padding:0;min-width:0}.member-games legend{margin-bottom:12px}.member-games button{min-height:46px}.member-games input[type=text]{width:100%;max-width:500px}.member-games .game-feedback{border-left:4px solid #2b8178;padding:15px;background:#e8f5f3}.member-games #game-notice:empty{display:none}.member-games #game-notice{padding:16px;background:#fff4d9}.member-games #game-status{min-height:1.5em;font-size:14px}.member-games svg{display:block}.member-games .game-keypad{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.member-games .game-keypad button{min-width:44px}.member-games .game-choice{display:block;width:100%;text-align:left}.member-games .game-choice small{display:block;font-weight:normal;margin-top:6px}.member-games .game-option input{width:20px;min-width:20px;height:20px;min-height:20px;margin:0;padding:0}.member-games .game-feedback svg{max-width:150px;height:auto}
.public-join [hidden]{display:none!important}
.public-join-banner { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; padding:8px 16px; background:#0b2d4a; color:#fff; font:600 14px/1.4 Arial,sans-serif; }
.public-join-banner a { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:8px 24px; border-radius:10px; background:#f2c45c; color:#0b2d4a; font-size:17px; font-weight:800; text-decoration:none; }
.public-join-banner a:hover { background:#ffda80; text-decoration:underline; }
.public-join-banner a:focus-visible { outline:3px solid #fff; outline-offset:3px; }

#diagnostic-parent-form[hidden],#diagnostic-verification-form[hidden],#join-start[hidden],#join-verify[hidden],#join-payment[hidden]{display:none!important}
.feedback-button{margin:.5rem;white-space:normal}.parent-join-prompt{background:#eef5ee;border-radius:18px;padding:clamp(24px,5vw,48px)}
.public-beta-note{padding:.5rem 1.5rem;background:#eef5ee;text-align:center;font-size:.9rem}
.public-join .join-code{font-size:.875rem;margin:.25rem 0;color:#40594b}.public-join .join-code summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.public-join .join-code label{margin-top:.65rem;max-width:320px}
.public-join .page-hero{padding-top:2rem;max-width:760px}.public-join h1{font-size:clamp(2rem,5vw,3.5rem)}

:root { color-scheme: light; font-family: ui-sans-serif, system-ui, sans-serif; background: #f4f7f3; color: #183126; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 24px; }
main { width: min(100%, 760px); }
.card { background: #fff; border: 1px solid #d8e3dc; border-radius: 18px; padding: clamp(24px, 5vw, 44px); box-shadow: 0 14px 40px rgba(20, 50, 35, .08); }
.wide { width: 100%; }
.eyebrow { color: #397557; font-size: .78rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
h1 { margin: .25rem 0 1rem; font-size: clamp(2rem, 6vw, 3rem); line-height: 1.05; }
.lead { font-size: 1.08rem; }
form { display: grid; gap: 16px; margin-top: 24px; }
label { display: grid; gap: 7px; font-weight: 650; }
input { min-height: 46px; border: 1px solid #91a89a; border-radius: 10px; padding: 10px 12px; font: inherit; }
button { min-height: 44px; border: 0; border-radius: 10px; padding: 10px 18px; background: #245f43; color: white; font: inherit; font-weight: 750; cursor: pointer; }
button.secondary { background: #e8efe9; color: #183126; }
button:focus-visible, input:focus-visible { outline: 3px solid #e0a922; outline-offset: 3px; }
button:disabled { opacity: .55; cursor: wait; }
.status { min-height: 1.5em; color: #71342c; }
.hint { color: #50685a; font-size: .92rem; }
.row { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.row-form { grid-template-columns: minmax(150px, 1fr) minmax(180px, 1fr) auto; align-items: end; }
.pupil { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; border-top: 1px solid #d8e3dc; padding: 16px 0; }
.pupil p { margin: .25rem 0; }
.pupil-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: end; }
.pupil.just-created { border:2px solid #28756f; border-radius:12px; background:#eff8f5; padding:16px; }
.import-panel { border-top: 1px solid #d8e3dc; margin-top: 24px; padding-top: 24px; }
.lifecycle-panel { border-top: 1px solid #d8e3dc; margin-top: 24px; padding-top: 24px; }
.danger { background: #8a2e24; }
.import-panel h2 { margin: .25rem 0; }
.review-panel, .nvr-review-panel, .form-panel { border-top: 1px solid #d8e3dc; margin-top: 28px; padding-top: 24px; }
.review-panel h2, .nvr-review-panel h2, .form-panel h2 { margin: .25rem 0 1rem; }
.compact { align-items: center; margin: 16px 0; }
.resource-list { display: grid; gap: 10px; max-height: 720px; overflow: auto; padding-right: 4px; }
.resource-review { border: 1px solid #d8e3dc; border-radius: 12px; padding: 12px; }
.resource-review summary { cursor: pointer; font-weight: 750; }
.resource-review dl { display: grid; grid-template-columns: minmax(130px, auto) 1fr; gap: 6px 12px; font-size: .9rem; }
.resource-review dt { font-weight: 700; }
.resource-review dd { margin: 0; overflow-wrap: anywhere; }
.resource-review .question { border-left: 3px solid #d8e3dc; margin: 10px 0; padding-left: 12px; }
.review-confirm { display: grid; grid-template-columns: auto 1fr; align-items: start; margin: 18px 0 12px; }
.review-confirm input, .resource-review input { min-height: auto; }
.nvr-setup { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px; align-items: center; }
.nvr-setup .status { grid-column: 1 / -1; }
.nvr-review-app { border: 1px solid #bdd0c2; border-radius: 16px; padding: clamp(16px, 4vw, 28px); background: #f8fbf8; }
.nvr-review-heading p { margin: 0; }
.nvr-review-app h3 { font-size: 1.2rem; line-height: 1.45; font-weight: 650; }
.nvr-identity { color: #50685a; font-size: .82rem; overflow-wrap: anywhere; }
.nvr-question { overflow-x: auto; margin: 20px 0; }
.nvr-question img { display: block; max-width: none; height: auto; margin: auto; }
.admin-workspace .nvr-review-app :is(button,input,textarea,summary,figure):focus-visible { outline: 3px solid #175745; outline-offset: 3px; }
.nvr-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.nvr-option { margin: 0; border: 1px solid #91a89a; border-radius: 10px; background: white; padding: 8px; text-align: center; }
.nvr-option img { display: block; width: 100%; height: auto; object-fit: contain; }
.nvr-options { grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); }
.nvr-option figcaption { font-weight: 750; margin-bottom: 6px; }
.nvr-answer { margin: 14px 0; border-left: 4px solid #397557; background: white; padding: 12px 16px; }
.nvr-decision { display: flex; flex-wrap: wrap; gap: 16px; border: 0; padding: 18px 0 8px; }
.nvr-decision legend { width: 100%; font-weight: 750; }
.nvr-decision label { grid-template-columns: auto 1fr; align-items: center; }
.nvr-decision input { min-height: auto; }
textarea { width: 100%; border: 1px solid #91a89a; border-radius: 10px; padding: 10px 12px; font: inherit; resize: vertical; }
textarea:focus-visible { outline: 3px solid #e0a922; outline-offset: 3px; }
.nvr-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 16px; }
.practice-shell { width: min(100%, 900px); }
.practice-header, .runner-header, .runner-actions, .dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.account { margin: 0; color: #50685a; }
.compact-button { min-height: 40px; padding: 8px 14px; }
.practice-card { margin: 24px 0; border: 1px solid #bdd0c2; border-radius: 16px; padding: clamp(20px, 4vw, 30px); background: #f8fbf8; }
.practice-card h2 { margin: .2rem 0; font-size: 1.7rem; }
.state-pill { display: inline-block; border-radius: 999px; padding: 6px 11px; background: #e8efe9; color: #244f39; font-weight: 700; }
.trust-note { color: #50685a; font-size: .9rem; line-height: 1.5; }
.intro-list { padding-left: 1.25rem; line-height: 1.8; }
.runner-header { align-items: start; border-bottom: 1px solid #d8e3dc; padding-bottom: 16px; }
.runner-header h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); }
.timer-wrap { display: grid; justify-items: end; gap: 7px; text-align: right; min-width: 154px; max-width: 220px; }
.timer-readout { display: block; }
.timer-readout[hidden], .timer-hidden-note[hidden] { display: none; }
.timer-label { display: block; color: #50685a; font-size: .82rem; }
.timer { font-variant-numeric: tabular-nums; font-size: 1.35rem; font-weight: 750; }
.timer-toggle { min-height: 40px; margin: 0; padding: 7px 12px; background: transparent; color: #245f43; border: 1px solid #91a89a; }
.timer-hidden-note { margin: 0; color: #50685a; font-size: .82rem; line-height: 1.4; }
.question-nav { display: grid; grid-template-columns: repeat(10, minmax(42px, 1fr)); gap: 8px; margin: 22px 0; }
.question-nav button { min-width: 42px; min-height: 42px; padding: 6px; background: #e8efe9; color: #183126; border: 2px solid transparent; }
.question-nav button[aria-current="true"] { border-color: #245f43; background: #fff; }
.question-nav button.answered::after { content: " •"; }
.question-panel { border-top: 1px solid #d8e3dc; padding-top: 22px; }
.question-count { color: #50685a; font-weight: 700; }
.nvr-task-instruction { margin: 14px 0 18px; max-width: 72ch; border-left: 4px solid #94cdc3; padding: 10px 14px; background: #f4faf8; color: #263d33; }
.nvr-task-instruction-label { margin: 0 0 4px; color: #007d70; font-size: .82rem; font-weight: 800; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
.nvr-task-instruction p { margin: 0; line-height: 1.55; }
.reading-passage { margin: 18px 0 26px; border: 1px solid #bdd0c2; border-radius: 14px; padding: clamp(18px, 4vw, 28px); background: #fbfdfb; }
.reading-passage h2 { margin: 0 0 16px; color: #245f43; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.4rem, 4vw, 1.8rem); }
.reading-passage p { margin: 0 0 1em; max-width: 72ch; color: #263d33; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1rem, 2.5vw, 1.08rem); line-height: 1.72; }
.reading-passage p:last-child { margin-bottom: 0; }
.question-stem { font-size: clamp(1.15rem, 3vw, 1.35rem); line-height: 1.45; }
.nvr-question-visual { margin: 18px 0 26px; border: 1px solid #bdd0c2; border-radius: 14px; padding: clamp(12px, 3vw, 20px); background: #fff; }
.nvr-question-visual img { display: block; width: 100%; max-height: 420px; object-fit: contain; }
.answer-list { border: 0; padding: 0; margin: 22px 0; display: grid; gap: 10px; }
.answer-list.visual-answer-list { grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); }
.answer-list.visual-answer-list legend { grid-column: 1 / -1; }
.answer-option { grid-template-columns: auto 1fr; align-items: center; min-height: 52px; border: 1px solid #91a89a; border-radius: 12px; padding: 12px 14px; cursor: pointer; }
.answer-option:has(input:checked) { border: 2px solid #245f43; background: #f0f7f2; padding: 11px 13px; }
.answer-option input { width: 22px; height: 22px; min-height: 22px; }
.answer-option.visual-answer-option { align-items: start; }
.answer-option-visual { display: grid; gap: 8px; min-width: 0; font-weight: 700; }
.answer-option-visual img { display: block; width: 100%; height: auto; max-height: 240px; object-fit: contain; }
.save-state { min-height: 1.5em; color: #50685a; }
.save-state.error { color: #8a2e24; font-weight: 650; }
.runner-actions { margin-top: 22px; flex-wrap: wrap; }
.runner-actions .finish { margin-left: auto; background: #754133; }
.locked-panel { text-align: center; padding: 34px 0 12px; }
.locked-panel h1 { font-size: clamp(2rem, 6vw, 2.8rem); }
.result-panel { text-align: center; padding: 28px 0 8px; }
.result-panel h1 { font-size: clamp(2rem, 6vw, 2.8rem); }
.raw-score { margin: 20px auto; color: #245f43; font-size: clamp(2.1rem, 8vw, 3.6rem); font-weight: 800; line-height: 1; }
.result-score-card { max-width: 620px; margin: 22px auto; padding: 22px; border-radius: 16px; background: #e8f5f3; text-align: left; }
.result-score-card .raw-score { margin: 10px 0 18px; color: #17344d; font-size: clamp(1.6rem, 6vw, 2.4rem); line-height: 1.3; }
.result-score-track { height: 12px; border-radius: 8px; overflow: hidden; background: #cddfdd; }
.result-score-fill { height: 100%; background: #2b8178; }
.result-score-scale { display: flex; justify-content: space-between; font-size: .85rem; margin-top: 6px; color: #476477; }
.result-support { max-width: 620px; margin: 16px auto; font-size: 1.15rem; line-height: 1.6; }
.result-context { max-width: 620px; margin: 14px auto; line-height: 1.6; }
.next-action { max-width: 620px; margin: 26px auto 18px; border: 1px solid #bdd0c2; border-radius: 16px; padding: 22px; background: #f8fbf8; }
.next-action h2 { margin-top: 0; }
dialog { width: min(92vw, 520px); border: 0; border-radius: 16px; padding: 26px; color: #183126; box-shadow: 0 20px 70px rgba(0,0,0,.28); }
dialog::backdrop { background: rgba(15,30,22,.6); }
dialog form { margin: 0; }
@media (max-width: 650px) {
  body { padding: 10px; place-items: start center; }
  .card { padding: 20px 16px; border-radius: 14px; }
  .row-form { grid-template-columns: 1fr; }
  .nvr-setup { grid-template-columns: 1fr; }
  .nvr-options { grid-template-columns: 1fr; }
  .nvr-actions button { flex: 1 1 100%; }
  .pupil { grid-template-columns: 1fr; }
  .pupil-actions { justify-content: start; }
  .question-nav { grid-template-columns: repeat(5, 1fr); }
  .practice-header { align-items: start; }
  .runner-header { flex-wrap: wrap; }
  .timer-wrap { width: 100%; max-width: none; justify-items: start; text-align: left; }
  .runner-actions button { flex: 1 1 42%; }
  .runner-actions .finish { flex-basis: 100%; margin-left: 0; }
}
/* Pupil experience Stage 1: landing, sign-in and authenticated Home shell. */
body.pupil-surface { display:block; padding:0; background:#f6f3eb; color:#17344d; font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.pupil-surface main { width:100%; }
.pupil-frame { width:min(1180px,100%); min-height:100vh; margin:0 auto; padding:clamp(18px,3vw,36px) clamp(18px,5vw,64px) 28px; }
.pupil-topbar { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.pupil-brand { display:inline-flex; align-items:center; gap:12px; color:#17344d; text-decoration:none; font-size:1rem; line-height:1.12; }
.pupil-brand-mark { width:46px; height:46px; display:grid; place-items:center; border-radius:14px 14px 14px 4px; background:#17344d; color:#fff; font-family:Georgia,serif; font-size:1.25rem; font-weight:800; letter-spacing:-.05em; box-shadow:inset 0 -5px 0 #2b8178; }
.pupil-brand-name { max-width:130px; }
.pupil-brand-name strong { display:block; color:#287b73; }
.beta-label { display:inline-flex; align-items:center; min-height:34px; padding:6px 11px; border:1px solid #c8d8d3; border-radius:999px; color:#385b63; background:#fff9; font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.pupil-skip { position:fixed; top:-100px; left:18px; z-index:20; padding:12px 16px; border-radius:10px; background:#fff; color:#17344d; font-weight:750; }
.pupil-skip:focus { top:14px; }
.button-link { min-height:46px; display:inline-flex; align-items:center; justify-content:center; padding:11px 22px; border-radius:12px; font-weight:800; text-decoration:none; }
.primary-link { background:#287b73; color:#fff; box-shadow:0 10px 24px #17344d24; }
.secondary-link { border:1px solid #a9c0ba; background:#fff; color:#17344d; }
.landing-actions { display:flex; align-items:center; gap:12px; }
.landing-hero { min-height:560px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); align-items:center; gap:clamp(30px,7vw,90px); padding:clamp(64px,10vw,126px) 0 72px; }
.landing-copy { max-width:720px; }
.pupil-surface .eyebrow { color:#287b73; }
.landing-copy h1 { max-width:800px; margin:.3rem 0 24px; color:#17344d; font-family:Georgia,"Times New Roman",serif; font-size:clamp(3.2rem,8vw,6.6rem); font-weight:650; letter-spacing:-.045em; line-height:.95; }
.landing-copy h1 span { color:#287b73; }
.landing-lead { max-width:650px; margin:0 0 30px; color:#385666; font-size:clamp(1.1rem,2vw,1.35rem); line-height:1.65; }
.invited-note { max-width:500px; margin:18px 0 0; color:#58707a; font-size:.92rem; line-height:1.5; }
.landing-motif { position:relative; width:min(30vw,330px); aspect-ratio:1; justify-self:center; display:grid; place-items:center; border:1px solid #c4d8d2; border-radius:50%; background:linear-gradient(145deg,#fffdf8,#e7f1ee); box-shadow:0 28px 70px #17344d1a; }
.landing-motif span { position:relative; z-index:2; font-family:Georgia,serif; font-size:clamp(6rem,14vw,10rem); font-weight:700; color:#17344d; }
.landing-motif i,.landing-motif b { position:absolute; border-radius:50%; background:#d99d43; }
.landing-motif i { width:24%; aspect-ratio:1; top:5%; right:9%; }
.landing-motif b { width:11%; aspect-ratio:1; bottom:16%; left:4%; background:#2b8178; }
.benefit-line { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid #cddbd6; }
.benefit-line p { margin:0; padding:24px clamp(10px,3vw,32px); font-family:Georgia,serif; font-size:clamp(1rem,2vw,1.25rem); text-align:center; }
.benefit-line p + p { border-left:1px solid #cddbd6; }
.beta-truth { max-width:760px; margin:56px auto; padding:26px 30px; border-left:5px solid #d99d43; background:#fffaf0; line-height:1.6; }
.beta-truth p { margin:.35rem 0 0; color:#48616c; }
.pupil-footer { display:flex; justify-content:space-between; gap:20px; padding-top:24px; border-top:1px solid #cddbd6; color:#58707a; font-size:.82rem; }
.login-layout { min-height:calc(100vh - 190px); display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,470px); align-items:center; gap:clamp(40px,9vw,120px); padding:60px 0; }
.login-welcome { max-width:560px; }
.login-welcome h1 { margin:.3rem 0 20px; color:#17344d; font-family:Georgia,serif; font-size:clamp(3rem,7vw,5.6rem); font-weight:650; letter-spacing:-.04em; line-height:1; }
.login-welcome p:last-child { max-width:500px; color:#45616e; font-size:1.2rem; line-height:1.65; }
.login-card { padding:clamp(28px,5vw,48px); border:1px solid #cbdad5; border-radius:24px; background:#fff; box-shadow:0 24px 70px #17344d17; }
.login-card h2 { margin:.25rem 0 8px; font-family:Georgia,serif; font-size:2.4rem; color:#17344d; }
.login-support { margin:0; color:#526c76; }
.login-card form { gap:18px; margin-top:28px; }
.login-card input { min-height:52px; border-color:#8fa8a4; background:#fffefa; }
.login-card button { width:100%; min-height:52px; background:#287b73; }
.recovery-card { max-width:660px; margin:auto; }
.recovery-card input,.recovery-card select { min-height:48px; font-size:16px; width:100%; min-width:0; box-sizing:border-box; }
.recovery-card button,.recovery-card summary { min-height:44px; }
.recovery-card button[type="button"] { background:#edf4f1; color:#17344d; border:1px solid #8fa8a4; }
.recovery-card [hidden] { display:none !important; }
.login-card #login-show-code { background:#edf4f1; color:#17344d; }
@media(max-width:640px) {
 .pupil-login .login-layout { gap:16px; padding:20px 0; }
 .pupil-login .login-welcome h1 { font-size:2rem; margin:0 0 8px; }
 .pupil-login .login-welcome p:last-child { font-size:1rem; line-height:1.4; margin:0; }
 .pupil-login .login-welcome .eyebrow { display:none; }
 .pupil-login .login-card { padding:22px; }
 .pupil-login .login-card h2 { font-size:1.7rem; }
 .pupil-login .login-card form { margin-top:18px; gap:12px; }
}
.login-card .status { margin:16px 0 0; }
.signin-help { margin-top:16px; color:#48616c; }
.signin-help summary { cursor:pointer; font-weight:750; }
.signin-help p { line-height:1.55; }
.quiet-link { color:#385b63; font-weight:700; }
.home-shell { max-width:1040px; }
.pupil-account { display:flex; align-items:center; gap:14px; color:#536e77; }
.pupil-account > span { max-width:220px; overflow-wrap:anywhere; }
.pupil-home .compact-button { border:1px solid #b7cbc5; background:#fff; color:#17344d; }
.pupil-nav { display:flex; flex-wrap:wrap; gap:8px 22px; padding:14px 0; border-top:1px solid #d8e2de; border-bottom:1px solid #d8e2de; }
.pupil-nav a { color:#315865; font-weight:700; text-decoration-thickness:2px; text-underline-offset:5px; }
.pupil-nav a[aria-current="page"] { color:#17344d; }
.home-welcome { max-width:760px; padding:clamp(56px,9vw,100px) 0 34px; }
.home-welcome h1 { margin:.25rem 0 12px; color:#17344d; font-family:Georgia,serif; font-size:clamp(3.1rem,8vw,5.8rem); font-weight:650; letter-spacing:-.04em; line-height:1; }
.home-welcome .lead { margin:0; color:#526d78; font-size:1.25rem; }
.next-card { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:28px; padding:clamp(28px,5vw,52px); border-radius:26px; background:#17344d; color:#fff; box-shadow:0 24px 60px #17344d2b; overflow:hidden; }
.next-card::after { content:""; position:absolute; width:210px; height:210px; border:42px solid #2b8178; border-radius:50%; right:-100px; top:-115px; opacity:.55; pointer-events:none; }
.next-label { grid-column:1/-1; width:max-content; margin:0 0 4px; padding:6px 11px; border-radius:999px; background:#d99d43; color:#17344d; font-size:.76rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.next-copy { position:relative; z-index:1; max-width:650px; }
.next-copy h2 { margin:0 0 12px; font-family:Georgia,serif; font-size:clamp(2rem,5vw,3.5rem); font-weight:650; line-height:1.03; }
.next-copy > p { margin:.4rem 0; color:#dce8e6; font-size:1.05rem; line-height:1.55; }
.next-card .state-pill { margin-top:18px; background:#ffffff18; color:#fff; font-size:.85rem; }
.next-card[data-state="empty"] { background:#245160; }
.next-card[data-state="empty"]::after { border-color:#d99d43; opacity:.32; }
.next-button { position:relative; z-index:1; min-width:170px; min-height:54px; background:#f7fbf9; color:#17344d; }
.home-note { max-width:680px; margin:24px 4px; color:#58707a; line-height:1.6; }
.pupil-home .status { color:#8a3e32; }
.pupil-home .practice-header { margin-bottom:40px; }
.pupil-home .practice-card { background:#fff; }
.weekly-programme,.home-section { margin-top:32px; padding:clamp(22px,4vw,36px); border:1px solid #d1dfda; border-radius:22px; background:#fff; }
.skill-practice { border-left:6px solid #2b8178; }
.skill-practice-layout { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; }
.skill-practice-layout h2 { margin-top:.15rem; }
.skill-practice-layout button { min-width:160px; }
.section-heading h2,.home-section h2 { margin:.15rem 0 16px; color:#17344d; font-family:Georgia,serif; font-size:clamp(1.65rem,4vw,2.25rem); }
.section-note { color:#58707a; }
.programme-list { display:grid; gap:0; }
.programme-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:18px; padding:17px 0; border-top:1px solid #e0e8e5; }
.programme-row:first-child { border-top:0; }
.programme-subject { margin:0; color:#17344d; font-weight:800; }
.programme-meta { margin:.3rem 0 0; color:#58707a; font-size:.92rem; }
.programme-status { margin:0; padding:5px 10px; border-radius:999px; background:#eef5f2; color:#315865; font-weight:750; white-space:nowrap; }
.programme-row .weekly-print-link { min-height:42px; padding:9px 14px; border-radius:10px; font-weight:750; white-space:nowrap; }
.programme-row[data-status="IN_PROGRESS"] .programme-status { background:#fff1d8; color:#745119; }
.programme-row[data-status="FEEDBACK_READY"] .programme-status { background:#e6f4ef; color:#22645c; }
.archive-group + .archive-group { margin-top:28px; }
.archive-heading { margin:18px 0 6px; color:#17344d; }
.feedback-row { display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-top:1px solid #e0e8e5; }
.feedback-row strong { color:#17344d; }
.feedback-group-title { margin:24px 0 6px; color:#315865; font-size:1rem; }
.ordinary-intro,.ordinary-runner,.ordinary-complete { max-width:820px; margin:clamp(48px,8vw,88px) auto 28px; }
.ordinary-intro,.ordinary-complete { padding:clamp(28px,6vw,56px); border:1px solid #cbdad5; border-radius:26px; background:#fffdf8; box-shadow:0 22px 60px #17344d16; }
.timing-choice{border:0;padding:0;margin:28px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.timing-choice legend{font-weight:750;color:#17344d;margin-bottom:12px}.timing-choice-option{position:relative;display:flex;align-items:center;gap:12px;min-height:86px;padding:14px;border:2px solid #ccded6;border-radius:18px;background:#f0f7f4;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.timing-choice-option:nth-of-type(2){background:#fff3e9;border-color:#f0d0ba}.timing-choice-option:nth-of-type(3){background:#eef5fb;border-color:#c9dff0}.timing-choice-option:hover{transform:translateY(-2px);box-shadow:0 8px 24px #17344d16}.timing-choice-option:has(input:checked){outline:3px solid #126f68;outline-offset:2px;border-color:#126f68}.timing-choice-option input{width:20px;height:20px;accent-color:#126f68;flex:0 0 auto}.timing-choice-symbol{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#ffffffc9;color:#126f68;font-weight:850;font-size:1.25rem;flex:0 0 auto}.timing-choice-copy{display:grid;gap:4px}.timing-choice-copy strong{color:#17344d}.timing-choice-copy small,.timing-choice-note{color:#536b79;line-height:1.4}.timing-choice-note{grid-column:1/-1;margin:0;font-size:.9rem}.timer-wrap[hidden]{display:none!important}
.ordinary-intro h1,.ordinary-complete h1,.ordinary-runner h1 { color:#17344d; font-family:Georgia,serif; font-size:clamp(2.5rem,7vw,4.8rem); font-weight:650; letter-spacing:-.035em; line-height:1; }
.ordinary-summary { color:#45616e; font-size:1.12rem; line-height:1.65; }
.ordinary-meta { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.ordinary-meta span { padding:7px 11px; border-radius:999px; background:#e9f2ef; color:#285b58; font-weight:750; }
.ordinary-topline { display:flex; justify-content:space-between; align-items:start; gap:20px; padding-bottom:22px; border-bottom:1px solid #cadad5; }
.ordinary-topline h1 { margin:.25rem 0 0; font-size:clamp(1.7rem,5vw,2.6rem); }
.ordinary-progress { margin:0; color:#48646d; font-weight:750; white-space:nowrap; }
.ordinary-question { padding:clamp(28px,6vw,52px) 0; }
.ordinary-question h2 { margin:.35rem 0 30px; color:#17344d; font-family:Georgia,serif; font-size:clamp(1.8rem,5vw,2.75rem); line-height:1.2; }
.ordinary-answers { display:grid; gap:12px; margin:0; padding:0; border:0; }
.ordinary-answers legend { margin-bottom:12px; color:#385b63; font-weight:750; }
.ordinary-answer { min-height:62px; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:14px; padding:14px 18px; border:2px solid #c2d2ce; border-radius:14px; background:#fff; cursor:pointer; font-size:1.05rem; }
.ordinary-answer:has(input:checked) { border-color:#287b73; background:#eaf4f1; box-shadow:inset 5px 0 0 #287b73; }
.ordinary-answer input { width:22px; height:22px; min-height:auto; margin:0; accent-color:#287b73; }
.ordinary-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:24px; }
.ordinary-actions button { min-height:52px; }
.ordinary-primary { min-width:190px; background:#287b73; }
.ordinary-quiet { color:#385b63; font-weight:750; }

.ordinary-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:24px;align-items:start}
.practice-helper{border:1px solid #a8c9c0;border-radius:20px;background:#eef6f2;overflow:hidden;margin-top:24px}
.practice-helper summary{padding:18px 20px;font-weight:750;cursor:pointer;color:#153e4b;min-height:48px;box-sizing:border-box}
.helper-body{padding:0 18px 20px}.helper-body h2{font-size:1.2rem;margin:8px 0}.helper-note{font-size:.85rem;line-height:1.5;color:#49616b}.helper-log{display:flex;flex-direction:column;gap:16px;margin:20px -6px;padding:14px 12px;max-height:440px;overflow-y:auto;background:#e4eee7;border-radius:16px}
.helper-bubble{position:relative;align-self:flex-start;box-sizing:border-box;max-width:92%;margin:0;padding:12px 15px;background:#f1f7ec;color:#193b3a;border:0;border-radius:17px 17px 17px 5px;box-shadow:0 1px 2px #173f501a;line-height:1.55;overflow-wrap:anywhere}
.helper-bubble::before{content:"";position:absolute;left:-6px;bottom:0;width:12px;height:14px;background:#f1f7ec;clip-path:polygon(100% 0,100% 100%,0 100%)}
.helper-bubble.pupil{align-self:flex-end;background:#c7e7d8;color:#133b35;border-radius:17px 17px 5px 17px;max-width:88%}
.helper-bubble.pupil::before{left:auto;right:-6px;background:#c7e7d8;transform:scaleX(-1)}
.helper-question-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:20px}.helper-question-form label{grid-column:1/-1;font-weight:700;line-height:1.4}.helper-question-form input{min-width:0;width:100%;box-sizing:border-box;font-size:16px;padding:12px;border:1px solid #789d92;border-radius:10px}.helper-question-form button{min-height:44px}
.helper-replies{display:flex;flex-wrap:wrap;gap:10px}.helper-replies button{min-height:44px;text-align:left;white-space:normal}
@media(max-width:760px){.ordinary-workspace{grid-template-columns:1fr;gap:0}.practice-helper{margin-top:18px}.helper-log{max-height:none}.helper-replies button{flex:1 1 100%}}
@media(max-width:620px){.timing-choice{grid-template-columns:1fr}.timing-choice-option{min-height:68px;padding:12px 14px}}

.ordinary-hint { margin:18px 0 0; padding:16px 18px; border-left:5px solid #d99d43; background:#fff8e9; color:#344f5b; line-height:1.55; }
.ordinary-feedback { margin-top:28px; padding:24px; border-radius:16px; background:#eaf4f1; border:1px solid #b9d5cd; }
.ordinary-feedback[data-outcome="NOT_QUITE"] { background:#fff8e9; border-color:#e2c890; }
.ordinary-feedback h3 { margin:0 0 10px; color:#17344d; font-family:Georgia,serif; font-size:1.8rem; }
.ordinary-feedback p { line-height:1.6; }
.ordinary-save-state { min-height:1.5em; color:#8a3e32; }
.question-report { margin:18px 0 4px; border-top:1px solid #d8e3dc; padding-top:14px; }
.question-report summary { width:max-content; max-width:100%; overflow-wrap:anywhere; color:#38566e; font-weight:700; cursor:pointer; }
.question-report fieldset { min-width:0; max-width:100%; box-sizing:border-box; margin:14px 0 0; padding:16px; border:1px solid #cbdcd8; border-radius:14px; background:#f8fbfa; }
.question-report legend { padding:0 6px; color:#17344d; font-weight:750; }
.question-report label { display:flex; align-items:flex-start; gap:10px; margin:10px 0; }
.question-report input { margin-top:3px; }
.question-report button { margin-top:8px; }
.question-report-status { min-height:1.5em; margin:12px 0 0; color:#235f59; font-weight:650; }
.ordinary-score { margin:18px 0; color:#287b73; font-family:Georgia,serif; font-size:clamp(2.1rem,7vw,3.8rem); font-weight:700; }
.pupil-surface :is(a,button,input,summary):focus-visible { outline:3px solid #d99d43; outline-offset:4px; }
@media(max-width:760px) {
 .pupil-frame { padding:16px 16px 24px; }
 .pupil-brand-name { display:none; }
 .pupil-landing .pupil-brand-name { display:block; }
 .pupil-home .pupil-brand-name { display:block; }
 .pupil-home .pupil-topbar { flex-wrap:wrap; }
 .landing-actions .beta-label { display:none; }
 .landing-hero { min-height:auto; grid-template-columns:1fr; padding:70px 0 54px; }
 .landing-copy h1 { font-size:clamp(3rem,16vw,4.8rem); }
 .landing-motif { display:none; }
 .benefit-line { grid-template-columns:1fr; }
 .benefit-line p { text-align:left; padding:18px 4px; }
 .benefit-line p + p { border-left:0; border-top:1px solid #cddbd6; }
 .pupil-footer { flex-direction:column; }
 .login-layout { min-height:auto; grid-template-columns:1fr; gap:32px; padding:60px 0 36px; }
 .login-welcome h1 { font-size:clamp(3rem,15vw,4.5rem); }
 .login-welcome p:last-child { font-size:1.05rem; }
 .login-card { padding:28px 20px; border-radius:20px; }
 .pupil-account > span { display:none; }
 .pupil-nav { gap:8px 16px; font-size:.92rem; }
 .home-welcome { padding:58px 0 28px; }
 .programme-row { grid-template-columns:1fr; gap:8px; }
 .programme-status { justify-self:start; }
 .programme-row button { width:100%; }
 .programme-row .weekly-print-link { width:100%; }
 .feedback-row { flex-direction:column; gap:4px; }
 .next-card { grid-template-columns:1fr; align-items:start; gap:22px; padding:28px 22px; }
 .next-button { width:100%; }
 .ordinary-intro,.ordinary-complete { margin-top:42px; padding:28px 20px; border-radius:20px; }
 .ordinary-topline { display:block; }
 .ordinary-progress { margin-top:10px; white-space:normal; }
 .ordinary-actions { align-items:stretch; flex-direction:column; }
 .ordinary-actions :is(button,a) { width:100%; }
}

@media(max-width:560px) {
 .skill-practice-layout { grid-template-columns:1fr; }
 .skill-practice-layout button { width:100%; }
 .feedback-row { align-items:flex-start; flex-direction:column; gap:5px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
/* Priority 6B: approved B — Clear Flow brand and public/pupil presentation. */
:root {
 --fpa-navy:#0B2D4A; --fpa-teal:#00A896; --fpa-aqua:#A7E3D9;
 --fpa-amber:#F4B942; --fpa-ivory:#FAF8F3; --fpa-white:#FFFFFF;
 --fpa-muted:#52697b; --fpa-border:#cbdcd8;
 --fpa-font:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.brand-lockup { display:inline-flex; align-items:center; gap:12px; min-width:0; color:var(--fpa-navy); text-decoration:none; }
.brand-lockup .fpa-mark { width:52px; height:60px; flex:0 0 auto; }
.brand-wordmark { display:grid; color:inherit; font-family:var(--fpa-font); font-size:1.02rem; font-weight:750; letter-spacing:-.025em; line-height:1.1; }
.brand-lockup-reversed { color:var(--fpa-white); }
.brand-lockup-compact .fpa-mark { width:46px; height:52px; }
.public-surface { display:block; padding:0; background:var(--fpa-ivory); color:var(--fpa-navy); font-family:var(--fpa-font); }
.public-surface main { width:100%; }
.public-site { --public-section-space:clamp(54px,7vw,88px); --public-major-space:clamp(64px,8vw,104px); --public-content-gap:clamp(28px,5vw,64px); min-height:100vh; overflow:hidden; }
.public-header { width:min(1220px,calc(100% - 40px)); min-height:92px; margin:0 auto; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; border-bottom:1px solid #d9e3df; }
.public-nav { display:flex; align-items:center; justify-content:center; gap:clamp(12px,2vw,26px); }
.public-nav a,.public-menu a { color:#38566e; font-size:.88rem; font-weight:700; text-decoration:none; text-underline-offset:6px; white-space:nowrap; }
.public-nav a:hover,.public-nav a[aria-current="page"],.public-menu a:hover,.public-menu a[aria-current="page"] { color:var(--fpa-navy); text-decoration:underline 2px var(--fpa-teal); }
.public-signin { min-width:80px; min-height:44px; padding:9px 16px; border:1px solid #a9c4bd; background:var(--fpa-white); color:var(--fpa-navy); }
.public-menu { display:none; }
.public-skip { position:fixed; top:-100px; left:18px; z-index:30; padding:12px 16px; border-radius:10px; background:var(--fpa-white); color:var(--fpa-navy); font-weight:750; }
.public-skip:focus { top:14px; }
.public-site :is(a,button,input,summary):focus-visible { outline:3px solid var(--fpa-amber); outline-offset:4px; }
.public-hero,.page-hero,.public-section,.feature-gate,.public-footer { width:min(1120px,calc(100% - 40px)); margin-inline:auto; }
.public-hero { min-height:580px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); align-items:center; gap:var(--public-content-gap); padding:var(--public-major-space) 0 clamp(56px,7vw,80px); }
.public-hero-copy { max-width:720px; }
.public-kicker { margin:0 0 13px; color:#007d70; font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.public-hero h1,.page-hero h1 { margin:0 0 26px; color:var(--fpa-navy); font-size:clamp(3.5rem,8.5vw,7rem); font-weight:800; letter-spacing:-.065em; line-height:.91; text-wrap:balance; }
.public-landing .public-hero h1 { font-size:clamp(2.5rem,4.6vw,4rem); line-height:1.05; letter-spacing:-.045em; }
.public-writing .page-hero h1 { font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.05; }
.public-hero h1 span,.page-hero h1 span { color:#008d80; }
.public-hero p,.page-hero p { max-width:720px; color:#3e5b70; font-size:clamp(1.04rem,1.7vw,1.24rem); line-height:1.68; }
.public-hero .public-lead { margin-bottom:12px; color:var(--fpa-navy); font-size:clamp(1.15rem,2vw,1.45rem); }
.subject-line { color:var(--fpa-navy)!important; font-weight:750; }
.public-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:22px; }
.public-hero .primary-link { background:var(--fpa-navy); color:var(--fpa-white); }
.public-diagnostic-cta { gap:9px; text-align:center; line-height:1.3; }
.public-diagnostic-star { color:var(--fpa-amber); font-size:1rem; line-height:1; }
.public-secondary-link { border:1px solid #9dbbb5; background:var(--fpa-white); color:var(--fpa-navy); }
.public-hero .public-hero-microcopy { max-width:650px; margin:13px 0 0; color:#52697b; font-size:.88rem; line-height:1.55; }
.practice-lesson { margin:24px 0; padding:clamp(20px,4vw,32px); border:1px solid #bfd8cf; border-radius:20px; background:linear-gradient(140deg,#f0faf5,#fff); }
.practice-lesson h2 { margin:8px 0 16px; font-size:1.5rem; color:#0b2d4a; }
.practice-lesson .lesson-example { font-size:1.1rem; line-height:1.75; max-width:65ch; }
.practice-lesson li { padding:5px 0; line-height:1.6; }
.lesson-remember { border-left:3px solid #008d80; padding:12px 16px; background:#fff; border-radius:0 10px 10px 0; }
/* Public walkthrough: native disclosures work without scripts or learner data. */
.public-landing .public-hero { min-height:0; padding:38px 0 42px; gap:40px; grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr); }
.public-landing .public-hero h1 { font-size:clamp(2.1rem,4vw,3.4rem); margin-bottom:18px; }
.public-landing .public-hero .public-lead { font-size:1.12rem; line-height:1.55; }
.public-landing .public-hero-actions { margin-top:18px; }
.public-landing .public-beta-note { padding:6px 16px; }
.public-landing .public-beta-note p { margin:0; font-size:.82rem; }
.public-beta-note .feedback-button { display:inline-block; padding:10px; color:#0B2D4A; }
.week-preview { background:#fff; padding:26px; border:1px solid #cbdcd8; border-radius:22px; box-shadow:0 12px 32px #0b2d4a0c; }
.pupil-preview { position:relative; border:8px solid #16364a; border-radius:30px; box-shadow:0 24px 60px #0b2d4a22,0 0 0 1px #d9e7e2; background:linear-gradient(155deg,#fff 65%,#eff9f4); }
.preview-top { display:flex; gap:12px; justify-content:space-between; align-items:center; font-size:.75rem; padding-bottom:18px; }
.preview-top span { border-radius:20px; padding:5px 10px; background:#e6f4ef; color:#176550; }
.preview-progress { height:5px; border-radius:10px; background:#e2ece7; margin-bottom:25px; }
.preview-progress span { display:block; width:40%; height:100%; background:#008d80; border-radius:inherit; }
.sandwich-demo { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; max-width:240px; margin:24px auto; }
.sandwich-demo i { height:38px; background:#fff; border:2px solid #00796d; border-radius:5px; }
.sandwich-demo i:nth-child(-n+4) { background:#00796d; }
.preview-help { background:#fff; border:1px solid #bfd8cf; border-radius:12px; margin:10px 0; }
.preview-help summary { cursor:pointer; padding:14px; font-weight:700; min-height:44px; }
.preview-help p { padding:0 14px 14px; margin:0; }
.preview-answer { border-color:#0b2d4a; }
.preview-help summary:focus-visible { outline:3px solid #c78a1d; outline-offset:3px; }
.week-preview h2 { font-size:1.5rem; margin:0 0 16px; }
.week-checklist { padding:0; margin:0; list-style:none; }
.week-checklist li { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; padding:12px 0; border-bottom:1px solid #e1ebe7; font-size:.88rem; }
.public-hero .week-preview p { font-size:.94rem; line-height:1.5; }
.public-hero .week-preview .demo-caption,.demo-caption { font-size:.85rem; line-height:1.5; color:#52697b; }
.teacher-intro { display:grid; grid-template-columns:1fr 1.4fr; gap:36px; border-bottom:1px solid #cbdcd8; }
.teacher-intro h2 { font-size:clamp(1.8rem,3vw,2.5rem); }
.week-step { border:1px solid #b6cdc5; border-radius:16px; margin:16px 0; background:#fff; }
.week-step > summary { cursor:pointer; padding:20px; font-size:1.12rem; font-weight:750; color:#0B2D4A; }
.step-number { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#e3f4ef; margin-right:8px; }
.week-step-body { padding:0 24px 24px; }
.week-step-body .public-section { width:100%; padding:16px 0; }
.week-step-body .public-section h2 { font-size:1.5rem; }
.week-step-body .content-grid { margin-top:8px; }
.demo-report { max-width:640px; margin:12px auto 20px; padding:24px; border:1px solid #cbdcd8; border-left:5px solid #008779; border-radius:12px; background:#faf8f3; }
.demo-score { font-size:1.4rem; }
.demo-report meter { width:100%; height:24px; accent-color:#008779; }
.demo-report h4 { margin:22px 0 8px; }
.week-walkthrough { scroll-margin-top:24px; }
@media(max-width:800px) {
 .public-landing .public-hero { grid-template-columns:1fr; padding:28px 0; gap:24px; }
 .teacher-intro { grid-template-columns:1fr; gap:8px; }
 .week-preview { padding:20px; }
 .week-step > summary { padding:16px; font-size:1rem; }
 .week-step-body { padding:0 16px 18px; }
 .demo-report { padding:16px; }
}
.public-hero-mark { position:relative; min-width:0; justify-self:center; }
.fpa-hero-mark { position:relative; z-index:2; display:block; width:min(29vw,310px); height:auto; filter:drop-shadow(0 26px 35px #0b2d4a22); }
.public-hero-mark::before,.public-hero-mark::after,.public-hero-mark span { content:""; position:absolute; z-index:1; border-radius:999px; transform:rotate(-16deg); }
.public-hero-mark::before { width:420px; height:92px; right:-130px; top:21%; background:var(--fpa-aqua); opacity:.55; }
.public-hero-mark::after { width:400px; height:74px; right:-160px; top:46%; background:var(--fpa-teal); opacity:.14; }
.public-hero-mark span { width:360px; height:58px; right:-135px; top:68%; background:var(--fpa-amber); opacity:.2; }
.public-band { display:grid; grid-template-columns:repeat(3,1fr); background:var(--fpa-navy); color:var(--fpa-white); }
.public-band p { margin:0; padding:26px 22px; text-align:center; font-size:clamp(1rem,1.8vw,1.28rem); font-weight:700; }
.public-band p + p { border-left:1px solid #ffffff2b; }
.public-section { padding:var(--public-section-space) 0; }
.public-section-followup { padding-top:0; }
.public-section + .public-section { border-top:1px solid #d9e3df; }
.public-section > h2,.split-section h2,.feature-gate h2 { max-width:820px; margin:0 0 24px; color:var(--fpa-navy); font-size:clamp(2rem,5vw,4rem); letter-spacing:-.045em; line-height:1.03; text-wrap:balance; }
.public-section > p,.split-section p,.feature-gate p { max-width:760px; color:#425f72; font-size:1.06rem; line-height:1.72; }
.subject-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:clamp(26px,4vw,36px); }
.public-section-followup > .subject-grid:first-child,.public-section-followup.content-grid { margin-top:0; }
.subject-grid + .quiet-panel { margin-top:var(--public-content-gap); }
.subject-grid article,.content-grid article { padding:clamp(24px,4vw,38px); border:1px solid var(--fpa-border); border-radius:22px; background:var(--fpa-white); }
.subject-grid .writing-beta { grid-column:1/-1; background:#f1f7f5; }
.subject-grid h3,.content-grid h3 { margin:5px 0 12px; color:var(--fpa-navy); font-size:1.35rem; }
.subject-grid p,.content-grid p { color:#506a7b; line-height:1.65; }
.subject-number { margin:0!important; color:#007d70!important; font-size:.75rem!important; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.split-section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--public-content-gap); align-items:start; }
.quiet-panel,.boundary-panel,.feature-gate { padding:clamp(26px,5vw,48px); border-radius:24px; }
.quiet-panel { background:#e7f5f1; }
.boundary-panel { border:1px solid #dcc795; background:#fff9eb; }
.quiet-panel h2,.quiet-panel h3,.boundary-panel h3 { margin-top:0; color:var(--fpa-navy); }
.quiet-panel li,.boundary-panel li,.price-panel li { margin:.65rem 0; color:#3f5c6d; line-height:1.5; }
.text-link { color:#007d70; font-weight:800; text-decoration-thickness:2px; text-underline-offset:5px; }
.feedback-section blockquote { margin:0; padding:40px; border-left:6px solid var(--fpa-amber); background:var(--fpa-navy); color:var(--fpa-white); border-radius:0 24px 24px 0; font-size:clamp(1.35rem,2.8vw,2rem); font-weight:700; line-height:1.4; }
.anti-gimmick { width:auto; max-width:none; padding-inline:max(20px,calc((100vw - 1120px)/2)); background:#e7f5f1; }
.anti-gimmick > * { max-width:850px; }
.page-hero { padding:var(--public-major-space) 0 clamp(48px,6vw,72px); }
.page-hero h1 { max-width:980px; }
.stat-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.stat-row span { min-width:160px; padding:18px 22px; border:1px solid var(--fpa-border); border-radius:16px; background:var(--fpa-white); color:#4b6475; }
.stat-row strong { display:block; color:var(--fpa-navy); font-size:1.8rem; }
.content-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:28px; }
.feature-gate { margin-block:8px var(--public-section-space); border:1px solid #d5c38c; background:#fff9e9; }
.feature-gate h2,.feature-gate h3 { margin-top:0; color:var(--fpa-navy); }
.test-route-list { display:grid; gap:22px; }
.test-route-list article { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1fr); gap:8px 46px; padding:34px 0; border-top:1px solid var(--fpa-border); }
.test-route-list article:first-child { border-top:0; }
.test-route-list h2 { grid-row:1/5; margin:0; color:var(--fpa-navy); font-size:1.7rem; }
.test-route-list h3 { margin:0; color:#007d70; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; }
.test-route-list p { margin:0 0 14px; color:#465f70; line-height:1.65; }
.checklist ol { max-width:720px; padding-left:1.4rem; color:#465f70; line-height:1.8; }
.timeline-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.price-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.75fr); gap:clamp(36px,8vw,90px); align-items:start; }
.price { display:flex; align-items:end; gap:12px; margin:0 0 22px; }
.price strong { color:var(--fpa-navy); font-size:clamp(4rem,9vw,7.5rem); letter-spacing:-.07em; line-height:.8; }
.price span { color:#506a7b; font-weight:700; }
.price-panel .feature-gate { width:auto; margin:0; }
.payment-disclosures { margin-top:30px; padding-top:24px; border-top:1px solid var(--fpa-border); }
.payment-disclosures h3 { color:var(--fpa-navy); font-size:1.35rem; }
.payment-disclosures p { color:#425f72; line-height:1.68; }
.payment-link { margin-top:10px; background:var(--fpa-navy); color:var(--fpa-white); text-align:center; }
.test-mode-badge { display:inline-flex; margin:0 0 16px!important; padding:7px 10px; border-radius:999px; background:#ffedb7; color:#563d00!important; font-size:.76rem!important; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.payment-gate { border-color:#d2b85e; }
.terms-list { display:grid; gap:8px; }
.terms-list h2 { margin:26px 0 4px; font-size:clamp(1.45rem,3vw,2.2rem); }
.terms-list h2:first-child { margin-top:0; }
.diagnostic-membership-offer { margin-top:32px; padding:clamp(24px,5vw,42px); border-radius:22px; background:#e7f5f1; text-align:left; }
.diagnostic-membership-offer h2 { margin:0 0 16px; color:var(--fpa-navy); font-size:clamp(1.6rem,4vw,2.5rem); }
.diagnostic-membership-offer p { color:#425f72; line-height:1.65; }
.diagnostic-parent-start form { display:grid; gap:18px; max-width:700px; margin-top:26px; }
.diagnostic-parent-start label { display:grid; gap:8px; color:var(--fpa-navy); font-weight:700; }
.diagnostic-parent-start input[type="email"],.diagnostic-parent-start input[name="verificationCode"] { min-height:50px; border:1px solid #9dbbb5; border-radius:12px; padding:12px 14px; font:inherit; background:#fff; }
.diagnostic-parent-start .review-confirm { grid-template-columns:auto 1fr; align-items:start; font-weight:500; line-height:1.55; }
.diagnostic-parent-start .review-confirm input { margin-top:.28em; width:22px; height:22px; }
.public-join .join-consent { display:grid; grid-template-columns:24px 1fr; gap:12px; align-items:start; font-weight:500; line-height:1.5; }
.public-join .join-consent input { width:22px; height:22px; min-height:0; margin:3px 0 0; padding:0; }
.public-join input:not([type="checkbox"]) { font-size:16px; min-width:0; width:100%; }
.public-join .page-hero h1 { font-size:clamp(2rem,7vw,3.5rem); }
#diagnostic-start { scroll-margin-top:24px; }
.diagnostic-passage summary { padding:12px 0; min-height:44px; cursor:pointer; font-weight:700; }
.diagnostic-jump summary { min-height:44px; padding:12px 0; cursor:pointer; font-weight:700; }
.diagnostic-jump .question-nav button { min-height:44px; }
.diagnostic-parent-start button { justify-self:start; min-height:48px; border:0; border-radius:12px; padding:12px 20px; background:var(--fpa-teal); color:#062f2b; font:inherit; font-weight:800; cursor:pointer; }
.diagnostic-parent-start .public-small-print { margin-top:22px; font-size:.88rem; line-height:1.6; color:#506a7b; }
.faq-list { display:grid; gap:12px; }
.faq-list details { border:1px solid var(--fpa-border); border-radius:16px; background:var(--fpa-white); }
.faq-list summary { padding:20px 24px; cursor:pointer; color:var(--fpa-navy); font-weight:750; }
.faq-list details p { margin:0; padding:0 24px 24px; color:#486273; line-height:1.65; }
.final-promise { max-width:1120px; }
.public-footer { display:grid; grid-template-columns:1fr auto; gap:30px var(--public-content-gap); padding:clamp(38px,5vw,52px) 0; border-top:1px solid #d9e3df; }
.public-footer .brand-lockup .fpa-mark { width:42px; height:48px; }
.public-footer p { color:#526b7b; }
.public-footer nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:end; gap:18px; }
.public-footer a { color:var(--fpa-navy); font-weight:700; }
.public-trust { grid-column:1/-1; max-width:980px; font-size:.82rem; line-height:1.55; }
/* Pupil shell and common runner use the same brand without changing behaviour. */
body.pupil-surface { background:var(--fpa-ivory); color:var(--fpa-navy); font-family:var(--fpa-font); }
.pupil-surface .brand-lockup .fpa-mark { width:48px; height:55px; }
.pupil-surface .brand-wordmark { font-size:1rem; }
.pupil-surface .pupil-topbar { min-height:80px; }
.pupil-surface :is(h1,h2,h3) { font-family:var(--fpa-font); }
.pupil-surface .eyebrow { color:#007d70; }
.pupil-surface .next-card { background:var(--fpa-navy); }
.pupil-surface .next-card::after { border-color:var(--fpa-teal); }
.pupil-surface .next-label { background:var(--fpa-amber); color:var(--fpa-navy); }
.pupil-surface .next-button,.pupil-surface .ordinary-primary,.pupil-surface .login-card button { background:var(--fpa-teal); color:#062f2b; }
.pupil-surface .weekly-programme,.pupil-surface .home-section,.pupil-surface .ordinary-intro,.pupil-surface .ordinary-complete { border-color:var(--fpa-border); background:var(--fpa-white); }
.pupil-surface .reading-passage { border-color:#94cdc3; background:#fffefa; }
.pupil-surface .reading-passage h2 { color:var(--fpa-navy); }
.pupil-surface .answer-option:has(input:checked),.pupil-surface .ordinary-answer:has(input:checked) { border-color:var(--fpa-teal); background:#e9f7f4; }
.pupil-surface .ordinary-feedback { border-color:#8dccc2; background:#e8f6f3; }
.pupil-surface .ordinary-feedback[data-outcome="NOT_QUITE"] { border-color:#ddc27d; background:#fff8e8; }
/* Home-only presentation: assessment runners, saved answers and selection rules are untouched. */
.pupil-home #practice-app:has(> #next-card) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.pupil-home #practice-app:has(> #next-card) > * { min-width:0; }
.pupil-home #practice-app:has(> #next-card) > .home-welcome,
.pupil-home #next-card,.pupil-home #weekly-programme,.pupil-home #skill-practice,
.pupil-home #feedback-progress,.pupil-home #programme-archive,.pupil-home #member-baseline,
.pupil-home #next-ten-minutes,.pupil-home #parent-next,.pupil-home .home-note { grid-column:1/-1; }
.pupil-home .home-welcome { padding:38px 0 4px; }
.pupil-home .home-welcome h1 { font-size:clamp(2.1rem,5vw,3.4rem); }
.pupil-home #next-card { padding:clamp(24px,4vw,36px); gap:16px; box-shadow:0 16px 40px #0b2d4a14; }
.pupil-home #next-card h2 { font-size:clamp(1.7rem,4vw,2.5rem); }
.pupil-home #practice-app:has(> #next-card) > .home-section,
.pupil-home #weekly-programme { margin-top:0; padding:clamp(20px,3vw,28px); }
.pupil-home #weekly-programme { background:transparent; padding:12px 0 0; border:0; }
.pupil-home #weekly-programme .programme-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.pupil-home #weekly-programme .programme-row { display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; gap:16px; padding:20px; border:1px solid #ccded6; border-top:4px solid #2b8178; border-radius:18px; background:#fff; }
.pupil-home #weekly-programme .programme-row:nth-child(2) { border-top-color:#b48631; }
.pupil-home #weekly-programme .programme-row:nth-child(3) { border-top-color:#76669c; }
.pupil-home #weekly-programme .programme-row:nth-child(4) { border-top-color:#507d9b; }
.pupil-home #weekly-programme .programme-status { align-self:flex-start; font-size:.8rem; white-space:normal; }
.pupil-home #weekly-programme .programme-row button { min-height:46px; width:100%; }
.programme-completion { color:#48606b; font-size:.9rem; margin:8px 0 18px; }
.pupil-home #writing-home { background:linear-gradient(135deg,#fff9e9,#fff); }
.pupil-home #optional-skill-games { background:linear-gradient(135deg,#edf8f3,#fff); }
.pupil-home #optional-skill-games .game-actions { display:grid; gap:10px; }
.pupil-home #optional-skill-games .button-link { justify-content:space-between; min-height:48px; }
.personal-practice-note { padding:12px 16px; background:#fff; border-left:3px solid #287b73; border-radius:8px; line-height:1.6; }
.pupil-home #parent-next { background:#f0f5f7; box-shadow:none; }
.pupil-home #skill-practice .skill-practice-layout + .skill-practice-layout { margin-top:22px; padding-top:22px; border-top:1px solid #d5e2db; }
.pupil-home .home-section h2 { font-size:1.55rem; }
.pupil-home .home-section p { line-height:1.65; }
.pupil-home .pupil-nav { flex-wrap:wrap; row-gap:8px; }
.pupil-home .pupil-nav a { min-height:44px; display:inline-flex; align-items:center; }
@media(max-width:1000px) { .pupil-home #weekly-programme .programme-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) {
 .pupil-home #practice-app:has(> #next-card) { grid-template-columns:minmax(0,1fr); gap:18px; }
 .pupil-home #weekly-programme .programme-list { grid-template-columns:minmax(0,1fr); }
 .pupil-home .home-welcome { padding-top:22px; }
 .pupil-home #next-card { grid-template-columns:minmax(0,1fr); }
 .pupil-home #next-card button { width:100%; }
 .pupil-home #weekly-programme .programme-row { gap:12px; }
}
@media(max-width:1200px) {
 .public-header { grid-template-columns:auto 1fr auto; gap:14px; }
 .public-nav { gap:12px; }
 .public-nav a { font-size:.78rem; }
 .public-hero { grid-template-columns:1fr; min-height:auto; }
 .public-hero-mark { display:none; }
 .content-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:1000px) {
 .public-header { grid-template-columns:1fr auto auto; }
 .public-nav { display:none; }
 .public-menu { display:block; position:relative; }
 .public-menu summary { min-width:76px; min-height:44px; display:grid; place-items:center; border:1px solid #a9c4bd; border-radius:12px; background:var(--fpa-white); color:var(--fpa-navy); font-weight:750; cursor:pointer; list-style:none; }
 .public-menu summary::-webkit-details-marker { display:none; }
 .public-menu nav { position:absolute; z-index:20; right:0; top:52px; width:min(310px,calc(100vw - 32px)); display:grid; padding:12px; border:1px solid var(--fpa-border); border-radius:16px; background:var(--fpa-white); box-shadow:0 18px 45px #0b2d4a25; }
 .public-menu nav a { padding:12px; }
 .public-signin { justify-self:end; }
}
@media(max-width:650px) {
 .public-site { --public-section-space:46px; --public-major-space:54px; --public-content-gap:28px; }
 .public-header { width:calc(100% - 28px); min-height:80px; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; }
 .public-header .brand-lockup .fpa-mark { width:48px; height:55px; }
 .public-header .brand-wordmark { font-size:.82rem; }
 .public-signin { min-width:80px; min-height:44px; padding:9px 10px; }
 .public-menu summary { min-width:62px; padding-inline:8px; }
 .public-hero,.page-hero,.public-section,.feature-gate,.public-footer { width:calc(100% - 32px); }
 .public-hero { padding:56px 0 46px; }
 .public-hero-actions { align-items:stretch; flex-direction:column; }
 .public-hero-actions .button-link { width:100%; box-sizing:border-box; }
 .page-hero { padding:54px 0 42px; }
 .subject-grid,.content-grid { margin-top:26px; }
 .public-band p { padding:20px 18px; }
 .public-hero h1,.page-hero h1 { font-size:clamp(3rem,15vw,4.4rem); }
 .public-band { grid-template-columns:1fr; }
 .public-band p + p { border-left:0; border-top:1px solid #ffffff2b; }
 .subject-grid,.content-grid,.timeline-grid,.split-section,.price-panel { grid-template-columns:1fr; }
 .subject-grid .writing-beta { grid-column:auto; }
 .test-route-list article { grid-template-columns:1fr; }
 .test-route-list h2 { grid-row:auto; }
 .public-footer { grid-template-columns:1fr; }
 .public-footer nav { justify-content:start; }
 .public-trust { grid-column:auto; }
 .pupil-surface .brand-wordmark { display:grid!important; max-width:118px; }
 .pupil-surface .pupil-topbar { flex-wrap:wrap; }
}
@media(max-width:260px) {
 .public-header { width:calc(100% - 20px); min-height:68px; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
 .public-header .brand-lockup { gap:0; }
 .public-header .brand-lockup .fpa-mark { width:40px; height:46px; }
 .public-header .brand-wordmark,.public-signin { display:none; }
 .public-menu summary { min-width:54px; min-height:42px; }
 .public-skip { left:4px; max-width:calc(100vw - 8px); padding:8px; font-size:.82rem; }
 .public-hero,.page-hero,.public-section,.feature-gate,.public-footer { width:calc(100% - 24px); }
 .public-hero h1,.page-hero h1 { font-size:clamp(2.1rem,18vw,3rem); overflow-wrap:anywhere; }
 .public-site :is(p,li,a,h2,h3) { overflow-wrap:anywhere; }
 .price { flex-wrap:wrap; }
 .price strong { font-size:3.25rem; }
 .payment-link { width:100%; box-sizing:border-box; padding-inline:8px; font-size:.82rem; }
}
@media(min-width:1800px) { .public-hero,.page-hero,.public-section,.public-footer { max-width:1220px; } }
/* Admin-only workspace; pupil Stage 1 styles are scoped away from this surface. */
body.admin-workspace { display:block; padding:0; background:#f4f6f8; color:#20364b; font-family:Arial,sans-serif; }
.admin-workspace main { width:100%; }
.admin-workspace [hidden] { display:none !important; }
.admin-workspace .workspace-layout { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:100vh; }
.admin-workspace .workspace-sidebar { background:#18334b; color:#fff; padding:32px 20px; position:sticky; top:0; height:100vh; overflow:auto; display:flex; flex-direction:column; gap:24px; }
.admin-workspace .workspace-brand { display:flex; align-items:center; gap:12px; line-height:1.45; }
.admin-workspace .workspace-monogram { border:2px solid #74c6bd; border-radius:12px; padding:10px; color:#fff; font-size:1.3rem; }
.admin-workspace .workspace-caption { font-size:.7rem; letter-spacing:.16em; color:#c1d1de; margin:12px 10px 0; }
.admin-workspace nav { display:grid; gap:6px; }
.admin-workspace nav a { color:#e3edf4; text-decoration:none; padding:14px; border-radius:9px; font-weight:600; }
.admin-workspace nav a:hover { background:#29475f; }
.admin-workspace nav a[aria-current="page"] { background:#287b76; color:white; }
.admin-workspace .workspace-menu-toggle { display:none; }
.admin-workspace #workspace-navigation { display:flex; flex-direction:column; flex:1; gap:24px; }
.admin-workspace .workspace-account { margin-top:auto; font-size:.8rem; color:#c1d1de; }
.admin-workspace .workspace-content { min-width:0; padding:36px clamp(20px,4vw,60px); max-width:1480px; width:100%; }
.admin-workspace h1 { font-size:2.3rem; line-height:1.2; }
.admin-workspace h2 { font-size:1.5rem; line-height:1.3; }
.admin-workspace .eyebrow { color:#28756f; }
.admin-workspace .hint { color:#536678; line-height:1.6; }
.admin-workspace .workspace-panel { background:white; border:1px solid #dce4eb; border-radius:16px; padding:clamp(20px,3vw,36px); margin:0; }
.admin-workspace .workspace-panel[data-workspace-panel="overview"] { padding:0; border:0; background:transparent; }
.admin-workspace .workspace-welcome { background:#e8f2f1; border:1px solid #cddfdd; border-radius:16px; padding:28px; margin-bottom:24px; }
.admin-workspace .workspace-welcome h2 { margin:8px 0 12px; }
.admin-workspace .workspace-welcome p { line-height:1.6; }
.admin-workspace .today-intro { color:#536678; margin:0 0 20px; line-height:1.5; }
.admin-workspace .today-programme-status { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:16px; margin:12px 0 20px; background:#f4f6f8; border:1px solid #dce4eb; border-radius:10px; }
.admin-workspace .today-subjects-heading { font-size:.9rem; color:#536678; margin:0 0 16px; }
.admin-workspace #today-live { display:grid; gap:20px; }
.admin-workspace .workspace-tools { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.admin-workspace .workspace-tools a { color:#195b52; background:#e5f2ee; padding:10px 14px; }
.admin-workspace .workspace-tools a:hover { color:white; background:#24475d; }
.admin-workspace .workspace-tools a[aria-current="page"] { color:white; background:#287b76; }
.admin-workspace .today-subject-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; align-items:center; padding:14px 0; border-top:1px solid #e2e8ed; }
.admin-workspace .today-subject-row h3 { margin:0; font-size:1rem; }
.admin-workspace .today-subject-row p,.admin-workspace .today-subject-row details { grid-column:1/-1; margin:0; }
.admin-workspace .today-primary { display:inline-block; padding:12px 18px; border-radius:10px; background:#287b76; color:white; font-weight:700; text-decoration:none; }
.admin-workspace .today-status[data-state="Frozen"] { border-color:#4f9184; background:#e5f2ee; color:#195b52; }
.admin-workspace .today-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; align-items:start; }
.admin-workspace .today-section { background:#fff; border:1px solid #dce4eb; border-radius:16px; padding:24px; min-width:0; }
.admin-workspace .today-section h2 { margin:0 0 14px; }
.admin-workspace .today-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.admin-workspace .today-heading h2 { margin-bottom:4px; }
.admin-workspace .today-status { max-width:100%; display:inline-block; border:1px solid #8aa0b3; background:#eef3f6; border-radius:999px; padding:7px 11px; overflow-wrap:anywhere; }
.admin-workspace .today-status[data-state="Ready"] { border-color:#4f9184; background:#e5f2ee; color:#195b52; }
.admin-workspace .today-status[data-state="Needs attention"] { border-color:#b98521; background:#fff4d8; color:#6b4a09; }
.admin-workspace .today-status[data-state="Not ready"] { border-color:#9a594f; background:#faebe8; color:#772d25; }
.admin-workspace .today-list { display:grid; gap:12px; }
.admin-workspace .today-card { border-top:1px solid #e2e8ed; padding-top:14px; }
.admin-workspace .today-card:first-child { border-top:0; padding-top:0; }
.admin-workspace .today-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.admin-workspace .today-card h3 { margin:0; font-size:1.05rem; }
.admin-workspace .today-card p { color:#536678; line-height:1.5; margin:7px 0; }
.admin-workspace .today-card a { color:#226e68; font-weight:700; }
.admin-workspace .today-card details { margin-top:8px; color:#536678; }
.admin-workspace .today-card details ul { padding-left:20px; }
.admin-workspace .today-empty { margin:0; color:#355b54; background:#edf6f3; border-radius:10px; padding:16px; }
.admin-workspace .today-error { color:#772d25; background:#faebe8; border:1px solid #e7c2bc; border-radius:10px; padding:16px; }
.admin-workspace .today-this-week { margin-top:20px; }
.admin-workspace .today-this-week p:last-child { margin-bottom:0; }
.admin-workspace .today-tools { margin-top:28px; }
.admin-workspace .today-tools>h2 { margin-bottom:4px; }
.admin-workspace .workspace-tasks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.admin-workspace .workspace-task { display:flex; flex-direction:column; color:inherit; text-decoration:none; border:1px solid #dce4eb; background:white; border-radius:14px; padding:26px; }
.admin-workspace .workspace-task:hover { border-color:#287b76; box-shadow:0 4px 14px #18334b0d; }
.admin-workspace .workspace-task h3 { margin:0; font-size:1.2rem; }
.admin-workspace .workspace-task p { color:#536678; line-height:1.6; }
.admin-workspace .workspace-task span { color:#226e68; font-weight:bold; margin-top:auto; }
.admin-workspace button { background:#28756f; }
.admin-workspace button.secondary { background:#e8eff3; color:#20364b; }
.admin-workspace button.danger { background:#8a2e24; }
.admin-workspace :is(a,button,input,textarea,summary):focus-visible { outline:3px solid #dc9e15; outline-offset:4px; }
.admin-workspace :is(input,textarea) { min-width:0; max-width:100%; }
.admin-workspace :is(p,h2,h3,strong,label) { overflow-wrap:anywhere; }
.admin-workspace .resource-list { max-height:none; overflow:visible; }
.admin-workspace .workspace-skip { position:fixed; top:-100px; left:16px; z-index:10; background:#fff; color:#18334b; padding:14px; }
.admin-workspace .workspace-skip:focus { top:12px; }
@media(max-width:1100px) { .admin-workspace .row-form { grid-template-columns:1fr; } .admin-workspace .pupil { grid-template-columns:1fr; } .admin-workspace .pupil-actions { justify-content:start; } }
@media(max-width:760px) {
 .admin-workspace .workspace-layout { grid-template-columns:1fr; }
 .admin-workspace .workspace-sidebar { position:static; height:auto; padding:12px 16px; gap:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
 .admin-workspace .workspace-brand { font-size:.85rem; gap:8px; }
 .admin-workspace .workspace-monogram { padding:6px; font-size:1rem; }
 .admin-workspace .workspace-menu-toggle { display:block; margin:0; min-height:44px; }
 .admin-workspace #workspace-navigation { display:none; grid-column:1 / -1; }
 .admin-workspace .workspace-menu-toggle[aria-expanded="true"] + #workspace-navigation { display:flex; }
 .admin-workspace .workspace-header>.eyebrow { display:none; }
 .admin-workspace .workspace-header h1 { margin:0 0 8px; font-size:1.8rem; }
 .admin-workspace .workspace-header .status:empty { display:none; }
 .admin-workspace .today-section { padding:18px; }
 .admin-workspace .today-section h2 { font-size:1.3rem; }
 .admin-workspace .today-programme-status { align-items:flex-start; flex-direction:column; }
 .admin-workspace .today-subject-row { grid-template-columns:1fr; }
 .admin-workspace .today-subject-row .today-status { justify-self:start; }
 .admin-workspace .workspace-brand br { display:none; }
 .admin-workspace .workspace-caption { display:none; }
 .admin-workspace nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; }
 .admin-workspace nav a { padding:12px; font-size:.9rem; }
 .admin-workspace .workspace-account { display:flex; align-items:center; justify-content:space-between; gap:12px; }
 .admin-workspace .workspace-content { padding:18px 16px; }
 .admin-workspace .today-grid { grid-template-columns:1fr; }
 .admin-workspace .today-heading,.admin-workspace .today-card-header { align-items:flex-start; flex-direction:column; gap:8px; }
 .admin-workspace .workspace-tasks { grid-template-columns:1fr; }
 .admin-workspace .row { flex-wrap:wrap; }
 .admin-workspace .resource-review dl { grid-template-columns:1fr; }
}


.admin-workspace .pupil-section-nav { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.admin-workspace .pupil-section-nav button { background:#e8f0ed; color:#183126; }
.admin-workspace .pupil-section-nav button[aria-current="page"] { background:#216d67; color:white; }
.admin-workspace .record-invalidation { grid-template-columns:minmax(0,1fr); }
.admin-workspace .profile-confirm { display:flex; align-items:flex-start; gap:12px; }
.admin-workspace .profile-confirm input { width:22px; min-width:22px; height:22px; margin-top:2px; }
.admin-workspace #pupil-profile-form { max-width:620px; grid-template-columns:minmax(0,1fr); }
.admin-workspace #account-purpose-form { max-width:620px; grid-template-columns:minmax(0,1fr); }
.admin-workspace #pupil-profile-form > *, .admin-workspace #create-pupil-form > * { min-width:0; }
.admin-workspace #edit-primary-profile, .admin-workspace #create-primary-profile { width:100%; min-width:0; }
.admin-workspace #pupil-profile-form button { white-space:normal; overflow-wrap:anywhere; }
.admin-workspace .add-pupil summary { cursor:pointer; min-height:44px; padding:12px 0; color:#216d67; font-weight:700; }
.admin-workspace .safe-alias-fieldset { grid-column:1 / -1; border:1px solid #b9d3d0; border-radius:12px; padding:16px; min-width:0; }
.admin-workspace .safe-alias-fieldset legend { padding:0 6px; font-weight:750; }
.admin-workspace .safe-alias-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:12px 0; }
.admin-workspace .safe-alias-choice { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px; min-height:52px; border:1px solid #91a89a; border-radius:10px; padding:10px 12px; background:#fff; overflow-wrap:anywhere; cursor:pointer; }
.admin-workspace .safe-alias-choice:has(input:checked) { border:2px solid #216d67; background:#eff8f5; padding:9px 11px; }
.admin-workspace .safe-alias-choice input { width:22px; height:22px; min-height:22px; }
.admin-workspace .pupil-filters { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:16px; margin:24px 0 12px; }
.admin-workspace .pupil-filters > *, .admin-workspace .pupil-filters input, .admin-workspace .pupil-filters select { min-width:0; width:100%; }
.admin-workspace select { min-height:46px; border:1px solid #91a89a; border-radius:10px; background:white; color:inherit; font:inherit; padding:10px; max-width:100%; }
.admin-workspace select:focus-visible { outline:3px solid #dc9e15; outline-offset:4px; }
.admin-workspace .record-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:24px 0; }
.admin-workspace .record-fact { background:#f0f5f7; border-radius:12px; padding:18px; }
.admin-workspace .record-fact span { display:block; color:#536678; font-size:.85rem; margin-bottom:8px; }
.admin-workspace .record-section { border-top:1px solid #dce4eb; padding:20px 0; }
.admin-workspace .testing-tools { border:2px solid #d5a12e; border-radius:12px; padding:20px; background:#fff9e8; }
.admin-workspace .testing-tools ul { padding-left:24px; }
.admin-workspace .record-attempt { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; border:1px solid #dce4eb; border-radius:12px; padding:20px; margin:14px 0; break-inside:avoid; }
.admin-workspace .record-attempt h4 { font-size:1.05rem; margin:0 0 10px; }
.admin-workspace .record-attempt p { margin:6px 0; line-height:1.5; }
.admin-workspace .record-score { font-size:1.4rem; font-weight:750; color:#216d67; }
.admin-workspace .record-caveat { background:#fff5dc; color:#604816; padding:12px; border-radius:8px; }
.admin-workspace .record-report-controls { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; }
.admin-workspace .record-report { border:1px solid #b9d3d0; border-radius:12px; padding:24px; margin-bottom:20px; }
.admin-workspace #pupil-print-root { display:none; }
@media(max-width:760px) {
 .admin-workspace .pupil-filters, .admin-workspace .record-facts, .admin-workspace .record-report-controls, .admin-workspace .safe-alias-choices { grid-template-columns:minmax(0,1fr); }
 .admin-workspace .record-attempt { grid-template-columns:1fr; }
 .admin-workspace .record-report { padding:16px; }
}
@media print {
 html:has(body.admin-workspace) { height:auto !important; min-height:0 !important; }
 body.admin-workspace { background:white; color:#152f45; padding:0; height:auto !important; min-height:0 !important; }
 body.admin-workspace > :not(main) { display:none !important; }
 .admin-workspace main > .workspace-layout { display:none !important; }
 .admin-workspace #pupil-print-root:not([hidden]) { display:block !important; padding:0; }
 .admin-workspace .record-attempt { border:1px solid #aaa; grid-template-columns:minmax(0,1fr) auto; }
 .admin-workspace .record-attempt details > * { display:block !important; }
 .admin-workspace .record-attempt details summary { display:none !important; }
 .admin-workspace h2 { margin-top:0; }
 @page { size:A4; margin:18mm; }
}
.admin-workspace #studio-form fieldset{border:0;padding:0;min-width:0}.admin-workspace #studio-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #a7bac4;border-radius:8px;resize:vertical}.admin-workspace .studio-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.admin-workspace #studio-preview-panel{white-space:pre-wrap;overflow-wrap:anywhere}.admin-workspace #studio-list button{display:block;text-align:left;margin:12px 0;overflow-wrap:anywhere;max-width:100%}
.admin-workspace .bank-tools{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin:20px 0}.admin-workspace .selection-bar{position:sticky;top:12px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f3f8f5;border:1px solid #c9ddd1;border-radius:14px;padding:12px 16px;margin:16px 0}.admin-workspace .selection-bar p{margin:0}.admin-workspace .practice-bank-list{display:grid;gap:12px}.admin-workspace .bank-question{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px solid #dce4eb;border-radius:14px;padding:16px;background:#fff}.admin-workspace .bank-question h3,.admin-workspace .bank-question p{margin:.25rem 0}.admin-workspace .bank-question input{width:22px;height:22px}.admin-workspace .subject-chip{display:inline-block;border-radius:999px;background:#eef4f0;padding:4px 9px;font-size:.8rem;font-weight:750;text-transform:capitalize}.admin-workspace .practice-builder-layout{display:grid;gap:28px;margin-top:24px}.admin-workspace .draft-list{background:#f5f8fa;border:1px solid #dce4eb;border-radius:14px;padding:18px}.admin-workspace .draft-list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-workspace .draft-list-heading :is(p,h3){margin:0}.admin-workspace #practice-drafts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px}.admin-workspace .draft-link{text-align:left;background:#fff;color:#18334b;border:1px solid #dce4eb;margin:0}.admin-workspace .draft-link[aria-current="true"]{border-color:#397557;background:#eaf4ee}.admin-workspace .draft-editor{min-width:0;max-width:1040px}.admin-workspace .practice-selection{display:grid;gap:12px;padding:0;list-style:none;counter-reset:practice-item}.admin-workspace .practice-selection li{counter-increment:practice-item;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;border:1px solid #dce4eb;border-radius:12px;padding:18px}.admin-workspace .practice-selection li:before{content:counter(practice-item);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eef4f0;font-weight:750}.admin-workspace .question-order{display:flex;flex-wrap:wrap;gap:6px}.admin-workspace .question-order button{padding:7px 10px;font-size:.82rem}.admin-workspace .draft-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-workspace .make-available{margin-top:28px;padding:22px;border:1px solid #c9ddd1;border-radius:14px;background:#f3f8f5}.admin-workspace .make-available h3{margin-top:.25rem}.admin-workspace .make-available select{width:100%;min-height:46px;border:1px solid #91a89a;border-radius:10px;padding:10px 12px;background:#fff;font:inherit}.admin-workspace .preview-banner{position:sticky;top:12px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(24,51,75,.97);color:#fff;border-radius:12px;padding:12px 14px;margin-bottom:22px;box-shadow:0 5px 18px rgba(24,51,75,.18)}.admin-workspace .preview-banner div{display:flex;flex-direction:column;gap:3px;letter-spacing:.05em}.admin-workspace .preview-banner span{font-size:.76rem;color:#dce9ef}.admin-workspace .preview-banner button{margin:0;flex:0 0 auto}.admin-workspace .preview-question{border-top:1px solid #dce4eb;padding:22px 0}.admin-workspace .preview-options{display:grid;gap:8px;list-style:none;padding:0}.admin-workspace .preview-options li{border:1px solid #dce4eb;border-radius:10px;padding:10px}.admin-workspace .preview-passage{background:#f7f4ed;border-radius:14px;padding:20px;margin:22px 0;white-space:pre-line}.admin-workspace.admin-preview-mode .workspace-sidebar,.admin-workspace.admin-preview-mode .workspace-header{display:none}.admin-workspace.admin-preview-mode .workspace-layout{display:block}.admin-workspace.admin-preview-mode .workspace-content{max-width:920px;margin:auto}.admin-workspace .stale-question{border-color:#b44444;background:#fff8f8}.admin-workspace .issue{color:#8b2929;font-weight:700}
@media(max-width:760px){.admin-workspace .bank-tools{grid-template-columns:1fr}.admin-workspace .draft-list-heading{align-items:flex-start}.admin-workspace #practice-drafts{grid-template-columns:1fr}.admin-workspace .selection-bar{top:4px}.admin-workspace .practice-selection li{grid-template-columns:auto minmax(0,1fr)}.admin-workspace .question-order{grid-column:2}.admin-workspace .preview-banner{top:4px}.admin-workspace .preview-banner button{padding:8px 10px;font-size:.88rem}}
.admin-workspace .single-studio{margin-top:24px;padding-top:18px;border-top:1px solid #dce4eb}.admin-workspace summary{cursor:pointer}.admin-workspace #bank-list p{overflow-wrap:anywhere}.admin-workspace #new-pack-form>*{min-width:0;max-width:100%}.admin-workspace #new-pack-kind{width:100%;box-sizing:border-box}
body.admin-workspace { background:var(--fpa-ivory); color:var(--fpa-navy); font-family:var(--fpa-font); line-height:1.55; }
.admin-workspace .workspace-sidebar { background:var(--fpa-navy); padding:32px 18px 24px; gap:24px; }
.admin-workspace .workspace-brand { padding:13px; }
.admin-workspace .workspace-brand .brand-lockup { gap:13px; }
.admin-workspace .workspace-brand .brand-wordmark { font-size:.94rem; line-height:1.35; }
.admin-workspace .workspace-caption { margin:0 14px; color:var(--fpa-aqua); letter-spacing:.13em; }
.admin-workspace #workspace-navigation>nav { gap:7px; }
.admin-workspace #workspace-navigation>nav a { border:1px solid transparent; padding:13px 14px; font-size:.94rem; font-weight:600; }
.admin-workspace #workspace-navigation>nav a:hover { background:#193e58; }
.admin-workspace #workspace-navigation>nav a[aria-current="page"] { background:#174e58; border-color:#67b7ad; box-shadow:inset 3px 0 var(--fpa-aqua); }
.admin-workspace .workspace-account { border-top:1px solid #456174; padding:16px 12px 0; }
.admin-workspace .workspace-content { padding:40px clamp(24px,4vw,64px) 64px; }
.admin-workspace .workspace-header { margin-bottom:28px; border-bottom:1px solid #d8dfdb; padding-bottom:20px; }
.admin-workspace .workspace-header .eyebrow { margin:0 0 10px; font-size:.72rem; }
.admin-workspace .workspace-header h1 { margin:0; font-size:clamp(1.9rem,3.2vw,2.6rem); letter-spacing:-.035em; }
.admin-workspace .workspace-header .status:empty { display:none; }
.admin-workspace h2 { font-size:1.35rem; letter-spacing:-.02em; }
.admin-workspace h3 { line-height:1.4; }
.admin-workspace .workspace-panel,.admin-workspace .today-section { border-color:#d8dfdb; border-radius:14px; box-shadow:0 3px 12px #0b2d4a04; }
.admin-workspace .today-intro { font-size:1.08rem; margin-bottom:24px; }
.admin-workspace #today-live { grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr); align-items:start; gap:24px; }
.admin-workspace #today-live>.today-section:first-child { grid-row:span 3; border-top:4px solid #28756f; }
.admin-workspace .today-this-week { margin-top:0; background:#f0f5f2; }
.admin-workspace .today-programme-status { background:#f4f7f5; border:0; padding:14px; }
.admin-workspace .today-status { font-size:.85rem; font-weight:650; padding:5px 11px; }
.admin-workspace .today-subject-row { padding:18px 0; }
.admin-workspace .today-subject-row details { font-size:.88rem; }
.admin-workspace .today-primary { padding:13px 22px; background:#226c65; min-height:48px; }
.admin-workspace .today-primary:hover { background:#174f4b; }
.admin-workspace .workspace-content a:not(.today-primary):not(.workspace-task) { color:#226c65; text-underline-offset:3px; }
.admin-workspace .workspace-tools { gap:6px; padding:6px; background:#edf1ee; border-radius:12px; }
.admin-workspace .workspace-tools a { background:transparent; color:#294f56; border-radius:8px; font-size:.9rem; }
.admin-workspace .workspace-tools a[aria-current="page"] { background:#fff; color:var(--fpa-navy); box-shadow:0 1px 4px #0b2d4a1a; text-decoration:underline; text-underline-offset:5px; }
.admin-workspace .workspace-task { background:#fcfdfb; padding:24px; border-color:#d8dfdb; border-radius:12px; }
.admin-workspace .workspace-task:hover { background:#f0f7f4; border-color:#28756f; box-shadow:none; }
.admin-workspace .workspace-task p { margin:12px 0 20px; }
.admin-workspace :is(button,input,select,textarea) { font-family:inherit; font-size:1rem; }
.admin-workspace :is(input,select,textarea) { border:1px solid #8a9f9a; border-radius:8px; background:#fff; color:var(--fpa-navy); max-width:100%; min-width:0; }
.admin-workspace :is(input:not([type="checkbox"]):not([type="radio"]),select) { min-height:46px; }
.admin-workspace button { min-height:44px; border-radius:8px; line-height:1.4; white-space:normal; }
.admin-workspace button.secondary { background:#edf2ef; color:#234954; border:1px solid #cbd7d1; }
.admin-workspace button:disabled { opacity:.55; cursor:not-allowed; }
.admin-workspace :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #986500; outline-offset:3px; }
.admin-workspace .workspace-sidebar :is(a,button):focus-visible { outline-color:var(--fpa-amber); }
.admin-workspace .workspace-panel>details { border-top:1px solid #d8dfdb; margin-top:24px; padding-top:16px; }
.admin-workspace summary { line-height:1.5; padding:8px 0; }
.admin-workspace [data-workspace-panel="weekly"]>.today-section { margin-top:24px; box-shadow:none; }
.admin-workspace [data-workspace-panel="weekly"]>button { margin:0 8px 10px 0; }
.admin-workspace :is(.record-section,.resource-review) { border-color:#d8dfdb; }
.admin-workspace .coverage-report { border:0; padding:18px 0; box-shadow:none; }
.admin-workspace .coverage-report p { overflow-wrap:anywhere; }
.admin-workspace .coverage-filter { display:flex; align-items:center; gap:10px; min-height:44px; }
.admin-workspace .coverage-filter input { width:20px; height:20px; min-height:20px; margin:0; flex:0 0 20px; }
@media(max-width:1100px) {
 .admin-workspace #today-live { grid-template-columns:1fr; }
 .admin-workspace #today-live>.today-section:first-child { grid-row:auto; }
}
@media(max-width:760px) {
 .admin-workspace .workspace-sidebar { padding:12px 16px; gap:12px; }
 .admin-workspace .workspace-brand { padding:10px 0; }
 .admin-workspace .workspace-brand .brand-lockup { gap:12px; }
 .admin-workspace .workspace-brand .brand-wordmark { font-size:.86rem; }
 .admin-workspace .workspace-brand .fpa-mark { width:40px; height:46px; }
 .admin-workspace .workspace-menu-toggle { padding:10px 12px; background:#174e58; border:1px solid #67b7ad; }
 .admin-workspace .workspace-content { padding:24px 16px 40px; }
 .admin-workspace .workspace-header { padding-bottom:16px; margin-bottom:20px; }
 .admin-workspace .workspace-header h1 { margin:0; }
 .admin-workspace .workspace-account { padding:12px 0 0; }
 .admin-workspace #today-live { gap:16px; }
 .admin-workspace .workspace-panel { padding:20px 16px; }
 .admin-workspace .workspace-tools { gap:4px; }
 .admin-workspace .workspace-tools a { padding:11px 10px; }
 .admin-workspace .workspace-task { padding:20px; }
}

.public-surface > div { width:100%; min-width:0; max-width:100%; }
.public-site { background:#fdfcf9; }
.public-site .public-header { width:min(1240px,calc(100% - 32px)); gap:16px; min-height:84px; border-bottom:0; }
.public-site .public-nav { gap:clamp(10px,1.25vw,18px); }
.public-site .public-nav a { font-size:clamp(.72rem,.78vw,.8rem); }
.public-site .public-beta-note { border-block:1px solid #e6ece7; background:#f2f7f3; text-align:center; }
.public-site .public-beta-note p { font-size:.78rem; margin:0; padding:3px 0; }
.public-site .public-beta-note .feedback-button { padding:7px; }
.public-site .public-hero-actions .button-link { border-radius:100px; min-height:50px; padding:13px 23px; font-size:.94rem; }
.public-site .home-routine .content-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,26px); }
.public-site .button-link { transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s; }
.public-site .button-link:hover { transform:translateY(-2px); box-shadow:0 5px 15px #0b2d4a12; }
.public-site .button-link:active,.public-site .school-ribbon-card:active { transform:translateY(0) scale(.99); }
.public-site .public-nav a,.public-site .public-menu summary,.public-site .faq-topics a { transition:color .16s,background-color .16s,border-color .16s,box-shadow .16s; }
.public-site .public-nav a:hover { text-decoration:underline 2px var(--fpa-teal); text-underline-offset:6px; }
.public-site .public-nav a:focus-visible,.public-site .public-menu summary:focus-visible,.public-site .faq-topics a:focus-visible { border-radius:8px; outline:3px solid var(--fpa-amber); outline-offset:4px; }
.public-site .public-menu summary:hover { background:#edf6f1; border-color:#6fa99c; }
.public-site .page-hero h1 { font-size:clamp(2.7rem,6vw,5rem); line-height:1.09; letter-spacing:-.045em; }
.public-site .page-hero h1 span { font-family:Georgia,serif; font-weight:400; font-style:italic; }
.public-site .public-section h2 { font-size:clamp(1.85rem,3.4vw,3rem); line-height:1.14; letter-spacing:-.035em; }
.public-site h2 em { font-family:Georgia,serif; font-weight:400; color:#087e73; }
.public-site .public-section p { line-height:1.7; }
.public-landing .public-hero { display:block; text-align:center; padding:66px 0 40px; }
.public-landing .public-hero-copy { max-width:940px; margin:auto; }
.public-landing .public-hero h1 { font-size:clamp(2.65rem,5.5vw,4.9rem); font-weight:750; line-height:1.08; letter-spacing:-.055em; margin:20px 0; }
.public-landing .public-hero h1 span { font-family:Georgia,serif; font-weight:400; font-style:italic; letter-spacing:-.04em; }
.public-landing .public-hero .public-kicker { display:inline-block; border:1px solid #c8dfd8; border-radius:30px; padding:7px 15px; margin:0; font-size:.72rem; letter-spacing:.06em; }
.public-landing .public-hero .public-lead { font-size:clamp(1.05rem,1.8vw,1.2rem); max-width:650px; margin:0 auto; color:#466174; line-height:1.65; }
.public-landing .public-hero-actions { justify-content:center; margin:27px 0 0; }
.public-landing .public-hero .public-hero-microcopy { max-width:none; font-size:.84rem; margin:15px auto 0; }
.public-landing .hero-teacher-link { display:inline-block; font-size:.8rem; color:#52697b; margin-top:22px; text-decoration-thickness:1px; text-underline-offset:4px; }
.public-landing .public-showcase { width:min(1080px,calc(100% - 40px)); margin:0 auto 56px; padding:40px; box-sizing:border-box; border:1px solid #dbe8e2; border-radius:32px; display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; align-items:center; background:radial-gradient(ellipse at 80% 20%,#d6f1e8,transparent 60%),#eef4ed; }
.public-landing .showcase-intro { padding:8px 10px; }
.public-landing .showcase-intro h2 { font-size:clamp(2rem,3.8vw,3.3rem); line-height:1.1; letter-spacing:-.04em; margin:12px 0 22px; }
.public-landing .showcase-intro p { color:#466174; line-height:1.7; max-width:32ch; }
.public-landing .showcase-intro a { font-weight:700; color:#086a62; text-underline-offset:5px; }
.public-landing .showcase-screen { min-width:0; position:relative; }
.public-landing .pupil-preview { border-width:6px; padding:24px; border-radius:22px; box-shadow:0 20px 35px #123c3622; }
.public-landing .pupil-preview h2 { font-size:1.4rem; }
.public-landing .pupil-preview p { font-size:.9rem; line-height:1.55; }
.public-landing .pupil-preview .demo-caption { font-size:.75rem; }
.public-landing .pupil-preview .public-kicker { font-size:.65rem; }
.public-landing .preview-help { border-radius:14px 14px 14px 3px; background:#eff9f4; }
.public-landing .preview-help summary { font-size:.85rem; }
.public-landing .preview-help[open] { background:#e0f3e9; }
.public-landing .public-band { display:flex; flex-wrap:wrap; justify-content:center; gap:20px 48px; background:transparent; border-block:1px solid #e2e9e3; padding:18px 20px; }
.public-landing .public-band p { margin:0; font-size:.86rem; color:#466174; }
.public-landing .teacher-intro { border-bottom:0; }
.public-landing .teacher-intro>div:last-child { max-width:640px; }
.public-site .school-discovery { padding:48px 0; }
.public-site .discovery-heading { display:flex; gap:24px; align-items:center; justify-content:space-between; }
.public-site .discovery-heading p { max-width:65ch; font-size:.96rem; }
.public-site .discovery-heading .button-link { flex-shrink:0; }
.public-site .school-ribbon { display:flex; gap:14px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; padding:10px 2px 20px; scrollbar-width:thin; scrollbar-color:#8cbbb0 #eef4f0; }
.public-site .school-ribbon-card { flex:0 0 235px; min-width:0; display:grid; gap:9px; padding:22px; box-sizing:border-box; border-radius:18px; background:#fff; border:1px solid #d6e3dc; color:#0B2D4A; text-decoration:none; scroll-snap-align:start; transition:transform .2s,border-color .2s,box-shadow .2s; }
.public-site .school-ribbon-card:hover { transform:translateY(-3px); border-color:#6bada0; box-shadow:0 8px 20px #0b2d4a0c; }
.public-site .ribbon-school-icon { display:grid; place-items:center; width:38px; height:38px; background:#e3f3eb; color:#166757; border-radius:10px; font-family:Georgia,serif; font-size:1.3rem; }
.public-site .school-ribbon-card strong { font-size:.99rem; line-height:1.4; }
.public-site .school-ribbon-card>span:not(.ribbon-school-icon) { font-size:.8rem; line-height:1.5; color:#52697b; }
.public-site .school-ribbon-card small { font-size:.75rem; color:#087466; }
.public-site .school-strip-note { font-size:.78rem!important; color:#63746d; margin:8px 0 0; }
.public-site .faq-topics { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.public-site .faq-topics a { padding:11px 16px; border-radius:24px; border:1px solid #b9d3c8; background:white; font-size:.88rem; text-decoration:none; color:#15574c; }
.public-site .faq-group { display:grid; grid-template-columns:1fr 2fr; gap:36px; padding:38px 0; scroll-margin-top:24px; }
.public-site .faq-group h2 { font-size:1.5rem; margin-top:16px; }
.public-site .faq-list { padding:0; }
.public-site .faq-list details { margin:0 0 12px; border:1px solid #d5e2da; background:#fff; border-radius:15px; overflow:hidden; }
.public-site .faq-list summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:21px 23px; font-weight:650; font-size:1rem; line-height:1.5; }
.public-site .faq-list summary::-webkit-details-marker { display:none; }
.public-site .faq-plus { color:#087568; font-size:1.35rem; font-weight:400; transition:transform .2s; }
.public-site .faq-list details[open] .faq-plus { transform:rotate(45deg); }
.public-site .faq-list details[open] { background:#f4faf6; border-color:#8ebeb0; }
.public-site .faq-answer p { margin:0; padding:0 23px 23px; color:#466174; font-size:.97rem; line-height:1.75; }
.public-site .faq-answer a { color:#08685e; text-underline-offset:3px; }
.public-site .home-faq { display:grid; grid-template-columns:1fr 1.5fr; gap:45px; }
.public-site .faq-contact { text-align:center; }
.public-site .faq-contact p { margin-inline:auto; }
@media(prefers-reduced-motion:no-preference) {
 .public-site .public-header { animation:fpa-header-in .28s ease-out both; }
 .public-site main > .page-hero { animation:fpa-intro .42s ease-out both; }
 .public-landing .public-hero-copy { animation:fpa-intro .5s ease-out both; }
 .public-landing .public-showcase { animation:fpa-intro .65s ease-out both; }
 @keyframes fpa-header-in { from { opacity:.75; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
 @keyframes fpa-intro { from { opacity:.35; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
}
@media(max-width:1000px) { .public-site .public-nav { display:none; } .public-site .public-menu { display:block; } .public-site .public-header { grid-template-columns:1fr auto auto; } }
@media(max-width:900px) { .public-site .home-routine .content-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:700px) {
 .public-landing .public-hero { padding:40px 0 30px; }
 .public-landing .public-hero h1 { font-size:clamp(2.3rem,8vw,3.5rem); }
 .public-landing .public-hero-actions { align-items:stretch; }
 .public-landing .public-showcase { padding:24px 18px; gap:24px; grid-template-columns:1fr; border-radius:22px; margin-bottom:30px; }
 .public-landing .showcase-intro { padding:0 4px; }
 .public-landing .showcase-intro h2 { font-size:2.1rem; }
 .public-landing .showcase-intro p { max-width:none; }
 .public-landing .pupil-preview { padding:18px; border-width:4px; }
 .public-landing .public-band { gap:12px 20px; }
 .public-site .discovery-heading { display:block; }
 .public-site .discovery-heading .button-link { margin-bottom:18px; }
 .public-site .school-ribbon-card { flex-basis:230px; }
 .public-site .home-faq,.public-site .faq-group { grid-template-columns:1fr; gap:16px; }
 .public-site .faq-group { padding:28px 0; }
 .public-site .faq-list summary { padding:18px; font-size:.95rem; }
 .public-site .faq-answer p { padding:0 18px 20px; }
}
@media(prefers-reduced-motion:reduce) { .public-site * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.pupil-home .home-shell { max-width:1120px; }
.pupil-home #practice-app:has(> #next-card) { grid-template-columns:.8fr 1.2fr; gap:26px; align-items:start; }
.pupil-home #practice-app:has(> #next-card) > .home-welcome { grid-column:1; grid-row:1; padding:32px 12px 24px 0; }
.pupil-home .home-welcome h1 { font-size:clamp(2rem,4vw,3.1rem); line-height:1.12; letter-spacing:-.04em; }
.pupil-home .home-welcome .lead { font-size:1.05rem; max-width:28ch; line-height:1.65; }
.pupil-home .home-week-glance { margin-top:28px; padding:20px; border:1px solid #d3e3dc; border-radius:18px; background:#fff; color:#31554e; font-size:.95rem; line-height:1.7; max-width:30ch; }
.pupil-home #next-card { grid-column:2; grid-row:1; background:#fff; color:#123c43; border:1px solid #a8d6cb; border-radius:24px; box-shadow:6px 7px 0 #dceee7; padding:30px; }
.pupil-home #next-card h2 { color:#103e42; font-size:clamp(1.7rem,3vw,2.3rem); line-height:1.2; }
.pupil-home #next-card p { color:#43635e; }
.pupil-home #next-card .state-pill { background:#eff7f3; border-color:#b8d8cd; color:#245c50; }
.pupil-home #next-card .next-button { background:#08786d; color:#fff; border-color:#08786d; width:100%; min-height:50px; }
.pupil-home #next-ten-minutes { border:1px solid #a8d6cb; border-radius:24px; background:#fff; box-shadow:6px 7px 0 #dceee7; }
.pupil-home #next-ten-minutes button { min-height:50px; width:100%; }
.pupil-home #parent-next { background:#f0f6f1; border:1px solid #d2e1d8; border-radius:18px; padding:16px 20px; }
.pupil-home #parent-next > summary { color:#245c50; cursor:pointer; font-weight:750; line-height:1.5; }
.pupil-home #parent-next > summary:focus-visible { outline:3px solid #176bb3; outline-offset:4px; border-radius:4px; }
.pupil-home .parent-home-content { padding-top:12px; }
.pupil-home #parent-next .parent-home-facts { margin:12px 0; }
.pupil-home #weekly-programme .programme-row { box-shadow:none; }
@media(max-width:700px) {
 .pupil-home #next-card::after { display:none; }
 .pupil-home #practice-app:has(> #next-card) { grid-template-columns:minmax(0,1fr); gap:20px; }
 .pupil-home #practice-app:has(> #next-card) > .home-welcome,
 .pupil-home #practice-app:has(> #next-card) > #next-card,
 .pupil-home #practice-app:has(> #next-card) > #next-ten-minutes { grid-column:1; grid-row:auto; }
 .pupil-home #practice-app:has(> #next-card) > .home-welcome { padding:16px 0 0; }
 .pupil-home .home-week-glance { margin-top:14px; padding:12px 16px; max-width:none; }
 .pupil-home #next-card,.pupil-home #next-ten-minutes { box-shadow:3px 4px 0 #dceee7; }
}

.public-site .home-tablet { width:min(1120px,calc(100% - 40px)); margin:0 auto 56px; }
.public-site .home-tablet img { display:block; width:100%; height:auto; border-radius:28px; border:1px solid #e2e7df; }
.public-site .home-tablet figcaption { font-size:.75rem; color:#5d7068; padding:12px 8px; text-align:center; }
.public-site .home-story { max-width:1180px; }
.public-site .story-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:30px; }
.public-site .story-grid:focus-visible { outline:3px solid var(--fpa-amber); outline-offset:6px; border-radius:18px; }
.public-site .story-card { display:grid; grid-template-rows:440px 1fr; min-width:0; overflow:hidden; border:1px solid #dce5de; border-radius:24px; background:#fff; }
.public-site .story-picture { min-height:370px; display:flex; align-items:center; padding:24px 18px; }
.public-site .story-mint { background:#e5f2e9; }.public-site .story-sand { background:#fbefd9; }.public-site .story-lilac { background:#efedf8; }
.public-site .story-screen { background:#fff; border:1px solid #dbe2de; box-shadow:0 8px 18px #173a3110; border-radius:14px; padding:18px; width:100%; color:#1d4548; }
.public-site .story-screen-bar { font-size:.64rem; font-weight:750; display:flex; gap:12px; justify-content:space-between; border-bottom:1px solid #e2e9e4; padding-bottom:13px; }.public-site .story-screen-bar span { color:#5e726c; font-weight:400; }
.public-site .story-screen h3 { font-size:1.12rem; line-height:1.3; margin:12px 0; }
.public-site .story-screen p { font-size:.84rem; line-height:1.6; }
.public-site .story-screen .story-eyebrow { font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; margin:18px 0 8px; color:#367d70; }
.public-site .story-note { font-size:.8rem; line-height:1.6; padding:11px 0; border-top:1px solid #edf0ed; }
.public-site .story-chat { background:#e8f5ef; padding:15px; border-radius:15px 15px 15px 3px; font-size:.84rem; line-height:1.6; }
.public-site .story-chat-child { background:#f2f4f7; border-radius:14px 14px 3px 14px; padding:10px; margin-left:22px; }
.public-site .story-copy { padding:25px; }.public-site .story-copy h3 { font-family:Georgia,serif; font-size:1.5rem; line-height:1.2; margin:0 0 16px; }.public-site .story-copy p { font-size:.96rem; color:#47616b; }.public-site .story-copy a { font-size:.88rem; font-weight:650; color:#087569; text-underline-offset:4px; }
.public-site .story-disclaimer,.public-site .story-bottom-note { font-size:.9rem; color:#536d67; }.public-site .story-disclaimer { max-width:70ch; }.public-site .story-bottom-note { margin-top:25px; }
.public-site .story-carousel-hint { display:none; }
@media(prefers-reduced-motion:no-preference) {
 .public-site .story-card { transition:transform .22s ease,box-shadow .22s ease; }
 .public-site .story-card:hover { transform:translateY(-4px); box-shadow:0 14px 28px #0b2d4a12; }
 .public-site .story-card { animation:story-card-in .45s ease-out both; }
 .public-site .story-card:nth-child(2) { animation-delay:.08s; }
 .public-site .story-card:nth-child(3) { animation-delay:.16s; }
 @keyframes story-card-in { from { opacity:.65; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
}
@media(max-width:800px) { .public-site .story-grid { display:flex; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; gap:16px; padding:6px 2px 18px; scrollbar-width:thin; scrollbar-color:#83b9ad #edf4f0; }.public-site .story-carousel-hint { display:block; color:#536d67; font-size:.85rem; }.public-site .story-card { flex:0 0 min(86%,440px); scroll-snap-align:start; grid-template-rows:auto 1fr; }.public-site .story-picture { min-height:0; padding:25px; }.public-site .story-screen { max-width:360px; margin:auto; }.public-site .home-tablet { width:calc(100% - 24px); }.public-site .home-tablet img { border-radius:16px; } }
@media(prefers-reduced-motion:reduce) { .public-site .story-grid { scroll-behavior:auto; } }
.public-site{--mint:#d9eee4;--peach:#fbe4d5;--lilac:#e9e2f5;--sky:#deedf8;--butter:#fff0bf;background:#fffdf8}
.public-site .public-beta-note{background:var(--mint)}
.public-site .primary-link,.public-site .public-diagnostic-cta{background:#08766c;color:#fff;border-color:#08766c;box-shadow:0 4px 0 #07594f15}
.public-site .secondary-link{background:#fffdf8;color:#174e4a;border-color:#9ebfb3}
.public-site .public-section+.public-section{border-top:0}
.public-site .subject-grid article:nth-child(4n+1),.public-site .content-grid article:nth-child(4n+1){background:var(--mint);border-color:#bedacd}
.public-site .subject-grid article:nth-child(4n+2),.public-site .content-grid article:nth-child(4n+2){background:var(--peach);border-color:#edd1bd}
.public-site .subject-grid article:nth-child(4n+3),.public-site .content-grid article:nth-child(4n+3){background:var(--sky);border-color:#c5dce9}
.public-site .subject-grid article:nth-child(4n+4),.public-site .content-grid article:nth-child(4n+4){background:var(--lilac);border-color:#d7cbe8}
.public-site .subject-grid .writing-beta{background:var(--lilac);border-color:#d7cbe8}
.public-site .story-card:nth-child(1),.public-site .story-card:nth-child(1) .story-picture{background:var(--mint)}
.public-site .story-card:nth-child(2),.public-site .story-card:nth-child(2) .story-picture{background:var(--peach)}
.public-site .story-card:nth-child(3),.public-site .story-card:nth-child(3) .story-picture{background:var(--lilac)}
.public-site .story-card{border:0;grid-template-rows:420px 1fr}.public-site .story-copy{padding:28px}.public-site .story-copy p{color:#294d50}
.public-site .story-screen{box-shadow:0 10px 20px #193f3b0b;border:0}
.public-site .story-picture{padding:26px 20px}
.public-site .quiet-panel{background:var(--sky)}
.public-site .teacher-intro{padding:40px;border-radius:28px;background:var(--peach);width:min(1120px,calc(100% - 40px));box-sizing:border-box;margin-bottom:40px}
.public-site .school-ribbon-card:nth-child(3n+1){background:var(--sky);border:0}.public-site .school-ribbon-card:nth-child(3n+2){background:var(--mint);border:0}.public-site .school-ribbon-card:nth-child(3n){background:var(--lilac);border:0}
.public-site .faq-topics a:nth-child(3n+1){background:var(--mint)}.public-site .faq-topics a:nth-child(3n+2){background:var(--peach)}.public-site .faq-topics a:nth-child(3n){background:var(--lilac)}
.public-site .faq-list details{border:0;background:#eef5ee}.public-site .faq-list details[open]{background:var(--mint)}
.public-site .public-footer{margin-top:44px;border-top:4px solid #a8d6c7}
.public-site .public-showcase{background:var(--mint);border:0}
.public-site .feature-gate{background:var(--butter);border-color:#eddb9c}
.public-site .colour-hero{width:min(1240px,calc(100% - 40px));margin:40px auto 55px;display:grid;grid-template-columns:1fr 1.05fr;gap:32px;align-items:center;background:#edf5ee;border-radius:30px;padding:40px;box-sizing:border-box}
.public-site .colour-hero .public-hero{width:100%;text-align:left;padding:10px 0}.public-site .colour-hero .public-hero h1{font-size:clamp(2.5rem,3.5vw,3.7rem)}.public-site .colour-hero .public-hero-actions{justify-content:flex-start;gap:12px}.public-site .colour-hero .public-hero .public-lead{font-size:1.05rem}.public-site .colour-hero .home-tablet{width:100%;margin:0}.public-site .colour-hero .home-tablet img{border:0;border-radius:22px}.public-site .colour-hero .home-tablet figcaption{font-size:.67rem}
.public-site .writing-scene{width:min(1120px,calc(100% - 40px));margin:0 auto 32px}.public-site .writing-scene img{width:100%;max-height:450px;object-fit:cover;border-radius:28px}.public-site .writing-scene figcaption{font-size:.75rem;color:#536e65;padding:8px}
@media(max-width:800px){.public-site .colour-hero{grid-template-columns:1fr;padding:24px;margin-top:24px;gap:20px}.public-site .colour-hero .public-hero h1{font-size:2.2rem}.public-site .colour-hero .public-hero .public-lead{font-size:1rem;line-height:1.55}.public-site .story-card{grid-template-rows:auto auto}.public-site .teacher-intro{padding:24px}}
.public-site .routine-intro{max-width:760px}.public-site .routine-count{font-size:2.8rem;font-weight:750;color:#125b53;margin:0;line-height:1.1}.public-site .routine-note{margin-top:25px;padding:20px 24px;background:#edf4ed;border-radius:18px}.public-site .routine-note p{margin:8px 0;font-size:.97rem}.public-site .home-school-details{margin-top:22px;border:1px solid #d3e2db;border-radius:16px;padding:16px 20px}.public-site .home-school-details>summary{font-weight:650;cursor:pointer;color:#1c5952}.public-site .home-school-details .school-discovery{width:100%;padding:20px 0 0}.public-site .home-school-details .school-discovery h2{font-size:1.8rem}.public-site .suitability{font-size:.9rem;line-height:1.6;color:#305950;margin:18px 0}.public-site .week-step-body .pupil-preview{max-width:620px;margin:0 auto 30px}.public-site .colour-hero .public-hero{min-width:0}.public-site .colour-hero .home-tablet{min-width:0}
.public-site .public-journey-reassurance{max-width:56ch;margin:12px 0 0;padding-left:12px;border-left:3px solid #8fc5b5;color:#305950;font-size:.92rem;line-height:1.55}

.public-site .public-footer{grid-template-columns:minmax(260px,1fr) minmax(0,1.4fr);align-items:start;gap:24px 64px}
.public-site .public-footer>div{max-width:400px}
.public-site .public-footer nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;justify-content:start;gap:14px 24px;padding-top:12px}
.public-site .public-footer nav a{font-weight:600;line-height:1.5;text-underline-offset:4px}
.public-site .public-footer .public-trust{grid-column:1/-1;margin:4px 0;font-size:.8rem;max-width:none}
.public-site .image-note{grid-column:1/-1;color:#526b7b;font-size:.8rem;max-width:760px}
.public-site .image-note summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.public-site .school-finder-callout{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:24px 0;color:#385660}
/* Keep the desktop header compact; use one complete, readable menu on mobile. */
.public-site .public-header{position:relative;z-index:10;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:clamp(10px,1.2vw,18px);flex-wrap:nowrap}
.public-site .public-nav{display:flex;min-width:0;justify-content:flex-end;gap:clamp(10px,1.1vw,17px)}
.public-site .public-nav a{font-size:clamp(.78rem,.88vw,.9rem);white-space:nowrap}
.public-site .public-more{display:block;position:relative;align-self:center}
.public-site .public-more summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 8px;list-style:none;cursor:pointer;color:#38566e;font-size:.88rem;font-weight:700;white-space:nowrap}
.public-site .public-more summary::-webkit-details-marker{display:none}
.public-site .public-more nav{position:absolute;z-index:30;top:calc(100% + 8px);right:0;width:220px;display:grid;gap:2px;padding:10px;border:1px solid #cbded5;border-radius:16px;background:#fffdf8;box-shadow:0 16px 35px #0b2d4a20}
.public-site .public-more nav a{padding:11px 12px;border-radius:10px;color:#244f54;font-size:.9rem;font-weight:650;text-decoration:none;white-space:normal}
.public-site .public-more nav a:hover,.public-site .public-more nav a[aria-current=page]{background:var(--mint);text-decoration:none}
.public-site .public-menu{display:none}
.public-site .public-more summary:focus-visible,.public-site .public-menu summary:focus-visible{outline:3px solid var(--fpa-amber);outline-offset:3px}
@media(max-width:1050px){.public-site .public-header{grid-template-columns:minmax(0,1fr) auto auto}.public-site .public-nav,.public-site .public-more{display:none}.public-site .public-menu{display:block;position:relative;justify-self:end}.public-site .public-menu summary{display:grid;place-items:center;min-width:76px;min-height:44px;padding:0 12px;border:1px solid #a9c4bd;border-radius:12px;background:#fffdf8;color:#174e4a;font-size:.88rem;font-weight:700;cursor:pointer;list-style:none}.public-site .public-menu summary::-webkit-details-marker{display:none}.public-site .public-menu nav{position:absolute;z-index:30;top:calc(100% + 8px);right:0;width:min(320px,calc(100vw - 32px));max-height:min(75vh,620px);overflow:auto;display:grid;gap:2px;padding:10px;border:1px solid #cbded5;border-radius:16px;background:#fffdf8;box-shadow:0 16px 35px #0b2d4a20}.public-site .public-menu nav a{padding:11px 12px;border-radius:10px;color:#244f54;font-size:.92rem;font-weight:650;text-decoration:none;white-space:normal}.public-site .public-menu nav a:hover,.public-site .public-menu nav a[aria-current=page]{background:var(--mint);text-decoration:none}}
@media(max-width:700px){.public-site .public-footer{grid-template-columns:1fr;gap:24px}.public-site .public-footer nav{gap:16px}.public-site .public-footer>div{max-width:none}}
/* Focused public refinement: retain the existing palette and keep all controls reachable. */
.public-site .public-header{width:min(1240px,calc(100% - 32px));min-height:78px;gap:16px;display:flex;align-items:center;flex-wrap:wrap}
.public-site .public-header-actions{display:flex;align-items:center;gap:18px;margin-left:auto;flex-shrink:0}
.public-site .public-header-actions .public-signin{font-size:.85rem;font-weight:650;white-space:nowrap}
.public-site .public-header-join{display:flex;align-items:center;gap:10px;border-radius:100px;min-height:44px;padding:10px 17px;font-size:.88rem;white-space:nowrap}
.public-site .public-header-join span{font-size:.75rem;font-weight:400}
.public-site .public-nav{gap:14px}.public-site .public-nav a{font-size:.8rem;min-height:44px;display:inline-flex;align-items:center}
.public-site .public-beta-note p{padding:2px 16px;font-size:.75rem;line-height:1.5}.public-site .public-beta-note .feedback-button{padding:3px}
.public-site .public-section{padding-top:36px;padding-bottom:36px}
.public-site .public-section>p{max-width:70ch}
.public-site .colour-hero{margin-top:28px;margin-bottom:24px}
.public-site .colour-hero .public-hero .public-lead{margin:0;max-width:42ch}
.public-site .story-card{grid-template-rows:auto 1fr}.public-site .story-picture{min-height:340px;padding:20px}
.public-site .story-copy{padding:22px}.public-site .story-copy p{margin-bottom:16px}
.public-site .diagnostic-parent-start{width:min(760px,calc(100% - 32px));box-sizing:border-box;margin:0 auto 32px;padding:28px;background:var(--mint);border-radius:20px}
.public-site .diagnostic-parent-start h2{font-size:1.6rem}.public-site .diagnostic-parent-start input[type=email]{width:100%;box-sizing:border-box}
.public-site .diagnostic-parent-start button{min-height:48px}
.public-site .membership-inclusions{padding-left:22px}.public-site .membership-inclusions li{margin-bottom:12px;line-height:1.6}
.public-site .payment-disclosures{border-top:1px solid #a9c5b9;margin-top:24px;padding-top:12px}
.public-site .payment-disclosures p{font-size:.95rem;line-height:1.65}
.public-site .join-price-note{padding:16px 18px;border-radius:12px;background:#e6f2eb}
.public-site .join-code p{font-size:.9rem;line-height:1.55}
@media(max-width:700px){.public-site .public-header{gap:10px;padding-block:12px}.public-site .public-header-actions{gap:12px}.public-site .public-header-actions .public-signin{display:none}.public-site .public-header-join{display:block;padding:8px 14px}.public-site .public-header-join span{display:block}.public-site .public-menu{margin-left:0}.public-site .colour-hero{margin-top:18px;padding:22px}.public-site .public-section{padding-top:26px;padding-bottom:26px}.public-site .story-picture{min-height:0}.public-site .diagnostic-parent-start{padding:20px}.public-site .diagnostic-parent-start button{width:100%}.public-site .public-beta-note .feedback-button{display:inline}.public-site .public-beta-note p{font-size:.75rem}}
@media(max-width:380px){.public-site .public-header{gap:8px}.public-site .public-header-actions{margin-left:0}.public-site .public-header-join{font-size:.8rem}.public-site .public-menu summary{padding:9px}}

/* Keep the public navigation legible, balanced and usable at every width. */
.public-site .public-header{width:min(1320px,calc(100% - 40px));display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:clamp(10px,1.4vw,20px);flex-wrap:nowrap}
.public-site .public-header .brand-lockup{min-width:0;white-space:nowrap}
.public-site .public-nav{min-width:0;justify-content:center;flex-wrap:nowrap;gap:clamp(10px,1.15vw,17px)}
.public-site .public-nav a{font-size:clamp(.78rem,.9vw,.9rem);white-space:nowrap}
.public-site .public-header-actions{margin-left:0;justify-self:end;gap:clamp(10px,1.2vw,18px)}
.public-site .public-more{justify-self:end}
.public-site .public-footer nav a{color:#174e4a;text-decoration:none;text-decoration-thickness:1px;text-underline-offset:4px}
.public-site .public-footer nav a:hover,.public-site .public-footer nav a:focus-visible{text-decoration:underline}
@media(min-width:981px){.public-site .public-nav{display:flex}.public-site .public-more{display:block}.public-site .public-menu{display:none}}
@media(max-width:980px){.public-site .public-header{width:calc(100% - 32px);grid-template-columns:minmax(0,1fr) auto auto;gap:12px}.public-site .public-nav,.public-site .public-more{display:none}.public-site .public-menu{display:block;position:relative;justify-self:end}.public-site .public-header-actions{justify-self:end}}
@media(max-width:700px){.public-site .public-header{width:calc(100% - 24px);gap:8px;padding-block:10px}.public-site .public-header-actions{gap:8px}.public-site .public-header-actions .public-signin{display:none}.public-site .public-header-join{min-height:44px;padding:7px 12px;font-size:.8rem}.public-site .public-header-join span{display:block;font-size:.7rem}.public-site .public-menu summary{min-width:68px;min-height:44px;padding:0 9px}.public-site .public-menu nav{width:min(320px,calc(100vw - 24px))}}
@media(max-width:380px){.public-site .public-header .brand-lockup .fpa-mark{width:40px;height:46px}.public-site .public-header .brand-wordmark{font-size:.83rem;line-height:1.05}.public-site .public-header-join{padding:6px 9px}.public-site .public-menu summary{min-width:62px}}

/* Keep member access visible on phones; move Join into Menu on the narrowest headers. */
.public-site .public-header-actions .public-signin{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:80px;padding:9px 16px;border:1px solid #8fb6a9;border-radius:999px;background:#e7f3ec;color:#174e4a;font-size:.85rem;font-weight:700;text-decoration:none;white-space:nowrap}
.public-site .public-header-actions .public-signin:hover,.public-site .public-header-actions .public-signin:focus-visible{background:#d9eee4;text-decoration:underline;text-underline-offset:3px}
.public-site .public-returning-member{margin:12px 0 0;color:#38566e;font-size:.95rem}
.public-site .public-returning-member a{color:#174e4a;font-weight:750;text-underline-offset:3px}
.public-site .public-menu .mobile-join{margin-top:6px;border-top:1px solid #d7e4dd;border-radius:0;color:#174e4a;font-weight:750}
@media(max-width:700px){.public-site .public-header-actions .public-signin{display:inline-flex;min-width:76px;min-height:44px;padding:8px 11px;font-size:.82rem}}
@media(max-width:600px){.public-site .public-header-join{display:none}}
@media(max-width:260px){.public-site .public-header-actions .public-signin{display:inline-flex;min-width:70px;padding:7px 8px}}

.practice-session{--practice-wash:#e4f1eb;max-width:1080px;margin:0 auto}
.practice-session[data-subject="words"]{--practice-wash:#e5edf9}
.practice-session[data-subject="visual"]{--practice-wash:#eee6f7}
.practice-session .ordinary-topline,.practice-session .session-top{background:var(--practice-wash);padding:22px;border-radius:20px;margin-bottom:18px}
.practice-session .ordinary-topline h1,.practice-session .session-top h1{font-size:clamp(1.5rem,3vw,2.2rem);margin:6px 0}
.practice-session progress{display:block;width:100%;height:8px;border:0;border-radius:9px;overflow:hidden;accent-color:#287b73;background:#d7e3df;margin:16px 0 0}
.practice-session progress::-webkit-progress-bar{background:#d7e3df}
.practice-session progress::-webkit-progress-value{background:#287b73;border-radius:9px}
.practice-session .ordinary-workspace,.practice-session .session-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,330px);gap:24px;align-items:start}
.practice-session .ordinary-question,.practice-session .session-question{min-width:0;border:1px solid #d8e3df;border-radius:20px;padding:26px;background:#fff}
.practice-session .ordinary-question h2,.practice-session .session-prompt{font-family:inherit;font-size:clamp(1.25rem,2.7vw,1.65rem);line-height:1.5;margin:0 0 24px;color:#17344d}
.practice-session .practice-helper{margin:0;background:var(--practice-wash)}
.practice-session .ordinary-answer,.practice-session .game-option{min-height:58px;box-sizing:border-box;cursor:pointer;transition:background-color .15s,border-color .15s}
.practice-session .ordinary-answer:focus-within,.practice-session .game-option:focus-within{outline:3px solid #d5a144;outline-offset:3px}
.practice-session .ordinary-save-state,.practice-session .session-save-note{font-size:.88rem;color:#48646d;line-height:1.5}
.practice-session .ordinary-feedback,.practice-session .game-feedback{border-radius:16px;background:#e4f1eb;padding:20px;margin-top:20px}
.practice-session .game-feedback[data-correct="false"]{background:#fff2d5}
.practice-session .session-finish{max-width:650px;margin:24px auto;background:var(--practice-wash);border-radius:24px;padding:clamp(24px,5vw,42px)}
.practice-session .session-finish h1{font-size:2rem;margin:8px 0 20px}
.practice-session .session-finish .ordinary-score{font-size:1.3rem}
.practice-session .session-next{background:#fff;border-radius:16px;padding:18px;line-height:1.6;margin:24px 0}
.member-games main{width:min(100%,1080px);max-width:1080px}
.practice-session .game-stimulus{max-width:220px;margin:20px auto}
.practice-session .game-stimulus svg{max-width:220px}
.practice-session .game-option span{min-width:0;flex:1}
.practice-session .game-option svg{max-width:160px;margin:8px auto}
@media(max-width:760px){body.member-games{padding:12px}.member-games main{padding:8px}.practice-session .ordinary-workspace,.practice-session .session-workspace{grid-template-columns:1fr;gap:16px}.practice-session .ordinary-topline{display:block}.practice-session .ordinary-progress{white-space:normal;margin-top:12px}.practice-session .ordinary-question,.practice-session .session-question{padding:20px 16px}.practice-session .ordinary-actions{gap:16px}.practice-session .ordinary-actions button{width:100%}.practice-session .session-top{padding:18px}.practice-session .game-option{padding:10px;gap:6px}.practice-session .game-actions button{flex:1 1 auto}.practice-session .helper-log{max-height:320px}}
@media(prefers-reduced-motion:reduce){.practice-session *{transition:none!important;scroll-behavior:auto!important}}
