/* Caverio synthesis · direction 8 "synthesis" · 2026-09-17. One stylesheet. Base = D5 setup.css (the skeleton) as is,
   then the five other modules scoped under .m-story .m-arr .m-tape .m-ppl .m-race so the six do not fight. Palette + type from caverio.css.
   Green only on observed inflow, rose only on observed outflow or an observed exit. Unknown = hatch. */
:root{--cv-unknown-hatch:repeating-linear-gradient(135deg,rgba(233,237,231,.42) 0 1px,transparent 1px 4px)}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.num{font-family:var(--cv-font-data);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
a{color:inherit}
.shell{max-width:1360px;margin:0 auto;padding:0 28px}
.topbar{display:flex;align-items:center;justify-content:space-between;height:66px;border-bottom:1px solid var(--line);gap:20px}
.nav{display:flex;gap:22px;font-size:13px;color:var(--muted);align-self:stretch;align-items:stretch}
.nav span{display:flex;align-items:center;border-bottom:2px solid transparent}
.nav span.active{color:var(--ink);border-bottom-color:var(--ink)}
.intro{margin:26px 0 14px;display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap}
.intro h1{font-size:30px;font-weight:500;letter-spacing:-.02em;margin:0 0 2px}
.intro p{margin:0;color:var(--muted);font-size:14px;max-width:720px}
.intro .status{font-family:var(--cv-font-data);font-size:12px;color:var(--cv-bone-40);letter-spacing:.06em;text-align:right}
.footer{margin:40px 0 44px;font-size:12px;color:var(--cv-bone-40);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.k{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.06em;color:var(--cv-bone-62)}
.k small{font-size:12px;letter-spacing:0;color:var(--cv-bone-40)}
.dim{color:var(--cv-bone-40)}
.small{font-size:12px}
.unk{color:var(--cv-bone-62)}
.in{color:var(--cv-green)}.out{color:var(--cv-rose)}

/* board */
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--cv-radius-card);padding:16px 18px 14px;display:flex;flex-direction:column;gap:10px;min-width:0;cursor:pointer;position:relative}
.card:hover{border-color:var(--cv-bone-18)}
.card:focus{outline:1px solid var(--cv-bone-40);outline-offset:2px}
.card.pinned{border-color:var(--cv-ochre-line)}

/* header (constant) */
.hd{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}
.ident{display:flex;align-items:baseline;gap:8px;min-width:0}
.sym{font-size:16px;font-weight:600;letter-spacing:.01em;white-space:nowrap}
.ident .ctx{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr{display:flex;align-items:center;gap:6px;flex-shrink:0}
.stage{font-size:12px;color:var(--cv-bone-70);border:1px solid var(--cv-bone-18);border-radius:var(--cv-radius-chip);padding:2px 7px;white-space:nowrap}
.ic{background:transparent;border:1px solid transparent;color:var(--cv-bone-62);border-radius:4px;padding:3px 4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;line-height:0;font:inherit}
.ic:hover{color:var(--ink);border-color:var(--cv-bone-18)}
.ic.done{color:var(--cv-green)}
.ic.pin.on{color:var(--cv-ochre)}
.ic .addr{font-size:12px;line-height:1;color:var(--cv-bone-62)}
.last{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--cv-bone-70);border-bottom:1px solid var(--line);padding-bottom:8px}
.last .num{color:var(--cv-bone-62);font-size:12px;white-space:nowrap}

/* cap block (constant) */
.capb{display:flex;flex-direction:column;gap:2px}
.capl1,.capl2{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.since{font-size:12px;color:var(--cv-bone-62);text-align:right}
.since b{font-size:14px;color:var(--ink);font-weight:500;margin-right:5px}
.since b.unk{font-size:12px;color:var(--cv-bone-62);font-weight:400}
.capbig{font-size:30px;font-weight:500;line-height:1.1;margin:2px 0 4px}
.chart{height:54px;width:100%}
.chart .capsvg{width:100%;height:100%;display:block}
.capl{fill:none;stroke:var(--cv-bone-70);stroke-width:1.4;vector-effect:non-scaling-stroke}
.basel{stroke:var(--cv-bone-18);stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}
.capd{fill:var(--cv-bone)}.capd0{fill:var(--cv-bone-40)}
.axt{font-family:var(--cv-font-data);font-size:11px;fill:var(--cv-bone-40)}
.nochart{height:100%;display:flex;align-items:center;font-size:12px;color:var(--cv-bone-62);background:var(--cv-unknown-hatch);padding:0 8px;border-radius:3px}
.capl2 .k{font-size:12px;letter-spacing:.02em;color:var(--cv-bone-40)}
.pl{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--cv-bone-62);margin-top:6px;padding-top:8px;border-top:1px solid var(--line)}
.pl b{color:var(--ink);font-weight:500}

