/* Cash flow statement practice: a board exam answer booklet. White ruled paper on a cool grey desk, blue-black ink for
   the student's figures, the examiner's red for section letters and marks, plain grotesque headings, every figure in
   tabular numerals. Statement totals carry the accountant's single rule above and double rule below. */
:root {
  --bg: #eceef2; --paper: #ffffff; --ink: #161d2b; --muted: #475062; --line: #d5dae3; --line2: #848ea0;
  --red: #b0122e; --red-ink: #ffffff; --red-soft: #fbe6ea; --pen: #1c3b8f; --given: #f6f7fa;
  --ok: #19663a; --ok-soft: #e0f0e5; --bad: #b0122e; --bad-soft: #fbe3e7; --warn: #6d4f00; --warn-soft: #f6ecce;
  --head: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, system-ui, sans-serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --r: 2px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #11141a; --paper: #191e27; --ink: #e9ecf2; --muted: #b7bfcc; --line: #323a48; --line2: #77829a;
    --red: #ff8597; --red-ink: #2b0710; --red-soft: #3a1820; --pen: #a9bdff; --given: #1d232d;
    --ok: #8dd8a6; --ok-soft: #15301f; --bad: #ff98a8; --bad-soft: #3c1b22; --warn: #ecc66d; --warn-soft: #362c14;
  }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 17px/1.55 var(--sans); }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; }
a { color: var(--pen); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--paper); padding: 8px 12px; z-index: 9; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--pen); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--head); line-height: 1.15; font-weight: 750; letter-spacing: -0.01em; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* hero */
.hero { padding: 22px 0 2px; }
.hero h1 { font-size: clamp(1.75rem, 5vw, 2.6rem); margin: 0 0 6px; }
.lede { margin: 0; max-width: 62ch; color: var(--muted); }

/* setup */
.setup { margin: 14px 0 10px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 22px; }
.setup fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.setup legend { font-weight: 700; margin-bottom: 4px; padding: 0; }
.chips { display: flex; flex-wrap: wrap; border: 1px solid var(--ink); border-radius: var(--r); overflow: hidden; width: max-content; max-width: 100%; }
.chip { position: relative; }
.chip + .chip { border-left: 1px solid var(--ink); }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span { display: flex; align-items: center; min-height: 44px; padding: 6px 14px; background: var(--paper); white-space: nowrap; }
.chip input:checked + span { background: var(--ink); color: var(--paper); font-weight: 600; }
.chip input:focus-visible + span { outline: 3px solid var(--pen); outline-offset: -3px; }
.setrow { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.inline { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; }
select, input { font: inherit; font-size: 16px; color: var(--ink); background: var(--paper); border: 1px solid var(--line2); border-radius: var(--r); }
select { min-height: 44px; padding: 6px 10px; max-width: 100%; }
.btn { font: inherit; min-height: 44px; padding: 8px 16px; border-radius: var(--r); border: 1px solid var(--ink); background: var(--paper); color: var(--ink); cursor: pointer; font-weight: 600; }
.btn.primary { background: var(--ink); color: var(--paper); }
.btn.small { padding: 6px 14px; }
.btn:hover { filter: brightness(0.95); }
.link { font: inherit; background: none; border: 0; color: var(--pen); text-decoration: underline; cursor: pointer; padding: 10px 4px; min-height: 44px; }
.note { margin: 8px 0; padding: 10px 12px; background: var(--warn-soft); border-radius: var(--r); }
#store-note { overflow-wrap: anywhere; }
.note.info { background: var(--paper); border: 1px solid var(--line); }
@media (max-width: 600px) {
  .hero { padding-top: 12px; }
  .setup { margin-top: 8px; gap: 8px; }
  .setup fieldset { width: 100%; }
  .chips { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .chip:first-child { grid-column: 1 / -1; }
  .chip + .chip { border-left: 0; border-top: 1px solid var(--ink); }
  .chip:last-child { border-left: 1px solid var(--ink); }
  .chip span { justify-content: center; white-space: normal; text-align: center; line-height: 1.2; padding: 6px 8px; }
  .sheet { padding: 12px 10px 14px; }
}

/* the sheet: a page of the answer booklet */
.sheet { background: var(--paper); border: 1px solid var(--line); padding: 14px 22px 16px; margin: 10px 0 18px; }
.sheet:focus { outline: none; }
.sheet-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; border-bottom: 2px solid var(--ink); padding-bottom: 6px; }
.sheet-head h2 { margin: 0; font-size: 1.3rem; }
.code { font-family: var(--mono); letter-spacing: 0.08em; color: var(--red); }
.lvname { font-family: var(--sans); font-size: 1rem; font-weight: 400; color: var(--muted); }
.score { margin: 0; color: var(--muted); }
.rules { margin: 6px 0 2px; }
.rules summary, .work summary, .recent summary, .faq summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px; font-weight: 600; list-style: none; }
.rules summary::-webkit-details-marker, .work summary::-webkit-details-marker, .recent summary::-webkit-details-marker, .faq summary::-webkit-details-marker { display: none; }
.rules summary::before, .work summary::before, .recent summary::before, .faq summary::before { content: ""; flex: none; width: 0; height: 0; border-style: solid; border-width: 5px 0 5px 8px; border-color: transparent transparent transparent currentColor; }
.rules[open] > summary::before, .work[open] > summary::before, .recent[open] > summary::before, .faq[open] > summary::before { transform: rotate(90deg); }
.rules ul { margin: 4px 0 8px; padding-left: 20px; max-width: 84ch; }
.rules li { margin: 0 0 4px; }
.qs { list-style: none; margin: 0; padding: 0; }
.q { padding: 16px 0 6px; border-top: 2px solid var(--ink); margin-top: 14px; }
.q:first-child { margin-top: 6px; border-top: 0; }
.qhead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 16px; margin: 0 0 6px; }
.qhead .see { font-weight: 600; }
.q h3 { margin: 0; font-size: 1.3rem; display: flex; gap: 10px; align-items: baseline; }
.qn { font-family: var(--head); color: var(--red); font-weight: 800; }
.qn::after { content: "."; }
.scen { margin: 0 0 12px; max-width: 75ch; }

