/* CNA Measuring Practice: a unit flowsheet on a scrubs-green desk. Pale mint ground, deep green-black ink, white
   records with ruled rows, a teal accent for actions and question numbers, and charting blue for what the key fills
   in. Instruments are drawn in grey plastic with pale yellow urine and blue water. On paper it is black on white. */
:root {
  --bg: #e6f0ed;
  --paper: #ffffff;
  --ink: #12211e;
  --muted: #45574f;
  --line: #c4d4ce;
  --edge: #6f857d;
  --band: #0e3b35;
  --band-ink: #ffffff;
  --accent: #0b6b5d;
  --accent-ink: #ffffff;
  --accent-soft: #d6ebe5;
  --info: #1d4f9c;
  --ok: #1a6a37;
  --ok-soft: #dcefe2;
  --close: #7a5400;
  --close-soft: #f6ecd3;
  --bad: #a3241d;
  --bad-soft: #f8e0dd;
  --focus: #1b5fd0;
  --head: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;
  --r: 4px;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f1c1a;
    --paper: #172623;
    --ink: #e2eeea;
    --muted: #a3b8b1;
    --line: #2b3d38;
    --edge: #5f7770;
    --band: #1f4d45;
    --band-ink: #f2f8f6;
    --accent: #5fc9b5;
    --accent-ink: #062520;
    --accent-soft: #163a33;
    --info: #9cc0f5;
    --ok: #8adca6;
    --ok-soft: #14301f;
    --close: #f0c56b;
    --close-soft: #352a12;
    --bad: #ff9c8f;
    --bad-soft: #3a1c18;
    --focus: #8ab8ff;
  }
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
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(--info); text-underline-offset: 2px; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--paper); padding: 8px 12px; z-index: 10; }
.skip:focus { left: 8px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--head); line-height: 1.15; font-weight: 700; }
.hero { padding: 18px 0 10px; margin: 0 0 8px; border-bottom: 2px solid var(--band); }
.hero h1 { font-size: clamp(30px, 6vw, 46px); margin: 0 0 4px; letter-spacing: -0.005em; }
.lede { margin: 0; max-width: 66ch; }
.prac { margin: 4px 0 0; font-size: 16px; line-height: 1.45; color: var(--muted); }