/* flow (constant) */
.flowb{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}
.flowl{display:flex;align-items:center;gap:12px}
.flowl .k{flex:0 0 112px;line-height:1.3;white-space:nowrap}
.fb{flex:1;min-width:0;height:34px}
.fb .flowsvg{width:100%;height:100%;display:block}
.fmid{stroke:var(--cv-bone-18);stroke-width:1;vector-effect:non-scaling-stroke}
.fin{fill:var(--cv-green)}.fout{fill:var(--cv-rose)}.fnone{fill:var(--cv-bone-18)}.funp{stroke:var(--cv-bone-18);stroke-width:.5}
.latest{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;line-height:1.2}
.latest b{font-size:14px;font-weight:500;color:var(--ink)}
.latest.in b{color:var(--cv-green)}.latest.out b{color:var(--cv-rose)}.latest.unk b{color:var(--cv-bone-62)}
.latest small{font-family:var(--cv-font-data);font-size:12px;color:var(--cv-bone-40)}
.noflow{display:flex;align-items:center;gap:8px;height:100%;font-size:12px;color:var(--cv-bone-62)}
.noflow .hatch{display:inline-block;width:40px;height:10px;background:var(--cv-unknown-hatch);border:1px solid var(--cv-bone-12);border-radius:2px;flex-shrink:0}

/* the setup sheet: the synthesis */
.sheet{display:flex;flex-direction:column;gap:6px;font-family:var(--cv-font-editorial);font-size:15px;line-height:1.35;letter-spacing:-.003em}
.sheet .lab,.ppwrap .lab,.attn .lab,.unks .lab{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--cv-bone-62);flex:0 0 92px;padding-top:3px;line-height:1.2}
.sheet .row{display:flex;gap:8px;align-items:flex-start;min-width:0}
.sheet .row .txt{flex:1;min-width:0;color:var(--ink)}
.sheet .row.ctx .txt{color:var(--ink)}
.sheet .grp{display:flex;gap:8px;align-items:flex-start}
.sheet .grp .rows{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.sheet .sub{font-family:var(--font);font-size:13px;color:var(--cv-bone-62);margin-right:6px}
.sheet .sub::after{content:":"}
.sheet .row.st-waiting .txt{color:var(--cv-bone-70)}
.sheet .row.st-unknown .txt{color:var(--cv-bone-62)}
.sheet .row.st-clear .txt{color:var(--cv-bone-70)}
.sheet .row.st-seen.rose .txt{color:var(--cv-rose)}
.sheet .row.risk .txt{color:var(--cv-bone-70);font-family:var(--font);font-size:13px;padding-top:2px}
.sheet .under{color:var(--cv-bone-62)}
.unkin{display:inline-flex;align-items:center;gap:5px}
.detail{display:block;font-family:var(--font);font-size:13px;color:var(--cv-bone-62);margin-top:2px}
/* D5 glyphs (scoped to <i> so D2 list svgs are untouched): filled square = in place, hollow = waiting, hatch = unknown, struck square = seen against, hollow ring = not seen */
i.g{display:inline-block;width:13px;height:13px;border-radius:2px;flex-shrink:0;margin-top:4px;border:1px solid var(--cv-bone-70);position:relative}
.g-have{background:var(--cv-bone);border-color:var(--cv-bone)}
.g-wait{background:transparent;border-color:var(--cv-bone-40)}
.g-unk{background:repeating-linear-gradient(135deg,rgba(233,237,231,.55) 0 1px,transparent 1px 3.5px);border-color:var(--cv-bone-40)}
.g-seen{background:transparent;border-color:var(--cv-bone-70)}
.g-seen::before,.g-seen::after{content:"";position:absolute;left:1px;right:1px;top:50%;height:1.5px;background:var(--cv-bone-70);transform:rotate(45deg)}
.g-seen::after{transform:rotate(-45deg)}
.rose .g-seen{border-color:var(--cv-rose)}.rose .g-seen::before,.rose .g-seen::after{background:var(--cv-rose)}
.g-clear{border-radius:50%;border-color:var(--cv-bone-40)}

.ft{display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--line);padding-top:8px;margin-top:auto;font-size:13px;line-height:1.4}
.ft .k{flex:0 0 92px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding-top:2px}
.ft .txt{color:var(--cv-bone-70)}
.open{display:flex;justify-content:flex-end;font-size:12px}
.open a{color:var(--cv-bone-62);text-decoration:none}
.card:hover .open a{color:var(--ink)}