/* the given: balance sheet beside the notes and additional information */
.given { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px 28px; align-items: start; }
@media (min-width: 1000px) {
  .given { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-areas: "bs notes" "bs info"; grid-template-rows: auto 1fr; }
  .given > .bs { grid-area: bs; } .given > .notes { grid-area: notes; } .given > .info { grid-area: info; }
}
.twrap { max-width: 100%; margin: 0 0 12px; }
table.dt { border-collapse: collapse; font-variant-numeric: tabular-nums; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); width: 100%; }
.dt caption { text-align: left; font-family: var(--head); font-weight: 700; font-size: 1.05rem; padding: 0 0 4px; }
.dt th, .dt td { padding: 4px 8px; text-align: left; vertical-align: top; font-weight: 400; border-bottom: 1px solid var(--line); }
.dt thead th { font-weight: 700; border-bottom: 1px solid var(--ink); vertical-align: bottom; font-size: 0.95rem; }
.dt .num { text-align: right; font-family: var(--mono); white-space: nowrap; }
.dt thead th.num { font-family: var(--sans); }
.dt .nn { text-align: center; width: 3.2em; }
.bst .bs-head th { font-weight: 800; padding-top: 8px; }
.bst .bs-sub th { font-weight: 700; padding-left: 16px; }
.bst .bs-sub2 th { padding-left: 28px; }
.bst tbody th[scope="row"] { padding-left: 28px; }
.bst tr.ind th[scope="row"] { padding-left: 42px; }
.bst tr.bs-tot th, .bst tr.bs-tot td, .ntt tr.nt-tot td { font-weight: 700; border-top: 1px solid var(--ink); }
.ntt .nt-head th { font-weight: 700; padding-top: 8px; }
.ntt tbody th[scope="row"] { padding-left: 22px; }
.info { margin: 0 0 12px; }
.infoh { margin: 0 0 4px; font-family: var(--head); font-weight: 700; font-size: 1.05rem; }
.infol { list-style: none; margin: 0; padding: 0; max-width: 72ch; }
.infol li { margin: 0 0 4px; padding-left: 3.4em; text-indent: -3.4em; }
.ro { display: inline-block; width: 3.4em; text-indent: 0; font-family: var(--mono); color: var(--muted); }

