/* ============================================================
   MASTER POA — EXAM PAPER AUTHORING LAYER
   Consolidates the question/answer authoring classes that live
   in the design-system reference files (Paper 1 - Corrected
   Reference.html + Answer Templates.html) into one linkable
   stylesheet. Consumes exam-paper.css tokens; adds no new
   colours or fonts. Grid model (Corrected Reference):
     body padding-left = 66px
     x=0  -> 66px  (main question number)
     x=30 -> 96px  (stem body / REQUIRED / (a)(b)(c) labels)
     x=60 -> 126px ((a)(b) body / (i)(ii) labels / level-0 dots)
     x=90 -> 156px ((i)(ii) body / sub-sub dots)
   ============================================================ */

/* ── Question stem / sub-parts ─────────────────────────── */
.ep-q-stem   { display:flex; gap:0; font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; margin-bottom:15px; }
.ep-q-n      { flex:0 0 30px; font-weight:bold; }
.ep-q-body   { flex:1; }

.ep-q-sub      { display:flex; gap:0; margin-left:30px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; margin-bottom:4px; }
.ep-q-sub-n    { flex:0 0 30px; }
.ep-q-sub-body { flex:1; }

.ep-q-subsub      { display:flex; gap:0; margin-left:60px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; margin-bottom:4px; }
.ep-q-subsub-n    { flex:0 0 30px; }
.ep-q-subsub-body { flex:1; }

