/* ==========================================================================
   Teho — Northstar Work Redesign Study · PAGINATED A4 readout
   Discrete sheets (V1 format) carrying the V2 content + grow-the-green.
   Green = high-value (protect/grow) · red = low-value (shrink).
   ========================================================================== */
@font-face { font-family:'Instrument Sans'; font-weight:400; src:url('/sample-readout/fonts/InstrumentSans-Regular-400.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Instrument Sans'; font-weight:500; src:url('/sample-readout/fonts/InstrumentSans-Medium-500.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Instrument Sans'; font-weight:600; src:url('/sample-readout/fonts/InstrumentSans-SemiBold-600.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Instrument Sans'; font-weight:700; src:url('/sample-readout/fonts/InstrumentSans-Bold-700.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Geist Mono'; font-weight:400; src:url('/sample-readout/fonts/GeistMono-Regular-400.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Geist Mono'; font-weight:500; src:url('/sample-readout/fonts/GeistMono-Medium-500.ttf') format('truetype'); font-display:swap; }

:root {
  --t-paper:#F3EFE4; --t-paper-2:#EDE8DA; --t-canvas:#FDFBF4; --t-canvas-2:#FFFEF9; --t-well:#E6E0CE;
  --t-ink:#1A1F1B; --t-ink-2:#232A24; --t-ink-line:#333B34;
  --t-body:#2F342F; --t-muted:#6B7068; --t-subtle:#9A9D93;
  --t-line:#D4CDB8; --t-line-2:#BEB69E;
  --t-brand:#1F7A61; --t-brand-deep:#165C49; --t-brand-lift:#3FA587; --t-brand-soft:#D9E7DE; --t-brand-ink:#FBFDFB;
  --hv-judgement:#2E6B4E; --hv-execution:#6BA27E; --hv-soft:#D7E6DC; --hv-edge:#1F4A35;
  --lv-coordination:#D4B968; --lv-overhead:#DDA07F; --lv-burden:#C4705F;
  --lv-soft:#EFD9CF; --lv-edge:#8E4A3B; --lv-line:#D8A48F;
  --t-red:#B2564A; --t-red-soft:#EED3CC; --t-red-edge:#8E4A3B; --t-amber:#C8923E;
  --font-sans:'Instrument Sans',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --shadow-sheet:0 24px 60px -28px rgba(26,31,27,.42), 0 0 0 1px rgba(26,31,27,.05);
}
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; background:var(--t-paper-2); color:var(--t-body); font-family:var(--font-sans); -webkit-font-smoothing:antialiased; font-feature-settings:"ss01","cv11"; }
body { padding:40px 20px 80px; }
::selection { background:var(--t-brand-soft); }
a { color:inherit; text-decoration:none; }
b,strong { font-weight:600; color:var(--t-ink); }
em { font-style:italic; }

.t-mark { display:inline-grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); column-gap:7.6%; row-gap:11.9%; width:22px; aspect-ratio:3.54 / 2.27; color:var(--t-brand); vertical-align:middle; }
.t-mark>i { background:currentColor; border-radius:1px; }
.t-mark>.a1 { grid-column:1; grid-row:1; } .t-mark>.a2 { grid-column:2; grid-row:1; }
.t-mark>.a3 { grid-column:3; grid-row:1; } .t-mark>.a4 { grid-column:2; grid-row:2; }

/* toolbar */
.toolbar { position:fixed; top:16px; right:16px; z-index:60; }
.toolbar button { font-family:var(--font-sans); font-size:13px; font-weight:500; color:var(--t-paper); background:var(--t-ink); border:0; border-radius:999px; padding:10px 18px; cursor:pointer; box-shadow:var(--shadow-sheet); display:inline-flex; align-items:center; gap:8px; }
.toolbar button:hover { background:#000; }

/* ===== the sheet (A4 page) ===== */
.sheet {
  width:880px; min-height:1245px; margin:0 auto 26px; background:var(--t-canvas);
  box-shadow:var(--shadow-sheet); border-radius:3px; position:relative;
  padding:54px 64px 74px; display:flex; flex-direction:column;
}
.sheet-foot {
  position:absolute; left:64px; right:64px; bottom:32px;
  display:flex; align-items:center; justify-content:space-between;
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--t-subtle);
  border-top:1px solid var(--t-line); padding-top:12px;
}
.sheet-foot .t-mark { width:13px; opacity:.85; }
.sheet-foot .fl { display:flex; align-items:center; gap:7px; }

/* running header */
.run-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; }
.run-head .lhs { display:flex; align-items:center; gap:9px; font-weight:600; font-size:15px; letter-spacing:-.03em; color:var(--t-ink); }
.run-head .rhs { font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--t-subtle); }

/* type */
.eyebrow { font-family:var(--font-mono); font-weight:500; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--t-brand); margin:0 0 14px; }
.eyebrow .n { color:var(--t-subtle); margin-right:9px; }
h1.title { margin:0; font-weight:600; font-size:33px; line-height:1.07; letter-spacing:-.03em; color:var(--t-ink); text-wrap:balance; }
h2.sec { margin:0 0 6px; font-weight:600; font-size:25px; line-height:1.1; letter-spacing:-.026em; color:var(--t-ink); text-wrap:balance; }
.sec-sub { margin:0 0 26px; font-size:14.5px; line-height:1.55; color:var(--t-muted); max-width:64ch; }
.sec-sub.big { font-size:16.5px; color:var(--t-body); max-width:60ch; }
.sec-sub b { color:var(--t-body); }
h3.bh { margin:0 0 12px; font-weight:600; font-size:15px; letter-spacing:-.015em; color:var(--t-ink); }
.lead { font-size:16px; line-height:1.6; color:var(--t-body); }
p.body { margin:0 0 13px; font-size:13.5px; line-height:1.6; color:var(--t-body); text-wrap:pretty; }
p.body:last-child { margin-bottom:0; }
.small { font-size:12px; line-height:1.5; color:var(--t-muted); }
.mono { font-family:var(--font-mono); font-size:11.5px; color:var(--t-muted); }
.two { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.two-37 { display:grid; grid-template-columns:1.6fr 1fr; gap:30px; }
.illus { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--lv-edge); background:var(--lv-soft); border:1px solid var(--lv-line); padding:3px 9px; border-radius:999px; }

