/* ============================================
   Shared visual system for Montgomery's Cardiology Primers
   ============================================ */

:root{
  --primer-red:#DA291C;
  --primer-red-deep:#A6201A;
  --primer-red-dark:#7d1813;

  --ink:#0b0b0c;
  --ink-2:#2b2b2f;
  --ink-3:#5e5e64;
  --ink-4:#9a9aa1;

  --paper:#ffffff;
  --paper-warm:#faf7f2;
  --rule:#0b0b0c;
  --rule-hair:#d8d4cd;
  --rule-soft:#e8e4dc;

  --tint:#fbf3f1;       /* red-tinted strip */
  --tint-amber:#fff7d6; /* alarm amber strip */
  --tint-amber-deep:#f0c41a;
  --tint-blue:#eaf2fb;
  --tint-blue-line:#1f4c8a;

  /* circuit colors */
  --venous:#1f4c8a;
  --venous-dark:#102a52;
  --arterial:#c5142a;
  --arterial-dark:#7e0e1d;
  --gas:#1f8a5b;

  --ok:#1f6b3a;
  --warn:#b76c00;
  --stop:#9c1010;
}

*{box-sizing:border-box}
html,body{
  margin:0;padding:0;
  background:#7a7a7a;
  font-family:"Hanken Grotesk",ui-sans-serif,system-ui,sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

/* viewport stage (screen only) */
.stage{
  min-height:100vh;
  padding:24px 16px 48px;
  display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:28px;
  background:
    radial-gradient(1200px 600px at 50% -100px, #9c9c9c 0%, #6a6a6a 60%, #545458 100%);
}

/* Letter sheet — 8.5in × 11in @ 96dpi */
.page{
  width:8.5in;height:11in;
  background:var(--paper);
  color:var(--ink);
  position:relative;
  padding:.24in .34in .22in;
  box-shadow:0 18px 40px rgba(0,0,0,.28), 0 1px 0 rgba(0,0,0,.15);
  font-feature-settings:"ss01","cv11","tnum" 0;
  font-size:7.9pt;
  line-height:1.26;
  letter-spacing:.005em;
  overflow:hidden;
  display:flex;flex-direction:column;
}

/* Print rules */
@page { size: Letter; margin: 0; }
@media print{
  /* print-color-adjust is inherited → forces dark mastheads, table
     headers, badges & dark cards to actually ink (default print
     settings drop backgrounds, which would white-out the chrome). */
  html,body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .stage{padding:0;background:#fff;display:block;gap:0}
  /* height is 1px under the 11in Letter sheet so the box never coincides
     exactly with the page-content boundary. An element whose height equals
     the printable height, combined with page-break-after, makes some Chrome
     builds bump a sub-pixel sliver onto a second sheet (fencepost) → each
     .page renders as 2 sheets. The 1px slack removes the boundary coincidence
     without moving any content (only the footer's auto-margin gap shrinks 1px). */
  .page{box-shadow:none;width:8.5in;height:calc(11in - 1px);page-break-after:always}
  .page:last-child{page-break-after:auto}
}

/* ---------- Header ---------- */
.head{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:12px;
  padding-bottom:6px;
  border-bottom:2px solid var(--ink);
}
.head .logo{height:62px;width:auto;display:block}
.head--mini{padding-bottom:6px;border-bottom:1.5px solid var(--ink)}
.head--mini .logo{height:42px}
.head--mini .title h1{font-size:16pt}
.head--mini .title .sub{font-size:7pt;margin-top:3px}

.head .title h1{
  margin:0;font-weight:800;letter-spacing:-.02em;
  font-size:20pt;line-height:.95;
  white-space:nowrap;
}
.head .title h1 .em{color:var(--primer-red)}
.head .title{min-width:0;overflow:hidden}
.head .title h1{overflow:hidden;text-overflow:ellipsis}
.head .title .sub{
  margin-top:4px;overflow:hidden;text-overflow:ellipsis;
  color:var(--ink-3);font-size:7.6pt;letter-spacing:.06em;text-transform:uppercase;font-weight:500;
  white-space:nowrap;
}
.head .title .sub b{color:var(--ink);font-weight:700;letter-spacing:.08em}
.head .title .sub .dot{color:var(--primer-red);font-weight:800;margin:0 4px}
.head .meta{text-align:right;font-size:7pt;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.head .meta .page-tag{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:600;color:var(--ink);font-size:7.5pt;letter-spacing:.08em;
}
.head .meta .modality{
  margin-top:3px;
  display:inline-block;background:var(--ink);color:#fff;
  padding:3px 7px;border-radius:2px;font-weight:800;letter-spacing:.12em;font-size:7.2pt;
}
.head .meta .modality .dot{display:inline-block;width:5px;height:5px;background:var(--primer-red);border-radius:50%;margin-right:5px;vertical-align:middle;transform:translateY(-1px)}

.evidence-notice{display:flex;align-items:flex-start;gap:8px;margin:5px 0 3px;padding:5px 8px;border-left:3px solid var(--warn);background:var(--tint-amber);font-size:6.6pt;line-height:1.3;color:var(--ink-2)}
.evidence-notice b{flex:none;color:var(--stop);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:6pt;letter-spacing:.08em}
@media print{.page:not(:first-child) > .evidence-notice{display:none}}

/* ---------- EMERGENCY BANNER (top of page 1) ---------- */
.emerg{
  margin-top:6px;
  border:1.25px solid var(--stop);
  background:var(--tint-amber);
  display:grid;grid-template-columns:auto 1fr;gap:0;align-items:stretch;
  font-size:7pt;line-height:1.24;
}
.emerg .lbl{
  background:var(--stop);color:#fff;font-weight:800;letter-spacing:.12em;
  padding:4px 8px;font-size:7pt;text-transform:uppercase;
  display:flex;align-items:center;gap:5px;
  text-align:center;
}
.emerg .lbl::before{
  content:"";display:inline-block;width:0;height:0;
  border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #fff;
  margin-right:3px;
}
.emerg .cells{
  display:grid;grid-template-columns:repeat(4, 1fr);
}
.emerg .cell{
  padding:4px 7px;border-right:1px dashed rgba(156,16,16,.45);
}
.emerg .cell:last-child{border-right:0}
.emerg .cell .k{
  display:block;font-size:6.2pt;letter-spacing:.08em;text-transform:uppercase;font-weight:800;
  color:var(--stop);margin-bottom:1px;
}
.emerg .cell .v{color:var(--ink);font-size:6.7pt;line-height:1.22}
.emerg .cell .v b{font-weight:700}
.emerg .cell .v .mono,.emerg .cell .v code{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;font-size:6.6pt;
}

/* Stop-pump pill inline */
.stop-pill{
  display:inline-block;background:var(--stop);color:#fff;font-weight:800;
  font-size:6pt;letter-spacing:.08em;text-transform:uppercase;
  padding:1px 4px;border-radius:1px;line-height:1.15;
  vertical-align:1px;white-space:nowrap;
}
.alarm-pill{
  display:inline-block;background:var(--tint-amber-deep);color:#3a2e00;font-weight:800;
  font-size:6.4pt;letter-spacing:.1em;text-transform:uppercase;
  padding:1px 5px;border-radius:1px;line-height:1.15;
  border:1px solid #b58c00;
  vertical-align:1px;
}

/* ---------- Section banner ---------- */
.band{
  display:flex;align-items:center;gap:10px;
  margin:8px 0 5px;
  flex-wrap:nowrap;
}
.band .num{
  flex:none;
  width:20px;height:20px;border-radius:50%;
  background:var(--primer-red);color:#fff;display:grid;place-items:center;
  font-weight:800;font-size:9pt;letter-spacing:0;
}
.band h2{
  flex:none;
  margin:0;font-size:10.5pt;font-weight:800;letter-spacing:-.005em;
  white-space:nowrap;
}
.band .rule{flex:1;height:1px;background:var(--ink);align-self:center;min-width:20px}
.band .tag{
  flex:none;max-width:55%;
  font-size:7pt;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
  white-space:nowrap;
  background:var(--paper);padding-left:6px;
}

/* ---------- 3-column section under a band ---------- */
.cols3{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;
  border-top:1px solid var(--rule-hair);
  border-bottom:1px solid var(--rule-hair);
  margin-top:6px;
}
.cols3 > .col{
  padding:6px 9px 7px 0;
  border-right:1px solid var(--rule-hair);
}
.cols3 > .col:nth-child(2){padding-left:9px}
.cols3 > .col:nth-child(3){padding-left:9px;border-right:0;padding-right:0}

.cols2{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--rule-hair);
  border-bottom:1px solid var(--rule-hair);
}
.cols2 > .col{padding:6px 9px 7px 0;border-right:1px solid var(--rule-hair)}
.cols2 > .col:nth-child(2){padding-left:9px;border-right:0;padding-right:0}

.colhead{
  display:grid;grid-template-columns:auto 1fr;column-gap:6px;row-gap:1px;
  margin-bottom:3px;align-items:baseline;
}
.colhead .k{
  grid-row:1 / span 2;align-self:start;
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:8pt;color:var(--primer-red);font-weight:700;letter-spacing:.04em;
  padding-top:2px;
}
.colhead h3{margin:0;font-size:10pt;font-weight:800;letter-spacing:-.01em;line-height:1.05}
.colhead .when{
  font-size:6.4pt;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
  grid-column:2;
}

/* sub-headings */
.sub-h{
  margin:4px 0 1px;font-size:6.9pt;font-weight:800;
  text-transform:uppercase;letter-spacing:.08em;color:var(--ink);
  display:flex;align-items:center;gap:6px;
  line-height:1.18;
}
.sub-h::before{
  content:"";display:inline-block;width:5px;height:5px;background:var(--ink);flex:none;
}
.sub-h.alt::before{background:var(--primer-red)}
.sub-h.amber::before{background:var(--tint-amber-deep)}
.sub-h.venous::before{background:var(--venous)}
.sub-h.arterial::before{background:var(--arterial)}

/* dense lists */
ul.dense{margin:0;padding:0;list-style:none}
ul.dense li{padding:1.5px 0 1.5px 8px;position:relative;font-size:7pt;line-height:1.24}
ul.dense li::before{
  content:"";position:absolute;left:0;top:0.65em;
  width:4px;height:1px;background:var(--ink);
}
ul.dense li b{font-weight:700}
ul.dense li .lead{font-weight:700;color:var(--ink)}
ul.dense li .dose,.mono,code,.num-mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;font-size:7.2pt;color:var(--ink)}
ul.dense li .muted,.muted{color:var(--ink-3)}
ul.dense li .warn,.warn-inline{color:var(--primer-red-deep);font-weight:700}
ul.dense.compact li{padding:1.5px 0 1.5px 9px;font-size:6.95pt;line-height:1.22}

/* 2-column dense list — keep bullets contiguous in two text columns */
ul.dense.compact.dense-2col{column-count:2;column-gap:18px;padding-top:2px}
ul.dense.compact.dense-2col > li{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}

/* indication callout */
.indic{
  border-left:2px solid var(--primer-red);
  background:var(--tint);
  padding:3px 7px;margin:3px 0 3px;
  font-size:7.2pt;line-height:1.26;
}
.indic > b:first-child{display:block;font-size:6.6pt;letter-spacing:.1em;text-transform:uppercase;color:var(--primer-red-deep);margin-bottom:1px;font-weight:800}
.indic.warn{border-left-color:var(--stop);background:var(--tint-amber)}
.indic.warn > b:first-child{color:var(--stop)}

/* dashed warn box */
.hold{
  display:flex;gap:6px;align-items:flex-start;margin-top:5px;padding:5px 7px;
  background:#fff;border:1px dashed var(--primer-red);font-size:7.6pt;
}
.hold .stamp{
  flex:none;font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;
  color:var(--primer-red);font-size:7pt;letter-spacing:.08em;
}

/* tables */
table.tbl{
  width:100%;border-collapse:collapse;font-size:7.6pt;line-height:1.25;
  margin-top:3px;
}
table.tbl th, table.tbl td{
  padding:3px 7px;border-bottom:1px solid var(--rule-hair);vertical-align:top;text-align:left;
}
table.tbl thead th{
  background:var(--ink);color:#fff;font-size:6.6pt;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 7px;font-weight:700;border-bottom:0;
}
table.tbl tbody tr:nth-child(odd) td{background:var(--paper-warm)}
table.tbl tbody tr:last-child td{border-bottom:0}
table.tbl td .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;font-size:7.4pt}
table.tbl td .label{display:inline-block;font-size:6.8pt;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}
table.tbl .phase{font-weight:800;letter-spacing:.04em;white-space:nowrap}

/* CTCAE-style grid (used for Pressure Pattern grid) */
.grade-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--rule-hair);
}
.grade-cell{
  padding:4px 8px 5px;border-right:1px solid var(--rule-hair);
  display:grid;grid-template-columns:auto 1fr;column-gap:6px;row-gap:0;
  align-items:start;
}
.grade-cell:last-child{border-right:0}
.grade-cell .g-lbl{
  grid-row:1 / span 2;
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:800;font-size:9.5pt;color:var(--primer-red);
  line-height:.95;letter-spacing:-.02em;
  padding-top:1px;
}
.grade-cell .g-name{
  font-size:6.8pt;font-weight:800;letter-spacing:.04em;color:var(--ink);
  text-transform:uppercase;line-height:1;padding-top:1px;
}
.grade-cell .g-body{
  grid-column:2;font-size:6.9pt;line-height:1.25;color:var(--ink-2);margin-top:1px;
}
.grade-cell .g-body b{color:var(--ink);font-weight:700}
.grade-cell .g-body .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;font-size:7.2pt;color:var(--ink)}
.grade-cell.warn-bg{background:var(--tint)}
.grade-cell.alarm-bg{background:var(--tint-amber)}