/* the statement to fill in: section letters in a red gutter, totals ruled once above and twice below */
.stmt-form { margin: 14px 0 6px; max-width: 860px; }
.sf-title { margin: 0 0 6px; font-family: var(--head); font-weight: 700; font-size: 1.1rem; }
.sfsec { display: grid; grid-template-columns: 2.2em minmax(0, 1fr); column-gap: 8px; padding: 8px 0 6px; border-top: 1px solid var(--line2); }
.sfh { grid-column: 2; margin: 0 0 4px; font-size: 1.05rem; }
.sfsec::before { grid-row: 1 / span 60; grid-column: 1; align-self: start; font: 800 1.9rem/1 var(--head); color: var(--red); }
.sec-A::before { content: "A"; } .sec-B::before { content: "B"; } .sec-C::before { content: "C"; } .sec-R::before { content: ""; }
.sfsec > * { grid-column: 2; }
.sfsub { margin: 6px 0 0; font-style: italic; color: var(--muted); }
.sfrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 14px; padding: 3px 0; border-bottom: 1px dotted var(--line2); }
.sfrow.tot { border-bottom: 0; font-weight: 700; }
.sfrow.tot .sfval .cell { border-top: 2px solid var(--ink); border-bottom: 4px double var(--ink); }
.sflab { min-width: 0; }
.sfval { display: inline-flex; justify-content: flex-end; min-width: 0; max-width: 100%; }
@media (max-width: 640px) {
  .sfsec { grid-template-columns: 1.4em minmax(0, 1fr); column-gap: 6px; }
  .sfsec::before { font-size: 1.4rem; }
  .sfrow { column-gap: 6px; line-height: 1.3; }
}
/* phone: a label never breaks inside a word; when its longest word and the box (with its mark) cannot share the
   row, the box moves under the label */
@media screen and (max-width: 640px) {
  .sfrow { display: flex; flex-wrap: wrap; align-items: center; row-gap: 2px; }
  .sflab { flex: 1 1 0; min-width: min-content; }
  .sfval { flex: 0 0 auto; margin-left: auto; }
  .sfrow input.cell { width: calc(10.5ch + 16px); min-width: calc(10.5ch + 16px); padding: 6px 6px; }
  @supports (field-sizing: content) { .sfrow input.cell { width: auto; } }
}
/* narrow phones: every label above its box, so the form reads evenly instead of ragged 2 to 6 line labels */
@media screen and (max-width: 479px) {
  .sfrow { padding: 5px 0; }
  .sflab { flex-basis: 100%; }
  .sfval { margin-left: 0; justify-content: flex-start; }
}
input.cell { min-height: 44px; padding: 6px 8px; text-align: right; font-family: var(--mono); font-variant-numeric: tabular-nums; color: var(--pen); max-width: 100%; }
input.cell { width: calc(var(--w, 12) * 1ch + 18px); }
@supports (field-sizing: content) { input.cell { field-sizing: content; width: auto; min-width: calc(var(--w, 12) * 1ch + 18px); } }
.cell.is-right { border-color: var(--ok); background: var(--ok-soft); box-shadow: inset 0 0 0 1px var(--ok); }
.cell.is-wrong, .cell.is-unread { border-color: var(--bad); background: var(--bad-soft); box-shadow: inset 0 0 0 1px var(--bad); }
.cell.is-own { border-color: var(--warn); border-style: dashed; box-shadow: inset 0 0 0 1px var(--warn); }