/* situation */
.sit{margin-top:8px;display:flex;flex-direction:column;gap:12px}
.sit .hd .sym{font-size:24px}
.sit .last{font-size:14px}
.cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:start}
.colL,.colR{display:flex;flex-direction:column;gap:14px;min-width:0}
.sit .capbig{font-size:40px}
.sit .chart{height:150px}
.sit .fb{height:90px}
.sit .flowl .k{flex-basis:130px}
.tot{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--cv-bone-70);align-items:baseline}
.tot span:first-child{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.06em;color:var(--cv-bone-62)}
.attn{display:flex;gap:8px;align-items:flex-start;font-family:var(--cv-font-editorial);font-size:15px;line-height:1.35;border-top:1px solid var(--line);padding-top:10px}
.attn .txt{color:var(--cv-bone-70)}
.sit .sheet{gap:12px;font-size:17px;background:var(--panel);border:1px solid var(--line);border-radius:var(--cv-radius-panel);padding:18px 20px}
.sit .sheet .grp .rows{gap:8px}
.ppwrap{display:flex;flex-direction:column;gap:8px}
.ppwrap .lab,.unks .lab{flex-basis:auto}
.flowax{display:flex;justify-content:space-between;gap:8px;margin-top:4px}
.flowax .k{font-size:12px;color:var(--cv-bone-40);letter-spacing:.02em}
.ppl{width:100%;border-collapse:collapse;font-size:13px}
.ppl th{text-align:left;font-family:var(--cv-font-data);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--cv-bone-40);font-weight:400;padding:4px 8px 6px 0;border-bottom:1px solid var(--line)}
.ppl td{padding:7px 8px 7px 0;border-bottom:1px solid var(--cv-bone-06);vertical-align:top;color:var(--cv-bone-70)}
.ppl td.h{color:var(--ink);white-space:nowrap}
.ppl td.rose{color:var(--cv-rose)}.ppl td.unk{color:var(--cv-bone-62)}
.empty{font-size:13px;color:var(--cv-bone-62)}
.ft.big{font-size:15px;font-family:var(--cv-font-editorial)}
.ft.big .txt{color:var(--ink)}
.unks ul{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--cv-bone-62)}
.clocks{font-size:12px;color:var(--cv-bone-40);letter-spacing:.02em}
.sitnav{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 6px;font-size:13px}
.sitnav a{text-decoration:none;color:var(--cv-bone-62);border:1px solid var(--line);border-radius:var(--cv-radius-chip);padding:3px 9px}
.sitnav a.on{color:var(--ink);border-color:var(--cv-bone-40)}
.sitnav a.back{border:0;padding-left:0;color:var(--cv-bone-70)}

/* phone: one column, nothing wider than the viewport */
@media(max-width:700px){
  .shell{padding:0 12px}
  .topbar{height:58px}.nav span:not(.active){display:none}.nav span.active{padding:19px 0}
  .intro h1{font-size:24px}.intro .status{text-align:left}
  .board{grid-template-columns:1fr;gap:14px}
  .card{padding:14px 14px 12px}
  .sheet{font-size:15px}
  .sheet .lab,.ft .k{flex-basis:80px}
  .sheet .grp .rows .row .lab{min-width:0}
  .cols{grid-template-columns:1fr;gap:16px}
  .sit .capbig{font-size:34px}
  .sit .chart{height:110px}.sit .fb{height:64px}
  .sit .sheet{padding:14px;font-size:15px}
  .ppl{display:block;overflow-x:auto;max-width:100%}
  .ppl th,.ppl td{font-size:12px;padding-right:10px}
  .ic .addr{display:none}
  .flowl{flex-wrap:wrap;gap:6px 10px}
  .flowl .k{flex:0 0 100%;white-space:normal}
  .flowl .k br{display:none}
  .flowl .k small::before{content:" · "}
  .fb{flex:1 1 0;height:40px}
}