/* ---------- controls ---------- */
.tool { display: grid; gap: 14px; grid-template-columns: 1fr; align-items: start; }
.setup { display: grid; gap: 10px; padding: 4px 0; }
.setrow { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 14px; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend { font: 600 14px var(--sans); color: var(--muted); padding: 0; margin-bottom: 4px; }
.seg { display: grid; border: 1.5px solid var(--band); border-radius: var(--r); overflow: hidden; background: var(--paper); }
.seg6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.sg { position: relative; display: block; min-width: 0; }
.sg + .sg { border-left: 1px solid var(--edge); }
.sg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.sg span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 44px; padding: 4px 6px; font-size: 15px; line-height: 1.15; }
.sg input:checked + span { background: var(--band); color: var(--band-ink); font-weight: 600; }
.sg input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: -3px; }
.tdet summary, .rules summary { cursor: pointer; font-weight: 600; min-height: 44px; padding: 10px 0; }
.tsum { font-weight: 400; color: var(--muted); font-size: 15px; }
.toggles { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; padding-top: 4px; }
.tg { display: flex; gap: 8px; align-items: flex-start; padding: 8px; border: 1px solid var(--line); border-radius: var(--r); cursor: pointer; min-height: 44px; background: var(--paper); }
.tg input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--accent); flex: none; }
.tg b { display: block; font-weight: 600; font-size: 15.5px; }
.tg small { display: block; color: var(--muted); font-size: 14px; line-height: 1.3; }
.inline { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
select, input { font: inherit; font-size: 16px; color: var(--ink); background: var(--paper); border: 1px solid var(--edge); border-radius: var(--r); min-height: 44px; padding: 6px 10px; }
.btn { font: 600 16px var(--sans); min-height: 44px; padding: 8px 16px; border-radius: var(--r); border: 1px solid var(--edge); background: var(--paper); color: var(--ink); cursor: pointer; }
.btn:hover { border-color: var(--ink); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn.small { min-height: 40px; padding: 6px 14px; font-size: 15px; }
.link { font: inherit; background: none; border: 0; color: var(--info); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; min-height: 44px; padding: 0 4px; }

/* ---------- rules ---------- */
.rules { border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); padding: 2px 14px 10px; }
.fl { margin: 8px 0 0; font-weight: 600; font-size: 15px; }
.rl { margin: 4px 0 0; padding-left: 20px; font-size: 15px; line-height: 1.45; }
.rl li { margin: 0 0 4px; }

/* ---------- the sheet ---------- */
.note { margin: 0 0 10px; padding: 10px 12px; border: 1px solid var(--bad); background: var(--bad-soft); font-size: 16px; border-radius: var(--r); }
#store-note { overflow-wrap: anywhere; }
.note.info { border-color: var(--info); background: var(--paper); }
.sheet:focus { outline: none; }
.sheet-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 14px; }
.sheet-head h2 { font-size: 28px; margin: 6px 0 0; }
.code { font-family: var(--mono); letter-spacing: 0.06em; }
.score { margin: 0; color: var(--muted); font-size: 15px; }
.sline { margin: 2px 0 10px; color: var(--muted); font-size: 14.5px; }
.qs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.q { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); min-width: 0; }
.q h3 { margin: 0; font-size: 22px; padding: 12px 14px 0; display: flex; align-items: baseline; gap: 10px; }
.qn { font: 700 15px var(--mono); color: var(--accent); min-width: 2ch; }
.scen { margin: 6px 14px 8px; max-width: 75ch; }
.figview { padding: 0 14px; min-width: 0; }
.qparts { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 10px 14px 14px; }