/* tables that do not fit (fit.js measures them; screen only): each row becomes a block, each value labelled */
@media screen {
  .twrap.rows { width: 100%; }
  .twrap.rows table, .twrap.rows tbody { display: block; width: 100%; }
  .twrap.rows table.dt { border-bottom: 0; }
  .twrap.rows caption { display: block; }
  .twrap.rows thead { display: none; }
  .twrap.rows tr { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5em, 1fr)); gap: 2px 14px; padding: 6px 0; border-bottom: 1px solid var(--line); }
  .twrap.rows tbody th { grid-column: 1 / -1; }
  .twrap.rows th, .twrap.rows td { border: 0; padding: 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; min-width: 0; }
  .twrap.rows th { justify-content: flex-start; font-weight: 700; padding-left: 0 !important; }
  .twrap.rows td::before { content: attr(data-l); font: 600 1rem var(--sans); color: var(--muted); }
  .twrap.rows td:empty, .twrap.rows td.nn:empty { display: none; }
  .twrap.rows tr.bs-head, .twrap.rows tr.bs-sub, .twrap.rows tr.bs-sub2, .twrap.rows tr.nt-head, .twrap.rows tr.st-sec, .twrap.rows tr.st-sub { border-bottom: 0; padding-bottom: 0; }
}
/* phones: the balance sheet and notes stay tables, with the note number moved beside its line */
.nref { display: none; font-weight: 400; color: var(--muted); }
@media screen and (max-width: 600px) {
  .bst .nn, .ntt .nn { display: none; }
  .bst .nref { display: inline; }
  .bst, .ntt { font-size: 15px; }
  .bst th, .bst td, .ntt th, .ntt td { padding: 3px 4px; }
  .bst .num, .ntt .num { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 15px; }
  .bst tbody th[scope="row"] { padding-left: 10px; }
  .bst tr.ind th[scope="row"] { padding-left: 16px; }
  .bst .bs-sub th, .bst .bs-sub2 th { padding-left: 4px; }
  .ntt tbody th[scope="row"] { padding-left: 8px; }
}
.twrap.rows .nn, .twrap.rows .nref { display: none !important; }

/* feedback */
.fbwrap { margin: 6px 0; }
.fbl { margin: 4px 0; padding: 0 0 0 2.2em; max-width: 80ch; }
.fb { margin: 4px 0; padding: 6px 10px; border-radius: var(--r); background: var(--bad-soft); max-width: 80ch; }
.fbl .fb::marker { font-weight: 700; color: var(--red); }
.fb.right { background: var(--ok-soft); }
.fb.own { background: var(--paper); border: 1px dashed var(--warn); }
.fb.empty { background: var(--given); border: 1px solid var(--line); }
.cw { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; min-width: 0; }
.cw > .cell { flex: none; }
.mk { flex: none; min-width: 1.6em; font-weight: 700; font-size: 1.1rem; line-height: 1; white-space: nowrap; }
.mn { font-size: 1rem; font-family: var(--mono); }
.mk-right { color: var(--ok); }
.mk-own { color: var(--warn); }
.mk-wrong, .mk-unread { color: var(--bad); }
.qfoot { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 6px 0; }
.work { margin: 4px 0 8px; }
.keyfig { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px 28px; }
@media (min-width: 1000px) { .keyfig { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); } }
.kpart { min-width: 0; }
.kh { margin: 4px 0 2px; font-weight: 700; }
.kq { display: none; }
.steps { margin: 4px 0 8px; padding-left: 1.8em; max-width: 80ch; }
.steps li { margin: 4px 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.stt .st-sec th { font-family: var(--head); font-weight: 700; padding-top: 10px; }
.stt .st-sub th { font-style: italic; color: var(--muted); }
.stt tbody th[scope="row"] { padding-left: 18px; }
.stt tr.st-tot th, .stt tr.st-tot td { font-weight: 700; }
.stt tr.st-tot td { border-top: 1px solid var(--ink); border-bottom: 3px double var(--ink); }

.sheet-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 10px; padding-top: 10px; border-top: 2px solid var(--ink); }
.confirm { flex-basis: 100%; margin: 0; padding: 10px; background: var(--warn-soft); border-radius: var(--r); }
.save-hint { flex-basis: 100%; margin: 0; color: var(--muted); }

