/* Incomplete records practice. Look: a trader's cash book rebuilt by the accountant. Cream ledger paper, bottle-green
   ink on a plain card, the missing figure circled in the key the way a marker would,
   double rules under final totals, tabular figures for every amount. */
:root {
  --bg: #f4f1e8; --paper: #fffdf7; --ink: #1d2420; --muted: #4b544e; --line: #d8d3c4; --line2: #8f8a78;
  --accent: #1f5d47; --accent-ink: #fff; --hi: #f6dfc6; --soft: #ecefe6;
  --right: #1d6b3c; --wrong: #a3261c; --close: #7a5300; --info: #1f5d47;
  --mk-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231d6b3c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E"); --mk-wrong: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23a3261c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M3.5 3.5l9 9M12.5 3.5l-9 9'/%3E%3C/svg%3E"); --mk-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237a5300' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M8 2.5v7M8 13v.5'/%3E%3C/svg%3E");
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
  --r: 3px;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #14181a; --paper: #1b2124; --ink: #e8ebe6; --muted: #b1bab3; --line: #333c3a; --line2: #5f6a66;
    --accent: #8fd0b4; --accent-ink: #0f1714; --hi: #4d3a22; --soft: #222a29;
    --right: #6fd394; --wrong: #ff8f80; --close: #f0c060; --info: #8fd0b4;
    --mk-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236fd394' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E"); --mk-wrong: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ff8f80' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M3.5 3.5l9 9M12.5 3.5l-9 9'/%3E%3C/svg%3E"); --mk-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23f0c060' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M8 2.5v7M8 13v.5'/%3E%3C/svg%3E");
  }
}
* { 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); }
a { color: var(--accent); }
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 16px; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 16px; top: 8px; background: var(--paper); padding: 8px 12px; z-index: 9; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--serif); line-height: 1.2; }

.hero { padding: 26px 0 8px; margin-top: 14px; }
.hero h1 { font-size: clamp(1.6rem, 4.6vw, 2.3rem); margin: 0 0 8px; }
.lede { margin: 0 0 6px; max-width: 66ch; font-size: 1.06rem; }

/* setup */
.setup { margin: 12px 0 14px; }
fieldset { border: 0; margin: 0 0 10px; padding: 0; min-width: 0; }
legend { font-weight: 650; margin-bottom: 6px; }
.chips, .steps-row { display: flex; flex-wrap: wrap; gap: 6px; }
.chip, .step { position: relative; }
.chip input, .step input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span, .step span { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 13px; border: 1px solid var(--line2); border-radius: var(--r); background: var(--paper); font-size: 1rem; }
.chip input:checked + span, .step input:checked + span { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.chip input:focus-visible + span, .step input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 2px; }
.setrow { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.inline { display: inline-flex; align-items: center; gap: 8px; }
select, input { font: inherit; font-size: 16px; color: var(--ink); background: var(--paper); border: 1px solid var(--line2); border-radius: var(--r); min-height: 44px; padding: 6px 8px; max-width: 100%; }
.btn { font: inherit; font-weight: 600; min-height: 44px; padding: 8px 16px; border-radius: var(--r); border: 1.5px solid var(--accent); background: var(--paper); color: var(--accent); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.btn.primary { background: var(--accent); color: var(--accent-ink); }
.btn.small { min-height: 42px; padding: 6px 14px; }
.link { font: inherit; background: none; border: 0; padding: 8px 2px; color: var(--accent); text-decoration: underline; cursor: pointer; min-height: 44px; }
.note { padding: 10px 12px; background: var(--paper); border: 1px solid var(--wrong); border-radius: var(--r); margin: 8px 0; }
.note.info { border-color: var(--info); }
[hidden] { display: none !important; }

/* the sheet: a ruled pad */
.sheet { background: var(--paper); border: 1px solid var(--line2); padding: 16px 18px 14px; margin: 10px 0 18px; }
.sheet-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; border-bottom: 1px solid var(--line2); padding-bottom: 6px; }
.sheet-head h2 { margin: 0; font-size: 1.25rem; }
.code { font-family: var(--mono); letter-spacing: .06em; color: var(--accent); }
.lvname { font-family: var(--sans); font-weight: 400; font-size: 1rem; color: var(--muted); }
.score { margin: 0; color: var(--muted); }
.rules { margin: 8px 0; }
.rules summary, details.work summary, .recent summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; color: var(--accent); }
.rules ul { margin: 4px 0 8px; padding-left: 20px; }
.qs { list-style: none; margin: 0; padding: 0; }
.q { padding: 14px 0 16px; border-bottom: 1px solid var(--line); }
.q h3 { font-size: 1.15rem; margin: 4px 0 8px; display: flex; gap: 10px; align-items: baseline; }
.qn { font-family: var(--mono); color: var(--accent); }
.qhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 16px; }
.qhead h3 { margin-right: auto; }
.see { color: var(--accent); font-weight: 600; display: inline-flex; align-items: center; min-height: 44px; }
.work { scroll-margin-top: 8px; }
.qtext { max-width: 72ch; }
.scen { margin: 0 0 8px; }

