/* Shared deliverable/document design system — F0 */
@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;650;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  --bg: oklch(0.975 0.008 75);
  --ink: oklch(0.20 0.018 55);
  --muted: oklch(0.48 0.02 55);
  --dim: oklch(0.64 0.016 60);
  --border: oklch(0.86 0.014 65);
  --accent: oklch(0.47 0.085 194);
  --accent-dark: oklch(0.34 0.07 194);
  --accent-bg: oklch(0.95 0.03 190);
  --red: oklch(0.5 0.17 27);
}
doc-page:not(:defined) { visibility: hidden; }
doc-page { --doc-bg: var(--bg); font-family: 'Hanken Grotesk', sans-serif; color: var(--ink); font-size: 14.5px; line-height: 1.6; }
doc-page .mono, doc-page .num { font-family: 'IBM Plex Mono', monospace; font-variant-numeric: tabular-nums lining-nums; }
doc-page h1, doc-page h2, doc-page h3 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 650; color: var(--ink); letter-spacing: -.01em; }

/* running furniture */
.doc-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--border); font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--dim); letter-spacing: .04em; text-transform: uppercase; }
.doc-footer { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--border); font-family: 'IBM Plex Mono', monospace; font-size: 9.5px; color: var(--dim); }

/* cover page */
.doc-cover { min-height: 8.5in; display: flex; flex-direction: column; justify-content: space-between; }
.doc-cover .cover-logo { font-family: 'IBM Plex Mono', monospace; font-weight: 600; font-size: 13px; letter-spacing: .08em; color: var(--accent-dark); }
.doc-cover h1 { font-size: 34px; line-height: 1.2; max-width: 8in; margin: 40px 0 20px; }
.doc-cover .cover-scope { font-size: 15px; color: var(--muted); max-width: 6in; line-height: 1.7; }
.cover-billto { border-top: 1px solid var(--border); padding-top: 20px; margin-top: 40px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 40px; }
.cover-billto .cb-k { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--dim); }
.cover-billto .cb-v { font-size: 14px; color: var(--ink); margin-top: 2px; }

/* section number margin column */
.doc-section { margin: 34px 0; break-inside: avoid; }
.doc-secnum { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .1em; color: var(--accent-dark); text-transform: uppercase; margin-bottom: 8px; }
.doc-section h2 { font-size: 21px; margin-bottom: 14px; }

/* ledger tables */
.doc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.doc-table th { text-align: left; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--dim); padding: 8px 10px; border-bottom: 1px solid var(--border); }
.doc-table td { padding: 9px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
.doc-table td.num, .doc-table th.num { font-family: 'IBM Plex Mono', monospace; text-align: right; }
.doc-table td.negative { color: var(--red); font-family: 'IBM Plex Mono', monospace; text-align: right; }
.doc-table tr:last-child td { border-bottom: none; }

/* verdict / big-number blocks */
.verdict-box { border: 1px solid var(--border); padding: 22px 26px; margin: 20px 0; break-inside: avoid; }
.verdict-num { font-family: 'IBM Plex Mono', monospace; font-weight: 600; font-size: 40px; color: var(--red); line-height: 1; }
.verdict-label { font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--dim); margin-bottom: 8px; }
.verdict-row { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.verdict-row:last-child { border-bottom: none; }
.verdict-row .v { font-family: 'IBM Plex Mono', monospace; }
.multiple-strip { display: flex; gap: 24px; margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--border); font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; color: var(--muted); }
.multiple-strip strong { color: var(--accent-dark); }

/* severity scale */
.severity-scale { display: flex; height: 10px; border: 1px solid var(--border); margin: 14px 0 6px; }
.severity-scale span { flex: 1; border-right: 1px solid var(--border); }
.severity-scale span:last-child { border-right: none; }
.severity-scale .s1 { background: var(--accent-bg); }
.severity-scale .s2 { background: oklch(0.9 0.05 85); }
.severity-scale .s3 { background: oklch(0.85 0.08 55); }
.severity-scale .s4 { background: oklch(0.75 0.13 35); }
.severity-labels { display: flex; justify-content: space-between; font-family: 'IBM Plex Mono', monospace; font-size: 9.5px; color: var(--dim); text-transform: uppercase; }

/* checklist rows */
.doc-checklist { list-style: none; padding: 0; margin: 0; }
.doc-checklist li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.doc-checklist li:last-child { border-bottom: none; }
.doc-checklist .cb { width: 14px; height: 14px; border: 1.5px solid var(--dim); margin-top: 2px; }
.doc-checklist .meta { font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; color: var(--dim); display: block; margin-top: 3px; }

/* swim timeline */
.doc-timeline { display: flex; align-items: flex-start; gap: 0; margin: 20px 0; }
.doc-timeline .tstep { flex: 1; text-align: center; padding: 0 8px; position: relative; }
.doc-timeline .tstep::before { content: ''; position: absolute; top: 6px; left: -50%; width: 100%; height: 1px; background: var(--border); z-index: 0; }
.doc-timeline .tstep:first-child::before { display: none; }
.doc-timeline .dot { width: 12px; height: 12px; border-radius: 50%; background: var(--border); margin: 0 auto 8px; position: relative; z-index: 1; }
.doc-timeline .tstep.break .dot { background: var(--red); }
.doc-timeline .tt { font-size: 11px; color: var(--muted); line-height: 1.4; }
.doc-timeline .tt strong { display: block; color: var(--ink); font-size: 12px; margin-bottom: 2px; }

/* sign-off */
.signoff { display: grid; grid-template-columns: 100px 1fr; gap: 24px; align-items: start; border-top: 1px solid var(--border); padding-top: 24px; margin-top: 30px; }
.signoff .sp { width: 100px; height: 100px; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-family: 'IBM Plex Mono', monospace; font-size: 9px; color: var(--dim); text-align: center; }
.signoff h4 { font-size: 15px; margin-bottom: 2px; }
.signoff .role { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--accent-dark); margin-bottom: 10px; }
.signoff p { font-size: 13px; color: var(--muted); line-height: 1.6; margin-bottom: 10px; }
.loom-box { border: 1px solid var(--border); padding: 12px 16px; display: inline-flex; align-items: center; gap: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; color: var(--muted); }
.loom-box .lp { width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

.verify-stamp { font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; color: var(--dim); border: 1px dashed var(--border); padding: 10px 14px; margin-top: 16px; display: inline-block; }

/* sample watermark */
.doc-watermark { position: fixed; top: 42%; left: 0; right: 0; text-align: center; font-family: 'IBM Plex Mono', monospace; font-size: 68px; font-weight: 600; color: oklch(0.5 0.17 27 / .10); transform: rotate(-28deg); pointer-events: none; z-index: 5; letter-spacing: .05em; }