/* print and share */
.share { margin: 0 0 24px; }
.print-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.print-row label { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; flex-wrap: wrap; }
.share-out label { display: grid; gap: 4px; font-weight: 600; }
.share-out input { width: 100%; min-height: 44px; padding: 6px 10px; font-family: var(--mono); }
.recent { margin-top: 12px; background: var(--paper); border: 1px solid var(--line); padding: 4px 12px; }
.recent ul { list-style: none; margin: 0; padding: 0; }
.recent li { display: flex; justify-content: space-between; gap: 10px; align-items: center; border-top: 1px solid var(--line); padding: 6px 0; }
.recent .when { display: block; color: var(--muted); }
.hint { color: var(--muted); }

/* content */
.content { max-width: 76ch; padding-bottom: 20px; }
.content h2 { font-size: 1.45rem; margin: 28px 0 8px; }
.faq details { border-bottom: 1px solid var(--line2); }
.faq details p { margin: 0 0 12px; }
.sources { color: var(--muted); overflow-wrap: anywhere; }
footer { border-top: 2px solid var(--ink); padding: 18px 0 30px; color: var(--muted); }
.indep { margin: 0 0 10px; }
.sb-footer p { margin: 6px 0; }
.sb-more { line-height: 1.8; }
.sb-more a { color: var(--muted); }
.sb-credit a { color: var(--pen); }