/* the trial balance and the notes */
.info-wrap { margin: 4px 0 10px; max-width: 34rem; }
table.dt { border-collapse: collapse; width: 100%; }
.dt caption { text-align: left; font-weight: 650; padding-bottom: 4px; }
.dt th, .dt td { padding: 3px 8px 3px 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; }
.dt thead th { color: var(--muted); font-weight: 600; border-bottom: 1.5px solid var(--ink); }
.dt .amt { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; width: 7.5rem; padding-right: 4px; }
.dt tfoot th, .dt tfoot td { border-top: 1.5px solid var(--ink); border-bottom: 3px double var(--ink); font-weight: 650; }
.adjn { max-width: 72ch; margin: 6px 0 10px; }
.adj { margin: 0; padding-left: 1.6em; }
.adj li { margin: 2px 0; }
.tcap { font-weight: 650; margin: 6px 0 4px; }

/* the statements */
.forms { display: grid; gap: 18px; margin: 14px 0 6px; container-type: inline-size; }
table.st { border-collapse: collapse; width: 100%; }
.st caption, .acct figcaption { text-align: left; padding-bottom: 6px; }
.st-t { display: block; font-family: var(--serif); font-weight: 700; font-size: 1.08rem; }
.st-s { display: block; color: var(--muted); }
.st th, .st td { padding: 3px 6px; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; vertical-align: middle; }
.st thead th { color: var(--muted); font-weight: 600; font-size: 1rem; border-bottom: 1.5px solid var(--ink); }
.st .amt { text-align: right; width: 9.5rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.st.v.c3 .amt { width: 9rem; }
.st tr.h th { font-weight: 650; padding-top: 10px; border-bottom: 0; }
.st tr.pad th, .st tr.pad td { border-bottom: 0; padding: 0; }
.st tr.sub td.amt:not(.nil) { border-top: 1.5px solid var(--ink); }
.st tr.tot th { font-weight: 650; }
.st tr.tot td.amt:not(.nil), .st tfoot tr.tot td.amt:not(.nil) { border-top: 1.5px solid var(--ink); border-bottom: 3px double var(--ink); background: var(--hi); font-weight: 650; }
.acct figcaption .st-t { color: var(--accent); }
.st.v { max-width: 46rem; }
/* a line label never gets narrower than this on screen: below it the table is cut off and fit.js puts the words above
   the amounts instead */
.st th[scope="row"] { min-width: 12rem; }
.dt th[scope="row"] { min-width: 10rem; }
/* the trader's figures: two dates side by side, and a bank summary with receipts beside payments */
.info-wrap.rp-wrap { max-width: 46rem; }
.dt.two .amt { width: 10.5rem; padding-left: 14px; }
.dt.rp th.p2 { padding-left: 14px; border-left: 1px solid var(--line2); }
.dt.rp th[scope="row"] { min-width: 9rem; }
.given { display: grid; gap: 2px 28px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); align-items: start; }
.given > .rp-wrap, .given > .adjn, .given > .two-wrap { grid-column: 1 / -1; }
.st.t2 .amt { width: 9.5rem; }
.st td.amt { min-width: 7.5rem; }
.twrap.rows td.amt { min-width: 0; }
.twrap.rows th[scope="row"] { min-width: 0; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.acct { margin: 0; }
.acct .docs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.acct .docs + .docs { margin-top: 14px; }
.acct .docs.stack { grid-template-columns: 1fr; }
@container (max-width: 720px) { .acct .docs { grid-template-columns: 1fr; } }
.st.t .drcr th { text-align: left; color: var(--muted); font-weight: 600; border-bottom: 0; }
.acct .side.s1 table.st { border-left: 0; }
.st.t th[scope="row"] { overflow-wrap: anywhere; }
.st td.amt.out { color: var(--muted); }
.cell { width: 100%; min-width: 0; font-variant-numeric: tabular-nums; }
input.cell { text-align: right; padding: 6px 6px; }
select.cell { padding: 6px 4px; }
.cell.is-right { border-color: var(--right); box-shadow: inset 0 0 0 1px var(--right); }
.cell.is-wrong, .cell.is-unread { border-color: var(--wrong); box-shadow: inset 0 0 0 1px var(--wrong); }
.cell.is-missing, .cell.is-close { border-color: var(--close); box-shadow: inset 0 0 0 1px var(--close); border-style: dashed; }
.cell.is-right, .cell.is-wrong, .cell.is-unread, .cell.is-missing, .cell.is-close { background-repeat: no-repeat; background-position: 5px center; background-size: 15px; }
input.cell.is-right, input.cell.is-wrong, input.cell.is-unread, input.cell.is-missing, input.cell.is-close { padding-left: 24px; }
select.cell.is-right, select.cell.is-wrong, select.cell.is-missing, select.cell.is-close { padding-left: 24px; }
.cell.is-right { background-image: var(--mk-right); }
.cell.is-wrong, .cell.is-unread { background-image: var(--mk-wrong); }
.cell.is-missing, .cell.is-close { background-image: var(--mk-close); }
.fblist { margin: 6px 0 0; padding-left: 1.8em; }
.fblist li.fb { margin: 6px 0; padding: 0; border: 0; border-radius: 0; background: none; }
.fb.sum { border-color: var(--wrong); }
.twrap { overflow-x: auto; max-width: 100%; }

/* fitted layouts (fit.js): a table that would be cut off shows each line on two lines, the words above the amounts,
   each amount still in its own column */
.twrap.rows table, .twrap.rows tbody, .twrap.rows thead, .twrap.rows tfoot { display: block; width: 100%; }
.twrap.rows caption { display: block; }
.twrap.rows tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px; padding: 3px 0; border-bottom: 1px solid var(--line); }
.twrap.rows .c3 tr { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.twrap.rows .l1 tr { grid-template-columns: minmax(0, 1fr); }
.twrap.rows .two tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.twrap.rows .rp tr { grid-template-columns: minmax(0, 1fr) auto; }
.twrap.rows .rp th.p2 { grid-column: auto; border-left: 0; padding-left: 2px; }
.twrap.rows .rp thead { display: none; }
.twrap.rows .t2 tr { grid-template-columns: minmax(0, 1fr); }
.twrap.rows .t2 td.amt { text-align: right; }
.twrap.rows th, .twrap.rows td { display: block; border: 0 !important; width: auto !important; padding: 0 2px; }
.twrap.rows th[scope="row"], .twrap.rows tr.h th, .twrap.rows .drcr th { grid-column: 1 / -1; }
.twrap.rows .st.v thead th:first-child, .twrap.rows .dt thead th:first-child { display: none; }
.twrap.rows .dt.rp thead th:first-child { display: block; }
.twrap.rows .st.t thead th:first-child { grid-column: 1 / -1; }
.twrap.rows .l1 thead { display: none; }
.twrap.rows tr.pad { display: none; }
.twrap.rows tr.tot td.amt:not(.nil) { border-top: 1.5px solid var(--ink) !important; border-bottom: 3px double var(--ink) !important; }
.twrap.rows tr.sub td.amt:not(.nil) { border-top: 1.5px solid var(--ink) !important; }
.twrap.rows input.cell { padding-top: 6px; padding-bottom: 6px; padding-right: 4px; }
.twrap.rows thead th.amt { white-space: normal; }
.twrap.rows.snug .c3 { display: grid; grid-template-columns: repeat(3, auto); }
.twrap.rows.snug .c3 caption { grid-column: 1 / -1; }
.twrap.rows.snug .c3 thead, .twrap.rows.snug .c3 tbody, .twrap.rows.snug .c3 tfoot { display: contents; }
.twrap.rows.snug .c3 tr { grid-column: 1 / -1; grid-template-columns: subgrid; }
.twrap.rows.snug .c3 td.amt { min-width: max-content; }
.twrap.rows.snug .c3 tr { column-gap: 4px; }
.twrap.rows.snug .c3 thead th.amt { hyphens: auto; overflow-wrap: anywhere; }
.twrap.stair .c3 tr { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.twrap.stair .c3 td.nil { display: none; }
.twrap.stair .c3 .amt:nth-child(2) { grid-column: 1 / span 3; }
.twrap.stair .c3 .amt:nth-child(3) { grid-column: 2 / span 3; }
.twrap.stair .c3 .amt:nth-child(4) { grid-column: 3 / span 3; }

/* feedback */
.fbwrap { margin: 8px 0 0; }
.fb { margin: 4px 0; padding: 6px 10px; border: 1px solid var(--line2); border-radius: var(--r); background: var(--soft); }
.fb.right { border-color: var(--right); }
.fb.wrong, .fb.unread { border-color: var(--wrong); }
.fb.missing, .fb.close { border-color: var(--close); }
.qfoot { margin-top: 8px; }

/* the key */
details.work { margin-top: 8px; }
.keyfig .forms { margin-top: 6px; }
.steps { margin: 4px 0 8px; padding-left: 20px; }
.steps li { margin: 2px 0; font-variant-numeric: tabular-nums; }

.sheet-foot { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 12px; }
.confirm { flex-basis: 100%; margin: 0; padding: 8px 10px; background: var(--soft); border: 1px solid var(--close); border-radius: var(--r); }
.save-hint { flex-basis: 100%; margin: 0; color: var(--muted); }
.share { margin: 0 0 22px; }
.print-row { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: end; }
.print-row label { display: grid; gap: 2px; }
.share-out label { display: grid; gap: 2px; }
.share-out input { width: 100%; font-family: var(--mono); }
.recent ul { list-style: none; padding: 0; margin: 4px 0; }
.recent li { display: flex; justify-content: space-between; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); padding: 4px 0; }
.recent small { display: block; color: var(--muted); font-size: 1rem; }
.hint { color: var(--muted); margin: 6px 0; }

/* content below the tool */
.content { max-width: 72ch; padding-bottom: 20px; }
.content h2 { font-size: 1.35rem; margin: 26px 0 8px; }
.content .twrap { margin: 8px 0 12px; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; padding: 10px 0; font-weight: 600; min-height: 44px; }
.faq p { margin: 0 0 12px; }
.sources { color: var(--muted); }

footer { border-top: 1px solid var(--line2); padding: 16px 0 28px; color: var(--muted); font-size: 1rem; }
.indep { margin: 0 0 10px; }
.sb-footer p { margin: 6px 0; }
.sb-more { line-height: 1.8; }
.sb-footer a { color: var(--muted); }
.toast { position: fixed; left: 50%; bottom: 16px; transform: translate(-50%, 140%); max-width: min(92vw, 520px); background: var(--ink); color: var(--bg); padding: 10px 14px; border-radius: var(--r); transition: transform .2s; z-index: 10; pointer-events: none; }
.toast.on { transform: translate(-50%, 0); }
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }
.print-root { display: none; }