/* Pressure pattern arrow */
.arrows{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:800;font-size:11pt;letter-spacing:.05em;
  line-height:.9;display:flex;gap:8px;align-items:baseline;
  margin:1px 0 3px;
}
.arrows .ar{display:inline-flex;flex-direction:column;align-items:center}
.arrows .ar small{font-size:5.6pt;color:var(--ink-3);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:"Hanken Grotesk",sans-serif}
.arrows .up{color:var(--stop)}
.arrows .dn{color:var(--venous)}
.arrows .flat{color:var(--ink-3)}

/* Pearls/strip */
.mech-strip{
  display:grid;grid-template-columns:auto repeat(4,1fr);gap:0;
  border:1px solid var(--rule-hair);
  margin-top:5px;
}
.mech-strip.mech-strip--5{grid-template-columns:auto repeat(5,1fr)}
.ms-cell{padding:4px 8px 5px;border-right:1px solid var(--rule-hair);font-size:6.8pt;line-height:1.25}
.ms-cell:last-child{border-right:0}
.ms-cell.ms-hdr{
  background:var(--ink);color:#fff;padding:3px 9px;
  display:flex;align-items:center;justify-content:center;min-width:80px;
}
.ms-hdr-lbl{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:6.8pt;text-align:center;line-height:1.15}
.ms-k{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;color:var(--primer-red);font-size:7.2pt;letter-spacing:.02em;margin-bottom:1px}
.ms-v{color:var(--ink-2);margin-bottom:2px}
.ms-kin{margin-top:2px;padding-top:2px;border-top:1px dotted var(--rule-soft);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:6.2pt;color:var(--ink-2);font-weight:500;letter-spacing:.01em;line-height:1.2}
.ms-kin .ms-kin-l{color:var(--ink-3);font-weight:700;text-transform:uppercase;font-size:5.8pt;letter-spacing:.06em}
.ms-ae{margin-top:2px;padding-top:2px;border-top:1px dotted var(--rule-soft);font-size:6.5pt;color:var(--ink-2);line-height:1.25}
.ms-ae .ms-ae-l{color:var(--primer-red);font-weight:800;text-transform:uppercase;font-size:5.8pt;letter-spacing:.08em;margin-right:3px}