/* ===== cover ===== */
.cover { background:var(--t-ink); color:var(--t-paper); padding:0; overflow:hidden; }
.cover-inner { padding:64px; flex:1; display:flex; flex-direction:column; }
.cover .t-mark { width:26px; color:var(--t-brand-lift); }
.cover-brand { display:flex; align-items:center; gap:11px; font-weight:600; font-size:19px; letter-spacing:-.03em; color:var(--t-paper); }
.cover-kicker { margin-top:auto; font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--t-brand-lift); }
.cover h1 { margin:16px 0 0; font-weight:600; font-size:54px; line-height:1.0; letter-spacing:-.036em; color:var(--t-paper); max-width:15ch; text-wrap:balance; }
.cover .sub { margin:24px 0 0; font-size:17px; line-height:1.5; color:#C9CEC6; max-width:50ch; }
.cover-meta { margin-top:42px; display:grid; grid-template-columns:repeat(2,auto); gap:22px 64px; padding-top:30px; border-top:1px solid var(--t-ink-line); width:fit-content; }
.cover-meta .k { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:#7e887f; margin-bottom:6px; }
.cover-meta .v { font-size:15px; font-weight:600; color:var(--t-paper); letter-spacing:-.01em; }
.cover-meta .v small { display:block; font-weight:400; color:#9aa39b; font-size:11.5px; margin-top:3px; letter-spacing:0; }
.cover-foot { margin-top:40px; display:flex; align-items:center; justify-content:space-between; }
.cover-ramp { display:flex; gap:4px; height:8px; width:260px; border-radius:4px; overflow:hidden; }

/* ===== KPIs ===== */
.kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:0 0 28px; }
.kpis.three { grid-template-columns:repeat(3,1fr); }
.kpi { background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:10px; padding:18px; }
.kpi.dark { background:var(--t-ink); border-color:var(--t-ink); }
.kpi.green { background:var(--hv-soft); border-color:color-mix(in srgb,var(--hv-judgement) 30%,var(--t-line)); }
.kpi .v { font-weight:600; font-size:26px; line-height:1; letter-spacing:-.035em; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.kpi.dark .v { color:var(--t-paper); } .kpi.green .v { color:var(--hv-edge); }
.kpi .v .u { font-size:13px; font-weight:500; color:var(--t-muted); margin-left:3px; letter-spacing:-.01em; }
.kpi.dark .v .u { color:var(--t-brand-lift); }
.kpi .k { margin-top:9px; font-size:11.5px; color:var(--t-muted); line-height:1.4; }
.kpi.dark .k { color:#AEB3AA; }

/* callout */
.callout { border-left:2px solid var(--t-brand); background:var(--t-brand-soft); border-radius:0 8px 8px 0; padding:17px 20px; margin:0 0 24px; }
.callout.ink { border-left-color:var(--t-ink); background:var(--t-canvas-2); }
.callout .q { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--t-brand-deep); margin-bottom:7px; }
.callout.ink .q { color:var(--t-ink); }
.callout p { margin:0; font-size:15px; line-height:1.5; color:var(--t-ink); letter-spacing:-.01em; }

/* exec-summary priority pills + mix ribbon */
.prio { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 0; }
.prio .pp { display:inline-flex; align-items:center; gap:9px; font-size:12.5px; color:var(--t-ink); background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:999px; padding:6px 14px 6px 7px; }
.prio .pp b { font-family:var(--font-mono); font-size:9.5px; font-weight:500; letter-spacing:.04em; color:var(--t-brand-deep); background:var(--t-brand-soft); border-radius:999px; padding:3px 8px; }
.exmix { margin:0 0 24px; }
.exmix-bar { display:flex; gap:2px; height:46px; border-radius:8px; overflow:hidden; }
.exmix-bar span { display:flex; flex-direction:column; justify-content:center; padding:0 13px; min-width:0; }
.exmix-bar .v { font-size:15px; font-weight:600; line-height:1; font-variant-numeric:tabular-nums; }
.exmix-bar .l { font-family:var(--font-mono); font-size:8.5px; letter-spacing:.05em; text-transform:uppercase; margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.exmix-cap { display:flex; align-items:baseline; justify-content:space-between; margin-top:8px; font-size:11.5px; color:var(--t-muted); }
.exmix-cap .g { color:var(--hv-edge); font-weight:600; } .exmix-cap .r { color:var(--t-red-edge); font-weight:600; }

/* ticks */
ul.ticks { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
ul.ticks li { position:relative; padding-left:28px; font-size:13px; line-height:1.5; color:var(--t-body); }
ul.ticks li::before { content:''; position:absolute; left:0; top:1px; width:16px; height:16px; border-radius:50%; background:var(--t-brand-soft); background-repeat:no-repeat; background-position:center; background-size:16px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.6L12 5.4' fill='none' stroke='%23165C49' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* chips */
.chips { display:flex; flex-wrap:wrap; gap:7px; }
.chip { font-size:12px; color:var(--t-body); background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:999px; padding:5px 12px; }
.chip.ex { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.02em; color:var(--lv-edge); background:var(--lv-soft); border-color:var(--lv-line); }

/* work mix (grow the green) */
.mixblk { background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:12px; padding:24px; }
.mixrow { margin-bottom:22px; } .mixrow:last-child { margin-bottom:0; }
.mixrow .ml { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:8px; }
.mixrow .ml .lab { font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--t-muted); }
.mixrow .ml .gr { font-size:12.5px; }
.mixrow .ml .gr .g { color:var(--hv-edge); font-weight:600; } .mixrow .ml .gr .r { color:var(--t-red-edge); font-weight:600; }
.mixbar { display:flex; gap:3px; height:42px; border-radius:7px; overflow:hidden; }
.mixbar > span { display:flex; align-items:center; justify-content:center; position:relative; min-width:0; }
.mixbar > span .pc { font-size:13px; font-weight:600; color:#fff; font-variant-numeric:tabular-nums; }
.mixbar > span .pc.dk { color:rgba(0,0,0,.6); }
.mixdiv { width:0; border-left:2px dashed var(--t-ink); opacity:.35; margin:0 2px; }
.mixkey { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:14px; }
.mixkey .item { display:inline-flex; align-items:center; gap:7px; font-size:11.5px; color:var(--t-body); }
.mixkey .item i { width:9px; height:9px; border-radius:2px; }
.grow-note { display:flex; align-items:center; gap:10px; margin-top:18px; padding-top:16px; border-top:1px solid var(--t-line); font-size:13px; color:var(--t-ink); }
.grow-note .ar { color:var(--hv-judgement); font-weight:600; }

/* grow-the-green destinations (§8) */
.grow-dest { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:14px; }
.gd { border:1px solid var(--t-line); border-radius:10px; padding:16px; background:var(--t-canvas-2); display:flex; flex-direction:column; gap:10px; }
.gd .gd-goal { font-weight:600; font-size:14px; color:var(--t-ink); letter-spacing:-.015em; line-height:1.2; }
.gd .gd-agent { font-family:var(--font-mono); font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--t-brand); }
.gd .gd-rows { margin-top:auto; display:flex; flex-direction:column; gap:7px; padding-top:10px; border-top:1px solid var(--t-line); }
.gd .gd-row { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.gd .gd-row span { font-size:10.5px; color:var(--t-muted); }
.gd .gd-row b { font-weight:600; font-size:13px; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.gd .gd-row b.il { color:var(--lv-edge); }
.grow-tot { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-top:12px; padding:14px 16px; background:var(--hv-judgement); border-radius:10px; color:#fff; }
.grow-tot .l { font-size:12.5px; color:rgba(255,255,255,.85); }
.grow-tot .l b { color:#fff; }
.grow-tot .v { font-weight:600; font-size:17px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; white-space:nowrap; }

/* taxonomy bars */
.tax { display:flex; flex-direction:column; gap:9px; }
.taxrow { display:grid; grid-template-columns:230px 1fr 96px; align-items:center; gap:14px; }
.taxrow .tl { font-size:13px; color:var(--t-ink); font-weight:500; letter-spacing:-.01em; }
.taxrow .tt { height:22px; border-radius:5px; background:var(--t-well); overflow:hidden; }
.taxrow .tf { height:100%; border-radius:5px; display:flex; align-items:center; padding-left:9px; }
.taxrow .tf .ts { font-family:var(--font-mono); font-size:10px; color:rgba(255,255,255,.9); }
.taxrow .tv { text-align:right; font-family:var(--font-mono); font-size:12.5px; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.drill { margin-top:16px; background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:10px; padding:16px 18px; }
.drill .dh { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:12px; }
.drill .dt { display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--t-body); padding:5px 0; }
.drill .dt .dd { width:7px; height:7px; border-radius:2px; flex:none; }
.drill .dt .dv { margin-left:auto; font-family:var(--font-mono); font-size:11px; color:var(--t-muted); }

/* work profile map */
.mekko-card { border:1px solid var(--t-line); border-radius:12px; overflow:hidden; }
.mekko-head { display:flex; align-items:baseline; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--t-line); background:var(--t-canvas-2); }
.mekko-head .t { font-weight:600; font-size:13px; color:var(--t-ink); }
.mekko-head .lg { font-family:var(--font-mono); font-size:10px; color:var(--t-subtle); }
.mekko { display:flex; gap:5px; height:290px; padding:16px; }
.mekko .col { display:flex; flex-direction:column; gap:5px; }
.mekko .col-h { font-family:var(--font-mono); font-size:9px; letter-spacing:.04em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mekko .c { border-radius:5px; padding:8px 9px; position:relative; overflow:hidden; }
.mekko .c .lab { font-size:10.5px; font-weight:500; line-height:1.18; letter-spacing:-.01em; }
.mekko .c .sz { position:absolute; right:8px; bottom:6px; font-family:var(--font-mono); font-size:8.5px; }
.mekko .c.green .lab { color:#fff; } .mekko .c.green .sz { color:rgba(255,255,255,.8); }
.mekko .c.red .lab { color:#fff; } .mekko .c.red .sz { color:rgba(255,255,255,.82); }
.mekko-legend { display:flex; gap:18px; padding:0 18px 16px; }
.mekko-legend span { display:inline-flex; align-items:center; gap:7px; font-size:11.5px; color:var(--t-body); }
.mekko-legend i { width:11px; height:11px; border-radius:3px; }

/* tool flow */
.flow { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0 0; }
.flow .hop { font-family:var(--font-mono); font-size:11.5px; color:var(--t-ink); background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:6px; padding:7px 11px; }
.flow .ar { color:var(--t-subtle); font-size:13px; }
.tool-bars { display:flex; flex-direction:column; gap:9px; }
.tool-bar { display:grid; grid-template-columns:110px 1fr 40px; align-items:center; gap:12px; }
.tool-bar .tl { font-size:12px; color:var(--t-body); }
.tool-bar .tt { height:9px; border-radius:5px; background:var(--t-well); overflow:hidden; }
.tool-bar .tf { height:100%; border-radius:5px; }
.tool-bar .tv { font-family:var(--font-mono); font-size:11px; color:var(--t-muted); text-align:right; }
.hatch { background-image:repeating-linear-gradient(135deg, var(--t-well) 0 6px, var(--t-paper-2) 6px 12px) !important; }

/* fragmentation cost (§6) */
.frag-bar { display:flex; gap:3px; height:52px; border-radius:8px; overflow:hidden; margin:6px 0 16px; }
.frag-bar span { display:flex; flex-direction:column; justify-content:center; padding:0 13px; min-width:0; }
.frag-bar .fn { font-size:10px; color:rgba(255,255,255,.9); letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.frag-bar .fv { font-size:14px; font-weight:600; color:#fff; font-variant-numeric:tabular-nums; }
.frag-key { display:flex; flex-direction:column; gap:0; border:1px solid var(--t-line); border-radius:10px; overflow:hidden; }
.frag-row { display:grid; grid-template-columns:14px 1fr auto auto; gap:13px; align-items:center; padding:12px 16px; border-bottom:1px solid var(--t-line); background:var(--t-canvas-2); }
.frag-row:last-child { border-bottom:0; }
.frag-row .fd { width:10px; height:10px; border-radius:2px; }
.frag-row .fnm { font-size:13px; font-weight:600; color:var(--t-ink); letter-spacing:-.01em; }
.frag-row .fnm small { display:block; font-weight:400; font-size:11px; color:var(--t-muted); margin-top:1px; }
.frag-row .fc { font-family:var(--font-mono); font-size:12.5px; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.frag-total { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-top:14px; padding:14px 16px; background:var(--t-ink); border-radius:10px; color:var(--t-paper); }
.frag-total .l { font-size:12.5px; color:#C9CEC6; }
.frag-total .v { font-weight:600; font-size:18px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.flow .hop small { display:block; font-family:var(--font-sans); font-size:9.5px; color:var(--t-muted); margin-top:3px; letter-spacing:0; text-transform:none; }

/* full-width tool flow with icon tiles (§6) */
.toolflow { display:flex; align-items:flex-start; justify-content:space-between; gap:4px; margin-top:8px; }
.tfi { flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; min-width:0; }
.tfic { width:62px; height:62px; border-radius:15px; background:var(--t-canvas-2); border:1px solid var(--t-line); display:grid; place-items:center; box-shadow:0 1px 2px rgba(26,31,27,.04); }
.tfic svg { width:30px; height:30px; }
.tfn { font-weight:600; font-size:13px; color:var(--t-ink); letter-spacing:-.01em; }
.tfs { font-size:10.5px; color:var(--t-muted); line-height:1.3; max-width:11ch; }
.tfar { align-self:flex-start; margin-top:24px; color:var(--t-line-2); font-size:17px; flex:none; }
.conc-bar { display:flex; gap:3px; height:42px; border-radius:8px; overflow:hidden; }
.conc-bar span { display:flex; align-items:center; gap:8px; padding:0 13px; color:#fff; font-size:12px; min-width:0; white-space:nowrap; overflow:hidden; letter-spacing:-.01em; }
.conc-bar span b { font-weight:600; font-size:14px; font-variant-numeric:tabular-nums; }
.conc-bar .conc-rest { color:var(--t-muted); background-image:repeating-linear-gradient(135deg,#e6e0ce 0 7px,#efeadd 7px 14px); }

/* hotspots */
.hot { display:flex; flex-direction:column; gap:11px; }
.hotcard { border:1px solid var(--t-line); border-radius:10px; padding:17px 20px; background:var(--t-canvas-2); display:grid; grid-template-columns:1fr auto; gap:6px 16px; align-items:start; }
.hotcard.pri { border-color:color-mix(in srgb,var(--t-ink) 22%,var(--t-line)); background:var(--t-canvas); box-shadow:0 1px 0 rgba(26,31,27,.04); }
.hotcard .hn { grid-column:1; font-weight:600; font-size:15px; color:var(--t-ink); letter-spacing:-.015em; display:flex; align-items:center; gap:9px; }
.hotcard .hn .star { color:var(--t-amber); font-size:14px; }
.hotcard .hd { font-size:12.5px; line-height:1.5; color:var(--t-muted); grid-column:1; max-width:56ch; }
.hotcard .hmeta { grid-column:2; grid-row:1 / span 2; text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:7px; }
.hotcard .cost { font-weight:600; font-size:17px; color:var(--t-ink); letter-spacing:-.02em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.hotcard .cost small { display:block; font-family:var(--font-mono); font-size:9.5px; font-weight:400; color:var(--t-subtle); letter-spacing:.02em; margin-top:2px; }
.route { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.03em; text-transform:uppercase; padding:4px 9px; border-radius:999px; white-space:nowrap; }
.route i { width:7px; height:7px; border-radius:2px; }
.r-automate { background:var(--lv-soft); color:var(--lv-edge); } .r-automate i { background:var(--lv-overhead); }
.r-simplify { background:#F1E8C9; color:#9E8638; } .r-simplify i { background:var(--lv-coordination); }
.r-redesign { background:var(--hv-soft); color:var(--hv-edge); } .r-redesign i { background:var(--hv-execution); }
.r-ai { background:var(--t-brand-soft); color:var(--t-brand-deep); } .r-ai i { background:var(--t-brand); }
.r-keep { background:var(--hv-soft); color:var(--hv-edge); } .r-keep i { background:var(--hv-judgement); }
.hotbar { grid-column:1 / -1; height:6px; border-radius:3px; background:var(--t-well); overflow:hidden; margin-top:4px; }
.hotbar .f { height:100%; border-radius:3px; }

/* opportunity portfolio */
.opps { display:flex; flex-direction:column; gap:0; border:1px solid var(--t-line); border-radius:12px; overflow:hidden; }
.opp-grp { padding:10px 18px; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--t-subtle); background:var(--t-paper-2); border-bottom:1px solid var(--t-line); }
.opp-grp.growth { color:var(--t-brand-deep); background:var(--t-brand-soft); }
.opp { display:grid; grid-template-columns:1fr auto auto; gap:8px 16px; align-items:center; padding:13px 18px; border-bottom:1px solid var(--t-line); }
.opp:last-child { border-bottom:0; }
.opp .on { font-weight:600; font-size:13px; color:var(--t-ink); letter-spacing:-.01em; }
.opp .ov { text-align:right; }
.opp .ov .recov { font-weight:600; font-size:13.5px; color:var(--t-ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.opp .ov .rev { font-family:var(--font-mono); font-size:10px; color:var(--t-brand-deep); margin-top:2px; white-space:nowrap; }
.opp .ov .rev .il { color:var(--lv-edge); }
.wavetag { font-family:var(--font-mono); font-size:9px; letter-spacing:.04em; color:var(--t-subtle); }
.opp-total { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-top:16px; padding:15px 18px; background:var(--t-ink); border-radius:10px; color:var(--t-paper); }
.opp-total .l { font-size:12.5px; color:#C9CEC6; } .opp-total .l b { color:var(--t-paper); }
.opp-total .v { font-weight:600; font-size:18px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.opp-total .v .u { font-size:10.5px; color:var(--t-brand-lift); font-weight:500; margin-left:4px; }

/* ===== opportunity tracker board (§9 overview) ===== */
.trk { border:1px solid var(--t-line); border-radius:12px; overflow:hidden; }
.trk-grp { padding:10px 18px; font-family:var(--font-mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--t-subtle); background:var(--t-paper-2); border-bottom:1px solid var(--t-line); }
.trk-grp.growth { color:var(--t-brand-deep); background:var(--t-brand-soft); }
.trk-row { display:grid; grid-template-columns:1fr 132px 64px 56px 150px; gap:14px; align-items:center; padding:12px 18px; border-bottom:1px solid var(--t-line); }
.trk-row:last-child { border-bottom:0; }
.trk-play { min-width:0; }
.trk-play b { display:block; font-size:13px; font-weight:600; color:var(--t-ink); letter-spacing:-.01em; }
.trk-play .trk-goal { color:var(--t-brand-deep); font-weight:500; }
.trk-fix { display:block; font-size:11px; color:var(--t-muted); margin-top:2px; }
.trk-wave { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.03em; text-transform:uppercase; color:var(--t-muted); background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:999px; padding:3px 8px; text-align:center; white-space:nowrap; }
.trk-wave.w1 { color:var(--t-brand-deep); background:var(--t-brand-soft); border-color:color-mix(in srgb,var(--t-brand) 28%,var(--t-line)); }
.trk-eff { display:flex; }
.dots { display:inline-flex; gap:3px; align-items:center; }
.dots i { width:6px; height:6px; border-radius:50%; background:var(--t-line-2); }
.dots i.on { background:var(--t-brand); }
.trk-v { text-align:right; font-weight:600; font-size:13px; color:var(--t-ink); letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.trk-v small { display:block; font-family:var(--font-mono); font-size:9px; font-weight:400; color:var(--t-subtle); letter-spacing:.02em; margin-top:2px; white-space:nowrap; }

/* ===== opportunity detail cards (§9 detail) ===== */
.oc-wrap { display:flex; flex-direction:column; gap:16px; }
.oc { border:1px solid var(--t-line); border-radius:12px; overflow:hidden; background:var(--t-canvas); }
.oc.growth { border-color:color-mix(in srgb,var(--t-brand) 26%,var(--t-line)); }
.oc-h { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:16px 20px; border-bottom:1px solid var(--t-line); background:var(--t-canvas-2); }
.oc.growth .oc-h { background:var(--t-brand-soft); border-bottom-color:color-mix(in srgb,var(--t-brand) 22%,var(--t-line)); }
.oc-hl { min-width:0; }
.oc-wave { display:inline-block; font-family:var(--font-mono); font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--t-muted); background:var(--t-canvas); border:1px solid var(--t-line); border-radius:999px; padding:3px 9px; margin-bottom:9px; }
.oc-wave.w1 { color:var(--t-brand-deep); background:#fff; border-color:color-mix(in srgb,var(--t-brand) 30%,var(--t-line)); }
.oc-title { margin:0; font-size:17px; font-weight:600; letter-spacing:-.02em; color:var(--t-ink); }
.oc-title .oc-goal { color:var(--t-brand-deep); font-weight:500; }
.oc-subt { margin-top:5px; font-size:11.5px; color:var(--t-muted); }
.oc-body { display:grid; grid-template-columns:1.25fr 1fr; }
.oc-left { padding:18px 20px; border-right:1px solid var(--t-line); }
.oc-right { padding:18px 20px; background:var(--t-paper-2); }
.oc-k { font-family:var(--font-mono); font-size:9px; letter-spacing:.07em; text-transform:uppercase; color:var(--t-subtle); margin:0 0 7px; }
.oc-left .oc-k { margin-top:16px; } .oc-left .oc-k:first-child { margin-top:0; }
.oc-p { margin:0; font-size:13px; line-height:1.55; color:var(--t-body); }
.oc-gr { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px; }
.oc-gr li { position:relative; padding-left:20px; font-size:12px; line-height:1.4; color:var(--t-body); }
.oc-gr li::before { content:''; position:absolute; left:0; top:1px; width:14px; height:14px; border-radius:50%; background:var(--t-brand-soft); background-repeat:no-repeat; background-position:center; background-size:14px 14px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.6L12 5.4' fill='none' stroke='%23165C49' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.oc-val { border:1px solid var(--t-line); border-radius:9px; padding:14px 16px; background:var(--t-canvas-2); margin-bottom:14px; }
.oc-val.growth { background:var(--t-canvas-2); }
.ov-big { font-weight:600; font-size:26px; letter-spacing:-.035em; color:var(--hv-edge); font-variant-numeric:tabular-nums; line-height:1; }
.ov-big span { font-size:13px; color:var(--t-muted); font-weight:500; margin-left:3px; letter-spacing:-.01em; }
.ov-cap { font-size:11px; color:var(--t-muted); margin-top:6px; }
.ov-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:5px 0; }
.ov-row span { font-size:11.5px; color:var(--t-muted); }
.ov-row b { font-weight:600; font-size:14px; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.ov-row b.il { color:var(--lv-edge); }
.ov-basis { margin-top:9px; padding-top:9px; border-top:1px solid var(--t-line); font-size:10.5px; line-height:1.4; color:var(--t-muted); }
.ov-basis b { color:var(--t-body); font-weight:600; }
.oc-meta { display:flex; gap:10px; margin-bottom:14px; }
.om { flex:1; border:1px solid var(--t-line); border-radius:8px; padding:9px 11px; background:var(--t-canvas-2); }
.om span { display:block; font-family:var(--font-mono); font-size:8.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:5px; }
.om b { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--t-ink); }
.om-sub { display:block; margin-top:4px; font-size:9.5px; line-height:1.3; color:var(--t-muted); font-weight:400; }
.oc-assess { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--t-line); }
.oc-assess .oa { padding:11px 20px; border-right:1px solid var(--t-line); }
.oc-assess .oa:last-child { border-right:0; }
.oc-assess .oa span { display:block; font-family:var(--font-mono); font-size:8.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:4px; }
.oc-assess .oa b { font-size:12px; font-weight:600; color:var(--t-ink); line-height:1.3; }

/* decision proof line + pulse extra rows (§10/§11 consolidation) */
.dec-card .dec-proof { margin-top:10px; padding-top:10px; border-top:1px solid var(--t-line); display:flex; align-items:baseline; gap:9px; }
.dec-card .dec-proof .pk { font-family:var(--font-mono); font-size:8.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--t-brand); white-space:nowrap; }
.dec-card .dec-proof .pv { font-size:12px; color:var(--t-body); line-height:1.4; }
.dec-card .dec-proof .pv b { font-weight:600; color:var(--t-ink); }
.pulse-extra { margin-top:15px; padding-top:15px; border-top:1px solid var(--t-ink-line); display:flex; flex-direction:column; gap:11px; }
.pulse-extra .pe { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
.pulse-extra .pe span { font-size:12px; color:#C9CEC6; }
.pulse-extra .pe b { font-family:var(--font-mono); font-size:13px; font-weight:600; color:var(--t-brand-lift); font-variant-numeric:tabular-nums; white-space:nowrap; }
.pulse-guard { margin-top:14px; font-size:11px; color:#7e887f; font-family:var(--font-mono); letter-spacing:.02em; }

/* ===== §14 — Pulse impact panel ===== */
.prove { border:1px solid var(--t-line); border-radius:12px; overflow:hidden; background:var(--t-canvas-2); margin-bottom:22px; }
.prove .pr-row { display:grid; grid-template-columns:1fr auto; gap:10px 18px; align-items:center; padding:15px 20px; border-bottom:1px solid var(--t-line); }
.prove .pr-row:last-child { border-bottom:0; }
.prove .pr-row .pl b { font-size:13.5px; font-weight:600; color:var(--t-ink); letter-spacing:-.01em; }
.prove .pr-row .pl span { display:block; font-size:11.5px; color:var(--t-muted); margin-top:3px; line-height:1.4; }
.prove .pr-row .pm { text-align:right; font-family:var(--font-mono); font-size:11px; color:var(--t-brand-deep); white-space:nowrap; }
.prove .pr-row .pm .cad { display:block; color:var(--t-subtle); font-size:9.5px; letter-spacing:.04em; text-transform:uppercase; margin-top:4px; }
.prove .pr-row .pm .mov { font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; }

/* dark impact CTA band */
.impact-band { background:var(--t-ink); color:var(--t-paper); border-radius:12px; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.impact-band .ib-l { max-width:62ch; }
.impact-band .ib-k { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--t-amber); margin-bottom:9px; }
.impact-band .ib-h { font-size:20px; font-weight:600; letter-spacing:-.02em; color:var(--t-paper); line-height:1.15; }
.impact-band .ib-p { margin:9px 0 0; font-size:12.5px; line-height:1.5; color:#C9CEC6; }
.impact-band .ib-cta { display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:14px; color:var(--t-ink); background:var(--t-amber); border-radius:999px; padding:12px 20px; text-decoration:none; white-space:nowrap; }
.impact-band .ib-cta:hover { background:#d8a64e; }

/* ===== §14b — document system grid ===== */
.docsys { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.dgrp { border:1px solid var(--t-line); border-radius:11px; padding:18px 20px; background:var(--t-canvas-2); }
.dgrp.lead { border-color:color-mix(in srgb,var(--t-brand) 28%,var(--t-line)); background:var(--t-brand-soft); }
.dgrp .dg-k { font-family:var(--font-mono); font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:4px; }
.dgrp.lead .dg-k { color:var(--t-brand-deep); }
.dgrp .dg-q { font-size:14.5px; font-weight:600; color:var(--t-ink); letter-spacing:-.015em; margin-bottom:14px; line-height:1.2; }
.dgrp .di { padding:9px 0; border-top:1px solid var(--t-line); }
.dgrp.lead .di { border-top-color:color-mix(in srgb,var(--t-brand) 20%,var(--t-line)); }
.dgrp .di:first-of-type { border-top:0; padding-top:0; }
.dgrp .di .dn { font-size:12.5px; font-weight:600; color:var(--t-ink); letter-spacing:-.01em; display:flex; align-items:center; gap:6px; }
.dgrp .di .dn .ext { color:var(--t-brand); font-size:10px; }
.dgrp .di .dd { font-size:11px; line-height:1.4; color:var(--t-muted); margin-top:2px; }
.dgrp .di .this { font-family:var(--font-mono); font-size:8.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--t-brand-deep); background:var(--t-canvas); border:1px solid color-mix(in srgb,var(--t-brand) 30%,var(--t-line)); border-radius:999px; padding:1px 7px; }

/* §12 — range scenarios + basis table */
.scen { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px; }
.scen .sc { border:1px solid var(--t-line); border-radius:10px; padding:16px 18px; background:var(--t-canvas-2); }
.scen .sc.mid { border-color:color-mix(in srgb,var(--t-brand) 30%,var(--t-line)); background:var(--t-brand-soft); }
.scen .sc .sk { font-family:var(--font-mono); font-size:9px; letter-spacing:.07em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:8px; }
.scen .sc.mid .sk { color:var(--t-brand-deep); }
.scen .sc .sv { font-weight:600; font-size:19px; letter-spacing:-.03em; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.scen .sc .sd { margin-top:8px; font-size:11.5px; line-height:1.45; color:var(--t-muted); }
.btable { width:100%; border-collapse:collapse; border:1px solid var(--t-line); border-radius:10px; overflow:hidden; }
.btable th { text-align:left; font-family:var(--font-mono); font-size:9px; letter-spacing:.07em; text-transform:uppercase; color:var(--t-subtle); font-weight:500; padding:11px 16px; background:var(--t-paper-2); border-bottom:1px solid var(--t-line); }
.btable td { padding:13px 16px; border-bottom:1px solid var(--t-line); vertical-align:top; font-size:12.5px; line-height:1.45; color:var(--t-body); }
.btable tr:last-child td { border-bottom:0; }
.btable td.m { font-weight:600; color:var(--t-ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.btable td.g { color:var(--lv-edge); }

/* §13 — client takeaway band */
.takeaway { background:var(--t-ink); color:var(--t-paper); border-radius:12px; padding:24px 28px; margin-top:22px; }
.takeaway .tk-k { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--t-amber); margin-bottom:10px; }
.takeaway .tk-h { font-size:19px; font-weight:600; letter-spacing:-.02em; line-height:1.2; color:var(--t-paper); max-width:34ch; }
.takeaway .tk-p { margin:12px 0 0; font-size:13px; line-height:1.55; color:#C9CEC6; max-width:64ch; }
.takeaway .tk-p b { color:var(--t-brand-lift); font-weight:600; }
.oc-fix .oc-k { margin-bottom:9px; }
.oc-tasks { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:0; }
.oc-tasks li { display:flex; align-items:baseline; justify-content:space-between; gap:10px; font-size:12px; color:var(--t-body); padding:6px 0; border-bottom:1px solid var(--t-line); }
.oc-tasks li:last-child { border-bottom:0; }
.oc-tasks li span { font-family:var(--font-mono); font-size:11px; color:var(--t-muted); font-variant-numeric:tabular-nums; flex:none; }

/* decisions */
.dec { display:flex; flex-direction:column; gap:11px; }
.dec-card { border:1px solid var(--t-line); border-radius:10px; padding:17px 20px; background:var(--t-canvas-2); }
.dec-card .dh { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:8px; }
.dec-card .da { font-weight:600; font-size:14.5px; color:var(--t-ink); letter-spacing:-.015em; }
.dec-card .dd { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--t-brand); white-space:nowrap; }
.dec-card .dr { font-size:12.5px; line-height:1.5; color:var(--t-muted); }

/* pulse */
.ribbon { display:flex; border:1px solid var(--t-line); border-radius:10px; overflow:hidden; margin:0 0 22px; }
.ribbon .stop { flex:1; padding:13px 12px; border-right:1px solid var(--t-line); display:flex; flex-direction:column; gap:5px; min-width:0; }
.ribbon .stop:last-child { border-right:0; }
.ribbon .stop .sl { font-family:var(--font-mono); font-size:9px; letter-spacing:.04em; text-transform:uppercase; color:var(--t-subtle); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ribbon .stop .sv { font-weight:600; font-size:13px; color:var(--t-ink); font-variant-numeric:tabular-nums; }
.ribbon .stop.done { background:var(--t-canvas-2); }
.ribbon .stop.live { background:var(--t-brand-soft); } .ribbon .stop.live .sl,.ribbon .stop.live .sv { color:var(--t-brand-deep); }
.ribbon .stop.fut .sl,.ribbon .stop.fut .sv { color:var(--t-subtle); } .ribbon .stop.fut .sv { font-weight:500; }
.pulse-card { background:var(--t-ink); color:var(--t-paper); border-radius:12px; padding:24px 26px; }
.pulse-card h3 { margin:0 0 8px; font-size:17px; font-weight:600; letter-spacing:-.02em; color:var(--t-paper); }
.pulse-card p { margin:0 0 18px; font-size:13px; line-height:1.55; color:#C9CEC6; max-width:62ch; }
.pulse-bars { display:flex; flex-direction:column; gap:11px; }
.pulse-bar { display:grid; grid-template-columns:180px 1fr 92px; align-items:center; gap:14px; }
.pulse-bar .l { font-size:12px; color:#C9CEC6; }
.pulse-bar .track { height:9px; border-radius:5px; background:var(--t-ink-line); overflow:hidden; }
.pulse-bar .fill { height:100%; border-radius:5px; }
.pulse-bar .d { font-family:var(--font-mono); font-size:11px; text-align:right; font-variant-numeric:tabular-nums; }
.pulse-bar .d.pos { color:var(--t-brand-lift); }

/* method / privacy */
.mgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.mcard { border:1px solid var(--t-line); border-radius:10px; padding:20px; background:var(--t-canvas-2); }
.mcard .mh { display:flex; align-items:center; gap:9px; margin-bottom:12px; }
.mcard .mh .ic { width:30px; height:30px; border-radius:7px; background:var(--t-brand-soft); color:var(--t-brand-deep); display:grid; place-items:center; }
.mcard .mh .ic svg { width:16px; height:16px; }
.mcard .mh .mt { font-weight:600; font-size:14px; color:var(--t-ink); letter-spacing:-.01em; }
.mcard ul { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.mcard li { font-size:12px; line-height:1.45; color:var(--t-body); padding-left:15px; position:relative; }
.mcard li::before { content:''; position:absolute; left:0; top:7px; width:5px; height:5px; border-radius:50%; background:var(--t-brand); }

/* coverage states */
.cov { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }

/* ===== interactive taxonomy table (§4) ===== */
.txctrls { display:flex; align-items:center; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.txctrls button { font-family:var(--font-sans); font-size:11.5px; font-weight:500; color:var(--t-ink); background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:7px; padding:6px 12px; cursor:pointer; transition:border-color .12s,background .12s; }
.txctrls button:hover { border-color:var(--t-ink); }
.txlegend { display:flex; flex-wrap:wrap; gap:5px 13px; margin-left:auto; }
.txlegend span { display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--t-muted); }
.txlegend i { width:9px; height:9px; border-radius:2px; }
.txt { border:1px solid var(--t-line); border-radius:12px; overflow:hidden; }
.txhead { display:grid; grid-template-columns:1fr 130px 60px 78px; column-gap:20px; align-items:center; padding:11px 20px; background:var(--t-paper-2); border-bottom:1px solid var(--t-line); font-family:var(--font-mono); font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--t-subtle); }
.txhead .txnum { text-align:right; }
.txhead .txh-mix { padding-left:0; }
.txrow { display:grid; grid-template-columns:1fr 130px 60px 78px; column-gap:20px; align-items:center; padding:0 20px; border-bottom:1px solid var(--t-line); transition:background .12s; }
.txrow:last-child { border-bottom:0; }
.txrow.lvl-d { background:var(--t-canvas); }
.txrow.lvl-d:hover { background:var(--t-canvas-2); }
.txrow.lvl-act { background:var(--t-canvas-2); }
.txrow.lvl-act:hover { background:#F4EFE2; }
.txrow.lvl-task { background:#FBF8F0; }
.txrow.lvl-d, .txrow.lvl-act { cursor:pointer; }
.txrow[hidden] { display:none; }
.txlabel-cell { display:flex; align-items:center; gap:9px; padding:11px 0; min-width:0; }
.lvl-act .txlabel-cell { padding:9px 0 9px 24px; }
.lvl-task .txlabel-cell { padding:7px 0 7px 48px; }
.txname { font-size:13px; color:var(--t-ink); letter-spacing:-.01em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lvl-d .txname { font-weight:600; }
.lvl-act .txname { font-weight:500; font-size:12.5px; }
.lvl-task .txname { font-weight:400; font-size:12px; color:var(--t-body); white-space:normal; }
.chev { color:var(--t-subtle); flex:none; transition:transform .15s var(--t-ease,ease); }
.txrow.open > .txlabel-cell .chev { transform:rotate(90deg); }
.tdot { width:8px; height:8px; border-radius:2px; flex:none; }
.tstar { color:var(--t-amber); font-size:11px; }
.txmini { display:flex; height:9px; width:130px; border-radius:3px; overflow:hidden; gap:1px; }
.txmini i { display:block; }
.txnum { text-align:right; font-family:var(--font-mono); font-size:11.5px; color:var(--t-muted); font-variant-numeric:tabular-nums; padding-right:0; }
.lvl-d .txnum { color:var(--t-ink); font-weight:500; }
.txtype { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--t-subtle); }
.txrow-held { background:var(--t-paper-2); }
.txrow-held .txname { font-weight:400; font-style:italic; font-size:12px; color:var(--t-muted); white-space:normal; }
.txrow-held .txnum { color:var(--t-subtle); font-style:italic; }
.held-hatch, .held-sw { background-image:repeating-linear-gradient(135deg,#cfc8b8 0 5px,#e6e0ce 5px 10px) !important; }
.mk-seg.mk-hatch { background-image:repeating-linear-gradient(135deg,#cfc8b8 0 8px,#ddd6c4 8px 16px); }
.mk-seg.mk-hatch .mk-name { color:var(--t-muted); }
.mk-col.mk-held .mk-h .mk-dom { color:var(--t-muted); }
.mk-lg i.held-sw { width:11px; height:11px; border-radius:3px; }

/* ===== Work Profile Map · marimekko (§5) ===== */
.wpm-bar { display:flex; align-items:center; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.wpm-back { font-family:var(--font-sans); font-size:12px; font-weight:500; color:var(--t-ink); background:var(--t-canvas-2); border:1px solid var(--t-line); border-radius:7px; padding:6px 12px; cursor:pointer; transition:border-color .12s,background .12s; }
.wpm-back:hover { border-color:var(--t-ink); }
.wpm-crumb { font-size:13px; color:var(--t-muted); } .wpm-crumb b { color:var(--t-ink); font-weight:600; }
.wpm-hint { margin-left:auto; font-family:var(--font-mono); font-size:10px; letter-spacing:.03em; color:var(--t-subtle); }
.mk { display:flex; gap:7px; height:440px; padding:16px; align-items:stretch; }
.mk.mk-deep { height:460px; }
.mk-col { display:flex; flex-direction:column; min-width:64px; }
.mk-col.mk-click { cursor:pointer; }
.mk-col.mk-click:hover .mk-stack { box-shadow:0 0 0 2px var(--t-ink); }
.mk-col.mk-click:focus-visible { outline:2px solid var(--t-brand); outline-offset:2px; }
.mk-h { margin-bottom:7px; }
.mk-h .mk-dom { display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--t-ink); letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mk-h .mk-zoom { color:var(--t-subtle); font-size:11px; }
.mk-h .mk-fig { display:block; font-family:var(--font-mono); font-size:8.5px; color:var(--t-subtle); margin-top:3px; white-space:normal; line-height:1.3; }
.mk-stack { flex:1; display:flex; flex-direction:column; gap:2px; border-radius:5px; overflow:hidden; transition:box-shadow .12s; }
.mk-seg { position:relative; display:flex; flex-direction:column; justify-content:space-between; padding:5px 7px; min-height:0; overflow:hidden; transition:filter .12s; }
.mk-seg:hover { filter:brightness(1.06) saturate(1.05); }
.mk-seg .mk-name { font-size:9.5px; line-height:1.15; font-weight:500; color:#fff; letter-spacing:-.01em; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.mk-seg .mk-star { color:#fff; }
.mk-seg .mk-lab { align-self:flex-end; font-family:var(--font-mono); font-size:9px; color:rgba(255,255,255,.92); font-variant-numeric:tabular-nums; }
.mk-legend { display:flex; flex-wrap:wrap; gap:8px 18px; padding:0 18px 16px; }
.mk-lg { display:inline-flex; align-items:center; gap:7px; font-size:11.5px; color:var(--t-ink); }
.mk-lg i { width:11px; height:11px; border-radius:3px; flex:none; }
.mk-lg b { font-weight:600; }
.mk-lg em { font-style:normal; color:var(--t-subtle); font-size:10.5px; }

/* ===== table of contents ===== */
.toc { list-style:none; margin:0; padding:0; counter-reset:none; }
.toc li { border-bottom:1px solid var(--t-line); }
.toc li:first-child { border-top:1px solid var(--t-line); }
.toc a { display:grid; grid-template-columns:46px 1fr auto; align-items:baseline; gap:16px; padding:15px 6px; transition:background .12s,padding .12s; }
.toc a:hover { background:var(--t-canvas-2); padding-left:14px; }
.toc .tn { font-family:var(--font-mono); font-size:13px; font-weight:500; color:var(--t-brand); }
.toc .tt { font-size:16px; font-weight:600; color:var(--t-ink); letter-spacing:-.018em; }
.toc .td { font-size:12.5px; color:var(--t-muted); text-align:right; }
@media (max-width:560px){ .toc a { grid-template-columns:38px 1fr; } .toc .td { display:none; } }

.cov .cstate { border:1px solid var(--t-line); border-radius:9px; padding:15px; background:var(--t-canvas-2); }

/* scoped-cohort table (§2) */
.cohorts { border:1px solid var(--t-line); border-radius:10px; overflow:hidden; }
.cohort { display:grid; grid-template-columns:auto 1fr; gap:0 16px; align-items:center; padding:13px 16px; border-bottom:1px solid var(--t-line); background:var(--t-canvas-2); }
.cohort:last-child { border-bottom:0; }
.cohort .cc { font-weight:600; font-size:22px; letter-spacing:-.03em; color:var(--t-ink); font-variant-numeric:tabular-nums; grid-row:1 / span 2; width:38px; }
.cohort .cr { font-weight:600; font-size:13.5px; color:var(--t-ink); letter-spacing:-.01em; }
.cohort .cw { font-size:11.5px; color:var(--t-muted); line-height:1.4; }
.boundary { display:flex; flex-direction:column; gap:13px; }
.boundary li { list-style:none; }
.boundary .bl { font-weight:600; font-size:13px; color:var(--t-ink); letter-spacing:-.01em; }
.boundary .bd { font-size:12px; color:var(--t-muted); line-height:1.45; margin-top:2px; }

/* "didn't try to answer" block (§3) */
.notdone { border:1px solid var(--t-line); border-radius:10px; overflow:hidden; display:grid; grid-template-columns:1.1fr 1fr 1fr 1fr; background:var(--t-canvas-2); margin-top:22px; }
.notdone .nd-lead { padding:18px; border-right:1px solid var(--t-line); }
.notdone .nd-lead .ndk { font-family:var(--font-mono); font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--t-subtle); margin-bottom:8px; }
.notdone .nd-lead .ndt { font-weight:600; font-size:15px; color:var(--t-ink); letter-spacing:-.02em; line-height:1.15; }
.notdone .nd { padding:18px; border-right:1px solid var(--t-line); }
.notdone .nd:last-child { border-right:0; }
.notdone .nd b { display:block; font-size:12.5px; font-weight:600; color:var(--t-ink); margin-bottom:5px; }
.notdone .nd span { font-size:11.5px; color:var(--t-muted); line-height:1.45; }
.cstate .ch { font-family:var(--font-mono); font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--t-brand); margin-top:8px; padding-top:8px; border-top:1px solid var(--t-line); }
.cov .cstate .ct { font-weight:600; font-size:13px; color:var(--t-ink); margin-bottom:6px; display:flex; align-items:center; gap:7px; }
.cov .cstate .ct i { width:9px; height:9px; border-radius:50%; }
.cov .cstate .cp { font-size:11.5px; line-height:1.45; color:var(--t-muted); }

/* end CTA */
.endcta { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 30px; background:var(--t-brand); color:var(--t-brand-ink); border-radius:12px; flex-wrap:wrap; }
.endcta .l b { display:block; font-size:17px; font-weight:600; letter-spacing:-.02em; }
.endcta .l span { font-size:12.5px; color:rgba(255,255,255,.85); }
.endcta a { background:var(--t-brand-ink); color:var(--t-brand-deep); font-weight:600; font-size:13.5px; border-radius:999px; padding:11px 20px; text-decoration:none; white-space:nowrap; }

.mt-auto { margin-top:auto; }
.gap-top { margin-top:28px; }

/* ===== print ===== */
@media print {
  @page { size:A4 portrait; margin:0; }
  body { background:#fff; padding:0; }
  .toolbar { display:none; }
  .sheet { width:100%; min-height:100vh; margin:0; box-shadow:none; border-radius:0; page-break-after:always; break-after:page; padding:42px 48px 56px; }
  .sheet:last-child { page-break-after:auto; break-after:auto; }
  .sheet-foot { position:absolute; left:48px; right:48px; }
}
@media (max-width:920px){
  body { padding:18px 0 50px; }
  .sheet { width:100%; min-height:0; padding:40px 26px 64px; }
  .sheet-foot { left:26px; right:26px; }
  .cover-inner { padding:40px 26px; }
  .cover h1 { font-size:40px; }
  .cover-meta { grid-template-columns:1fr; gap:16px; }
  .two,.two-37,.mgrid { grid-template-columns:1fr; gap:22px; }
  .kpis,.kpis.three { grid-template-columns:repeat(2,1fr); }
  .cov { grid-template-columns:1fr; }
}
@media (max-width:560px){
  .kpis,.kpis.three { grid-template-columns:1fr; }
  .taxrow { grid-template-columns:1fr; gap:5px; } .taxrow .tv { text-align:left; }
  .pulse-bar { grid-template-columns:1fr; gap:5px; }
  .hotcard { grid-template-columns:1fr; } .hotcard .hmeta { grid-column:auto; grid-row:auto; text-align:left; align-items:flex-start; flex-direction:row; gap:12px; } .hotcard .hn { grid-column:auto; }
  .opp { grid-template-columns:1fr; }
  .mekko { height:auto; flex-direction:column; }
  .txhead, .txrow { grid-template-columns:1fr 70px; }
  .txhead .txh-mix, .txrow .txh-mix { display:none; }
  .mk { height:auto; flex-direction:column; gap:8px; }
  .mk-col { flex:none !important; }
  .mk-stack { height:46px; flex-direction:row; }
  .txlegend { width:100%; margin-left:0; }
  .trk-row { grid-template-columns:1fr auto; gap:6px 12px; }
  .trk-row .route, .trk-wave, .trk-eff { display:none; }
  .oc-body { grid-template-columns:1fr; }
  .docsys { grid-template-columns:1fr; }
  .impact-band { flex-direction:column; align-items:flex-start; }
  .oc-left { border-right:0; border-bottom:1px solid var(--t-line); }
}