/* ===================== D8 assembly ===================== */
/* card: the lead line (D4) between the cap block and the setup rows */
.card{gap:9px}
.m-story .lead{font-family:var(--cv-font-editorial);font-size:17px;line-height:1.3;letter-spacing:-.005em;margin:0;color:var(--cv-bone);overflow-wrap:anywhere}
.m-story .lead .num{font-size:15px}
.m-story .num{font-family:var(--cv-font-data);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--cv-bone);margin:0 .04em 0 .1em}
.m-story .num.in{color:var(--cv-green)}.m-story .num.out{color:var(--cv-rose)}.m-story .num.unk{color:var(--cv-bone-62)}
.m-story .who{font-family:var(--cv-font-ui);font-weight:500;color:var(--cv-ochre);white-space:nowrap}
.m-story .unkline{background:var(--cv-unknown-hatch);color:var(--cv-bone-70);padding:0 4px;border-radius:2px;font-family:var(--cv-font-data);font-size:12px}
.card .m-story .lead{border-top:1px solid var(--line);padding-top:9px}
/* compact sheet: the flow bars ride inside the money-in row; drawn once per card */
.sheet.compact{gap:5px}
.sheet.compact .grp .rows{gap:3px}
.sheet .row.money .txt{display:flex;flex-direction:column;gap:3px}
.sheet .row.money .fbrow{display:flex;align-items:center;gap:10px;font-family:var(--font)}
.sheet .row.money .fb{flex:1;min-width:0;height:34px;display:block}
.sheet .row.money .fb .flowsvg{width:100%;height:100%;display:block}
.sheet .row.money .noflow{height:auto;font-family:var(--font);font-size:12.5px}
.sheet .row.money .latest{flex:0 1 auto;min-width:0;max-width:60%;text-align:right;display:flex;flex-direction:column;line-height:1.2}
.sheet .row.money .latest b{font-size:14px;font-weight:500;color:var(--ink)}
.sheet .row.money .latest.in b{color:var(--cv-green)}.sheet .row.money .latest.out b{color:var(--cv-rose)}.sheet .row.money .latest.unk b{color:var(--cv-bone-62)}
.sheet .row.money .latest small{font-family:var(--cv-font-data);font-size:12px;color:var(--cv-bone-40);white-space:normal;overflow-wrap:anywhere}
.sheet .row.risk .txt .num{color:var(--cv-bone)}
/* the arrival strip on the card (D2, compact): glyphs on real time, no list */
.m-arr .stripwrap{margin:0;width:100%;min-width:0}
.m-arr .strip{display:block;overflow:visible}
.m-arr .strip .axl{font-family:var(--cv-font-data);font-size:12px;fill:var(--cv-bone-62)}
.m-arr .strip .axl-amber{fill:var(--cv-ochre)}
.m-arr .strip .gap{font-family:var(--cv-font-data);font-size:12px;fill:var(--cv-bone-40)}
.card .card-arr{border-top:1px solid var(--line);padding-top:6px}
/* the written order (situation only) */
.m-arr .arrivals{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--cv-bone-70)}
.m-arr .arrivals li{display:flex;align-items:flex-start;gap:6px;max-width:100%;min-width:0;line-height:1.35}
.m-arr .arrivals li b{font-family:var(--cv-font-data);font-weight:500;color:var(--cv-bone-62);font-size:12px}
.m-arr .arrivals li span{min-width:0}
.m-arr .arrivals li b,.m-arr .arrivals li i.gap{white-space:nowrap;flex-shrink:0}
.m-arr .arrivals svg.g{margin-top:1px;flex-shrink:0;overflow:visible}
.m-arr .arrivals li i.gap{font-style:normal;font-family:var(--cv-font-data);font-size:12px;color:var(--cv-bone-40);min-width:58px;text-align:right}
.m-arr .arrivals li i.gap::after{content:" ›"}
.m-arr .arrivals li:not(:has(i.gap))>svg:first-child{margin-left:64px}
.m-arr .arrivals li.unplaced>svg:first-child,.m-arr .arrivals li.ev-attention>svg:first-child{margin-left:64px}
.m-arr .arrivals li.ev-buy span{color:var(--ink)}
.m-arr .arrivals li.ev-sell span,.m-arr .arrivals li.ev-reduce span{color:var(--cv-rose)}
.m-arr .arrivals li.ev-call span{color:var(--cv-ochre)}
.m-arr .arrivals li.ev-attention span,.m-arr .arrivals li.ev-thesis span{color:var(--cv-blue)}
.m-arr .arrivals li.unplaced span,.m-arr .arrivals li.more{color:var(--cv-bone-40);font-style:italic}
.m-arr .notyet{margin:8px 0 0;font-size:13px;color:var(--cv-bone-62);line-height:1.4}
.m-arr .notyet .lbl{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--cv-bone-40);margin-right:6px}
.m-arr .arrlab{margin:6px 0 2px}