/* Compact rounds variant — 2-line cells (drops kin/ae rows; folds target into the key) */
.mech-strip--rounds .ms-cell{padding:4px 7px 5px;font-size:6.7pt;line-height:1.22}
.mech-strip--rounds .ms-cell.ms-hdr{padding:3px 8px;min-width:64px}
.mech-strip--rounds .ms-k{margin-bottom:2px;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.mech-strip--rounds .ms-k .ms-tgt{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  color:var(--ink);font-weight:500;font-size:6.3pt;letter-spacing:.01em;
  text-transform:none;
}
.mech-strip--rounds .ms-v{margin-bottom:0;color:var(--ink-2)}
.mech-strip--rounds .ms-v b{color:var(--ink)}

/* Targets bar */
.targets{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}
.t-card{border:1px solid var(--rule-hair);background:var(--paper-warm);padding:5px 8px 6px}
.t-card.alert{border-color:var(--primer-red);background:var(--tint)}
.t-card.amber{border-color:#b58c00;background:var(--tint-amber)}
.t-card .t-lbl{font-size:6.8pt;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--primer-red);margin-bottom:3px}
.t-card.alert .t-lbl{color:var(--primer-red-deep)}
.t-card.amber .t-lbl{color:#7a5a00}
.t-card .t-body{font-size:7.4pt;line-height:1.3;color:var(--ink)}
.t-card .t-body .muted{color:var(--ink-3)}
.t-card .t-body b{font-weight:700}

/* MCS-style row table */
.mcs{margin-top:3px}
.mcs .row-m{
  display:grid;grid-template-columns:72px 1fr;gap:8px;
  padding:4px 0;border-bottom:1px dotted var(--rule-soft);
  font-size:7.4pt;line-height:1.26;
}
.mcs .row-m:last-child{border-bottom:0}
.mcs .row-m .k{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:6.8pt;
  color:var(--primer-red);font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding-top:1px;
}
.mcs .row-m .v b{font-weight:700}

/* device comparison */
.device-compare{
  display:grid;grid-template-columns:auto 1fr 1fr;gap:0;
  border:1px solid var(--rule-hair);margin-top:4px;
  font-size:7.3pt;line-height:1.26;
}
.device-compare > div{padding:4px 8px;border-bottom:1px solid var(--rule-hair);border-right:1px solid var(--rule-hair)}
.device-compare > div:nth-child(3n){border-right:0}
.device-compare > .hdr{background:var(--ink);color:#fff;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:6.6pt;padding:5px 8px;border-bottom:0}
.device-compare > .hdr.vh{background:var(--ink-2)}
.device-compare > .row-k{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;color:var(--primer-red);
  font-size:6.8pt;letter-spacing:.04em;text-transform:uppercase;
  background:var(--paper-warm);
}
.device-compare .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;font-size:7.2pt}

/* Footer */
.footer{
  margin-top:auto;display:grid;grid-template-columns:1fr 145px;gap:14px;align-items:end;
  border-top:2px solid var(--ink);padding-top:5px;
}
.footer .refs{font-size:6.4pt;line-height:1.3;color:var(--ink-3)}
.footer .refs b{color:var(--ink);font-weight:700}
.footer .ref-grp{margin-bottom:2px;font-size:6.4pt;line-height:1.3;color:var(--ink-2)}
.footer .ref-grp:last-child{margin-bottom:0}
.footer .ref-h{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;color:var(--primer-red);font-size:6.2pt;text-transform:uppercase;letter-spacing:.08em;margin-right:5px}
.footer .refs i{font-style:italic;color:var(--ink)}
.footer .stamp{
  text-align:right;font-size:6.6pt;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;line-height:1.35;
}
.footer .stamp .ser{font-family:"Newsreader",ui-serif,Georgia,serif;font-style:italic;font-weight:500;font-size:9pt;color:var(--ink);letter-spacing:0;text-transform:none;display:block;margin-bottom:2px}

.pfoot{
  margin-top:auto;padding-top:4px;
  display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;
  border-top:1px solid var(--rule-hair);
}
.pfoot .refs{font-size:6.9pt;color:var(--ink-3);letter-spacing:.02em;line-height:1.3}
.pfoot .refs b{color:var(--primer-red);font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:7pt;margin-right:6px}
.pfoot .stamp{text-align:right;font-size:6.8pt;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.pfoot .stamp .ser{font-family:"Newsreader",ui-serif,Georgia,serif;font-style:italic;font-weight:500;font-size:8.5pt;color:var(--ink);letter-spacing:0;text-transform:none}
.pfoot .refs .report{margin-top:2px;font-style:italic;color:var(--ink-3)}
.pfoot .refs .report a{font-style:normal;font-weight:600;color:var(--primer-red);text-decoration:none}

/* utilities */
.row{display:flex;gap:6px;align-items:baseline}
.flex-sb{display:flex;justify-content:space-between;align-items:baseline}
.small{font-size:7pt}
.uc{text-transform:uppercase;letter-spacing:.08em}
.strong{font-weight:700;color:var(--ink)}
.nowrap{white-space:nowrap}

.pathophys{
  margin-top:4px;padding:3px 7px 4px;
  background:#fff;border-left:2px solid var(--ink);
  font-size:6.7pt;line-height:1.25;color:var(--ink-2);
}
.pathophys .pp-h{
  font-family:"Newsreader",ui-serif,Georgia,serif;font-style:italic;font-weight:500;
  color:var(--primer-red);font-size:7.4pt;line-height:1;margin-bottom:2px;
}
.pathophys b, .pathophys .lead-row{color:var(--ink);font-weight:700}

/* circuit diagram container */
.circuit-wrap{
  margin-top:5px;
  border:1px solid var(--rule-hair);
  background:var(--paper-warm);
  padding:6px 10px 4px;
  display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:start;
}
.circuit-wrap .legend{
  font-size:6.6pt;line-height:1.3;color:var(--ink-2);
}
.circuit-wrap .legend .lh{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;color:var(--primer-red);font-size:6.4pt;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.circuit-wrap .legend .lk{display:flex;align-items:center;gap:5px;margin-bottom:2px;white-space:nowrap}
.circuit-wrap .legend .lk b{font-weight:700;color:var(--ink)}
.circuit-wrap .legend .lk .sw{width:14px;height:6px;border-radius:1px;flex:none;display:inline-block}
.circuit-wrap .legend .lk .sw.v{background:var(--venous)}
.circuit-wrap .legend .lk .sw.a{background:var(--arterial)}
.circuit-wrap .legend .lk .sw.g{background:var(--gas)}
.circuit-wrap .legend .lk .sw.p{background:var(--ink);color:#fff;width:auto;height:auto;padding:0 4px;font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;font-size:6pt;letter-spacing:.05em;border-radius:1px}
.circuit-wrap svg{width:100%;height:auto}

/* trigger row */
.trigger-row .t{
  padding:2px 0 3px;font-size:6.95pt;line-height:1.23;
  border-bottom:1px dotted var(--rule-soft);
}
.trigger-row .t:last-child{border-bottom:0}
.trigger-row .t .h{
  font-size:6.2pt;letter-spacing:.1em;text-transform:uppercase;color:var(--primer-red-deep);font-weight:800;
  margin-bottom:0;
}

/* alarm card */
.alarm-card{
  margin:4px 0 3px;border:1px solid #b58c00;background:var(--tint-amber);
  padding:4px 7px;font-size:7pt;line-height:1.25;
}
.alarm-card .ah{
  font-size:6.4pt;letter-spacing:.1em;text-transform:uppercase;color:#7a5a00;font-weight:800;
  margin-bottom:1px;display:flex;align-items:center;gap:4px;
}
.alarm-card .ah::before{
  content:"!";display:inline-grid;place-items:center;
  width:11px;height:11px;background:#b58c00;color:#fff;
  font-weight:800;font-size:7.5pt;line-height:1;border-radius:50%;
}
.alarm-card.stop{border-color:var(--stop);background:#fdeae8}
.alarm-card.stop .ah{color:var(--stop)}
.alarm-card.stop .ah::before{background:var(--stop)}

/* North-South diagram styling for SVG */
.ns-wrap{margin-top:4px;border:1px solid var(--rule-hair);background:var(--paper-warm);padding:6px 8px}
.ns-wrap svg{width:100%;height:auto;display:block}

/* 5 H's & 5 T's inline checklist */
.hts-grid{
  display:grid;grid-template-columns:1fr 1fr;column-gap:8px;row-gap:1px;
  margin:3px 0 0;padding:4px 6px;
  background:var(--paper-warm);border-left:2px solid var(--ink);
  font-size:6.6pt;line-height:1.25;color:var(--ink-2);
}
.hts-grid > div{white-space:normal}
.hts-grid .ht{
  display:inline-block;min-width:7px;
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:800;color:var(--primer-red);
}

/* Compact key/value flow grid (settings) */
.lever-grid{
  display:grid;grid-template-columns:1fr;gap:4px;margin-top:4px;
}
.lever{
  border:1px solid var(--rule-hair);background:#fff;
  padding:3px 7px 4px;font-size:6.95pt;line-height:1.23;
  display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:start;
}
.lever .lk{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  gap:0;width:58px;flex:none;border-right:1px dotted var(--rule-soft);padding-right:5px;
}
.lever .lk .lk-num{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:800;font-size:13pt;color:var(--primer-red);line-height:.9;
}
.lever .lk h4{margin:1px 0 0;font-size:7.6pt;font-weight:800;letter-spacing:-.01em;line-height:1;text-align:center}
.lever .lk .role{font-size:5.6pt;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-top:1px;text-align:center}
.lever .body{color:var(--ink-2);align-self:center}
.lever .body b{color:var(--ink)}
.lever .body .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;font-size:6.9pt}

/* Workflow timeline */
.timeline{
  position:relative;margin-top:4px;padding-left:9px;border-left:1.5px solid var(--rule-hair);
}
.tl-row{
  display:grid;grid-template-columns:48px 1fr;column-gap:8px;
  padding:3px 0;font-size:7.4pt;line-height:1.28;position:relative;
}
.tl-row::before{content:"";position:absolute;left:-12px;top:7px;width:7px;height:7px;background:#fff;border:1.5px solid var(--ink-3);border-radius:50%}
.tl-row--milestone::before{background:var(--primer-red);border-color:var(--primer-red)}
.tl-row + .tl-row{border-top:1px dotted var(--rule-soft)}
.tl-day{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;color:var(--primer-red);font-size:7.1pt;letter-spacing:.02em;padding-top:1px}
.tl-evt{color:var(--ink-2)}
.tl-evt b{color:var(--ink);font-weight:700}
.tl-evt .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;font-size:7.2pt;color:var(--ink)}
.tl-row--milestone .tl-evt{color:var(--ink)}

/* venous / arterial badges */
.vbadge,.abadge{
  display:inline-block;padding:1px 5px;font-size:6.4pt;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;border-radius:1px;line-height:1.2;
}
.vbadge{background:var(--venous);color:#fff}
.abadge{background:var(--arterial);color:#fff}

/* ===== Device reference (Page 5) ===== */
.device-page{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
  margin-top:6px;
}
.device-card{
  border:1px solid var(--rule-hair);background:#fff;
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
}
.device-card .dc-hd{
  background:var(--ink);color:#fff;padding:6px 10px;
  display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  border-bottom:2px solid var(--primer-red);
}
.device-card .dc-hd .brand{
  font-family:"Hanken Grotesk",sans-serif;font-weight:800;font-size:11pt;
  letter-spacing:-.01em;line-height:1;
}
.device-card .dc-hd .brand .tm{font-size:6.5pt;vertical-align:super;letter-spacing:0}
.device-card .dc-hd .vendor{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:600;font-size:6.4pt;color:#ffb9b3;letter-spacing:.1em;text-transform:uppercase;
}
.device-card .dc-hd .dur{
  background:#fff;color:var(--ink);font-weight:800;font-size:6.2pt;
  padding:2px 5px;border-radius:1px;letter-spacing:.06em;text-transform:uppercase;
  white-space:nowrap;
}
.device-card .dc-hd .dur.amber{background:var(--tint-amber-deep);color:#3a2e00}

.device-card .dc-body{padding:6px 9px 7px;display:flex;flex-direction:column;gap:5px;flex:1}

.device-card svg.console-svg{
  width:100%;height:auto;display:block;
  background:var(--paper-warm);border:1px solid var(--rule-soft);padding:3px;
  max-height:180px;
}

/* Numbered callout list */
.callouts{
  display:grid;grid-template-columns:1fr 1fr;column-gap:8px;row-gap:0;
  margin-top:2px;
  font-size:6.2pt;line-height:1.2;
}
.callouts .co{
  display:grid;grid-template-columns:auto 1fr;column-gap:4px;align-items:baseline;
  padding:0;
}
.callouts .co .n{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-weight:800;font-size:6.5pt;color:#fff;background:var(--primer-red);
  width:11px;height:11px;display:inline-grid;place-items:center;border-radius:50%;
  line-height:1;flex:none;
}
.callouts .co b{color:var(--ink);font-weight:700;letter-spacing:.005em}
.callouts .co .v{color:var(--ink-2)}

/* Spec rows */
.spec-rows{
  display:grid;grid-template-columns:auto 1fr;column-gap:7px;row-gap:0;
  border-top:1px dotted var(--rule-soft);
  padding-top:2px;margin-top:1px;
  font-size:6.5pt;line-height:1.22;
}
.spec-rows .k{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  color:var(--primer-red);font-weight:700;font-size:5.8pt;
  letter-spacing:.06em;text-transform:uppercase;
  padding:2px 0 2px;border-bottom:1px dotted var(--rule-soft);
  white-space:nowrap;
}
.spec-rows .v{
  color:var(--ink-2);padding:2px 0 2px;border-bottom:1px dotted var(--rule-soft);
}
.spec-rows .v b{color:var(--ink);font-weight:700}
.spec-rows .v .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;font-size:6.6pt;color:var(--ink)}
.spec-rows > div:nth-last-child(-n+2){border-bottom:0}

/* Trainee bedside-tips block (replaces spec-rows on device cards) */
.tips{
  border-top:1px dotted var(--rule-soft);padding-top:3px;margin-top:1px;
  display:grid;grid-template-columns:1fr;gap:0;
}
.tips .tip{
  display:grid;grid-template-columns:auto 1fr;column-gap:6px;
  padding:2px 0;border-bottom:1px dotted var(--rule-soft);
  font-size:6.9pt;line-height:1.25;
}
.tips .tip:last-child{border-bottom:0}
.tips .tip .k{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  color:var(--primer-red);font-weight:700;font-size:6.2pt;
  text-transform:uppercase;letter-spacing:.06em;
  padding-top:1px;white-space:nowrap;
}
.tips .tip .v{color:var(--ink-2)}
.tips .tip .v b{color:var(--ink);font-weight:700}
.tips .tip .v .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;font-size:6.9pt;color:var(--ink)}

.diff-h{
  display:flex;align-items:baseline;gap:6px;margin:3px 0 2px;
  font-size:6.8pt;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
}
.diff-h::before{content:"vs";font-family:"Newsreader",ui-serif,Georgia,serif;font-style:italic;font-weight:500;font-size:8.5pt;color:var(--primer-red);text-transform:none;letter-spacing:0;line-height:1}

/* ============== PAGE 6 — SCENARIO PLAYBOOK ============== */
.scn-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;
  margin-top:6px;
}
.scn{
  border:1px solid var(--rule-hair);background:#fff;
  display:flex;flex-direction:column;
  font-size:6.9pt;line-height:1.24;
  overflow:hidden;
}
.scn .scn-hd{
  background:var(--ink);color:#fff;
  display:grid;grid-template-columns:auto 1fr auto;column-gap:6px;align-items:center;
  padding:4px 7px;border-bottom:2px solid var(--primer-red);
}
.scn .scn-hd .scn-n{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:8pt;font-weight:800;color:var(--primer-red);letter-spacing:.04em;
}
.scn .scn-hd .scn-name{
  font-size:8pt;font-weight:800;letter-spacing:-.01em;line-height:1.05;
}
.scn .scn-hd .scn-class{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:5.6pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#ffb9b3;
}
.scn-shows{
  background:#0e131a;color:#cfcdc6;
  padding:4px 7px;
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:6pt;
  display:grid;grid-template-columns:repeat(2,1fr);column-gap:6px;row-gap:1px;
  border-bottom:1px solid var(--rule-hair);
}
.scn-shows .pip{display:flex;justify-content:space-between;align-items:baseline;gap:4px}
.scn-shows .pip .lbl{color:#7a8290;font-size:5.4pt;letter-spacing:.06em;text-transform:uppercase}
.scn-shows .pip .val{font-weight:800;font-size:6.4pt}
.scn-shows .pip .val.warn{color:#ff7a7a}
.scn-shows .pip .val.ok{color:#9bd1a3}
.scn-shows .pip .val.dim{color:#7a8290}
.scn-shows .pip .val.flow{color:#7fdbff}

.scn-body{padding:4px 7px 5px;display:flex;flex-direction:column;gap:3px;flex:1}
.scn-step{
  display:grid;grid-template-columns:34px 1fr;column-gap:6px;align-items:start;
  padding-bottom:2px;border-bottom:1px dotted var(--rule-soft);
}
.scn-step:last-child{border-bottom:0;padding-bottom:0}
.scn-step .stk{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:5.8pt;letter-spacing:.08em;text-transform:uppercase;
  font-weight:800;color:var(--primer-red);padding-top:1px;
}
.scn-step.stop .stk{color:var(--stop)}
.scn-step.think .stk{color:var(--ink)}
.scn-step.do .stk{color:var(--primer-red)}
.scn-step.call .stk{color:var(--ink-3)}
.scn-step .stv{color:var(--ink-2);font-size:6.7pt;line-height:1.24}
.scn-step .stv b{color:var(--ink);font-weight:700}
.scn-step .stv .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;color:var(--ink);font-size:6.7pt}

/* "Three things that always come first" strip */
.always{
  margin-top:7px;border:1.25px solid var(--stop);background:var(--tint-amber);
  display:grid;grid-template-columns:auto repeat(3,1fr);gap:0;
}
.always .alw-hd{
  background:var(--stop);color:#fff;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 9px;font-size:7pt;display:flex;align-items:center;text-align:center;line-height:1.15;
}
.always .alw{
  padding:5px 9px 5px;border-right:1px dashed rgba(156,16,16,.45);
}
.always .alw:last-child{border-right:0}
.always .alw .h{
  font-size:6.4pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--stop);
  margin-bottom:2px;
}
.always .alw .v{font-size:6.9pt;line-height:1.25;color:var(--ink)}
.always .alw .v b{font-weight:700}

/* Daily-rounds system grid (Page 4) */
.sys-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--rule-hair);margin-top:4px;
}
.sys-cell{
  padding:4px 8px 5px;
  border-right:1px solid var(--rule-hair);
  border-bottom:1px solid var(--rule-hair);
  font-size:6.7pt;line-height:1.24;
}
.sys-cell:nth-child(4n){border-right:0}
.sys-cell:nth-last-child(-n+4){border-bottom:0}
.sys-cell .sys-h{
  font-size:6.8pt;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  color:var(--ink);margin-bottom:2px;
  display:flex;align-items:center;gap:5px;
}
.sys-cell .sys-h::before{
  content:"";width:4px;height:4px;background:var(--primer-red);display:inline-block;flex:none;
}
.sys-cell .sys-b{color:var(--ink-2)}
.sys-cell .sys-b b{color:var(--ink);font-weight:700}
.sys-cell .sys-b .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:500;font-size:6.7pt;color:var(--ink)}

/* Compact framework strip (5-domain) for top of P4 */
.frame-strip{
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  border:1.25px solid var(--ink);margin-top:4px;
}
.frame-cell{padding:5px 8px 5px;border-right:1px solid var(--rule-hair);position:relative}
.frame-cell:last-child{border-right:0}
.frame-cell .fc-n{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:9pt;font-weight:800;color:var(--primer-red);line-height:1;
}
.frame-cell .fc-h{
  font-size:7pt;font-weight:800;letter-spacing:-.005em;line-height:1.08;margin:2px 0 2px;
  text-wrap:balance;
}
.frame-cell .fc-b{font-size:6.4pt;line-height:1.22;color:var(--ink-2)}
.frame-cell .fc-b b{color:var(--ink);font-weight:700}

/* HLS sets compare */
.hls-compare{
  display:grid;grid-template-columns:auto 1fr 1fr;
  border:1px solid var(--rule-hair);
  margin-top:3px;font-size:6.2pt;line-height:1.2;
}
.hls-compare > div{padding:1.5px 6px;border-bottom:1px solid var(--rule-soft);border-right:1px solid var(--rule-soft)}
.hls-compare > div:nth-child(3n){border-right:0}
.hls-compare > div:nth-last-child(-n+3){border-bottom:0}
.hls-compare .h{background:var(--ink);color:#fff;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:5.6pt;padding:2px 6px;border-bottom:0}
.hls-compare .k{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  color:var(--primer-red);font-weight:700;font-size:5.6pt;
  text-transform:uppercase;letter-spacing:.05em;
  background:var(--paper-warm);
}
.hls-compare .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;color:var(--ink);font-size:6.3pt}

/* Cannula table */
.cannula-tbl{
  width:100%;border-collapse:collapse;font-size:6.5pt;line-height:1.2;margin-top:3px;
}
.cannula-tbl th, .cannula-tbl td{
  padding:2px 6px;border-bottom:1px solid var(--rule-soft);text-align:left;vertical-align:top;
}
.cannula-tbl thead th{
  background:var(--ink);color:#fff;font-size:5.6pt;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 6px;font-weight:700;border-bottom:0;
}
.cannula-tbl tbody tr:nth-child(odd) td{background:var(--paper-warm)}
.cannula-tbl tbody tr:last-child td{border-bottom:0}
.cannula-tbl td .dose{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:600;font-size:6.3pt}
.cannula-tbl td .vendor{font-size:5.6pt;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;display:block;margin-top:1px}

/* ===== shared chrome injected by chrome.js: edge tabs + tracking code ===== */
/* edge thumb-index tabs (.ptab), one per page, staggered down the right edge */
.ptab{
  position:absolute; right:0; width:.26in; height:.82in;
  display:flex; align-items:center; justify-content:center;
  writing-mode:vertical-rl; text-orientation:mixed;
  font-family:"Hanken Grotesk",ui-sans-serif,sans-serif; font-weight:800;
  font-size:5.4pt; letter-spacing:.14em; text-transform:uppercase;
  color:#fff; background:var(--ink);
  border-radius:5px 0 0 5px; box-shadow:-1px 1px 2px rgba(0,0,0,.14);
  z-index:6; -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
@media print{ .ptab{box-shadow:none} }
/* per-page verification / tracking code (.vcode) — header meta + footer stamp */
.head .meta .vcode, .pfoot .stamp .vcode{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:5.4pt; letter-spacing:.01em; color:var(--ink-4);
  margin-top:2px; white-space:nowrap; text-transform:none;
}
.head--mini .meta .vcode{font-size:5.1pt}