.toast { position: fixed; left: 50%; bottom: 16px; transform: translate(-50%, 140%); background: var(--ink); color: var(--paper); padding: 10px 16px; border-radius: var(--r); max-width: min(92vw, 560px); z-index: 20; pointer-events: none; transition: transform 0.2s; }
.toast.on { transform: translate(-50%, 0); }
.toast.top { top: 16px; bottom: auto; transform: translate(-50%, -140%); }
.toast.top.on { transform: translate(-50%, 0); }
@media (max-width: 600px) {
  .toast { left: 8px; right: 8px; bottom: 8px; max-width: none; text-align: center; transform: translateY(140%); }
  .toast.top { top: 8px; bottom: auto; transform: translateY(-140%); }
  .toast.on, .toast.top.on { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }
[hidden] { display: none !important; }
.print-root { display: none; }

/* ---------- print ---------- */
@page { margin: 12mm; }
@media print {
  :root { --ink: #000; --muted: #333; --line: #999; --line2: #555; --paper: #fff; --bg: #fff; --red: #000; --pen: #000; --given: #fff; }
  body { background: #fff; color: #000; font: 10pt/1.3 var(--sans); }
  main, footer, .skip, .toast { display: none !important; }
  .print-root { display: block; }
  .psheet, .pkey { break-after: page; }
  .pkey:last-child, .psheet:last-child { break-after: auto; }
  table.pt { width: 100%; border-collapse: collapse; }
  .pt > thead .prun { font-size: 9pt; color: #333; padding-bottom: 3px; border-bottom: 0.5pt solid #888; }
  .ph { display: flex; justify-content: space-between; align-items: baseline; gap: 6pt 12pt; flex-wrap: wrap; margin-bottom: 2pt; }
  .ph h2 { margin: 3px 0 0; font-size: 14pt; }
  .pmeta { display: flex; gap: 14pt; margin: 0; }
  .prules { margin: 2px 0 4px; padding-left: 13pt; font-size: 9pt; line-height: 1.25; }
  .prules li { margin: 0 0 1px; }
  .pq, .pk { list-style: none; margin: 0; padding: 0; }
  .pq > li, .pk > li { padding-top: 4pt; border-top: 1.2pt solid #000; }
  .pq h3, .pk h3 { font-size: 11.5pt; margin: 0 0 2pt; break-after: avoid; }
  .scen { margin: 0 0 4pt; max-width: none; }
  /* page breaks: each problem starts a page, and its blank statement the next (app.js, print) */
  .pq > li.pbreak, .pk > li.pbreak { break-before: page; }
  .pans { break-before: page; padding-top: 4pt; border-top: 1.2pt solid #000; }
  .given { display: grid; grid-template-columns: 1.08fr 1fr; grid-template-areas: "bs notes" "info info"; grid-template-rows: auto; gap: 0 10pt; }
  .given > .bs { grid-area: bs; } .given > .notes { grid-area: notes; } .given > .info { grid-area: info; }
  .twrap { break-inside: avoid; margin: 0 0 4pt; }
  /* collapsed borders: inset so both outer rules sit inside the A4 content box */
  table.dt { font-size: 9.5pt; border-top: 1pt solid #000; border-bottom: 1pt solid #000; width: calc(100% - 2pt); margin: 0 1pt; }
  .dt caption { font-size: 10pt; padding-bottom: 2pt; }
  .dt th, .dt td { padding: 1pt 4pt; border-bottom: 0.4pt solid #aaa; }
  .dt thead th { border-bottom: 0.75pt solid #000; font-size: 9pt; }
  .dt .nn { width: 2.4em; padding: 1pt 2pt; }
  /* figures in the text face on paper: tabular, and narrow enough that labels keep to one line */
  .dt .num { font-family: var(--sans); font-variant-numeric: tabular-nums; }
  .dt thead th.num { white-space: normal; width: 4.6em; }
  .bst tbody th[scope="row"] { padding-left: 12pt; }
  .bst tr.ind th[scope="row"] { padding-left: 20pt; }
  .bst .bs-sub th { padding-left: 6pt; }
  .bst .bs-sub2 th { padding-left: 12pt; }
  .bst .bs-head th, .ntt .nt-head th { padding-top: 3pt; }
  .ntt tbody th[scope="row"] { padding-left: 10pt; }
  .info { margin: 2pt 0 0; }
  .infoh { font-size: 10pt; margin-bottom: 2pt; }
  .infol { max-width: none; }
  .infol li { margin: 0 0 2pt; break-inside: avoid; }
  /* the blank statement: ruled lines with a box to write in */
  .stmt-form { max-width: none; margin: 4pt 0 0; }
  .sf-title { font-size: 11pt; }
  .sfsec { padding: 2pt 0 1pt; border-top: 0.75pt solid #000; break-inside: avoid; }
  .sfsec::before { font-size: 15pt; }
  .sfh { font-size: 10.5pt; margin-bottom: 1pt; }
  .sfsub { margin: 2pt 0 0; font-size: 9.5pt; }
  .sfrow { padding: 0.8pt 0; border-bottom: 0.4pt dotted #777; gap: 8pt; line-height: 1.2; }
  .pblank { display: inline-block; border: 0.75pt solid #000; height: 12.5pt; vertical-align: middle; }
  .sfrow.tot .pblank { border-bottom: 2.4pt double #000; }
  .pans:not(.lv-full) .pblank { height: 19.8pt; } /* 7 mm, room to write */
  .pans:not(.lv-full) .sfrow { padding: 1.2pt 0; }
  .pwork { margin-top: 6pt; border: 0.75pt solid #000; padding: 3pt 6pt; break-inside: avoid; }
  .pwork h4 { margin: 0; font-size: 10pt; }
  .lv-op .pwork { height: 48mm; }
  .lv-invfin .pwork { height: 85mm; }
  .keyfig { display: block; }
  .kpart + .kpart { margin-top: 3pt; }
  .kh { margin: 2pt 0 1pt; font-size: 10pt; }
  .steps { font-size: 9.5pt; margin: 0 0 2pt; padding-left: 14pt; max-width: none; columns: 2; column-gap: 14pt; }
  .steps li { margin: 0 0 2pt; break-inside: avoid; }
  .kq { display: inline; }
  .stt tbody th[scope="row"] { padding-left: 10pt; }
  .stt .st-sec th { padding-top: 3pt; }
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
@media print {
  /* the key: the statement and its working notes on one page */
  .pk .stt { font-size: 9.5pt; line-height: 1.15; }
  .pk .stt th, .pk .stt td { padding: 0.6pt 4pt; }
  .pk .stt .st-sec th { padding-top: 2pt; }
  .pk .steps { font-size: 9pt; line-height: 1.22; }
  .pk h3 { margin-bottom: 1pt; }
}