/* situation: sections as panels */
.sit>section,.sit .sheetwrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--cv-radius-panel);padding:16px 20px;min-width:0}
.sit .h{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--cv-bone-62);font-weight:500;margin:0 0 10px}
.sit .serif{font-family:var(--cv-font-editorial);font-size:16px;line-height:1.4;margin:0 0 6px}
.sit .fine{font-size:12.5px;color:var(--cv-bone-62);margin:4px 0 0}
.sit .sheetwrap .sheet{background:none;border:0;padding:0;gap:12px;font-size:17px}
.sit .sheetwrap .sheet .grp .rows{gap:8px}
.sit .sheetwrap .ppwrap{margin-top:16px}
.sit .sheetwrap .tot{margin-top:12px}
.sit .cols{align-items:stretch}
/* decision brief (D4) */
.brief .lead.big{font-size:22px;line-height:1.28}
.brief .lead.big .num{font-size:19px}
.m-story .note{font-family:var(--cv-font-editorial);font-size:15.5px;line-height:1.5;color:var(--cv-bone);min-width:0;overflow-wrap:anywhere;margin-top:10px}
.m-story .note p{margin:0 0 10px}
.m-story .note .para{color:var(--cv-bone);opacity:.92}
.m-story .note .para .num{font-size:13.5px}
.m-story .note .tag{display:block;font-family:var(--cv-font-data);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--cv-bone-40);margin-bottom:2px}
/* timeline: tape (D1) at full width, arrival strip (D2) beneath on the same clock */
.m-tape .tapewrap{width:100%;overflow:visible}
.m-tape .tapewrap svg{display:block;width:100%;height:auto}
.tl .m-arr{margin-top:6px}
.tl .m-arr .sit-strip svg{display:block;width:100%;height:auto}
/* people (D7) */
.m-ppl .who{display:flex;flex-direction:column;gap:10px}
.m-ppl .lbl{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--cv-bone-62)}
.m-ppl .lbl b{font-family:var(--cv-font-ui);font-size:14px;letter-spacing:0;text-transform:none;color:var(--cv-bone);font-weight:500;margin-left:8px}
.m-ppl .unk{font-style:normal;color:var(--cv-bone-40);background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(233,237,231,.08) 3px 4px);padding:0 3px;border-radius:2px}
.m-ppl .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block;border:1.5px solid var(--cv-bone-40)}
.m-ppl .dot-held{background:var(--cv-bone);border-color:var(--cv-bone)}
.m-ppl .dot-reduced{background:transparent;border-color:var(--cv-rose);border-style:dashed}
.m-ppl .dot-out{background:var(--cv-rose);border-color:var(--cv-rose)}
.m-ppl .dot-unchecked{background:repeating-linear-gradient(45deg,transparent 0 2px,rgba(233,237,231,.4) 2px 3px);border-color:var(--cv-bone-40)}
.m-ppl .st-held{color:var(--cv-bone-70)}.m-ppl .st-reduced{color:var(--cv-rose)}.m-ppl .st-out{color:var(--cv-rose)}.m-ppl .st-unchecked{color:var(--cv-bone-40)}
.m-ppl .ptable{display:flex;flex-direction:column;gap:10px}
.m-ppl .pcard{background:var(--cv-raised);border:1px solid var(--cv-bone-06);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;border-left:3px solid var(--cv-bone-18)}
.m-ppl .pcard-held{border-left-color:var(--cv-bone-70)}.m-ppl .pcard-reduced{border-left-color:var(--cv-rose)}.m-ppl .pcard-out{border-left-color:var(--cv-rose)}.m-ppl .pcard-unchecked{border-left-color:transparent;border-left:3px dashed var(--cv-bone-40)}
.m-ppl .pc1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.m-ppl .pc1 .handle{font-weight:600;font-size:15px}
.m-ppl .pc1 .st{font-size:13px}
.m-ppl .pc2,.m-ppl .pc3{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--cv-bone-70)}
.m-ppl .pc2 b,.m-ppl .pc3 b{color:var(--cv-bone);font-weight:500}
.m-ppl .pc2 .dn{color:var(--cv-rose)}
.m-ppl .pc3 .size.larger{color:var(--cv-bone)}
.m-ppl .hc{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--cv-bone-62)}
.m-ppl .hcbar{flex:0 0 160px;height:6px;border-radius:3px;background:var(--cv-bone-06);overflow:hidden;border:1px solid var(--cv-bone-12)}
.m-ppl .hcbar i{display:block;height:100%;background:var(--cv-bone-40)}
.m-ppl .desc{margin:2px 0 0;color:var(--cv-bone-70);font-family:var(--cv-font-editorial);font-size:14px;line-height:1.4}
.m-ppl .why{margin:0;font-size:12px;color:var(--cv-bone-40);font-family:var(--cv-font-data)}
.m-ppl .cohort{margin:6px 0 0;font-size:13px;color:var(--cv-bone-62)}
.m-ppl .pextra{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--cv-bone-70);margin-top:2px}
.m-ppl .pextra>span,.m-ppl .pextra li{display:flex;align-items:flex-start;gap:7px;line-height:1.35}
.m-ppl .pextra i{width:8px;height:8px;border-radius:2px;flex-shrink:0;margin-top:4px;display:inline-block}
.m-ppl .tog i{background:var(--cv-ochre)}.m-ppl .left i{background:var(--cv-rose);border-radius:50%}.m-ppl .thes i{background:transparent;border:1px solid var(--cv-ochre)}.m-ppl .ind i{background:var(--cv-bone-40)}
.m-ppl .tog{color:var(--cv-bone)}
.m-ppl ul.pextra{list-style:none;padding:0;margin:8px 0 0;gap:8px;font-size:13px}
/* money versus attention (D6) */
.m-race .sl{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--cv-bone-62);align-items:baseline;flex-wrap:wrap}
.m-race .raceti{color:var(--cv-bone-70);font-family:var(--cv-font-data);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.m-race .raceti em{font-style:normal;color:var(--cv-bone-40)}
.m-race .raceti .cw{color:var(--cv-blue)}
.m-race .lead{font-family:var(--cv-font-ui);font-size:13px;font-weight:500;color:var(--cv-bone);white-space:nowrap}
.m-race .lead-crowd{color:var(--cv-blue)}.m-race .lead-money{color:var(--cv-bone)}.m-race .lead-none{color:var(--cv-bone-62)}
.m-race .svgbox{width:100%;min-width:0;margin-top:8px}
.m-race svg{display:block;max-width:100%}
.m-race svg text{font-family:var(--cv-font-data)}
.m-race svg text.ax{font-size:12px;fill:var(--cv-bone-62)}
.m-race svg text.ax.dim{fill:var(--cv-bone-40)}
.m-race svg text.lbl{font-size:12.5px;fill:var(--cv-bone)}
.m-race svg text.lbl.dim{fill:var(--cv-bone-62)}
.m-race svg text.lbl.money{fill:var(--cv-bone)}
.m-race svg text.crowd,.m-race svg text.lbl.crowd{fill:var(--cv-blue)}
.m-race svg text.lbl.buy{fill:var(--cv-bone-70);font-size:12px}
.m-race svg text.lbl.out{fill:var(--cv-rose)}
.m-race .capline{fill:none;stroke:var(--cv-bone);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.m-race .capdot{fill:var(--cv-bone)}
.m-race .zero{stroke:var(--cv-bone-18);stroke-width:1}
.m-race .seen{stroke:var(--cv-bone-18);stroke-width:1;stroke-dasharray:2 3}
.m-race .nowcur{stroke:var(--cv-bone-40);stroke-width:1}
.m-race .money{fill:none;stroke:var(--cv-bone);stroke-width:1.6;stroke-linejoin:round}
.m-race .fill-in{fill:var(--cv-green);opacity:.28}
.m-race .fill-out{fill:var(--cv-rose);opacity:.28}
.m-race .crowd{fill:none;stroke:var(--cv-blue);stroke-width:1.6;stroke-linejoin:round}
.m-race .crowd.unknown{stroke-dasharray:3 4;opacity:.8}
.m-race .crowddot{fill:var(--cv-blue)}
.m-race .callline{stroke:var(--cv-blue);stroke-width:1;stroke-dasharray:2 3;opacity:.7}
.m-race .callflag{fill:var(--cv-blue)}
.m-race .buytick{stroke:var(--cv-bone);stroke-width:2;stroke-linecap:round}
.m-race .buytick.out{stroke:var(--cv-rose)}
.m-race .selltick{stroke:var(--cv-rose);stroke-width:2;stroke-linecap:round}
.m-race .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--cv-bone-62);margin-top:6px}
.m-race .legend span{display:inline-flex;align-items:center;gap:6px}
.m-race .lg{width:14px;height:3px;border-radius:2px;display:inline-block}
.m-race .lg.money{background:var(--cv-bone)}.m-race .lg.crowd{background:var(--cv-blue)}.m-race .lg.buy{width:3px;height:10px;background:var(--cv-bone)}.m-race .lg.hatch{height:10px;background:var(--cv-unknown-hatch);border:1px solid var(--cv-bone-12)}
.m-race .read{font-family:var(--cv-font-editorial);font-size:16px;line-height:1.35;margin:10px 0 0;color:var(--cv-bone)}
/* comparable path (D6 pathLine) */
.cmp .pathbox{width:100%;max-width:520px;margin-top:8px}
.cmp .pathbox svg{display:block;max-width:100%}
.cmp .pathbox .zero{stroke:var(--cv-bone-18)}
.cmp .pathbox .capline{fill:none;stroke:var(--cv-bone);stroke-width:1.4}
.cmp .pathbox text{font-family:var(--cv-font-data);font-size:12px;fill:var(--cv-bone-62)}
/* exposure + unknowns */
.expo .row.risk{display:flex;font-family:var(--cv-font-editorial);font-size:16px;margin-bottom:6px}
.expo .row.risk .txt{font-family:var(--font);font-size:14px;color:var(--cv-bone-70)}
.unks ul{margin:0;padding:0;list-style:none;font-size:13.5px;color:var(--cv-bone-70);display:flex;flex-direction:column;gap:5px}
.unks li{display:flex;gap:8px;align-items:flex-start}
.unks li i.g{margin-top:3px}
.unks .clocks{margin-top:10px}
.src{margin-top:12px;font-size:13px;color:var(--cv-bone-62)}
.src summary{cursor:pointer;color:var(--cv-bone-62)}
.src .lines{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.src .lines li{display:grid;grid-template-columns:96px 1fr;gap:2px 12px;font-size:13px}
.src .ln{font-family:var(--cv-font-data);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--cv-bone-40);padding-top:2px}
.src .ls{color:var(--cv-bone-70);font-family:var(--cv-font-editorial);font-size:14.5px}
.src .lsrc{grid-column:2;font-family:var(--cv-font-data);font-size:12px;color:var(--cv-bone-40)}