/* ---------- drawings and records: always on white, like the real thing ---------- */
.docwrap { display: block; max-width: 100%; color: #12211e; }
svg.doc { display: block; max-width: 100%; height: auto; background: #fff; }
svg.doc.grad, svg.doc.urinal { max-width: min(230px, 100%); }
svg.doc.hat { max-width: min(330px, 100%); }
svg.doc.rod { max-width: min(260px, 100%); }
svg.doc.beam { max-width: min(520px, 100%); width: 100%; }
.vessel { fill: #f4f7f8; stroke: #44535a; stroke-width: 2.2; stroke-linejoin: round; }
.handle { fill: none; stroke: #44535a; stroke-width: 7; stroke-linecap: round; }
.liq { fill: #f6e7a0; }
.liq.water { fill: #d4e7f6; }
.lvl { stroke: #8a6d00; stroke-width: 2.2; }
.gt { stroke: #12211e; stroke-width: 1.6; }
.gl { fill: #12211e; font: 600 13px "Helvetica Neue", Arial, sans-serif; paint-order: stroke; stroke: #f4f7f8; stroke-width: 3px; stroke-linejoin: round; }
.gu, .bl { fill: #45574f; font: 600 12px "Helvetica Neue", Arial, sans-serif; letter-spacing: 0.04em; }
.bl.sm { font-weight: 400; letter-spacing: 0; }
.kline { stroke: #1d4f9c; stroke-width: 2.2; stroke-dasharray: 6 3; }
.kt { fill: #1d4f9c; font: 700 14px "Helvetica Neue", Arial, sans-serif; }
.bar { fill: #e3e8ea; stroke: #44535a; stroke-width: 1.4; }
.notch { fill: none; stroke: #12211e; stroke-width: 1.6; }
.nl, .ol, .ul { fill: #12211e; font: 600 12.5px "Helvetica Neue", Arial, sans-serif; }
.ul { font-size: 15px; }
.ot, .ut, .rt { stroke: #12211e; stroke-width: 1.3; }
.ut { stroke-width: 1.6; }
.pz { fill: #b9c3c7; stroke: #12211e; stroke-width: 1.4; fill-opacity: 0.75; }
.pz.big { fill-opacity: 0.55; }
.pzn { fill: #12211e; }
.lptr, .optr, .uptr { stroke: #b42318; stroke-width: 2; }
.lens { fill: #fff; stroke: #6f857d; stroke-width: 1.5; stroke-dasharray: 4 3; }
.rdl { fill: #12211e; font: 600 15px "Helvetica Neue", Arial, sans-serif; }
.mark { fill: #b42318; }
.rmark { stroke: #b42318; stroke-width: 2; }
.rml { fill: #b42318; font: 700 13px "Helvetica Neue", Arial, sans-serif; }
.dials { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.dials svg.doc { width: 280px; max-width: 100%; }
.bezel { fill: #2c3a3f; }
.face { fill: #fbfbf6; stroke: #12211e; stroke-width: 1; }
.dt { stroke: #12211e; stroke-width: 1.3; }
.dn { fill: #12211e; font: 700 12.5px "Helvetica Neue", Arial, sans-serif; }
.du { fill: #45574f; font: 600 12px "Helvetica Neue", Arial, sans-serif; }
.ndl { fill: #12211e; }
.hub { fill: #44535a; }
.dlab { fill: #12211e; font: 700 15px "Helvetica Neue", Arial, sans-serif; }
/* tray card */
.tray { background: #fff; border: 1.5px solid #12211e; max-width: 680px; }
.tcap { margin: 0; padding: 6px 10px; background: #0e3b35; color: #fff; display: flex; flex-wrap: wrap; gap: 2px 12px; align-items: baseline; }
.tcap span { font-size: 13.5px; color: #d9ece6; }
.tlist { list-style: none; margin: 0; padding: 8px; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.ti { display: flex; gap: 6px; align-items: center; padding: 4px 6px; border: 1px solid #c4d4ce; }
.ti.solid { border-style: dashed; }
.ticon { flex: none; width: 46px; height: auto; }
.ic { fill: none; stroke: #12211e; stroke-width: 2; stroke-linejoin: round; }
.iliq { fill: #f2d98a; }
.tt { display: grid; line-height: 1.25; }
.tn { font-size: 15px; }
.ts, .tk { font-size: 14px; }
.ts { color: #45574f; }
.nw { white-space: nowrap; font-variant-numeric: tabular-nums; }
.tkey { font-weight: 700; color: #1d4f9c; font-size: 14px; }
.tnote { margin: 0; padding: 4px 10px 8px; font-size: 14px; }
/* records */
table.doc { border-collapse: collapse; background: #fff; color: #12211e; font-size: 15px; font-variant-numeric: tabular-nums; border: 1.5px solid #12211e; }
table.doc caption { caption-side: top; text-align: left; background: #0e3b35; color: #fff; padding: 6px 10px; }
table.doc caption .dn { display: block; font: 700 15px var(--sans); }
table.doc caption .dy { display: block; font-size: 13.5px; color: #d9ece6; }
table.doc th, table.doc td { border: 1px solid #c4d4ce; padding: 5px 8px; text-align: left; vertical-align: middle; }
table.doc td { font-family: var(--mono); font-size: 14.5px; text-align: right; white-space: nowrap; min-width: 52px; }
table.doc td.tm { text-align: left; }
table.doc thead th { font-size: 13px; font-weight: 600; color: #45574f; background: #eef4f2; }
table.doc thead th.grp { text-align: center; color: #12211e; }
table.doc tbody th { font-weight: 500; }
table.doc tfoot th, table.doc tfoot td { background: #f4f8f6; font-weight: 600; }
table.doc tfoot th { text-align: right; }
table.doc.notes td { font-family: var(--sans); text-align: left; white-space: normal; }
td.blank { background: #f3f7ff; outline: 1.5px dashed #1d4f9c; outline-offset: -4px; min-width: 70px; }
td.fill { color: #1d4f9c; font-weight: 700; background: #eaf1fd; }
.multi { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: flex-start; }
.mi { margin: 0; min-width: 0; max-width: 100%; }
.mi figcaption { font-weight: 600; font-size: 14.5px; color: var(--muted); margin-bottom: 4px; }
.mi-grad { width: 180px; }

/* answer boxes */
.part { border: 0; margin: 0; padding: 0; min-width: 0; }
.part .prompt, .part legend { display: block; font-weight: 600; font-size: 16px; line-height: 1.3; margin-bottom: 4px; color: var(--ink); }
.ain { display: flex; align-items: center; gap: 8px; }
.ain input { width: 9.5em; max-width: 100%; font-variant-numeric: tabular-nums; }
.part.wide .ain input { width: 15em; }
.ain .unit { color: var(--muted); }
.part.is-right input { border-color: var(--ok); background: var(--ok-soft); }
.part.is-wrong input { border-color: var(--bad); background: var(--bad-soft); }
.part.is-close input, .part.is-unread input { border-color: var(--close); background: var(--close-soft); }
.fb { margin: 4px 0 0; font-size: 15px; line-height: 1.4; padding: 4px 8px; }
.fb.right { color: var(--ok); background: var(--ok-soft); }
.fb.wrong { color: var(--bad); background: var(--bad-soft); }
.fb.close, .fb.unread { color: var(--close); background: var(--close-soft); }
.qfoot { display: flex; gap: 10px; align-items: center; }
details.work { margin-top: 2px; border-top: 1px dashed var(--line); padding-top: 4px; }
details.work summary { cursor: pointer; color: var(--info); min-height: 44px; display: flex; align-items: center; font-weight: 600; }
details.work .figview { padding: 0; margin: 6px 0 8px; }
.ans { margin: 8px 0 2px; }
.steps { margin: 0 0 4px; padding-left: 20px; color: var(--muted); font-size: 15.5px; }
.sheet-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 14px 0 6px; }
.ask { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; background: var(--accent-soft); padding: 6px 10px; }
.share { margin: 16px 0 6px; }
.print-row { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.print-row label { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.print-row select { max-width: 100%; }
.share-out label { display: grid; gap: 4px; font-weight: 600; margin-top: 8px; }
.share-out input { width: 100%; }
.recent { margin-top: 12px; background: var(--paper); border: 1px solid var(--line); padding: 4px 12px; }
.recent summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }
.recent ul { list-style: none; margin: 0; padding: 0; }
.recent li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 6px 0; border-top: 1px solid var(--line); }
.recent small { display: block; color: var(--muted); font-size: 14px; }
.hint { color: var(--muted); font-size: 14.5px; margin: 0; }
.toast { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%) translateY(150%); background: var(--ink); color: var(--paper); padding: 10px 16px; max-width: min(92vw, 520px); font-size: 15.5px; transition: transform 0.2s; z-index: 20; }
.toast.on { transform: translateX(-50%) translateY(0); }
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }

/* ---------- content ---------- */
.content { max-width: 75ch; padding: 26px 0 20px; }
.content h2 { font-size: 27px; margin: 26px 0 6px; }
.faq details { border-top: 1px solid var(--line); }
.faq summary { cursor: pointer; font-weight: 600; padding: 10px 0; min-height: 44px; }
.faq p { margin: 0 0 12px; }
.sources { font-size: 14.5px; color: var(--muted); }
footer { border-top: 1px solid var(--line); padding: 16px 0 28px; font-size: 14.5px; color: var(--muted); }
.indep { margin: 0 0 10px; }
.sb-footer p { margin: 6px 0; }
.sb-more { line-height: 1.8; }
.print-root { display: none; }

@media (min-width: 900px) {
  .tool { grid-template-columns: minmax(0, 1fr) 360px; }
  .setup { grid-column: 1; }
  .rules { grid-column: 2; grid-row: 1 / span 2; }
  .work-area { grid-column: 1 / -1; }
  .qparts { grid-template-columns: 1fr 1fr; gap: 12px 22px; }
  .qparts .qfoot, .qparts details.work, .qparts .part.wide { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .seg6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .seg6 .sg:nth-child(4) { border-left: 0; }
  .seg6 .sg:nth-child(n+4) { border-top: 1px solid var(--edge); }
}
@media (max-width: 480px) {
  .sg span { font-size: 14px; padding: 4px 2px; }
  .hero { padding-top: 6px; padding-bottom: 6px; }
  .hero h1 { font-size: 29px; }
  .lede { font-size: 15.5px; line-height: 1.4; }
  .q h3 { font-size: 20px; padding: 8px 10px 0; }
  .scen { margin: 6px 10px 6px; }
  .figview { padding: 0 10px; }
  .qparts { padding: 8px 10px 12px; }
  table.doc { font-size: 13.5px; }
  table.doc th, table.doc td { padding: 4px 4px; }
  table.doc td { font-size: 13px; min-width: 40px; }
  table.doc.io td.blank { min-width: 48px; }
  .tlist { grid-template-columns: 1fr 1fr; padding: 6px; }
  .ticon { width: 36px; }
  .part.wide .ain input { width: 100%; }
  .tdet summary, .rules summary { min-height: 40px; padding: 8px 0; }
}
@media (max-width: 360px) {
  table.doc.io th, table.doc.io td { padding: 3px 2px; font-size: 12.5px; }
  table.doc.io td { min-width: 34px; }
  table.doc.io td.blank { min-width: 42px; }
  .tlist { grid-template-columns: 1fr; }
}

/* ---------- print ---------- */
@media print {
  :root { --ink: #000; --muted: #333; --line: #999; --paper: #fff; --edge: #555; }
  @page { margin: 12mm 12mm; }
  body { background: #fff; color: #000; font: 10.5pt/1.36 var(--sans); }
  main, footer, .toast, .skip { display: none !important; }
  .print-root { display: block; }
  svg, table.doc, table.doc caption, td.blank, td.fill, .tcap, .tray { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  table.pt { width: 100%; border-collapse: collapse; }
  table.pt > tbody > tr > td, table.pt > thead > tr > td { padding: 0; }
  .prun { font: 8.5pt var(--sans); color: #444; padding-bottom: 5pt !important; }
  .prun { display: flex; justify-content: space-between; gap: 10pt; }
  .pprac { font-style: italic; text-align: right; }
  .ph { display: flex; justify-content: space-between; align-items: baseline; gap: 10pt; border-bottom: 2pt solid #000; margin-bottom: 4pt; }
  .ph h2 { font: 700 17pt var(--head); margin: 0; white-space: nowrap; }
  .ph p { margin: 0; font-size: 9pt; text-align: right; }
  .pmeta { display: flex; justify-content: space-between; gap: 12pt; margin: 4pt 0 4pt; }
  .pround { margin: 0 0 6pt; font-size: 8.8pt; border: 0.8pt solid #000; padding: 3pt 6pt; }
  .pq, .pk { list-style: none; margin: 0; padding: 0; orphans: 1; widows: 1; }
  .pq > li, .pk > li { orphans: 2; widows: 2; }
  /* narrow instruments sit two to a row as inline blocks (Chrome breaks pages between lines, never inside one) */
  .pq > li.half, .pk > li.half { display: inline-block; vertical-align: top; width: calc(50% - 4.1mm); margin-right: 4mm; }
  .pq > li.half .pparts, .pk > li.half .pparts { grid-template-columns: 1fr; }
  .pq > li { padding: 6pt 0 7pt; border-bottom: 0.75pt solid #999; break-inside: avoid; page-break-inside: avoid; }
  .pq h3 { font: 700 12.5pt var(--head); margin: 0 0 2pt; }
  .pscen { margin: 0 0 4pt; font-size: 10.2pt; }
  .pfig, .pkfig { margin: 0 0 4pt; }
  table.doc { font-size: 9.4pt; border-width: 1pt; }
  table.doc caption { padding: 2pt 6pt; }
  table.doc caption .dn { font-size: 9.8pt; }
  table.doc caption .dy { font-size: 8.6pt; }
  table.doc th, table.doc td { padding: 1pt 5pt; line-height: 1.22; }
  table.doc td { font-size: 9pt; min-width: 34pt; }
  table.doc thead th { font-size: 8.4pt; }
  td.blank { min-width: 46pt; }
  svg.doc.grad, svg.doc.urinal { width: 34mm; height: auto; }
  svg.doc.grad { width: 40mm; }
  .pkfig svg.doc.urinal { width: 34mm; }
  .pkfig svg.doc.grad { width: 40mm; }
  .mi svg.doc.grad { width: 33mm; }
  svg.doc.hat { width: 70mm; height: auto; }
  .pkfig svg.doc.hat { width: 56mm; }
  svg.doc.rod { width: 44mm; height: auto; }
  svg.doc.beam { width: 86mm; height: auto; }
  .pkfig svg.doc.beam { width: 80mm; }
  .dials { gap: 4mm 10mm; }
  /* about 80 mm wide so the 2 mm Hg lines read on a photocopy (coordinator 2026-10-26); answer lines below */
  .dials { flex-wrap: nowrap; gap: 6mm; }
  .dials svg.doc { width: 78mm; }
  .pkfig .dials svg.doc { width: 70mm; }
  .mi-grad { width: auto; }
  .mi figcaption { font-size: 9pt; color: #000; }
  .multi { gap: 3mm 6mm; }
  .tray { max-width: none; border-width: 1pt; }
  /* no dark bands on paper: black on white with a rule under the title */
  .tcap, table.doc caption { background: #fff; color: #000; border-bottom: 1pt solid #000; }
  table.doc caption { border: 1pt solid #000; border-bottom-width: 1.5pt; }
  .tcap span, table.doc caption .dy { color: #333; }
  .tcap { padding: 2pt 6pt; }
  .tcap span { font-size: 8.6pt; }
  .tlist { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 3pt; gap: 3pt; }
  .ti { padding: 1pt 3pt; }
  .ticon { width: 9mm; }
  .tn, .ts, .tk, .tkey { font-size: 9pt; }
  .tnote { font-size: 8.8pt; padding: 1pt 6pt 3pt; }
  .pparts { display: grid; grid-template-columns: 1fr 1fr; gap: 2pt 8mm; font-size: 9.8pt; margin-top: 3pt; }
  .pparts .pp { break-inside: avoid; }
  .pparts .pp.wide { grid-column: 1 / -1; }
  .pparts .pp p { margin: 0; }
  .pline { margin: 7pt 0 3pt !important; }
  .uline { display: inline-block; width: 38mm; border-bottom: 0.8pt solid #000; }
  .pp.wide .uline { width: 70mm; }
  .pq > li.side { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 7mm; align-items: start; }
  .pq > li.side > h3, .pq > li.side > .pscen { grid-column: 1 / -1; }
  .pq > li.side .pparts { grid-template-columns: 1fr; margin-top: 0; }
  .pk > li.side { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 6mm; align-items: start; }
  .pk > li.side > h3 { grid-column: 1 / -1; }
  .pk > li.side table.pkt { margin-top: 0; }
  .pkey { break-before: page; page-break-before: always; }
  .psheet + .psheet { break-before: page; page-break-before: always; }
  .pkey + .pkey { break-before: page; page-break-before: always; }
  .pk > li { padding: 5pt 0 7pt; border-bottom: 0.75pt solid #999; break-inside: avoid; page-break-inside: avoid; }
  .pk > li:last-child { break-before: avoid; page-break-before: avoid; }
  .pk h3 { font: 700 11.5pt var(--head); margin: 0 0 3pt; }
  td.fill { color: #000; background: #e8e8e8; }
  .kline { stroke: #000; }
  .kt, .tkey { fill: #000; color: #000; }
  table.pkt { width: 100%; border-collapse: collapse; font-size: 9pt; margin-top: 3pt; table-layout: fixed; }
  table.pkt td { border-top: 0.5pt solid #bbb; padding: 2pt 4pt; vertical-align: top; }
  table.pkt td.pkq { width: 30%; }
  table.pkt td.pka { width: 16%; font-weight: 700; }
}