@media (max-width: 520px) {
  body { font-size: 16px; }
  .sheet { padding: 12px 8px; }
  .chip span, .step span { padding: 6px 10px; }
}

@media print {
  :root { --ink: #000; --muted: #333; --line: #999; --line2: #555; --paper: #fff; --bg: #fff; --accent: #000; --hi: #fff; }
  @page { margin: 14mm 13mm; }
  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: 10pt; color: #333; padding-bottom: 4px; border-bottom: 0.5pt solid #888; }
  .ph h2 { margin: 4px 0 0; font-size: 15pt; }
  .ph p { margin: 2px 0 6px; font-size: 10pt; }
  .pmeta { display: flex; justify-content: space-between; gap: 10px; margin: 6px 0; }
  .plabel { font-size: 10pt; margin: 0 0 6px; }
  .pq, .pk { list-style: none; margin: 0; padding: 0; }
  .pq > li + li, .pk > li + li { margin-top: 14pt; padding-top: 8pt; border-top: 0.5pt solid #888; }
  .pqh h3, .pk h3 { font-size: 12pt; margin: 6px 0 4px; break-after: avoid; }
  .pqh { break-inside: avoid; } /* a problem's heading, story and figures stay together */
  .scen { margin: 0 0 5px; }
  .twrap { overflow: visible; }
  .info-wrap { max-width: 120mm; margin: 2pt 0 6pt; break-inside: avoid; }
  .info-wrap.rp-wrap { max-width: none; }
  .given { display: grid; grid-template-columns: 1fr 1fr; gap: 0 8mm; align-items: start; }
  .given > .info-wrap { max-width: none; }
  .dt.two .amt { width: 30mm; }
  .dt.rp th.p2 { border-left: 0.5pt solid #555; padding-left: 6pt; }
  .st.t2 .amt { width: 27mm; }
  .hero { border: 0; }
  .dt { font-size: 10pt; }
  .dt caption { font-size: 10pt; }
  .dt th, .dt td { padding: 1pt 4pt 1pt 0; border-bottom: 0.5pt solid #999; }
  .dt .amt { width: 25mm; }
  .adjn { margin: 4pt 0 8pt; break-inside: avoid; }
  .adj { font-size: 10pt; }
  .forms { display: block; container-type: normal; }
  .forms > * { margin: 0 0 10pt; }
  table.st { font-size: 10pt; }
  .st.v { max-width: none; width: 100%; table-layout: fixed; }
  .st.v .amt { width: 27mm; }
  .st.v.c3 .amt { width: 27mm; }
  .st caption, .acct figcaption { padding-bottom: 3pt; break-after: avoid; }
  .st-t { font-size: 12pt; }
  .st-s { font-size: 10pt; }
  .st th, .st td { padding: 1pt 4pt; border-bottom: 0.5pt solid #bbb; }
  .st tr { break-inside: avoid; }
  .st tr.h th { padding-top: 4pt; }
  .psheet .st th, .psheet .st td { height: 21pt; vertical-align: bottom; }
  .st td.blank, .st th.blank { height: 21pt; border-bottom: 0.5pt solid #555; }
  .st tr.pad th, .st tr.pad td { height: 21pt; }
  .st tr.tot td.amt:not(.nil) { background: none; }
  .acct .docs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 6pt; }
  .acct .docs { break-inside: avoid; }
  figure.acct, .acct figcaption { break-inside: avoid; }
  .st thead th.amt { white-space: normal; vertical-align: bottom; }
  .st tfoot { display: table-row-group; }
  .acct .docs.stack { grid-template-columns: 1fr 1fr; }
  .st.t { table-layout: fixed; }
  .st.t .amt { width: 25mm; }
  .acct figcaption { display: block; }
  .acct .side.s0 { border-right: 1pt solid #000; padding-right: 4pt; }
  .steps { font-size: 10pt; margin: 4px 0; }
  .wnotes .tcap { break-after: avoid; }
  .steps li { break-inside: avoid; }
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .st.paper .caprow th { text-align: left; font-weight: 400; border-bottom: 0; padding: 0 0 3pt; }
  .st.paper .caprow .st-s { font-size: 10pt; }
  .wnotes { break-inside: avoid; }
  .pkey .st.whole, .st.paper tbody { break-inside: avoid; }
  /* a worksheet statement may go on over a page between sections (its title repeats), never leaving its last section
     alone on a page */
  .psheet .st.paper tbody:last-of-type { break-before: avoid; }
  .st.paper tr.h { break-after: avoid; }
  .st.tp { width: 100%; table-layout: fixed; }
  .st.tp col.ca { width: 25mm; }
  .st.tp .cr0 { border-left: 1pt solid #000; padding-left: 4pt; }
  .st.tp th.h { font-weight: 650; padding-top: 4pt; }
  .st.tp td.amt.sub:not(.nil) { border-top: 1.5px solid #000; }
  .st.tp td.amt.tot:not(.nil), .st.tp tfoot td.amt:not(.nil) { border-top: 1.5px solid #000; border-bottom: 3px double #000; font-weight: 650; }
  .st.tp .drcr th { text-align: left; border-bottom: 0; }
  .st.tp th.tot, .st.tp tr.tot th { font-weight: 650; }
  .acct.paper { break-inside: avoid; }
  .tp-wrap + .tp-wrap { margin-top: 10pt; }
}