@media(max-width:700px){
  .sit>section,.sit .sheetwrap{padding:14px}
  .brief .lead.big{font-size:19px}
  .m-story .lead{font-size:16px}
  .m-race .lead{white-space:normal}
  .m-ppl .hcbar{flex-basis:110px}
  .src .lines li{grid-template-columns:1fr}
  .src .lsrc{grid-column:1}
  .sheet .row.money .fbrow{flex-wrap:nowrap}
}

/* type floor: nothing a user reads under 12 px, the brand line included (as D1 did) */
.cv-tagline{font-size:12px;letter-spacing:.12em}
.cv-wordmark{font-size:13px}
@media(max-width:700px){
  .cv-wordmark{font-size:12px}
  /* the D5 people table stacks on a phone so nothing is wider than the viewport */
  .ppl,.ppl thead,.ppl tbody,.ppl tr,.ppl td{display:block;overflow:visible}
  .ppl thead{display:none}
  .ppl tr{padding:8px 0;border-bottom:1px solid var(--cv-bone-12)}
  .ppl td{border:0;padding:2px 0;white-space:normal}
  .ppl td.h{white-space:normal}
}
.src .lines li>span{min-width:0;overflow-wrap:anywhere}
.src .lines li{min-width:0}

/* ===================== 2026-09-17 21:35 · Thomas: two cards per row, more room per card =====================
   Board goes 3 → 2 columns (~650 px per card at 1440 instead of ~430). The extra width is spent, not stretched:
   larger padding, the editorial sheet at 16 px, the lead at 19 px, the cap number at 34 px, taller cap chart,
   flow bars and arrival strip (strip height set in d8.js: 58 → 76). Labels widen so "INVALIDATES" no longer wraps.
   One column under 960 px. Situation view untouched. */