/* REQUIRED — at stem-body column (96px) */
.ep-required { font-family:Arial,sans-serif; font-size:14.7px; font-weight:bold; color:#000; line-height:1.18; margin:0 0 15px 30px; }

/* Numbered "Additional information" list — number at stem-body (96px) */
.ep-info-list { margin:0 0 15px 30px; }
.ep-info-item { display:flex; gap:0; font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; margin-bottom:2px; }
.ep-info-n    { flex:0 0 30px; }
.ep-info-text { flex:1; }

/* Context paragraph indented to owning column */
.ep-context-stem { font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; margin:0 0 15px 30px; }
.ep-context-sub  { font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; margin:0 0 15px 60px; }

/* Statement / account title — centred, REGULAR weight, body size */
.ep-stmt-title { font-family:Arial,sans-serif; font-size:14.7px; font-weight:normal; color:#000; text-align:center; line-height:1.3; margin:0 0 14px; }

/* Indented answer-line containers subtract padding from 100% width */
.ep-dotlines, .ep-dotline-marks { box-sizing:border-box; }

/* ── Dotted answer lines (Paper 1 house style: students write
   directly on the question paper) ──────────────────────── */
.ep-dotline  { height:34.67px; background-image:radial-gradient(circle,#000 0.8px,transparent 0.8px); background-size:4.1px 4px; background-position:0 27px; background-repeat:repeat-x; }
.ep-dotlines { display:flex; flex-direction:column; gap:0; }
.ep-dotlines--subsub { margin-left:0; }
/* Top-level answer lines (directly under a question, no (a)/(b)/(c) sub-part)
   must align with the question BODY text (x=30, after the 30px number
   column) — never flush with the question number itself. */
.ep-dotlines--q { margin-left:30px; }

/* ── Marks ─────────────────────────────────────────────── */
.ep-dotline-marks { display:flex; align-items:center; gap:0; justify-content:flex-end; margin-bottom:15px; }
.ep-dotline-marks--subsub { margin-left:0; }
.ep-dotline-marks .ep-dotline { flex:1; }
.ep-mark { font-family:Arial,sans-serif; font-size:14.7px; color:#000; white-space:nowrap; padding-left:6px; flex:0 0 auto; line-height:34.67px; }
.ep-marks-right { text-align:right; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin-bottom:15px; }
.ep-total-marks { text-align:right; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin-top:2px; }

/* ── Numbered answer list ("State two …") ──────────────── */
.ep-numbered-lines { display:flex; flex-direction:column; gap:0; margin:0 0 4px 30px; }
.ep-numbered-line  { display:flex; align-items:center; gap:4px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; height:34.67px; }
.ep-nl-num { flex:0 0 30px; line-height:34.67px; }
.ep-nl-dot { flex:1; height:34.67px; background-image:radial-gradient(circle,#000 0.8px,transparent 0.8px); background-size:4.1px 4px; background-position:0 27px; background-repeat:repeat-x; }

/* ── Labelled calculation / effect lines ───────────────── */
.ep-labelled-lines { display:flex; flex-direction:column; gap:0; margin:0 0 4px 30px; }
.ep-labelled-line  { display:flex; align-items:center; gap:4px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; }
.ep-ll-lbl  { flex:0 0 auto; padding-right:8px; line-height:34.67px; white-space:nowrap; }
.ep-ll-dot  { flex:1; height:34.67px; background-image:radial-gradient(circle,#000 0.8px,transparent 0.8px); background-size:4.1px 4px; background-position:0 27px; background-repeat:repeat-x; display:flex; align-items:center; justify-content:flex-end; }
.ep-ll-mark { flex:0 0 auto; padding-left:6px; line-height:34.67px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; white-space:nowrap; }
.ep-labelled-gap { height:12px; }

/* ── Data table (question stem — read only) ────────────── */
.ep-data-tbl { width:100%; border-collapse:collapse; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin-bottom:12px; }
.ep-data-tbl th,.ep-data-tbl td { font-family:Arial,sans-serif; font-size:14.7px; padding:2px 8px; color:#000; vertical-align:top; line-height:1.3; }
.ep-data-tbl thead th { text-align:right; font-weight:bold; }
.ep-data-tbl thead th:first-child { text-align:left; }
.ep-data-tbl .ep-r { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ep-data-tbl .ep-c { text-align:center; }
.ep-data-tbl .ep-u { text-decoration:underline; }
.ep-data-tbl .ep-i { padding-left:22px !important; }
.ep-data-tbl .ep-bold td,.ep-data-tbl .ep-bold th { font-weight:bold; }
.ep-data-tbl .ep-sub td { font-style:italic; }

/* ── Borderless journal (writing lines, no grid) ───────── */
.ep-jrn      { margin:0 0 4px 30px; }
.ep-jrn-cap  { text-align:center; font-weight:bold; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin-bottom:14px; }
.ep-jrn-hdr  { display:flex; font-family:Arial,sans-serif; font-size:14.7px; font-weight:bold; color:#000; margin-bottom:6px; line-height:1.2; }
.ep-jrn-hdr .ep-jc1 { flex:0 0 13%; }
.ep-jrn-hdr .ep-jc2 { flex:1; }
.ep-jrn-hdr .ep-jc3 { flex:0 0 15%; text-align:right; padding-right:24px; }
.ep-jrn-hdr .ep-jc4 { flex:0 0 15%; text-align:right; }
.ep-jrn-row  { display:flex; align-items:flex-end; height:34.67px; }
.ep-jrn-row .ep-jc1, .ep-jrn-row .ep-jc2, .ep-jrn-row .ep-jc3, .ep-jrn-row .ep-jc4 { height:34.67px; background-image:radial-gradient(circle,#000 0.8px,transparent 0.8px); background-size:4.1px 4px; background-position:0 27px; background-repeat:repeat-x; }
.ep-jrn-row .ep-jc1 { flex:0 0 13%; margin-right:14px; }
.ep-jrn-row .ep-jc2 { flex:1; margin-right:14px; }
.ep-jrn-row .ep-jc3 { flex:0 0 15%; margin-right:14px; }
.ep-jrn-row .ep-jc4 { flex:0 0 15%; }

/* ── Borderless running-balance ledger (given data) ────── */
.ep-runbal { width:calc(100% - 30px); margin-left:30px; border-collapse:collapse; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin-bottom:14px; }
.ep-runbal th, .ep-runbal td { padding:2px 10px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.32; vertical-align:top; }
.ep-runbal thead th { font-weight:bold; }
.ep-runbal .th-l { text-align:left; }
.ep-runbal .th-r { text-align:right; }
.ep-runbal .ep-r { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ep-runbal tbody td:first-child { text-align:right; white-space:nowrap; }
.ep-runbal tbody tr.ep-year td:first-child { text-align:left; }
.ep-runbal tbody tr.ep-year td { padding-top:4px; }

/* ── Given transaction list (dated) ────────────────────── */
.ep-tx-list  { margin:0 0 14px 30px; font-family:Arial,sans-serif; font-size:14.7px; color:#000; line-height:1.3; }
.ep-tx-year  { font-weight:normal; margin-bottom:1px; }
.ep-tx-row   { display:flex; gap:0; margin-bottom:1px; }
.ep-tx-month { flex:0 0 34px; }
.ep-tx-day   { flex:0 0 20px; text-align:right; padding-right:10px; }
.ep-tx-text  { flex:1; }

/* ── Read-only classify / comparison table with borders ── */
.ep-tick-tbl { border-collapse:collapse; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin:0 0 12px 30px; }
.ep-tick-tbl th,.ep-tick-tbl td { border:1px solid #000; padding:4px 10px; font-family:Arial,sans-serif; font-size:14.7px; vertical-align:top; line-height:1.4; }
.ep-tick-tbl th { font-weight:bold; text-align:center; }
.ep-tick-tbl th:first-child { text-align:left; }
.ep-tick-tbl ul { margin:0; padding-left:16px; }
.ep-tick-tbl li { margin:1px 0; }

/* ── Blank answer templates (student writes inside) ─────── */
.ep-acctbox { border-collapse:collapse; font-family:Arial,sans-serif; font-size:14.7px; color:#000; margin-bottom:14px; }
.ep-acctbox th, .ep-acctbox td { border:1px solid #000; padding:2px 8px; font-family:Arial,sans-serif; font-size:14.7px; height:27px; color:#000; vertical-align:middle; }
.ep-acctbox th { font-weight:bold; text-align:center; }
.ep-acctbox th:first-child, .ep-acctbox th:nth-child(2) { text-align:left; }
.ep-acctbox caption { font-family:Arial,sans-serif; font-size:14.7px; text-align:center; padding-bottom:6px; caption-side:top; color:#000; }

/* ── Writing-paper ruled lines (Paper 2 house style: students
   write on separate ruled writing paper, not boxed templates) ── */
.ep-wp-lines { width:100%; box-sizing:border-box; margin-bottom:4px;
  background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 33.67px, #c3c8cd 33.67px, #c3c8cd 34.67px); }
.ep-wp-lines--sub    { width:calc(100% - 30px); margin-left:30px; }
.ep-wp-lines--subsub { width:calc(100% - 60px); margin-left:60px; }

/* ── Section divider band (topical revision papers) ─────── */
.ep-section-band { font-family:'League Spartan',Arial,sans-serif; font-weight:800; font-size:15px; letter-spacing:0.08em; text-transform:uppercase; color:#fff; background:#991101; padding:7px 14px 5px; margin:0 0 18px; display:flex; justify-content:space-between; align-items:baseline; gap:12px; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.ep-section-band span:last-child { font-size:12px; letter-spacing:0.10em; }
.ep-source { font-family:Arial,sans-serif; font-size:12px; font-style:italic; color:#6E6E6E; margin-top:16px; }

/* ── Cover: level badge (matches book-cover NA box) ─────── */
.ep-level-badge { flex:0 0 58px; width:58px; height:60px; border:3.5px solid #000; border-radius:5px; background:#fff; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.ep-badge-text { font-family:'Poppins',sans-serif; font-weight:800; line-height:1; letter-spacing:-0.04em; color:#000; }
.ep-badge-text--lg { font-size:36px; }
.ep-badge-text--md { font-size:27px; }

.ep-gap-note { margin:0 0 15px 30px; font-family:Arial,sans-serif; font-size:12.5px; font-style:italic; color:#991101; border:1px dashed #991101; padding:8px 10px; }

@media print {
  .ep-dotline, .ep-nl-dot, .ep-ll-dot { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  /* Do NOT re-declare .ep-canvas / .ep-sheet print geometry here. This file
     loads after exam-paper.css, so a partial redeclaration (background only,
     no display/gap/height) silently reinstates the desk chrome. The full
     print reset lives in exam-paper.css @media print. */
}

/* ============================================================
   ANSWER SCHEME LAYER (2-column compact marking guide)
   Consolidated from the design-system reference
   "Answer Scheme 2-Col.html". Sits inside the same ep-sheet/
   ep-pg shell as the question paper; consumes exam-paper.css
   tokens, adds no new colours or fonts.
   ============================================================ */
.as-pg { flex:1; display:flex; flex-direction:column; padding:10px 57px 8px 76px; }
.as-conf { display:flex; justify-content:space-between; font-family:Arial,sans-serif; font-size:8px; font-weight:bold; letter-spacing:0.06em; text-transform:uppercase; color:#888; border-bottom:0.5px solid #ddd; padding-bottom:4px; margin-bottom:8px; }
.as-fw { width:100%; }
.as-2c { display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:start; width:100%; }
.as-cl { padding-right:11px; border-right:0.5px solid #bbb; }
.as-cr { padding-left:11px; }

.as-qbar { font-family:'League Spartan',Arial,sans-serif; font-size:9.5px; font-weight:bold; letter-spacing:0.14em; text-transform:uppercase; color:#fff; background:#1a1a1a; padding:3px 8px 2px; margin:10px 0 6px; break-inside:avoid; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.as-qbar:first-child { margin-top:0; }
.as-sh { font-family:Arial,sans-serif; font-size:8px; font-weight:bold; letter-spacing:0.10em; text-transform:uppercase; color:#222; background:#eeeeee; padding:2px 5px 1px; margin:7px 0 4px; }
.as-sh:first-child { margin-top:0; }
.as-pt { font-family:Arial,sans-serif; font-size:9.5px; font-weight:bold; color:#333; border-bottom:0.5px solid #ddd; padding:4px 0 2px; margin-bottom:4px; }
.as-pt:first-child { padding-top:0; }

.as-ttl { font-family:Arial,sans-serif; font-size:10.5px; font-weight:bold; text-align:center; line-height:1.4; margin-bottom:3px; }
.as-ttl--sm { font-size:10px; text-align:left; margin-bottom:2px; }

.as-t { width:100%; border-collapse:collapse; font-family:Arial,sans-serif; font-size:10.5px; color:#000; margin-bottom:1px; }
.as-t td, .as-t th { font-family:Arial,sans-serif; font-size:10.5px; padding:0 4px; line-height:1.55; vertical-align:bottom; }
.as-r { text-align:right !important; font-variant-numeric:tabular-nums; white-space:nowrap; }
.as-c { text-align:center !important; }
.as-i { padding-left:12px !important; }
.as-i2 { padding-left:22px !important; }
.as-bd { font-weight:bold; }
.as-u { text-decoration:underline; }
.as-t .rth td { border-bottom:0.75px solid #000; font-weight:bold; }
.as-t .rsu td { border-top:0.75px solid #000; }
.as-t .rto td { border-top:0.75px solid #000; font-weight:bold; }
.as-t .rdb td { border-top:3px double #000; font-weight:bold; }
.as-t .rsp td { height:4px; line-height:0; font-size:0; }
.as-t td.ru { border-bottom:1px solid #000; }
.as-t td.ru2 { border-top:1px solid #000; border-bottom:3px double #000; }
.ck::after { content:" \2713"; font-size:9px; color:#888; font-style:normal; font-weight:normal; }

.as-m { font-family:Arial,sans-serif; font-size:10.5px; font-weight:bold; text-align:right; margin:2px 0 10px; }
.as-mc { font-family:Arial,sans-serif; font-size:10.5px; font-weight:bold; text-align:right; margin:2px 0 5px; }

.as-l { display:flex; justify-content:space-between; align-items:flex-start; gap:5px; margin-bottom:2px; }
.as-lt { flex:1; font-family:Arial,sans-serif; font-size:11px; line-height:1.50; color:#000; }
.as-lm { flex:0 0 auto; font-family:Arial,sans-serif; font-size:10px; color:#444; white-space:nowrap; }
.as-nr { display:flex; gap:4px; font-family:Arial,sans-serif; font-size:11px; line-height:1.50; margin-bottom:2px; }
.as-nn { flex:0 0 14px; }
.as-nt { flex:1; color:#000; }
.as-cw { font-family:Arial,sans-serif; font-size:11px; line-height:1.50; color:#000; margin-bottom:1px; }
.as-no { font-family:Arial,sans-serif; font-size:9.5px; font-style:italic; color:#666; margin:2px 0 3px; line-height:1.4; }

.as-j { width:100%; border-collapse:collapse; font-family:Arial,sans-serif; font-size:10px; color:#000; margin-bottom:1px; }
.as-j caption { font-family:Arial,sans-serif; font-size:10px; font-weight:bold; text-align:center; padding-bottom:2px; caption-side:top; }
.as-j th { border-top:0.75px solid #000; border-bottom:0.75px solid #000; padding:2px 4px; font-weight:bold; font-family:Arial,sans-serif; font-size:10px; text-align:left; }
.as-j th:nth-last-child(-n+2) { text-align:right; }
.as-j td { padding:0 4px; font-family:Arial,sans-serif; font-size:10px; line-height:1.62; vertical-align:top; color:#000; }
.as-j td.jdr { padding-left:6px; }
.as-j td.jcr { padding-left:16px; font-style:italic; }
.as-j td.jnr { padding-left:10px; font-style:italic; color:#555; font-size:9.5px; }
.as-j tr.jsep td { border-top:0.5px solid #ddd; }
.as-j tr.jtot td { border-top:0.75px solid #000; border-bottom:0.75px solid #000; font-weight:bold; }
.as-j td.jyr { font-weight:bold; }

.as-lg { width:100%; border-collapse:collapse; font-family:Arial,sans-serif; font-size:10px; color:#000; margin-bottom:1px; }
.as-lg caption { font-family:Arial,sans-serif; font-size:10px; font-weight:bold; text-align:center; padding-bottom:2px; caption-side:top; }
.as-lg th, .as-lg td { border:0.75px solid #000; padding:0 4px; font-family:Arial,sans-serif; font-size:10px; line-height:1.62; height:18px; vertical-align:middle; color:#000; }
.as-lg th { font-weight:normal; text-align:center; }
.as-lg td.yr { font-weight:bold; font-size:9.5px; }

.as-tk { border-collapse:collapse; font-family:Arial,sans-serif; font-size:10.5px; width:100%; margin-bottom:1px; }
.as-tk th, .as-tk td { border:0.75px solid #000; padding:1px 6px; height:20px; vertical-align:middle; font-family:Arial,sans-serif; font-size:10.5px; color:#000; }
.as-tk th { font-weight:normal; text-align:center; }
.as-tk td { text-align:left; }
.as-tk td:not(:first-child) { text-align:center; }

.as-mast { display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:1.5px solid #000; padding-bottom:5px; margin-bottom:3px; }
.as-mast__brand { display:flex; align-items:center; gap:7px; }
.as-mast__mark { height:21px; width:auto; display:block; }
.as-mast__id { display:flex; flex-direction:column; }
.as-mast__name { font-family:'League Spartan',Arial,sans-serif; font-weight:800; font-size:13px; letter-spacing:0.01em; line-height:1; text-transform:uppercase; color:#000; }
.as-mast__series { font-family:'League Spartan',Arial,sans-serif; font-weight:700; font-size:6.5px; letter-spacing:0.15em; text-transform:uppercase; color:#666; margin-top:2px; }
.as-mast__pill { font-family:'League Spartan',Arial,sans-serif; font-weight:800; font-size:8.5px; letter-spacing:0.07em; text-transform:uppercase; color:#fff; background:#000; border-radius:999px; padding:3px 11px 2px; white-space:nowrap; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.as-submast { display:flex; align-items:center; justify-content:space-between; font-family:Arial,sans-serif; font-size:8px; font-weight:bold; letter-spacing:0.05em; text-transform:uppercase; color:#999; margin-bottom:8px; }
.as-foot__brand { display:inline-flex; align-items:center; gap:5px; }
.as-foot__mark { height:11px; width:auto; display:block; }
.as-foot__name { font-family:'League Spartan',Arial,sans-serif; font-weight:800; font-size:9px; letter-spacing:0.03em; text-transform:uppercase; color:#000; }

@media print {
  .as-fw { break-inside:avoid; }
  .as-qbar, .as-sh { break-inside:avoid; break-after:avoid; }
}

/* ---- Continuation label (CLAUDE.md "Pagination and answer space") ---- */
.ep-cont { font-family:Arial,sans-serif; font-size:10px; font-style:italic; color:#8C8C8C; margin:0 0 6px; }
