/*
  IDENTITY / FINAL POLISH
  This stylesheet intentionally loads AFTER styles.css. It finishes the
  editorial calendar system across the older question, maths, assessment,
  specification and progress components without disturbing the JS behaviour.

  Palette: ink / cream / coral / chartreuse / cobalt. No mint card gradients.
  All interactive states communicate selection with more than colour alone.
*/
:root {
  color-scheme: light;
  --ink: #17262e;
  --muted: #4c6265;
  --line: #b6c2b9;
  --teal: #185953;
  --pale: #f0f2e7;
  --blue: #2948b9;
  --bg: #f2f0e7;
  --white: #fffefa;
  --editorial-ink: #17262e;
  --editorial-paper: #fffefa;
  --editorial-cream: #f2f0e7;
  --editorial-coral: #f36d4d;
  --editorial-coral-ink: #c5442c; /* readable coral text on paper */
  --editorial-orange: #f36d4d;
  --editorial-lime: #dcf48a;
  --editorial-cobalt: #2948b9;
  --editorial-rule: #b6c2b9;
  --editorial-wash: #f7f6ef;
  --editorial-soft-blue: #ecf0ff;
  --editorial-error: #a63332;
  --editorial-quiet: #54676a;
  --editorial-radius: 4px;
  --editorial-font-display: "Space Grotesk", Manrope, sans-serif;
  --editorial-font-index: "IBM Plex Mono", ui-monospace, monospace;
  --editorial-font-body: "DM Sans", system-ui, sans-serif;
}
::selection { background: var(--editorial-lime); color: var(--editorial-ink); }
.skip-link {
  border:2px solid var(--editorial-ink);
  border-radius:2px;
  background:var(--editorial-lime);
  color:var(--editorial-ink);
  font:700 11px var(--editorial-font-index);
  box-shadow:3px 3px 0 var(--editorial-ink);
}
.skip-link:focus { top:8px; }
.brand small { color:var(--editorial-quiet);font-family:var(--editorial-font-index); }
.qualification b { color:var(--editorial-cobalt); }
footer { color:var(--editorial-quiet); }
footer b { color:var(--editorial-ink); }
body { accent-color: var(--editorial-cobalt); }
:is(button,a,input,textarea,select,[tabindex],summary,math-field):focus-visible {
  outline: 3px solid var(--editorial-cobalt);
  outline-offset: 3px;
}
:is(button,a,input,textarea,select,math-field)[disabled] { cursor: not-allowed; }
[hidden] { display: none!important; }
.page :is(input[type=text],input[type=number],input[type=search],input[type=file],select,textarea):not(.work-notes):not(.working):not(.maths-reason) {
  border-radius: var(--editorial-radius);
}
.page button:not(.btn) { font-family: var(--editorial-font-body); }
.page label { color: var(--editorial-ink); }
.page :is(h1,h2,h3,h4) { color: var(--editorial-ink); }
.page .eyebrow, .page .back { font-family: var(--editorial-font-index); }
.page .back { color: var(--editorial-cobalt); text-decoration: none; }
.page .back:hover { text-decoration: underline; }
.btn {
  border-radius: var(--editorial-radius);
  box-shadow: 3px 3px 0 #17262e1e;
  font: 700 12px/1.3 var(--editorial-font-display);
  min-height: 42px;
  white-space: normal;
}
.btn:disabled { box-shadow:none; opacity:.55 }
.btn.ghost {
  background:var(--editorial-paper);
  border:1.5px solid var(--editorial-ink);
  color:var(--editorial-ink);
  box-shadow:none;
}
.btn.ghost:hover:not(:disabled) {
  background:var(--editorial-lime);
  border-color:var(--editorial-ink);
}
.btn.small { min-height:36px; padding:8px 13px; }
.link, .spec-source a, .progress-future-note a,
.revision-suggestion-spec, .guide-privacy a {
  color:var(--editorial-cobalt);
  text-underline-offset:3px;
}
.link:hover, .spec-source a:hover, .revision-suggestion-spec:hover {
  text-decoration:underline;
}
.pill, .badge, .spec-pill, .revision-suggestion-kind,
.spec-group-count,.spec-skill-counter,.spec-evidence-caption {
  border-radius:var(--editorial-radius);
  font-family:var(--editorial-font-index);
  font-weight:700;
  letter-spacing:0;
}
.pill { border:1px solid var(--editorial-rule); background:var(--editorial-paper); color:var(--editorial-ink); }
.pill.teal, .spec-pill.available { background:var(--editorial-lime); color:var(--editorial-ink); border-color:var(--editorial-ink); }
.pill.blue, .spec-pill.mixed { background:var(--editorial-soft-blue); color:var(--editorial-cobalt); border-color:var(--editorial-cobalt); }
.pill.amber, .spec-pill.future { background:#fff1dd; color:#70450f; border-color:#cfa56d; }
.section-heading, .spec-section-heading,.spec-group-title {
  border-bottom:2px solid var(--editorial-ink);
  padding-bottom:11px;
  margin-bottom:16px;
}
.section-heading h2,.spec-section-heading h2,.spec-group-title h2 {
  font:700 clamp(20px,2.2vw,30px)/1.2 var(--editorial-font-display);
  margin:0;
}
.metric,.progress-item,.panel,.card,.banner,.phase,.exam,
.locked-panel,.locked-week-notice {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  box-shadow:none;
}
.metric { border-top:4px solid var(--editorial-ink); }
.metric strong {
  font:700 clamp(24px,3vw,34px)/1.2 var(--editorial-font-display);
  letter-spacing:-.05em;
  color:var(--editorial-ink);
}
.metric span,.progress-item>p,.progress-item small { color:var(--editorial-quiet); }
.metric:nth-child(2) { border-top-color:var(--editorial-cobalt); }
.metric:nth-child(3) { border-top-color:var(--editorial-coral); }
.metric:nth-child(4) { border-top-color:var(--teal); }
.progress-item { border-left:4px solid var(--editorial-ink); }
.progress-item h3,.panel h3 { font-family:var(--editorial-font-display); }
.banner,.warning {
  border:1.5px solid var(--editorial-ink);
  border-left:5px solid var(--editorial-coral);
  background:#fff6e8;
  border-radius:var(--editorial-radius);
  color:var(--editorial-ink);
}
.banner strong,.warning strong { color:var(--editorial-ink); }
.tabs { border-bottom:2px solid var(--editorial-ink); gap:3px; }
.tab {
  border:1.5px solid var(--editorial-rule);
  border-bottom:none;
  border-radius:var(--editorial-radius) var(--editorial-radius) 0 0;
  background:var(--editorial-paper);color:var(--editorial-quiet);
  font:700 11px var(--editorial-font-index);
}
.tab[aria-selected=true] { background:var(--editorial-lime);border-color:var(--editorial-ink);color:var(--editorial-ink); }
.meter,.spec-track,.attempt-bar { height:8px; background:#d9e0d7; border-radius:2px; }
.meter span,.spec-track>span,.attempt-bar span { background:var(--editorial-cobalt);border-radius:0; }
.reflection,.working {
  color:var(--editorial-ink);
  background:repeating-linear-gradient(to bottom,var(--editorial-paper) 0,var(--editorial-paper) 31px,#cdd6cd 32px);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  line-height:32px;
}
.reflection:focus,.working:focus { background:var(--editorial-paper);border-color:var(--editorial-cobalt); }
.reflection-row label,.working-label {
  font:700 11px/1.5 var(--editorial-font-index);
  letter-spacing:.02em;
  color:var(--editorial-ink);
}
.guide-routine,.guide-instructions>div,.guide-ao>div,
.final-page .phase,.final-page .exam {
  border-radius:var(--editorial-radius);
}
.guide-routine-row:nth-child(even) { background:var(--editorial-wash); }
.guide-instructions>div { border-top-color:var(--editorial-coral); }
.guide-ao>div { background:var(--editorial-wash);border-top:3px solid var(--editorial-cobalt); }
.guide-ao strong,.final-page .exam-date { color:var(--editorial-cobalt); }
.final-page .phase:nth-child(2n) { border-top-color:var(--editorial-cobalt); }
.loading {
  background:var(--editorial-paper);border:1.5px solid var(--editorial-rule);
  padding:24px;font:700 12px var(--editorial-font-index);
  color:var(--editorial-ink);
}

/* Large coral numerals are printed on warm paper rather than dark ink.
   Use the darker coral only in that context for stronger text contrast. */
.planner-cell.is-open .planner-cell-number,
.planner-shortcut-num,.guide-routine-index {
  color:var(--editorial-coral-ink);
}
.planner-cell-flag.future { color:#546664;border-color:#a8b5ad; }
.planner-cell.is-upcoming h3 { color:#4d605e; }

/* 01 / Question sheet / hints / data */
.study-workbench .paper.exam-sheet {
  background:var(--editorial-paper);
  border-radius:0;
}
.study-workbench .paper .parts li {
  border-top:1px solid var(--editorial-rule);
}
.paper .stem,.paper .question-part { color:var(--editorial-ink); }
.paper .letter { color:var(--editorial-cobalt); font-family:var(--editorial-font-index); }
.paper .marks { color:var(--editorial-ink);font-family:var(--editorial-font-index); }
.paper hr { border-top:2px solid var(--editorial-rule); }
.exam-sheet-points { background:var(--editorial-lime); }
.exam-sheet-code { color:var(--editorial-coral); }
.helper {
  border:1.5px solid var(--editorial-ink);
  border-left:5px solid var(--editorial-coral);
  border-radius:var(--editorial-radius);
  background:#fff3df;
  box-shadow:3px 3px 0 #17262e12;
}
.helper.solution {
  background:var(--editorial-wash);
  border-color:var(--editorial-ink);
  border-left-color:var(--editorial-cobalt);
}
.helper h3 {
  font:700 15px/1.4 var(--editorial-font-display);
  letter-spacing:-.02em;
}
.helper p,.helper li { color:var(--editorial-ink); }
.helper .line { border-top-color:var(--editorial-rule); }
.table-scroll {
  overflow-x:auto;
  border:1.5px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
}
.data-table,.paper table {
  background:var(--editorial-paper);
  border-color:var(--editorial-rule);
}
.data-table thead,.paper table thead { background:var(--editorial-ink); color:var(--editorial-paper); }
.data-table th,.paper table th {
  font:700 11px var(--editorial-font-index);
  border-color:#60736d;
}
.data-table td,.paper table td { border-color:var(--editorial-rule); }
.data-table tbody tr:nth-child(even),.paper table tbody tr:nth-child(even) { background:var(--editorial-wash); }
.question-skill-links {
  border:1.5px solid var(--editorial-rule);border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.question-skill-links summary {
  color:var(--editorial-cobalt);
  font:700 11px/1.5 var(--editorial-font-index);
}
.question-skill-links[open] summary { border-bottom:2px solid var(--editorial-ink); }
.question-skill-list a {
  border:1px solid var(--editorial-rule);
  border-left:3px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
}
.question-skill-list a:hover { background:var(--editorial-soft-blue);border-color:var(--editorial-cobalt); }
.question-skill-list a span { color:var(--editorial-cobalt);font-family:var(--editorial-font-index); }
.question-skill-list a strong { color:var(--editorial-ink); }

/* 02 / Working space / handwritten lines / maths editing */
.student-workspace,.study-workbench .student-workspace {
  border:2px solid var(--editorial-ink);
  border-top:5px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
  padding:clamp(14px,2.2vw,24px);
  box-shadow:4px 4px 0 #17262e15;
}
.work-header {
  gap:14px;border-bottom:2px solid var(--editorial-rule);
  margin-bottom:0;padding-bottom:10px;
}
.work-header h3 {
  font:700 22px/1.2 var(--editorial-font-display);
  margin:0;
}
.work-header-actions { align-items:flex-end; }
.work-save-status {
  font:700 10px/1.45 var(--editorial-font-index);
  color:var(--teal);
}
.work-save-status.save-error { color:var(--editorial-error)!important; }
.work-mode-tabs {
  margin-top:10px;padding:3px;gap:3px;
  border:2px solid var(--editorial-ink);border-radius:var(--editorial-radius);
  background:var(--editorial-ink);
}
.work-mode-tabs button {
  border:1.5px solid transparent;border-radius:2px;
  min-height:46px;background:#293c44;color:#f0f3e9;
  font:700 12px var(--editorial-font-index);
}
.work-mode-tabs button:hover { background:#3b5155;color:#fff; }
.work-mode-tabs button[aria-selected=true] {
  background:var(--editorial-lime);color:var(--editorial-ink);
  border-color:var(--editorial-lime);box-shadow:none;
}
.work-panel { padding:12px 0 1px; }
.work-tip { color:var(--editorial-quiet)!important; }
.work-notes {
  color:var(--editorial-ink);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:repeating-linear-gradient(to bottom,var(--editorial-paper) 0,var(--editorial-paper) 32px,#d3dbd2 33px);
}
.work-notes:focus { border-color:var(--editorial-cobalt);background:var(--editorial-paper); }
.maths-work-head { justify-content:flex-end;border-bottom:0;padding-bottom:0;margin-bottom:8px; }
.maths-load-status,.work-tip { font-size:11px;color:var(--editorial-quiet); }
.maths-row {
  background:var(--editorial-paper);border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);padding:12px;gap:10px;
}
.maths-row:focus-within {
  border-color:var(--editorial-cobalt);
  box-shadow:inset 4px 0 0 var(--editorial-cobalt);
}
.maths-line-number {
  color:var(--editorial-cobalt);
  font:700 12px var(--editorial-font-index);
}
.maths-mathfield,math-field.maths-mathfield {
  background:#fff;border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  color:var(--editorial-ink);
  --hue:230;--selection-background-color:#dbe1ff;
  --caret-color:var(--editorial-cobalt);
}
.maths-mathfield:focus-within,math-field.maths-mathfield:focus {
  outline:2px solid var(--editorial-cobalt);
  outline-offset:1px;
}
.maths-mathfield::part(virtual-keyboard-toggle) { color:var(--editorial-cobalt); }
.maths-reason {
  background:var(--editorial-wash);color:var(--editorial-ink);
  border:1px solid var(--editorial-rule);border-radius:var(--editorial-radius);
  border-left:3px solid var(--editorial-cobalt);min-height:40px;
}
.maths-reason:focus { outline:2px solid var(--editorial-cobalt);background:var(--editorial-paper); }
.maths-row-actions { gap:5px; }
.maths-icon-btn {
  width:34px;height:34px;border-radius:var(--editorial-radius);
  border:1px solid var(--editorial-rule);
  background:var(--editorial-paper);color:var(--editorial-ink);
  font:700 17px var(--editorial-font-index);
}
.maths-icon-btn:hover { background:var(--editorial-lime);border-color:var(--editorial-ink); }
.maths-icon-btn.subtle-danger { color:var(--editorial-error); }
.maths-icon-btn.subtle-danger:hover { border-color:var(--editorial-error);background:#fff2ed; }
.maths-quickbar {
  border-top:2px solid var(--editorial-ink);margin-top:14px;
  padding-top:14px;gap:7px;
}
.maths-quickbar-label { font:700 10px var(--editorial-font-index);color:var(--editorial-ink); }
.maths-quickbar button {
  border:1.5px solid var(--editorial-rule);border-radius:var(--editorial-radius);
  background:var(--editorial-paper);color:var(--editorial-ink);
  min-height:40px;min-width:40px;
}
.maths-quickbar button:hover { background:var(--editorial-lime);border-color:var(--editorial-ink); }
.maths-fallback-input {
  background:var(--editorial-paper);border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);color:var(--editorial-ink);
}
.maths-fallback-preview {
  background:var(--editorial-wash);border:1.5px dashed var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
}
.ink-toolbar { padding:11px 0 14px;border-bottom:2px solid var(--editorial-rule);margin-bottom:13px; }
.ink-toolset {
  border:1.5px solid var(--editorial-rule);border-radius:var(--editorial-radius);
  background:var(--editorial-paper);padding:4px;gap:4px;
}
.ink-toolset button:not(.ink-colour) {
  background:transparent;border-radius:2px;
  color:var(--editorial-ink);font:700 11px var(--editorial-font-index);
  min-height:38px;
}
.ink-toolset button:not(.ink-colour):hover { background:var(--editorial-soft-blue); }
.ink-toolset button[aria-pressed=true]:not(.ink-colour) {
  background:var(--editorial-lime);color:var(--editorial-ink);
  border:1px solid var(--editorial-ink);
}
.ink-colour { border-radius:var(--editorial-radius);width:38px;height:38px; }
.ink-colour:after { border-radius:2px;width:21px;height:21px;border:1px solid #17262e33; }
.ink-colour[aria-pressed=true] {
  background:var(--editorial-paper);border-color:var(--editorial-cobalt);
  box-shadow:inset 0 0 0 2px var(--editorial-paper);
}
.ink-grid-choice {
  color:var(--editorial-ink);font:700 11px var(--editorial-font-index);
}
.ink-grid-choice input { accent-color:var(--editorial-cobalt); }
.ink-canvas-wrap {
  border:2px solid var(--editorial-ink);border-radius:var(--editorial-radius);
  background:var(--editorial-paper);box-shadow:none;
}
.ink-canvas-wrap.has-grid {
  background-image:linear-gradient(#b8c9b74f 1px,transparent 1px),
   linear-gradient(90deg,#b8c9b74f 1px,transparent 1px);
  background-size:24px 24px;
}
.ink-bottom { padding-top:10px;border-top:1px solid var(--editorial-rule); }
.ink-bottom .btn:disabled { opacity:.52; }


/* 03 / Self-marking / detailed marks / completion */
.finish-assessment {
  border:2px solid var(--editorial-ink);
  border-top:5px solid var(--editorial-coral);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
  padding:clamp(14px,2.4vw,25px);
}
.finish-heading { padding-bottom:16px;border-bottom:2px solid var(--editorial-rule); }
.finish-heading h3 { font:700 22px var(--editorial-font-display); }
.finish-heading .eyebrow { color:var(--editorial-cobalt); }
.finish-heading p { color:var(--editorial-quiet); }
.finish-state {
  border:1.5px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);color:var(--editorial-ink);
  font:700 10px var(--editorial-font-index);
}
.finish-state[data-finished=true] {
  border-color:var(--editorial-ink);
  background:var(--editorial-lime);
  color:var(--editorial-ink);
}
.finish-flow { gap:12px; }
.finish-step {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.finish-number {
  background:var(--editorial-ink);
  color:var(--editorial-coral);
  border-radius:2px;
  font:700 15px var(--editorial-font-index);
}
.finish-step-content>strong { font:700 16px var(--editorial-font-display); }
.finish-step-content>p { color:var(--editorial-quiet); }
.finish-step-content>p strong { color:var(--editorial-ink); }
.assessment-choices { gap:9px; }
.assessment-choice {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);color:var(--editorial-ink);
}
.assessment-choice:hover {
  background:var(--editorial-soft-blue);
  border-color:var(--editorial-cobalt);
}
.assessment-choice[aria-pressed=true] {
  background:var(--editorial-lime);
  border:2px solid var(--editorial-ink);
  box-shadow:inset 5px 0 0 var(--editorial-ink);
}
.assessment-choice-symbol {
  background:var(--editorial-ink);color:var(--editorial-coral);
  border-radius:var(--editorial-radius);
  font:700 20px var(--editorial-font-display);
}
.assessment-choice[aria-pressed=true] .assessment-choice-symbol {
  background:var(--editorial-paper);color:var(--editorial-ink);
}
.assessment-choice strong { font:700 13px var(--editorial-font-display); }
.assessment-choice small { color:var(--editorial-quiet); }
.assessment-choice-tick { color:var(--editorial-ink); }
.finish-score-row label,
.finish-followup label,
.detail-part-label label strong {
  font:700 11px var(--editorial-font-index);
  color:var(--editorial-ink);
}
.finish-score,.detail-part-score input {
  border:2px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
  font:700 19px var(--editorial-font-index);
}
.finish-score[readonly] {
  background:var(--editorial-lime);color:var(--editorial-ink);border-color:var(--editorial-ink);
}
.finish-out-of,.detail-part-score span {
  font:700 11px var(--editorial-font-index);color:var(--editorial-quiet);
}
.clear-self-mark {
  color:var(--editorial-cobalt);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  font:700 10px var(--editorial-font-index);
}
.clear-self-mark:hover:not(:disabled) {
  background:#fff3dd;border-color:var(--editorial-ink);
}
.clear-self-mark:disabled { background:var(--editorial-wash);color:#64716e; }
.finish-mark-message { color:var(--teal)!important; }
.finish-mark-message.mark-error,.detail-part-info.mark-error {
  color:var(--editorial-error)!important;
}
.finish-followup select {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
}
.finish-saving { color:var(--editorial-quiet)!important; }
.mark-by-parts {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
}
.mark-by-parts>summary {
  border-radius:var(--editorial-radius);
  color:var(--editorial-ink);
  font:700 12px var(--editorial-font-display);
}
.mark-by-parts>summary:hover { background:var(--editorial-lime); }
.mark-by-parts>summary small { color:var(--editorial-quiet);font:500 11px var(--editorial-font-body); }
.mark-by-parts[open]>summary {
  background:var(--editorial-ink);color:var(--editorial-paper);
  border-bottom:2px solid var(--editorial-ink);
}
.mark-by-parts[open]>summary small { color:#dce7d8; }
.detail-part-row {
  border:1px solid var(--editorial-rule);border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.detail-part-label a { color:var(--editorial-cobalt);text-decoration:underline;text-underline-offset:2px; }
.detail-part-label label span { color:var(--editorial-quiet); }
.detail-part-score input[aria-invalid=true] {
  border-color:var(--editorial-error);box-shadow:0 0 0 2px #f6d5cf;
}
.detail-part-bottom {
  border-top:2px solid var(--editorial-ink);
}
.detail-part-bottom span {
  font:700 11px var(--editorial-font-index);color:var(--editorial-ink);
}
.detail-part-info { color:var(--editorial-quiet)!important; }

/* 04 / Reattempt record & prior work */
.reattempt-panel {
  background:var(--editorial-paper);
  border:1.5px solid var(--editorial-ink);
  border-top:5px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
}
.reattempt-head h3 { font:700 20px var(--editorial-font-display); }
.reattempt-head p,.attempt-history-privacy { color:var(--editorial-quiet)!important; }
.reattempt-head .eyebrow { color:var(--editorial-cobalt); }
.reattempt-state {
  background:var(--editorial-soft-blue);
  border:1px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  color:var(--editorial-cobalt);font:700 10px var(--editorial-font-index);
}
.attempt-trend {
  border:1px solid var(--editorial-ink);
  border-left:5px solid var(--editorial-coral);
  border-radius:var(--editorial-radius);
  background:var(--editorial-lime);
}
.attempt-trend strong,.attempt-trend span { color:var(--editorial-ink); }
.attempt-history-item {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.attempt-history-item[open] { border-color:var(--editorial-cobalt); }
.attempt-history-item>summary { color:var(--editorial-ink); }
.attempt-history-item>summary:hover { background:var(--editorial-wash); }
.attempt-history-item>summary strong { color:var(--editorial-ink); }
.attempt-history-item>summary small { color:var(--editorial-quiet); }
.attempt-badge {
  border-radius:var(--editorial-radius);
  background:var(--editorial-ink);
  color:var(--editorial-paper);
  font:700 10px var(--editorial-font-index);
}
.attempt-history-item[open] .attempt-badge { background:var(--editorial-cobalt); }
.attempt-detail { border-top:2px solid var(--editorial-rule); }
.attempt-working-block {
  background:var(--editorial-wash);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
}
.attempt-working-block>strong {
  color:var(--editorial-ink);
  font:700 11px var(--editorial-font-index);
}
.attempt-working-block pre { font-family:var(--editorial-font-body); }
.attempt-working-block canvas { border:1.5px solid var(--editorial-ink);border-radius:2px; }
.attempt-no-working,.attempt-current-note { color:var(--editorial-quiet); }
.q-retrying { color:var(--editorial-cobalt); }

/* 05 / Specification explorer / skill evidence */
.spec-page .page-title { font:700 clamp(30px,4vw,57px)/1.04 var(--editorial-font-display); }
.spec-hero {
  border:2px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-ink);
  box-shadow:6px 6px 0 #17262e1b;
}
.spec-hero .page-title,.spec-hero h1,.spec-hero .intro { color:var(--editorial-paper); }
.spec-hero .eyebrow { color:var(--editorial-coral); }
.spec-hero-metrics strong { color:var(--editorial-lime);font-family:var(--editorial-font-display); }
.spec-hero-metrics span { color:#dae4dc;font-family:var(--editorial-font-index); }
.spec-hero-decoration { opacity:.5; }
.spec-hero-decoration span { color:var(--editorial-lime); }
.spec-scope-filter,.spec-explainer,.spec-tools {
  background:var(--editorial-paper);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
}
.spec-filter-label,.spec-filter-caption,.spec-search-wrap label {
  color:var(--editorial-ink);
  font:700 10px var(--editorial-font-index);
}
.spec-scope-options a {
  border:1.5px solid transparent;border-radius:var(--editorial-radius);
  color:var(--editorial-ink);
  font:700 11px var(--editorial-font-index);
}
.spec-scope-options a:hover { background:var(--editorial-wash); }
.spec-scope-options a.chosen {
  background:var(--editorial-lime);
  border-color:var(--editorial-ink);
  color:var(--editorial-ink);
}
.spec-scope-options a span,.spec-scope-options a.chosen span { color:var(--editorial-quiet); }
.spec-explainer-icon {
  background:var(--editorial-ink);
  border-radius:var(--editorial-radius);
  color:var(--editorial-coral);
}
.spec-explainer p { color:var(--editorial-quiet); }
.spec-search-wrap input {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
}
.spec-search-wrap input:focus {
  border-color:var(--editorial-cobalt);
  background:var(--editorial-paper);
  outline:3px solid #c7d0ff;
}
.spec-strand-buttons button {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
  font:700 10px var(--editorial-font-index);
  min-height:40px;
}
.spec-strand-buttons button:hover { background:var(--editorial-soft-blue); }
.spec-strand-buttons button[aria-pressed=true] {
  background:var(--editorial-ink);border-color:var(--editorial-ink);
  color:var(--editorial-paper);
}
.spec-result-line,.spec-group-count,.spec-skill-counter { color:var(--editorial-quiet); }
.spec-group[data-spec-strand="P"] { --spec-group-accent:var(--editorial-cobalt); }
.spec-group[data-spec-strand="S"] { --spec-group-accent:var(--editorial-coral); }
.spec-group[data-spec-strand="M"] { --spec-group-accent:var(--editorial-ink); }
.spec-group-title .eyebrow { color:var(--editorial-cobalt); }
.spec-topic-card {
  background:var(--editorial-paper);
  border:1.5px solid var(--editorial-rule);
  border-top:4px solid var(--spec-group-accent,var(--editorial-cobalt));
  border-radius:var(--editorial-radius);
  box-shadow:none;
  transform:none;
}
.spec-topic-card:hover {
  background:var(--editorial-wash);
  border-color:var(--editorial-ink);
  box-shadow:4px 4px 0 #17262e18;
}
.spec-topic-card.future-only {
  background:#f3f2ea;border-style:dashed;
  border-top:4px solid #aeb7aa;
}
.spec-topic-card.future-only:hover { background:#ebeae0; }
.spec-topic-card h3 { font:700 19px/1.25 var(--editorial-font-display); }
.spec-topic-card p,.spec-topic-foot { color:var(--editorial-quiet); }
.spec-topic-foot {
  border-top:1.5px solid var(--editorial-rule);
}
.spec-topic-foot strong { color:var(--editorial-cobalt); }
.spec-preview { border-left:3px solid var(--spec-group-accent,var(--editorial-cobalt)); }
.spec-preview span { color:var(--editorial-quiet); }
.spec-card-progress { border-top:1.5px solid var(--editorial-rule); }
.spec-card-progress-row span,.spec-card-progress-foot { color:var(--editorial-quiet); }
.spec-card-progress-row strong { color:var(--editorial-ink); }
.spec-themes { gap:12px; }
.spec-theme {
  border:1.5px solid var(--editorial-rule);
  border-top:4px solid var(--editorial-coral);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.spec-theme h3 { font:700 19px var(--editorial-font-display); }
.spec-theme-demand {
  background:var(--editorial-wash);
  border-left:3px solid var(--editorial-cobalt);
  border-radius:2px;color:var(--editorial-ink);
}
.spec-theme-demand strong { color:var(--editorial-ink); }
.spec-source { border-top:2px solid var(--editorial-ink); }
.spec-detail-id {
  background:var(--editorial-ink);
  border-radius:var(--editorial-radius);
  color:var(--editorial-coral);
}
.spec-detail-badges { gap:7px; }
.spec-skill {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.spec-skill[open] {
  border-color:var(--editorial-cobalt);
  box-shadow:inset 4px 0 0 var(--editorial-cobalt);
}
.spec-skill summary { background:var(--editorial-paper); }
.spec-skill summary:hover { background:var(--editorial-wash); }
.spec-skill[open] summary { border-bottom:2px solid var(--editorial-ink); }
.spec-skill-number { color:var(--editorial-cobalt);font-family:var(--editorial-font-index); }
.spec-skill-title { color:var(--editorial-ink); }
.spec-skill-chevron { color:var(--editorial-cobalt); }
.spec-skill-content { background:var(--editorial-paper); }
.spec-ask {
  background:var(--editorial-wash);border-left:4px solid var(--editorial-cobalt);
  border-radius:2px;
}
.spec-ask strong { color:var(--editorial-cobalt); }
.spec-pitfall {
  background:#fff5e6;border-left:4px solid var(--editorial-coral);
  border-radius:2px;
}
.spec-pitfall strong { color:#7b3f23; }
.spec-skill-performance,.spec-skill-practice {
  background:var(--editorial-wash);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
}
.spec-skill-performance-stats>div { border-right-color:var(--editorial-rule); }
.spec-skill-performance-stats strong,.spec-skill-performance-accuracy strong,
.spec-skill-practice>strong { color:var(--editorial-ink); }
.spec-skill-performance-stats span,.spec-skill-performance-accuracy span,
.spec-skill-practice>p { color:var(--editorial-quiet); }
.spec-skill-practice-links a {
  background:var(--editorial-paper);
  border:1px solid var(--editorial-rule);
  border-left:4px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  color:var(--editorial-ink);
}
.spec-skill-practice-links a:hover {
  background:var(--editorial-soft-blue);border-color:var(--editorial-cobalt);
}
.spec-practice-id {
  background:var(--editorial-ink);color:var(--editorial-paper);
  border-radius:var(--editorial-radius);
  font:700 10px var(--editorial-font-index);
}
.spec-evidence-note,.spec-later p { color:var(--editorial-quiet); }
.spec-later-disclosure,.spec-future-panel {
  background:#fff6e6;
  border:1.5px dashed #b19365;border-radius:var(--editorial-radius);
}
.spec-later-disclosure>summary { color:#70450f; }
.spec-practice-future,.spec-empty {
  background:var(--editorial-wash);
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
}

/* 06 / Personal progress / recommendations / transfer */
.progress-spec-section {
  border:2px solid var(--editorial-ink);border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
  box-shadow:5px 5px 0 #17262e14;
}
.progress-spec-header h2 {
  font:700 27px var(--editorial-font-display);
}
.progress-spec-header p,.progress-spec-explain { color:var(--editorial-quiet); }
.progress-spec-scope {
  border:1.5px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  gap:2px;
}
.progress-spec-scope a {
  color:var(--editorial-ink);
  border-radius:2px;
  font:700 11px var(--editorial-font-index);
}
.progress-spec-scope a:hover { background:var(--editorial-wash); }
.progress-spec-scope a.selected {
  background:var(--editorial-lime);color:var(--editorial-ink);
}
.spec-progress-pulse>div {
  border:1.5px solid var(--editorial-rule);
  border-top:4px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.spec-progress-pulse>div:nth-child(2) { border-top-color:var(--editorial-cobalt); }
.spec-progress-pulse>div:nth-child(3) { border-top-color:var(--editorial-coral); }
.spec-progress-pulse>div:nth-child(4) { border-top-color:var(--teal); }
.spec-progress-pulse strong { color:var(--editorial-ink);font-family:var(--editorial-font-display); }
.spec-progress-pulse span { color:var(--editorial-quiet); }
.progress-spec-explain {
  background:var(--editorial-paper);
  border:1.5px solid var(--editorial-rule);
  border-left:4px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
}
.progress-spec-explain strong { color:var(--editorial-ink); }
.progress-spec-strands {
  border-top:2px solid var(--editorial-ink);
}
.progress-spec-strands a {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
  font:700 11px var(--editorial-font-index);
  min-height:40px;
}
.progress-spec-strands a:hover { background:var(--editorial-soft-blue); }
.progress-spec-strands a.selected {
  background:var(--editorial-ink);border-color:var(--editorial-ink);
  color:var(--editorial-paper);
}
.progress-strand-head h3 { font:700 21px var(--editorial-font-display); }
.progress-strand-head span { color:var(--editorial-quiet);font-family:var(--editorial-font-index); }
.progress-topic-card {
  border:1.5px solid var(--editorial-rule);
  border-top:4px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  box-shadow:none;transform:none;
}
.progress-topic-card:hover {
  border-color:var(--editorial-ink);
  background:#fafaf3;
  box-shadow:4px 4px 0 #17262e20;transform:none;
}
.progress-topic-card h3 { font:700 18px var(--editorial-font-display); }
.progress-topic-no-accuracy,.progress-topic-card-footer,.progress-topic-count,
.progress-topic-evidence-caption { color:var(--editorial-quiet); }
.progress-topic-accuracy {
  font:700 19px var(--editorial-font-display);color:var(--editorial-cobalt);
}
.progress-topic-card-footer strong { color:var(--editorial-cobalt); }
.progress-topic-evidence-caption { border-top:1.5px solid var(--editorial-rule); }
.spec-topic-evidence {
  border:1.5px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
}
.spec-topic-evidence-head h2 { font:700 21px var(--editorial-font-display); }
.spec-evidence-caption {
  background:var(--editorial-lime);border:1px solid var(--editorial-ink);
  color:var(--editorial-ink);
}
.spec-topic-evidence-grid>div,.spec-topic-evidence-accuracy {
  border:1px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);background:var(--editorial-paper);
}
.spec-topic-evidence-grid strong,.spec-topic-evidence-accuracy strong {
  color:var(--editorial-ink);font-family:var(--editorial-font-display);
}
.spec-topic-evidence-grid span,.spec-topic-evidence-accuracy span,
.spec-topic-evidence-accuracy>p { color:var(--editorial-quiet); }

.revision-suggestions {
  border:2px solid var(--editorial-ink);
  border-top:5px solid var(--editorial-coral);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
  box-shadow:5px 5px 0 #17262e15;
}
.revision-suggestions-head h2 { font:700 26px var(--editorial-font-display); }
.revision-suggestions-head p,.revision-suggestions-note { color:var(--editorial-quiet); }
.revision-suggestion {
  border:1.5px solid var(--editorial-rule);
  border-top:4px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.revision-suggestion-index {
  background:var(--editorial-coral);
  border-radius:2px;color:var(--editorial-ink);
  font:700 14px var(--editorial-font-display);
}
.revision-suggestion-kind {
  background:var(--editorial-lime);border:1px solid var(--editorial-ink);
  border-radius:2px;color:var(--editorial-ink);
}
.revision-suggestion-id { color:var(--editorial-quiet);font-family:var(--editorial-font-index); }
.revision-suggestion-skill {
  background:var(--editorial-wash);
  border-left:3px solid var(--editorial-cobalt);
  color:var(--editorial-ink);
}
.revision-suggestion-spec { color:var(--editorial-cobalt); }
.revision-suggestions-empty {
  border:1.5px dashed var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.progress-transfer {
  border:2px solid var(--editorial-ink);
  border-top:5px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
}
.transfer-title h2 { font:700 25px var(--editorial-font-display); }
.transfer-title p,.transfer-privacy { color:var(--editorial-quiet); }
.transfer-local-count {
  border:1px solid var(--editorial-rule);
  border-left:4px solid var(--editorial-cobalt);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);color:var(--editorial-ink);
}
.transfer-import { border-top:2px solid var(--editorial-ink); }
.transfer-import>label,.transfer-import-preview legend {
  font:700 11px var(--editorial-font-index);
  color:var(--editorial-ink);
}
.transfer-import>input[type=file] {
  border:1.5px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
  min-height:44px;
}
.transfer-import>input[type=file]::file-selector-button {
  margin-right:12px;
  padding:9px 12px;
  border:1px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-lime);
  color:var(--editorial-ink);
  font:700 11px var(--editorial-font-index);
  cursor:pointer;
}
.transfer-import-preview {
  border:1.5px solid var(--editorial-ink);
  border-radius:var(--editorial-radius);
  background:var(--editorial-wash);
}
.transfer-import-preview label {
  border:1.5px solid var(--editorial-rule);
  border-radius:var(--editorial-radius);
  background:var(--editorial-paper);
  color:var(--editorial-ink);
}
.transfer-import-preview label:has(input:checked) {
  border-color:var(--editorial-ink);
  background:var(--editorial-lime);
  box-shadow:inset 4px 0 0 var(--editorial-ink);
}
.transfer-import-preview input[type=radio] { accent-color:var(--editorial-cobalt); }
.transfer-import-preview label small,.transfer-status { color:var(--editorial-quiet); }
.transfer-status.transfer-error { color:var(--editorial-error); }
.transfer-privacy { border-top:2px solid var(--editorial-rule); }

/* 07 / Small screens, keyboard access and printing */
@media (max-width:850px) {
  .spec-hero { padding:24px 18px; }
  .spec-tools { flex-wrap:wrap; }
  .progress-spec-scope a { overflow-wrap:anywhere; }
}
@media (max-width:730px) {
  .work-header-actions { align-items:center; }
  .work-mode-tabs { gap:2px; }
  .work-mode-tabs button { padding:10px 6px;white-space:normal;line-height:1.2; }
  .maths-quickbar button { min-height:44px;min-width:44px; }
  .ink-toolset button:not(.ink-colour) { min-height:42px; }
  .assessment-choice { min-height:65px; }
  .spec-strand-buttons button,.progress-spec-strands a { min-height:44px; }
  .spec-skill summary { min-height:52px; }
  .spec-skill-content { padding:14px; }
  .revision-suggestion,.progress-topic-card { box-shadow:none; }
}
@media (max-width:450px) {
  .finish-score-row { gap:8px; }
  .finish-score { width:70px; }
  .detail-part-score input { width:57px; }
  .spec-scope-options { width:100%; }
  .spec-scope-options a { min-width:0; }
  .spec-progress-pulse>div { min-width:0; }
  .spec-topic-evidence-grid>div { min-width:0; }
  .spec-skill-performance-stats>div { min-width:0; }
  .ink-toolbar { align-items:flex-start; }
  .ink-toolset { max-width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important; }
}
@media print {
  :root { --bg:#fff;--white:#fff;--editorial-paper:#fff;--editorial-wash:#fff; }
  body { background:#fff!important;color:#000!important; }
  .page .panel,.page .card,.page .metric,.page .paper,.spec-topic-card,
  .progress-topic-card,.spec-skill,.student-workspace {
    border:1px solid #555!important;background:#fff!important;box-shadow:none!important;
  }
  .spec-hero,.planner-masthead { color:#000!important;background:#fff!important; }
  .spec-hero h1,.spec-hero .intro,.planner-masthead h1 { color:#000!important; }
  .work-notes,.reflection,.working { background:#fff!important; }
  .helper.solution,.helper { background:#fff!important;box-shadow:none!important; }
}