.board{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.card{padding:22px 26px 18px;gap:12px}
.sym{font-size:18px}
.ident .ctx{font-size:13px}
.stage{font-size:12.5px;padding:3px 9px}
.last{font-size:14px}
.capbig{font-size:34px;margin:3px 0 6px}
.chart{height:68px}
.since{font-size:13px}
.since b{font-size:15px}
.pl{font-size:13.5px;margin-top:8px;padding-top:9px}
.card .m-story .lead{font-size:19px;line-height:1.32;padding-top:11px}
.card .m-story .lead .num{font-size:17px}
.sheet{font-size:16px;line-height:1.4}
.sheet.compact{gap:7px}
.sheet.compact .grp .rows{gap:5px}
.sheet .lab,.ft .k{flex-basis:108px;font-size:12.5px;padding-top:4px}
.sheet .sub,.detail,.sheet .row.risk .txt{font-size:14px}
.sheet .row.money .fb{height:42px}
.sheet .row.money .latest b{font-size:15px}
.sheet .row.money .latest small{font-size:12.5px}
.sheet .row.money .noflow{font-size:13px}
i.g{width:14px;height:14px;margin-top:5px}
.card .card-arr{padding-top:10px}
.m-arr .strip .axl,.m-arr .strip .gap{font-size:12.5px}
.ft{font-size:14px;padding-top:10px;gap:10px}
.open{font-size:12.5px}
@media(max-width:960px){.board{grid-template-columns:1fr}}
@media(max-width:700px){
  .card{padding:16px 16px 14px;gap:10px}
  .sheet{font-size:15px}.card .m-story .lead{font-size:17px}.capbig{font-size:30px}.chart{height:58px}
  .sheet .lab,.ft .k{flex-basis:84px}
}

/* ===================== 2026-09-17 22:08 · Thomas: longer cards, space things out, more vertical room for the charts =====================
   Same 2-up grid. Cap chart 68 → 116 px, flow bars 42 → 60 px, arrival strip 76 → 84 px (d8.js; its axis sits at H-32 so anything taller is only dead space above the glyphs), card gap 12 → 18,
   every block gets air above and below, setup groups separated by 14 px instead of 7. */
.card{padding:26px 30px 22px;gap:18px}
.last{padding-bottom:12px}
.capb{gap:4px}
.capbig{font-size:36px;margin:6px 0 10px}
.chart{height:116px}
.pl{margin-top:12px;padding-top:12px}
.card .m-story .lead{padding-top:16px;line-height:1.38}
.sheet.compact{gap:14px}
.sheet.compact .grp .rows{gap:8px}
.sheet .row.money .txt{gap:8px}
.sheet .row.money .fb{height:60px}
.sheet .row.money .fbrow{margin-top:2px}
.card .card-arr{padding-top:16px}
.ft{padding-top:16px}
.open{margin-top:2px}
@media(max-width:700px){
  .card{padding:16px 16px 14px;gap:12px}
  .chart{height:72px}.sheet.compact{gap:9px}.sheet .row.money .fb{height:44px}
}
