/* BandPass Academy — exam-paper skin for quizzing.top
   Tokens are split in two families on purpose:
     --band-*  = the printed sheet (paper, ink, rules, marks)
     --qso-*   = the operating furniture (chips, keys, state colours)
   Nothing here is shared with any other site in the fleet: the sheet is ruled,
   corners are square, and the only "card" is an answer box. */

:root {
  --band-ink: #14304f;
  --band-ink-soft: #3d5b7c;
  --band-ink-faint: #7b90a6;
  --band-paper: #fbfaf7;
  --band-paper-deep: #f2efe7;
  --band-rule: #dfe4ea;
  --band-rule-strong: #c3ccd6;
  --band-signal: #f97316;
  --band-signal-deep: #c2410c;
  --band-spectrum: #22d3ee;
  --band-spectrum-deep: #0e7490;

  --qso-key: #14304f;
  --qso-ok: #157f5a;
  --qso-ok-wash: #e6f4ee;
  --qso-bad: #b91c1c;
  --qso-bad-wash: #fdeceb;
  --qso-idle: #9aa5b1;

  --qso-serif: "Source Serif 4", "Songti SC", Georgia, "Times New Roman", serif;
  --qso-mono: "Roboto Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;

  --qso-line: 28px;
  --qso-wide: 1480px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body.exam-body {
  margin: 0;
  font-family: var(--qso-serif);
  font-size: 17px;
  line-height: 1.62;
  color: var(--band-ink);
  background-color: var(--band-paper);
  background-image:
    linear-gradient(to right, rgba(20, 48, 79, 0.045) 0 1px, transparent 1px 100%),
    repeating-linear-gradient(to bottom, transparent 0 calc(var(--qso-line) - 1px), rgba(20, 48, 79, 0.055) calc(var(--qso-line) - 1px) var(--qso-line));
  background-size: 120px 100%, 100% var(--qso-line);
}

a { color: var(--band-ink); text-decoration-color: var(--band-signal); text-underline-offset: 3px; }
a:hover { color: var(--band-signal-deep); }

.qso-mono { font-family: var(--qso-mono); font-variant-ligatures: none; letter-spacing: 0.01em; }

.qso-skip {
  position: absolute; left: -9999px; top: 0; z-index: 40;
  background: var(--band-ink); color: #fff; padding: 10px 16px; font-family: var(--qso-mono);
}
.qso-skip:focus { left: 8px; top: 8px; }

/* ---------------------------------------------------------------- meter */
.exam-meter {
  position: sticky; top: 0; z-index: 30; height: 4px; width: 100%;
  background: var(--band-rule);
}
.exam-meter__fill {
  display: block; height: 100%; width: 0;
  background: linear-gradient(90deg, var(--band-spectrum) 0%, var(--band-signal) 100%);
  transition: width 0.35s ease;
}

/* ------------------------------------------------------------- masthead */
.exam-masthead {
  max-width: var(--qso-wide); margin: 0 auto; padding: 14px 22px 10px;
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  border-bottom: 2px solid var(--band-ink);
}
.exam-masthead__mark { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.exam-masthead__mark img { display: block; }
.exam-masthead__word { display: flex; flex-direction: column; line-height: 1.15; }
.exam-masthead__word b { font-size: 21px; letter-spacing: 0.01em; }
.exam-masthead__word em {
  font-style: normal; font-family: var(--qso-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.14em; color: var(--band-ink-faint);
}
.exam-masthead__readout { display: flex; gap: 10px; margin: 0; flex-wrap: wrap; }

.qso-chip {
  display: inline-block; padding: 4px 10px; border: 1px solid var(--band-rule-strong);
  font-family: var(--qso-mono); font-size: 11.5px; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--band-ink-soft); background: #fff;
}
.qso-chip--mono { border-style: dashed; }
.qso-chip b { color: var(--band-signal-deep); }

/* --------------------------------------------------------------- shell */
.exam-shell {
  max-width: var(--qso-wide); margin: 0 auto; padding: 22px;
  display: grid; grid-template-columns: 262px minmax(0, 1fr) 322px; gap: 26px;
  align-items: start;
}

.qso-rail { position: sticky; top: 18px; font-size: 14.5px; }
.qso-rail__title,
.exam-grid__title {
  font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.16em; color: var(--band-ink-faint); margin: 0 0 8px;
  border-bottom: 1px solid var(--band-rule-strong); padding-bottom: 5px;
}

.qso-tree { border: 1px solid var(--band-rule); background: #fff; margin-bottom: 8px; }
.qso-tree__sum {
  display: flex; align-items: baseline; gap: 8px; cursor: pointer;
  padding: 8px 10px; background: var(--band-paper-deep);
  font-family: var(--qso-mono); font-size: 12px; list-style: none;
}
.qso-tree__sum::-webkit-details-marker { display: none; }
.qso-tree__code {
  background: var(--band-ink); color: #fff; padding: 1px 6px; font-size: 11px;
}
.qso-tree__name { flex: 1; font-family: var(--qso-serif); font-size: 14px; }
.qso-tree__count { color: var(--band-ink-faint); }
.qso-tree__topics { list-style: none; margin: 0; padding: 6px 10px 10px; }
.qso-tree__topic { padding: 6px 0 2px; border-top: 1px dotted var(--band-rule); }
.qso-tree__topic:first-child { border-top: 0; }
.qso-tree__topicname { display: block; font-size: 13.5px; }
.qso-tree__topcount { font-size: 11px; color: var(--band-ink-faint); }
.qso-tree__units { list-style: none; margin: 4px 0 0; padding: 0 0 0 10px; }
.qso-tree__units a { display: block; padding: 3px 0; font-size: 13px; text-decoration: none; border-left: 2px solid transparent; padding-left: 7px; }
.qso-tree__units a:hover { border-left-color: var(--band-signal); }
.qso-tree__units a.is-current { border-left-color: var(--band-spectrum); background: #eef9fc; }
.qso-tree__unittitle { display: block; font-size: 12.5px; color: var(--band-ink-soft); }
.qso-tree__pending { margin: 3px 0 0; font-size: 12px; color: var(--qso-idle); font-family: var(--qso-mono); }

/* ---------------------------------------------------- question grid */
.exam-grid { margin-top: 14px; border: 1px dashed var(--band-rule-strong); padding: 10px; background: #fff; }
.exam-grid__cells { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 0; padding: 0; }
.exam-grid__cell {
  width: 100%; aspect-ratio: 1 / 1; border: 1px solid var(--band-rule-strong);
  background: var(--band-paper); color: var(--band-ink-faint); cursor: pointer;
  font-family: var(--qso-mono); font-size: 13px;
}
.exam-grid__cell:hover { border-color: var(--band-ink); color: var(--band-ink); }
.exam-grid__cell[data-state="done"] { background: var(--qso-ok-wash); border-color: var(--qso-ok); color: var(--qso-ok); }
.exam-grid__cell[data-state="miss"] { background: var(--qso-bad-wash); border-color: var(--qso-bad); color: var(--qso-bad); }
.exam-grid__cell.is-active { outline: 2px solid var(--band-signal); outline-offset: 1px; }
.exam-grid__legend { margin: 8px 0 0; font-size: 11.5px; color: var(--band-ink-faint); font-family: var(--qso-mono); }
.exam-grid__dot { display: inline-block; width: 9px; height: 9px; margin: 0 3px 0 8px; border: 1px solid var(--band-rule-strong); }
.exam-grid__dot--done { background: var(--qso-ok-wash); border-color: var(--qso-ok); }
.exam-grid__dot--todo { background: var(--band-paper); }

/* ------------------------------------------------------------- crumbs */
.qso-crumbs { font-family: var(--qso-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--band-ink-faint); display: flex; gap: 8px; }
.qso-crumbs span::before { content: "/"; margin-right: 8px; color: var(--band-rule-strong); }

/* --------------------------------------------------------- unit head */
.exam-deck { min-width: 0; }
.exam-unithead { border-bottom: 3px double var(--band-ink); padding: 10px 0 16px; margin-bottom: 18px; }
.exam-unithead__meta { margin: 0 0 6px; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--band-signal-deep); }
/* The editorial byline sits in the meta row next to the publish date. The desk
   name is set a shade heavier and darker than the date so the line reads as a
   credit, not as part of the filename. */
.exam-unithead__byline { font-weight: 500; color: var(--band-ink); text-decoration: none; border-bottom: 1px solid var(--band-rule-strong); }
.exam-unithead__byline:hover { color: var(--band-signal-deep); border-bottom-color: var(--band-signal); }
.exam-unithead h1 { margin: 0 0 10px; font-size: clamp(26px, 3.4vw, 36px); line-height: 1.2; }
.exam-unithead__intro { margin: 0 0 12px; font-size: 17.5px; color: var(--band-ink-soft); }
.exam-unithead__specs { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 14px; padding: 0; font-size: 13px; }
.exam-unithead__specs b { font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--band-ink-faint); margin-right: 6px; }

.exam-figure { margin: 0; border: 1px solid var(--band-rule-strong); background: #fff; padding: 8px; }
.exam-figure img { display: block; width: 100%; height: auto; }
.exam-figure figcaption { font-family: var(--qso-mono); font-size: 11.5px; color: var(--band-ink-faint); margin-top: 6px; }

/* --------------------------------------------------------- briefing */
.exam-brief { margin-bottom: 22px; }
.exam-brief h2 {
  font-family: var(--qso-mono); font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.16em; color: var(--band-ink-faint); margin: 0 0 10px;
  border-bottom: 1px solid var(--band-rule-strong); padding-bottom: 5px;
}
.exam-brief__block { margin-bottom: 14px; }
.exam-brief__block h3 { margin: 0 0 6px; font-size: 19px; }
.exam-brief__block p { margin: 0 0 10px; }
.exam-terms { width: 100%; border-collapse: collapse; margin: 12px 0 0; font-size: 14px; background: #fff; }
.exam-terms caption { text-align: left; font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--band-ink-faint); padding-bottom: 6px; }
.exam-terms th, .exam-terms td { border: 1px solid var(--band-rule); padding: 7px 9px; text-align: left; vertical-align: top; }
.exam-terms th { background: var(--band-paper-deep); font-family: var(--qso-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.1em; }

/* ------------------------------------------------------------ items */
.exam-set__title {
  font-family: var(--qso-mono); font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.16em; color: var(--band-ink-faint); margin: 0 0 12px;
  border-bottom: 1px solid var(--band-rule-strong); padding-bottom: 5px;
}
.exam-set__title span { color: var(--band-signal-deep); }
.exam-item {
  border: 1px solid var(--band-rule-strong); background: #fff;
  padding: 16px 18px 12px; margin-bottom: 16px; scroll-margin-top: 24px;
}
.exam-item.is-active { border-left: 4px solid var(--band-spectrum); }
.exam-item.is-answered { border-left-color: var(--qso-ok); }
.exam-item.is-missed { border-left-color: var(--qso-bad); }
.exam-item__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.exam-item__id { font-size: 12px; letter-spacing: 0.1em; color: var(--band-signal-deep); }
.exam-item__badge { font-family: var(--qso-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--band-ink-faint); border: 1px solid var(--band-rule); padding: 1px 7px; }
.exam-item__stem { margin: 0 0 12px; font-size: 18px; line-height: 1.5; }

.exam-choices { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.exam-choice {
  display: flex; align-items: center; gap: 11px; width: 100%; text-align: left;
  border: 1px solid var(--band-rule-strong); background: var(--band-paper);
  padding: 9px 12px; cursor: pointer; font-family: inherit; font-size: 16px; color: inherit;
}
.exam-choice:hover { border-color: var(--band-ink); background: #fff; }
.exam-choice__key {
  flex: none; width: 26px; height: 26px; display: grid; place-items: center;
  border: 1px solid var(--band-rule-strong); background: #fff; font-size: 13px;
}
.exam-choice.is-right { border-color: var(--qso-ok); background: var(--qso-ok-wash); }
.exam-choice.is-right .exam-choice__key { border-color: var(--qso-ok); color: var(--qso-ok); }
.exam-choice.is-wrong { border-color: var(--qso-bad); background: var(--qso-bad-wash); }
.exam-choice.is-wrong .exam-choice__key { border-color: var(--qso-bad); color: var(--qso-bad); }
.exam-choice[disabled] { cursor: default; }

.exam-verdict { margin: 10px 0 0; font-family: var(--qso-mono); font-size: 12.5px; min-height: 1.2em; }
.exam-verdict.is-right { color: var(--qso-ok); }
.exam-verdict.is-wrong { color: var(--qso-bad); }

/* ------------------------------------------------------------ pager */
.qso-pager { display: flex; align-items: stretch; gap: 12px; margin: 26px 0 10px; border-top: 3px double var(--band-ink); padding-top: 14px; }
.qso-pager__link { flex: 1; display: flex; flex-direction: column; gap: 3px; text-decoration: none; border: 1px solid var(--band-rule-strong); background: #fff; padding: 9px 12px; }
.qso-pager__link:hover { border-color: var(--band-signal); }
.qso-pager__link.is-empty { border-style: dashed; background: transparent; }
.qso-pager__dir { font-family: var(--qso-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--band-ink-faint); }
.qso-pager__label { font-size: 14.5px; }
.qso-pager__link--next { text-align: right; }
.qso-pager__pos { align-self: center; font-size: 12px; color: var(--band-ink-faint); }

/* --------------------------------------------------------- refsheet */
.exam-refsheet { position: sticky; top: 18px; max-height: calc(100vh - 40px); overflow: auto; border: 1px solid var(--band-rule-strong); background: #fff; padding: 12px 14px; }
.exam-refsheet__title { font-family: var(--qso-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.16em; margin: 0 0 4px; padding-bottom: 5px; border-bottom: 1px solid var(--band-rule-strong); }
.exam-refsheet__hint { margin: 0 0 10px; font-size: 12.5px; color: var(--band-ink-faint); }
.exam-refsheet__list { list-style: none; margin: 0; padding: 0; counter-reset: ref; }
.exam-refcard { border-top: 1px dotted var(--band-rule-strong); padding: 9px 0; opacity: 0.72; }
.exam-refcard:first-child { border-top: 0; }
.exam-refcard.is-active { opacity: 1; background: #f4fbfd; box-shadow: inset 3px 0 0 var(--band-spectrum); padding-left: 9px; }
.exam-refcard h3 { margin: 0 0 5px; font-size: 12px; font-family: var(--qso-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--band-ink-faint); }
.exam-refcard__answer { margin: 0 0 5px; font-size: 14px; }
.exam-refcard__answer b { font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--band-signal-deep); }
.exam-refcard__body { margin: 0; font-size: 14.5px; }
.exam-refsheet__reg { margin: 7px 0 0; font-size: 12.5px; color: var(--band-ink-soft); }
.exam-refsheet__regtag { display: inline-block; background: var(--band-ink); color: #fff; font-family: var(--qso-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; padding: 1px 6px; margin-right: 5px; }

.exam-note { border-top: 1px solid var(--band-rule-strong); margin-top: 14px; padding-top: 10px; font-size: 13px; color: var(--band-ink-soft); }
.exam-note h3 { margin: 0 0 6px; font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--band-ink-faint); }
.exam-note--wide { max-width: 900px; border: 1px dashed var(--band-rule-strong); padding: 16px; margin: 26px 0 0; }

/* --------------------------------------------------------- dashboard */
.exam-dash { max-width: var(--qso-wide); margin: 0 auto; padding: 24px 22px 10px; }
.exam-dash__intro { max-width: 900px; margin-bottom: 22px; }
.exam-dash__intro h1 { margin: 0 0 8px; font-size: clamp(28px, 4vw, 40px); line-height: 1.16; }
.exam-dash__intro p { margin: 0; font-size: 17.5px; color: var(--band-ink-soft); }

.exam-dash__rings { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 20px; margin-bottom: 26px; }
.exam-ringcard { border: 1px solid var(--band-rule-strong); background: #fff; padding: 16px 18px; }
.exam-ringcard h2 { margin: 12px 0 4px; font-size: 19px; }
.exam-ringcard__code { background: var(--band-ink); color: #fff; padding: 1px 7px; font-size: 13px; margin-right: 6px; }
.exam-ringcard__count { margin: 0 0 6px; font-size: 13px; color: var(--band-signal-deep); }
.exam-ringcard__blurb { margin: 0 0 12px; font-size: 14.5px; color: var(--band-ink-soft); }
.exam-ringcard__dial { display: flex; align-items: center; gap: 14px; }
.exam-ringcard__polar { width: 132px; height: 132px; }

.exam-ring { width: 148px; height: 148px; flex: none; }
.exam-ring__track { fill: none; stroke: var(--band-rule); stroke-width: 10; }
.exam-ring__arc { fill: none; stroke: var(--band-signal); stroke-width: 10; stroke-linecap: butt; transition: stroke-dashoffset 0.6s ease; }
.exam-ringcard--general .exam-ring__arc { stroke: var(--band-spectrum-deep); }
.exam-ringcard--extra .exam-ring__arc { stroke: var(--band-ink); }
.exam-ring__pct { font-family: var(--qso-mono); font-size: 21px; fill: var(--band-ink); text-anchor: middle; }
.exam-ring__sub { font-family: var(--qso-mono); font-size: 9.5px; fill: var(--band-ink-faint); text-anchor: middle; letter-spacing: 0.1em; }

.qso-cta {
  display: inline-block; border: 1px solid var(--band-ink); background: var(--band-ink); color: #fff;
  padding: 7px 14px; font-family: var(--qso-mono); font-size: 11.5px; text-transform: uppercase;
  letter-spacing: 0.12em; text-decoration: none; cursor: pointer;
}
.qso-cta:hover { background: var(--band-signal-deep); border-color: var(--band-signal-deep); color: #fff; }
.qso-cta--ghost { background: transparent; color: var(--band-ink); }
.qso-cta--ghost:hover { background: var(--band-signal); border-color: var(--band-signal); color: #fff; }
.qso-cta.is-idle { background: transparent; color: var(--qso-idle); border-color: var(--band-rule-strong); }

.exam-qotd { border: 1px solid var(--band-ink); background: #fff; padding: 18px 20px; margin-bottom: 26px; }
.exam-qotd h2 { margin: 0 0 4px; font-size: 13px; font-family: var(--qso-mono); text-transform: uppercase; letter-spacing: 0.16em; color: var(--band-signal-deep); }
.exam-qotd__meta { margin: 0 0 10px; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--band-ink-faint); }
.exam-qotd__stem { font-size: 20px; margin: 0 0 14px; }
.exam-choices--qotd { max-width: 760px; margin-bottom: 12px; }
.exam-qotd__answer { border-top: 1px dashed var(--band-rule-strong); margin-top: 10px; padding-top: 10px; }
.exam-qotd__more { margin: 8px 0 0; font-size: 14px; }

.exam-chapters { margin-bottom: 26px; }
.exam-chapters h2,
.exam-path h2 {
  font-family: var(--qso-mono); font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.16em; color: var(--band-ink-faint); margin: 0 0 10px;
  border-bottom: 1px solid var(--band-rule-strong); padding-bottom: 5px;
}
.exam-chapters__list { list-style: none; margin: 0; padding: 0; }
.exam-chapter { display: grid; grid-template-columns: 34px minmax(0, 1.4fr) minmax(120px, 1fr) 62px; gap: 12px; align-items: center; padding: 7px 0; border-bottom: 1px dotted var(--band-rule); }
.exam-chapter__code { background: var(--band-paper-deep); border: 1px solid var(--band-rule-strong); text-align: center; font-size: 11px; padding: 1px 0; }
.exam-chapter__name a { text-decoration: none; font-size: 15.5px; }
.exam-chapter__name a:hover { text-decoration: underline; }
.exam-chapter__name em { display: block; font-style: normal; font-size: 12.5px; color: var(--band-ink-faint); }
.exam-chapter__bar { display: block; height: 10px; background: var(--band-paper-deep); border: 1px solid var(--band-rule-strong); }
.exam-chapter__bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--band-spectrum) 0%, var(--band-signal) 100%); }
.exam-chapter__num { font-size: 12px; color: var(--band-ink-faint); text-align: right; }
.exam-chapter.is-pending .exam-chapter__name a { color: var(--band-ink-faint); }

.exam-path__hint { margin: 0 0 10px; font-size: 14px; color: var(--band-ink-soft); }
.exam-path__table { width: 100%; border-collapse: collapse; font-size: 14.5px; background: #fff; }
.exam-path__table th, .exam-path__table td { border-bottom: 1px solid var(--band-rule); padding: 7px 9px; text-align: left; }
.exam-path__table thead th { background: var(--band-paper-deep); font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--band-ink-faint); }

/* ------------------------------------------------------------- legal */
.exam-legal { max-width: 860px; margin: 0 auto; padding: 24px 22px 10px; }
.exam-legal__sheet { border: 1px solid var(--band-rule-strong); background: #fff; padding: 26px 30px 30px; margin-top: 12px; }
.exam-legal__sheet--slim { text-align: left; }
.exam-legal__head { border-bottom: 3px double var(--band-ink); padding-bottom: 12px; margin-bottom: 16px; }
.exam-legal__head h1 { margin: 0; font-size: clamp(26px, 3.6vw, 34px); }
.exam-legal__meta { margin: 0 0 4px; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--band-signal-deep); }
.exam-legal__body h2 { font-size: 21px; margin: 22px 0 8px; }
.exam-legal__body h3 { font-size: 17px; margin: 16px 0 6px; }
.exam-legal__body p { margin: 0 0 11px; }
.exam-legal__body ul { margin: 0 0 12px; padding-left: 20px; }
.exam-legal__body li { margin-bottom: 5px; }
.exam-legal__body table { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0 0 14px; }
.exam-legal__body th, .exam-legal__body td { border: 1px solid var(--band-rule); padding: 7px 9px; text-align: left; }
.exam-legal__body th { background: var(--band-paper-deep); font-family: var(--qso-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.08em; }

/* ---------------------------------------------------------- colophon */
.exam-colophon { max-width: var(--qso-wide); margin: 26px auto 0; padding: 20px 22px 34px; border-top: 3px double var(--band-ink); }
.exam-colophon__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.exam-colophon h2 { font-family: var(--qso-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--band-ink-faint); margin: 0 0 8px; }
.exam-colophon p { margin: 0 0 8px; font-size: 14px; color: var(--band-ink-soft); }
.qso-plainlist { list-style: none; margin: 0; padding: 0; font-size: 14.5px; }
.qso-plainlist li { padding: 2px 0; }
.exam-colophon__note { border-top: 1px solid var(--band-rule); margin-top: 16px; padding-top: 12px; font-size: 13px; color: var(--band-ink-soft); }
/* The standing editorial disclaimer closes the colophon on every page: set
   apart from the affiliation note above it so it reads as a deliberate line,
   not as a stray paragraph. */
.exam-colophon__disclaimer { border-left: 3px solid var(--band-rule-strong); padding-left: 11px; margin: 0 0 10px; font-size: 13px; font-style: italic; color: var(--band-ink-soft); }
.exam-colophon__fine { font-family: var(--qso-mono); font-size: 11.5px; color: var(--band-ink-faint); }

/* ------------------------------------------------------- responsive */
@media (max-width: 1180px) {
  .exam-shell { grid-template-columns: 236px minmax(0, 1fr); }
  .exam-refsheet { position: static; grid-column: 1 / -1; max-height: none; }
}
@media (max-width: 860px) {
  body.exam-body { background-size: 90px 100%, 100% var(--qso-line); }
  .exam-shell { grid-template-columns: minmax(0, 1fr); padding: 16px; }
  .qso-rail { position: static; }
  .exam-chapter { grid-template-columns: 30px minmax(0, 1fr) 48px; }
  .exam-chapter__bar { grid-column: 1 / -1; }
  .exam-masthead { flex-direction: column; align-items: flex-start; }
  .exam-path__table { font-size: 13px; }
  .exam-path__table th:nth-child(4), .exam-path__table td:nth-child(4) { display: none; }
}

@media print {
  .exam-meter, .exam-masthead__readout, .qso-rail, .exam-refsheet, .qso-pager, .exam-colophon { display: none; }
  body.exam-body { background: #fff; }
}
