/* RAIDER cockpit-B — paper-raid simulator, decision ledger, target reports, report sheet, War Room, OBS overlay.
   Tokens + base only (no new colours). Every class is prefixed b- so it never collides with cockpit-A. */

/* ───────── shared ───────── */
.b-view { container-type: inline-size; display: grid; gap: var(--s-6); min-width: 0; }
.b-vhead { display: grid; gap: 12px; }
.b-vhead h2 { font-size: clamp(36px, 4.6vw, 64px); }
.b-vhead .lead { margin: 0; max-width: 74ch; font-size: var(--fs-md); }
.b-vhead .row, .b-led__chips, .b-led__src { gap: 8px 10px; }
.b-led__src { margin-top: 12px; align-items: center; }
.b-led__src[hidden] { display: none; }
.b-led__note { font: 400 var(--fs-xs)/1.4 var(--font-mono); color: var(--text-3); letter-spacing: .02em; }
.b-led__note code, .b-led__status code, .b-wr code { font-family: var(--font-mono); color: var(--cold); }
.b-empty { margin: 0; padding: 16px 0; color: var(--text-3); font: 400 var(--fs-sm)/1.5 var(--font-mono); list-style: none; }
.b-hint { margin: 0; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-3); }
.b-hint--c { text-align: center; letter-spacing: .1em; text-transform: uppercase; font-size: var(--fs-2xs); }
.b-err { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--amber) 45%, transparent); background: color-mix(in srgb, var(--amber) 7%, transparent); }
.b-err p { margin: 0; flex: 1 1 240px; font: 400 var(--fs-sm)/1.5 var(--font-mono); color: var(--text-2); }
.b-skel { display: grid; gap: 10px; padding: 8px 0; }
.b-skel i { display: block; height: 14px; background: linear-gradient(90deg, var(--surface-2) 30%, var(--surface-3) 50%, var(--surface-2) 70%) 0 0 / 300% 100%; animation: b-skel 1.4s linear infinite; }
.b-skel i:nth-child(3n+1) { width: 92%; } .b-skel i:nth-child(3n+2) { width: 74%; } .b-skel i:nth-child(3n) { width: 58%; }
@keyframes b-skel { to { background-position: -150% 0; } }
.b-dot { display: inline-block; width: 7px; height: 7px; margin-right: 8px; background: var(--text-3); vertical-align: middle; }
.b-dot--cold { background: var(--cold); box-shadow: 0 0 10px var(--cold); animation: blink 1.1s steps(2, end) infinite; }
.b-ico { flex: none; }
.b-tx { text-transform: none; letter-spacing: .04em; }
.b-verdict { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .16em; border: 1px solid currentColor; }
.b-switch { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 32px; cursor: pointer; font: 500 var(--fs-xs)/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.b-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.b-switch__ui { position: relative; flex: none; width: 36px; height: 20px; border: 1px solid var(--hair-2); background: var(--surface-2); transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease); }
.b-switch__ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; background: var(--text-3); transition: transform var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.b-switch input:checked + .b-switch__ui { background: color-mix(in srgb, var(--accent) 22%, transparent); border-color: var(--accent); }
.b-switch input:checked + .b-switch__ui::after { transform: translateX(16px); background: var(--accent); }
.b-switch input:focus-visible + .b-switch__ui { outline: 2px solid var(--accent); outline-offset: 3px; }
.b-seg { display: inline-flex; border: 1px solid var(--hair-2); }
.b-seg button { min-width: 44px; min-height: 34px; padding: 0 10px; border: 0; border-left: 1px solid var(--hair-2); background: transparent; color: var(--text-2); font: 500 var(--fs-xs)/1 var(--font-mono); cursor: pointer; }
.b-seg button:first-child { border-left: 0; }
.b-seg button:hover { color: var(--text); background: var(--surface-2); }
.b-seg button[aria-pressed="true"] { background: var(--bone); color: var(--ink-0); }
.b-fchip { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 0 10px; background: transparent; border: 1px solid var(--hair-2); color: var(--text-2); font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.b-fchip svg { color: var(--kc, var(--text-3)); width: 13px; height: 13px; }
.b-fchip .num { color: var(--text-3); }
.b-fchip:hover { border-color: var(--text-3); color: var(--text); }
.b-fchip.is-on { border-color: var(--accent); color: var(--text); background: color-mix(in srgb, var(--accent) 9%, transparent); }
.b-warn { padding: 10px 12px; border-left: 2px solid var(--amber); background: color-mix(in srgb, var(--amber) 8%, transparent); font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-2); }
.b-warn b { color: var(--amber); font-weight: 600; }
.b-warn.is-never { border-color: var(--loss); background: color-mix(in srgb, var(--loss) 8%, transparent); }
.b-warn.is-never b { color: var(--loss); }
.b-warn.is-forced { border-color: var(--amber); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--amber) 30%, transparent); }
@keyframes b-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* "Raider would post" — draft card. Cold left rule: it is a simulated draft, never posted. */
.b-tw { margin: 12px 0 0; display: grid; gap: 6px; max-width: 580px; }
.b-tw__label { display: flex; align-items: center; gap: 8px; font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-tw__card { background: var(--ink-1); border: 1px solid var(--hair-2); border-left: 2px solid var(--cold); padding: 12px 14px 10px; }
.b-tw__head { display: flex; align-items: center; gap: 9px; min-width: 0; }
.b-tw__av { flex: none; display: grid; place-items: center; width: 30px; height: 30px; background: var(--ink-3); border: 1px solid var(--hair-2); color: var(--bone); }
.b-tw__av svg { width: 13px; height: auto; }
.b-tw__name { font: 600 var(--fs-sm)/1 var(--font-sans); letter-spacing: .06em; }
.b-tw__meta { font: 400 var(--fs-xs)/1 var(--font-mono); color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b-tw__text { margin: 10px 0; max-width: none; font: 400 14.5px/1.5 var(--font-sans); color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.b-tw__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 8px; border-top: 1px solid var(--hair); }
.b-tw__count { font-size: var(--fs-xs); color: var(--text-3); }
.b-tw__copy { min-height: 30px; padding: 0 12px; background: transparent; border: 1px solid var(--hair-2); color: var(--text-2); font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.b-tw__copy:hover { border-color: var(--accent); color: var(--text); }
@media (pointer: coarse) { .b-tw__copy, .b-fchip, .b-seg button { min-height: 44px; } }

/* ───────── decision ledger ───────── */
.b-page--ledger { padding-block: clamp(36px, 6vw, 72px) 0; }
.b-led { display: grid; gap: var(--s-6); }
.b-led__hero { display: grid; gap: 14px; }
.b-led__hero .lead { margin: 0; max-width: 70ch; }
h1.b-led__title { font-size: clamp(46px, 7.4vw, 112px); max-width: 14ch; }
h2.b-led__title { font-size: clamp(36px, 4.6vw, 64px); }
.b-led__head { padding: 18px 22px; display: grid; gap: 12px; background: var(--ink-0); }
.b-led__headk { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.b-led__headseq { font-size: var(--fs-xs); color: var(--text-3); }
.b-led__hash { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.b-led__hash code { flex: 1 1 280px; min-width: 0; font: 500 clamp(13px, 1.5vw, 19px)/1.35 var(--font-mono); letter-spacing: .04em; color: var(--bone); word-break: break-all; }
.b-led__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--hair); border: 1px solid var(--hair); }
.b-led__stats > div { background: var(--ink-1); padding: 10px 12px; min-width: 0; }
.b-led__stats dt, .b-wr__meta dt, .b-wr__mini dt, .b-sum__stat dt, .b-mc__stats dt { font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-led__stats dd { margin: 6px 0 0; font: 500 var(--fs-sm)/1.2 var(--font-mono); }
.b-led__ver { padding: 18px 22px; display: grid; gap: 12px; }
.b-led__verbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.b-led__tamperopts { display: flex; flex-wrap: wrap; gap: 10px; }
.b-led__f { min-width: 180px; }
.b-led__prog { height: 3px; background: var(--surface-3); overflow: hidden; }
.b-led__prog i { display: block; height: 100%; width: 0; background: var(--cold); transition: width 90ms linear; }
.b-led__prog i.is-ok { background: var(--mint); } .b-led__prog i.is-bad { background: var(--loss); }
.b-led__status { margin: 0; max-width: none; font: 400 var(--fs-sm)/1.6 var(--font-mono); color: var(--text-2); }
.b-led__status a { color: var(--text); }
.b-led__diff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.b-led__diff > div { padding: 10px 12px; border: 1px solid var(--hair); background: var(--ink-1); min-width: 0; }
.b-led__diff p { margin: 6px 0 0; font: 400 var(--fs-sm)/1.5 var(--font-mono); color: var(--text-2); overflow-wrap: anywhere; }
.b-led__lesson { margin: 0; max-width: 92ch; padding-left: 12px; border-left: 2px solid var(--cold); font-size: var(--fs-sm); color: var(--text-2); }
.b-led__how summary { cursor: pointer; width: fit-content; padding: 4px 0; font: 500 var(--fs-2xs)/1.3 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); }
.b-led__how summary:hover { color: var(--text); }
.b-led__how[open] { display: grid; gap: 10px; }
.b-led__rule { margin: 0; max-width: 92ch; font: 400 var(--fs-sm)/1.5 var(--font-mono); color: var(--text-2); }
.b-led__code { margin: 0; padding: 12px 14px; overflow-x: auto; background: var(--ink-0); border: 1px solid var(--hair); font: 400 12px/1.55 var(--font-mono); color: var(--bone-2); }
.b-led__code--wrap { white-space: pre-wrap; word-break: break-all; max-height: 220px; overflow-y: auto; }
.b-led__example { display: grid; gap: 8px; min-width: 0; }
mark.b-mk-ok, mark.b-mk-bad { padding: 0 2px; color: var(--ink-0); }
mark.b-mk-ok { background: var(--mint); } mark.b-mk-bad { background: var(--loss); }
.b-led__filters { gap: 8px; } .b-led__filters .label { margin-right: 4px; }
.b-led__list { list-style: none; margin: 0; padding: 0; }
.b-le { display: grid; grid-template-columns: 44px minmax(0, 1fr); }
.b-le__rail { position: relative; }
.b-le__rail::before { content: ""; position: absolute; left: 21px; top: 0; bottom: 0; width: 2px; background: var(--hair-2); transition: background var(--t-med) var(--ease); }
.b-le:first-child .b-le__rail::before { top: 18px; } .b-le:last-child .b-le__rail::before { bottom: auto; height: 18px; }
.b-le__node { position: relative; z-index: 1; display: grid; place-items: center; width: 30px; height: 30px; margin: 7px 0 0 7px; background: var(--ink-2); border: 1px solid var(--hair-2); color: var(--kc, var(--text-3)); transition: background var(--t-med) var(--ease), border-color var(--t-med) var(--ease), color var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease); }
.b-le__card { margin: 0 0 10px; padding: 12px 16px 12px; background: var(--surface); border: 1px solid var(--hair); min-width: 0; transition: border-color var(--t-med) var(--ease), opacity var(--t-med) var(--ease); }
.b-le__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 500 var(--fs-2xs)/1.3 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); }
.b-le__seq { color: var(--text-2); letter-spacing: .04em; }
.b-le__kind { color: var(--kc, var(--text-2)); font-weight: 600; }
.b-le__tgt { color: var(--amber); letter-spacing: .06em; text-decoration: none; }
.b-le__tgt:hover { text-decoration: underline; }
.b-le__ts { color: var(--text-3); letter-spacing: .04em; text-transform: none; }
.b-le__v { margin-left: auto; letter-spacing: .08em; }
.b-le__text { margin: 8px 0 6px; max-width: 88ch; font-size: 14.5px; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
.b-le__why summary { cursor: pointer; width: fit-content; font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); padding: 6px 0; }
.b-le__why summary:hover { color: var(--text); }
.b-le__why p { margin: 4px 0 8px; font-size: var(--fs-sm); color: var(--text-2); max-width: 88ch; }
.b-le__data { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1px; margin: 0 0 8px; background: var(--hair); border: 1px solid var(--hair); }
.b-le__data > div { background: var(--ink-1); padding: 6px 8px; min-width: 0; }
.b-le__data dt { font: 500 9.5px/1.2 var(--font-mono); letter-spacing: .1em; color: var(--text-3); text-transform: uppercase; }
.b-le__data dd { margin: 2px 0 0; font-size: var(--fs-xs); color: var(--text-2); overflow-wrap: anywhere; }
.b-le__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 6px; font: 400 var(--fs-xs)/1.4 var(--font-mono); color: var(--text-3); }
.b-le__h code { color: var(--text-2); }
.b-le.is-ok .b-le__rail::before { background: var(--mint); }
.b-le.is-ok .b-le__node { border-color: var(--mint); color: var(--mint); background: color-mix(in srgb, var(--mint) 12%, var(--ink-2)); box-shadow: 0 0 14px color-mix(in srgb, var(--mint) 35%, transparent); }
.b-le.is-bad .b-le__rail::before { background: repeating-linear-gradient(var(--loss) 0 5px, transparent 5px 9px); }
.b-le.is-bad .b-le__node { border-color: var(--loss); color: var(--loss); background: color-mix(in srgb, var(--loss) 14%, var(--ink-2)); }
.b-le.is-bad .b-le__card { border-color: var(--loss); }
.b-le.is-broken .b-le__card { opacity: .55; } .b-le.is-broken .b-le__rail::before { background: repeating-linear-gradient(var(--loss) 0 2px, transparent 2px 8px); }
.b-le.is-tampered .b-le__card { box-shadow: inset 3px 0 0 var(--loss); }
@container (max-width: 640px) { .b-led__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .b-led__diff { grid-template-columns: minmax(0, 1fr); } .b-le { grid-template-columns: 34px minmax(0, 1fr); } .b-le__rail::before { left: 15px; } .b-le__node { width: 26px; height: 26px; margin: 8px 0 0 3px; } }
@media (max-width: 640px) { .b-led__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .b-led__diff { grid-template-columns: minmax(0, 1fr); } .b-led__head, .b-led__ver { padding: 16px; } .b-led__f { min-width: 0; flex: 1 1 140px; } }

/* ───────── target report covers (paper tone) ───────── */
.b-covers { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 22px; }
.b-cover { position: relative; display: flex; flex-direction: column; gap: 12px; min-height: 340px; padding: 18px 18px 14px; background: var(--paper); color: var(--paper-ink); text-decoration: none; box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 18px 40px rgba(0, 0, 0, .5); transition: transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease); }
.b-cover:hover { transform: translateY(-4px) rotate(-.35deg); box-shadow: 0 26px 56px rgba(0, 0, 0, .6), 0 0 0 1px var(--paper-rule); }
.b-cover:focus-visible { outline-color: var(--raid); outline-offset: 4px; }
.b-cover__mast { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.b-cover__logo { width: 124px; height: auto; }
.b-cover__no { font: 600 var(--fs-xs)/1 var(--font-mono); letter-spacing: .08em; }
.b-cover__rule, .b-rep__rule { height: 6px; border-top: 3px solid var(--paper-rule); border-bottom: 1px solid var(--paper-rule); }
.b-cover__kicker { margin: 0; font: 500 var(--fs-2xs)/1.2 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--paper-rule-ink); }
h3.b-cover__title { font: 600 22px/1.18 var(--font-serif); text-transform: none; letter-spacing: -.005em; color: var(--paper-ink); }
.b-cover__fig { margin-top: auto; display: grid; gap: 4px; }
.b-cover__ratio { font: 900 58px/.86 var(--font-display); letter-spacing: -.01em; color: var(--paper-ink); }
.b-cover__ratio.is-disc { color: var(--paper-rule-ink); }
.b-cover__cap { font: 500 var(--fs-2xs)/1.2 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-cover__nums { font: 500 var(--fs-xs)/1.2 var(--font-mono); color: var(--paper-ink-2); }
.b-cover__fig + .b-cover__foot { margin-top: 10px; }
.b-cover__foot { margin-top: auto; display: flex; align-items: center; gap: 10px; padding-top: 10px; border-top: 1px solid var(--paper-line); font: 500 var(--fs-xs)/1 var(--font-mono); letter-spacing: .06em; }
.b-cover__tk { flex: 1; min-width: 0; color: var(--paper-ink-2); text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b-cover__verdict { padding: 4px 7px; border: 2px solid currentColor; font: 900 13px/1 var(--font-display); letter-spacing: .08em; }
.b-cover__verdict.is-raid, .b-cover__verdict.is-never { color: var(--paper-rule-ink); } .b-cover__verdict.is-watch { color: var(--paper-ink); } .b-cover__verdict.is-pass { color: var(--text-3); }
.b-cover__score { font: 800 26px/1 var(--font-display); }
.b-cover__demo { position: absolute; right: 12px; bottom: 122px; padding: 3px 6px; border: 2px solid var(--paper-rule); color: var(--paper-rule-ink); font: 800 11px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; transform: rotate(-8deg); opacity: .78; }

/* ───────── the report sheet (paper theme, A4) ───────── */
.b-desk { background: var(--surface-2); }
.b-page--report { padding: 28px var(--gutter) 72px; }
.b-rep-tools { max-width: 210mm; margin: 0 auto 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.b-rep-tools__chips, .b-rep-tools__nav { display: flex; gap: 8px 20px; flex-wrap: wrap; }
.b-rep { position: relative; max-width: 210mm; min-height: 60vh; margin: 0 auto; padding: 16mm 17mm 14mm; background: var(--paper); color: var(--paper-ink); font-family: var(--font-serif); box-shadow: 0 1px 0 rgba(20, 17, 13, .08), 0 34px 70px -26px rgba(20, 17, 13, .45); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.b-rep__mast { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.b-rep__logo { width: clamp(150px, 26vw, 214px); height: auto; }
.b-rep__id { display: grid; justify-items: end; gap: 4px; text-align: right; }
.b-rep__kicker { font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--paper-rule-ink); }
.b-rep__no { font: 900 clamp(30px, 4.4vw, 44px)/.9 var(--font-display); letter-spacing: .02em; }
.b-rep__date { font: 500 var(--fs-xs)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__rule { margin: 14px 0 20px; }
.b-rep__lede { position: relative; padding-right: 150px; }
.b-rep__eyebrow { margin: 0; font: 500 var(--fs-xs)/1.4 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__eyebrow b { color: var(--paper-rule-ink); }
.b-rep__stamp { color: var(--paper-rule-ink); opacity: 1; position: absolute; right: 0; top: 2px; max-width: 150px; padding: .18em .4em; font-size: 15px; line-height: 1.05; text-align: center; transform: rotate(-8deg); }
h1.b-rep__h1 { margin: 10px 0 12px; font: 600 clamp(30px, 4.6vw, 46px)/1.07 var(--font-serif); text-transform: none; letter-spacing: -.012em; color: var(--paper-ink); }
.b-rep__dek { margin: 0; max-width: 62ch; font: italic 400 19px/1.45 var(--font-serif); color: var(--paper-ink-2); }
.b-rep__stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 22px 0 6px; border-block: 1px solid var(--paper-ink); }
.b-rep__stat { padding: 10px 12px 11px; border-left: 1px solid var(--paper-line); min-width: 0; }
.b-rep__stat:first-child { border-left: 0; padding-left: 0; }
.b-rep__stat dt { font: 500 9.5px/1.2 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__stat dd { margin: 6px 0 0; font: 800 clamp(20px, 2.6vw, 27px)/1 var(--font-display); letter-spacing: .01em; text-transform: uppercase; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.b-rep__accent { color: var(--paper-rule-ink); }
.b-rep__stat dd small { margin-left: 4px; font: 500 10.5px/1 var(--font-mono); letter-spacing: .08em; color: var(--paper-ink-2); }
.b-rep__sec { margin-top: 26px; }
.b-rep__h2 { display: flex; align-items: baseline; gap: 12px; margin: 0 0 12px; padding-top: 10px; border-top: 1px solid var(--paper-ink); font: 600 12px/1.2 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--paper-ink); break-after: avoid; }
.b-rep__secno { color: var(--paper-rule-ink); }
.b-rep p, .b-rep li { font: 400 16px/1.62 var(--font-serif); color: var(--paper-ink); }
.b-rep p { margin: 0 0 .8em; max-width: 70ch; }
.b-rep ul { margin: 0 0 .9em; padding-left: 1.2em; max-width: 70ch; }
.b-rep li { margin-bottom: .3em; } .b-rep li::marker { color: var(--paper-rule-ink); }
.b-rep code { font: 500 .88em var(--font-mono); }
.b-rep__kv span { font: 500 var(--fs-xs) var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__sim { color: #1F6FA8; font-family: var(--font-mono); font-size: .9em; } /* same paper-SIM blue as base.css .chip--sim on paper */
.b-rep__fig { margin: 16px 0 14px; padding: 12px 12px 10px; border: 1px solid var(--paper-line); break-inside: avoid; }
.b-rep__fig figcaption { margin-top: 8px; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--paper-ink-2); }
.b-rep__eq svg { max-width: 540px; }
.b-rep__tbl { width: 100%; border-collapse: collapse; margin: 6px 0 14px; font: 400 13.5px/1.4 var(--font-serif); break-inside: avoid; }
.b-rep__tbl th { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--paper-ink); font: 500 9.5px/1.2 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__tbl td { padding: 6px 8px; border-bottom: 1px solid var(--paper-line); }
.b-rep__tbl .num { font-family: var(--font-mono); font-size: 12.5px; }
.b-rep .b-pass { font: 600 var(--fs-xs) var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.b-rep .b-fail { font: 600 var(--fs-xs) var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--paper-rule-ink); }
.b-rep__foot { margin-top: 30px; padding-top: 14px; border-top: 3px double var(--paper-ink); display: grid; gap: 14px; }
.b-rep__notes { margin: 0; padding-left: 1.3em; }
.b-rep__notes li { font-size: 12.5px; line-height: 1.5; color: var(--paper-ink-2); }
.b-rep__disc { padding: 12px 14px; border: 1px solid var(--paper-ink); break-inside: avoid; }
.b-rep__disc p { margin: 0 0 .5em; font-size: 12.5px; line-height: 1.5; max-width: none; }
.b-rep .b-rep__disch { font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--paper-rule-ink); }
.b-rep .b-rep__colophon { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin: 0; max-width: none; font: 500 var(--fs-2xs)/1.4 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__missing { padding: 40px 0; }
.b-desk .rd-banner { color: var(--bone-2); } .b-desk .rd-banner .chip { color: var(--steel); } /* the paper theme's dark chip colour must not land on the banner's dark strip */ /* shared banner sits on a dark strip; keep its honesty line legible on paper pages */
.b-rep__econ { margin: 14px 0; padding: 12px 14px; border: 1px solid var(--paper-ink); break-inside: avoid; }
.b-rep .b-rep__econh { margin: 0 0 10px; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--paper-rule-ink); }
.b-rep__econ dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
.b-rep__econ dt { font: 500 9.5px/1.2 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-rep__econ dd { margin: 5px 0 0; font: 800 22px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.b-rep .b-rep__econf { margin: 10px 0 0; max-width: none; font: 400 11.5px/1.5 var(--font-mono); color: var(--paper-ink-2); }
.b-rep__stat dd.b-rep__small { font-size: clamp(16px, 2vw, 21px); }
.b-cover__status { margin: -4px 0 0; font: 500 var(--fs-2xs)/1.2 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--paper-ink-2); }
.b-ctl__gap { margin-left: 12px; }
@media (max-width: 760px) {
  .b-rep { padding: 26px 18px 22px; }
  .b-rep__lede { padding-right: 0; padding-top: 34px; }
  .b-rep__stamp { top: -4px; font-size: 12px; max-width: none; }
  .b-rep__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .b-rep__stat:nth-child(4) { border-left: 0; padding-left: 0; }
  .b-rep__stat:nth-child(n+4) { border-top: 1px solid var(--paper-line); }
  .b-rep__econ dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-rep__mast { align-items: flex-start; }
  .b-rep p, .b-rep li { font-size: 15.5px; }
}
@media print {
  @page { size: A4; margin: 14mm 15mm 16mm; }
  html, body.b-desk { background: #fff !important; }
  .b-page--report { padding: 0; }
  .b-rep-tools, .skip-link { display: none !important; }
  .b-rep { max-width: none; min-height: 0; margin: 0; padding: 0; box-shadow: none; background: #fff; }
  .b-rep p, .b-rep li, .b-rep h1, .b-rep__stat dd, .b-rep__tbl td { color: #000; orphans: 3; widows: 3; }
  .b-rep__sec { break-inside: auto; } .b-rep__stats, .b-rep__fig, .b-rep__disc, .b-rep__tbl { break-inside: avoid; }
  .b-rep a { color: inherit; text-decoration: none; }
}

/* ───────── paper-raid simulator ───────── */
.b-raid__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
@container (min-width: 900px) { .b-raid__grid { grid-template-columns: 340px minmax(0, 1fr); } .b-raid__cfg { position: sticky; top: 104px; } }
.b-raid__cfg { display: grid; gap: 16px; padding: 20px; }
h3.b-raid__h3 { font-size: 26px; }
.b-tcard { display: grid; gap: 6px; padding: 10px 12px; background: var(--ink-1); border: 1px solid var(--hair); font: 400 var(--fs-xs)/1.4 var(--font-mono); color: var(--text-2); }
.b-tcard:empty { display: none; }
.b-tcard p { margin: 0; }
.b-tcard__row { display: flex; align-items: center; gap: 10px; }
.b-tcard__score { font: 800 22px/1 var(--font-display); color: var(--text); }
.b-tcard__path { text-transform: uppercase; letter-spacing: .12em; color: var(--text-3); }
.b-tcard__link { margin-left: auto; font-size: var(--fs-2xs); letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); }
.b-cap__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.b-cap__top label { font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-cap__top output { font: 800 22px/1 var(--font-display); }
.b-cap__track { position: relative; padding-top: 22px; }
.b-cap__track::after { content: ""; position: absolute; left: 50%; right: 0; top: 31px; height: 4px; pointer-events: none; background: repeating-linear-gradient(-45deg, color-mix(in srgb, var(--amber) 70%, transparent) 0 3px, transparent 3px 6px); }
.b-cap input[type="range"] { position: relative; z-index: 1; --fill: 0%; }
.b-cap input[type="range"]::-webkit-slider-runnable-track { background: linear-gradient(90deg, var(--accent) 0 var(--fill), transparent var(--fill)), var(--hair-2); }
.b-cap input[type="range"]::-moz-range-progress { height: 4px; background: var(--accent); }
.b-cap__mark { position: absolute; top: 0; transform: translateX(-50%); display: grid; justify-items: center; pointer-events: none; }
.b-cap__mark::after { content: ""; width: 2px; height: 14px; margin-top: 2px; background: var(--amber); }
.b-cap__mark b { font: 600 9.5px/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--amber); white-space: nowrap; }
.b-cap__note { margin: 4px 0 0; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-3); }
.b-cap__note.is-over { padding: 8px 10px; border-left: 2px solid var(--amber); background: color-mix(in srgb, var(--amber) 8%, transparent); color: var(--text-2); }
.b-cap__note b { color: var(--amber); }
.b-seed { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.b-seed .btn { min-height: 40px; }
.b-force { text-transform: none; letter-spacing: .02em; font-size: var(--fs-xs); }
/* scenarios: one click sets the target's defence (and, for one of them, a signer move) and runs */
.b-scn { display: grid; gap: 9px; margin: 0 0 20px; }
.b-scn__l { font: 500 var(--fs-2xs)/1.2 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-scn__l small { margin-left: 8px; font: 400 var(--fs-xs)/1.2 var(--font-mono); letter-spacing: 0; text-transform: none; }
.b-scn__row { display: flex; flex-wrap: wrap; gap: 6px; }
.b-scn__b { appearance: none; cursor: pointer; min-height: 34px; padding: 0 11px; border: 1px solid var(--hair-2); background: transparent; color: var(--text-2); font: 500 12px/1 var(--font-sans); transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.b-scn__b:hover { border-color: var(--text-3); color: var(--text); }
.b-scn__b[aria-pressed="true"] { border-color: var(--cold); color: var(--text); background: color-mix(in srgb, var(--cold) 13%, transparent); }
.b-scn__b:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.b-scn .b-hint { min-height: 1.6em; }
@media (pointer: coarse) { .b-scn__b { min-height: 44px; } }
.b-idle { padding: 22px 24px; }
.b-idle__steps { list-style: none; margin: 14px 0 18px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.b-idle__steps li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 4px; padding: 12px 0; border-top: 1px solid var(--hair); }
.b-idle__n { font: 900 28px/1 var(--font-display); color: var(--text-4); }
.b-idle__steps b { display: block; font: 800 19px/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.b-idle__steps span:not(.b-idle__n) { display: block; margin-top: 3px; font-size: var(--fs-sm); color: var(--text-3); }
@container (max-width: 700px) { .b-idle__steps { grid-template-columns: minmax(0, 1fr); } }
.b-runbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 10px 14px; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-2); }
.b-runbar__id { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-width: 0; }
.b-runbar__act { display: flex; flex-wrap: wrap; gap: 8px; }
.b-runbar__out { display: inline-flex; align-items: center; gap: 10px; padding: 0 12px; min-height: 34px; border: 1px solid currentColor; font: 600 var(--fs-xs)/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.b-runbar__out:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.b-runbar__out .num { letter-spacing: .02em; }
.b-raid__stage { min-width: 0; display: grid; gap: 14px; container-type: inline-size; }

/* timeline */
.b-tl { list-style: none; margin: 4px 0 0; padding: 0; }
.b-tl__step { display: grid; grid-template-columns: 52px minmax(0, 1fr); }
.b-tl__step.is-in { animation: b-in var(--t-slow) var(--ease) both; }
.b-tl__rail { position: relative; }
.b-tl__rail::before { content: ""; position: absolute; left: 20px; top: 0; bottom: 0; width: 2px; background: var(--hair-2); }
.b-tl__step:last-child .b-tl__rail::before { bottom: auto; height: 20px; }
.b-tl__badge { position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; background: var(--ink-2); border: 1px solid var(--hair-2); font: 900 19px/1 var(--font-display); color: var(--text-2); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); transition: background var(--t-med) var(--ease), color var(--t-med) var(--ease); }
.b-tl__step.is-now .b-tl__badge { background: var(--raid); color: var(--raid-ink); border-color: var(--raid); }
.b-tl__step.is-skipped { opacity: .62; }
.b-tl__step.is-skipped .b-tl__badge { background: transparent; border-style: dashed; color: var(--text-4); }
.b-tl__body { min-width: 0; padding: 0 0 14px; }
.b-tl__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; min-height: 42px; padding-top: 9px; margin-bottom: 4px; }
.b-tl__head h4 { font-size: 24px; }
.b-tl__days { font: 500 var(--fs-xs)/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); }
.b-tl__skip { margin: 0 0 4px; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-3); }
.b-card { position: relative; margin: 0 0 10px; padding: 14px 16px; background: var(--surface); border: 1px solid var(--hair); min-width: 0; }
.b-card.is-in { animation: b-in var(--t-slow) var(--ease) both; }
.b-card.is-bid { border-color: color-mix(in srgb, var(--raid) 60%, transparent); box-shadow: inset 3px 0 0 var(--raid), 0 0 34px -12px var(--raid-glow); }
.b-card.is-hostile { box-shadow: inset 3px 0 0 var(--loss); }
.b-card.is-good { box-shadow: inset 3px 0 0 var(--mint); }
.b-card.is-bad { box-shadow: inset 3px 0 0 var(--loss); background: color-mix(in srgb, var(--loss) 6%, var(--surface)); }
.b-card__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.b-card__ico { color: var(--text-2); display: grid; }
.b-card.is-bid .b-card__ico { color: var(--raid); } .b-card.is-hostile .b-card__ico { color: var(--loss); } .b-card.is-good .b-card__ico { color: var(--mint); }
.b-card h5 { margin: 0; font: 600 15.5px/1.3 var(--font-sans); }
.b-card__def { font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-card__def--hostile { color: var(--loss); } .b-card__def--good { color: var(--mint); }
.b-card__day { margin-left: auto; font: 500 var(--fs-xs)/1 var(--font-mono); color: var(--text-3); }
.b-card__detail { margin: 6px 0 0; max-width: 80ch; font-size: var(--fs-sm); color: var(--text-2); }
.b-card__cols { display: grid; gap: 4px 22px; }
.b-card__main { min-width: 0; }
.b-card__cols > .b-tw { margin-top: 12px; }
@container (min-width: 720px) { .b-card__cols:has(> .b-tw) { grid-template-columns: minmax(0, 1fr) minmax(270px, 44%); } .b-card__cols > .b-tw { margin-top: 8px; } .b-card__cols:has(> .b-tw) .b-card__metrics { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); } }
.b-card__metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 112px), 1fr)); gap: 10px 18px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--hair); }
.b-m--stake { grid-column: 1 / -1; }
@container (min-width: 520px) { .b-m--stake { grid-column: auto; } }
.b-m { display: grid; gap: 4px; align-content: start; min-width: 0; }
.b-m__k { font: 500 9.5px/1.2 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-m__v { font: 800 22px/1 var(--font-display); letter-spacing: .01em; }
.b-m__d { font: 400 var(--fs-xs)/1.2 var(--font-mono); color: var(--text-3); }
.b-m--stake .b-m__v { color: var(--raid); }
.b-minimeter { position: relative; height: 8px; margin-top: 4px; background: var(--surface-3); }
.b-minimeter i { position: absolute; inset: 0 auto 0 0; width: calc(var(--v) * 100%); background: var(--raid); }
.b-minimeter b { position: absolute; top: -3px; bottom: -3px; width: 2px; }
.b-minimeter .l { left: calc(var(--line) * 100%); background: var(--text-3); } .b-minimeter .m { left: calc(var(--maj) * 100%); background: var(--bone); }
.b-votes { margin-top: 12px; }
.b-votes__bar, .b-split { position: relative; display: flex; height: 14px; background: var(--surface-3); }
.b-votes__bar > i, .b-split > i { display: block; width: var(--w); background: var(--c); }
.b-votes__opp { position: absolute; right: 0; top: 0; bottom: 0; background: color-mix(in srgb, var(--loss) 70%, transparent) !important; }
.b-votes__line { position: absolute; top: -5px; bottom: -5px; width: 2px; background: var(--bone); }
.b-split { margin-top: 12px; }
.b-votes__k { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 8px 0 0; max-width: none; font: 400 var(--fs-xs)/1.4 var(--font-mono); color: var(--text-2); }
.b-votes__k i { display: inline-block; width: 8px; height: 8px; margin-right: 6px; background: var(--c); }
.b-votes__k b { margin-left: auto; letter-spacing: .14em; text-transform: uppercase; }
.b-ba { margin-top: 12px; border-collapse: collapse; font: 400 var(--fs-xs)/1.4 var(--font-mono); }
.b-ba caption { display: flex; align-items: center; gap: 8px; text-align: left; padding-bottom: 6px; }
.b-ba th, .b-ba td { padding: 5px 16px 5px 0; border-bottom: 1px solid var(--hair); text-align: left; font-weight: 400; color: var(--text-2); }
.b-ba thead th { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-ba td { font-size: var(--fs-sm); }
@container (min-width: 520px) { .b-ba td { white-space: nowrap; } }

/* summary + post-mortem */
.b-sum { display: grid; gap: 18px; padding: 22px; animation: b-in var(--t-slow) var(--ease) both; }
.b-sum__head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 28px; align-items: center; }
.b-sum__h { margin-top: 10px; }
.b-sum__stamp { font-size: clamp(30px, 4.2vw, 50px); }
.stamp.b-sum__stamp.mint, .stamp.b-wr__outcome.mint { color: var(--mint); } .stamp.b-sum__stamp.loss, .stamp.b-wr__outcome.loss { color: var(--loss); }
.stamp.b-sum__stamp.dim, .stamp.b-wr__outcome.dim { color: var(--bone-2); } .stamp.b-sum__stamp.muted, .stamp.b-wr__outcome.muted { color: var(--steel); }
.b-sum__why p { margin: 0; font-size: var(--fs-md); color: var(--text-2); }
.b-sum__why .b-sum__sign { margin-top: 6px; font: 600 var(--fs-sm)/1.3 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text); }
.b-sum__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--hair); border: 1px solid var(--hair); }
@container (min-width: 980px) { .b-sum__stats { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@container (max-width: 420px) { .b-sum__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.b-sum__stat { padding: 12px 14px; background: var(--surface); min-width: 0; }
.b-sum__stat dd { margin: 8px 0 4px; font: 800 clamp(24px, 2.6vw, 32px)/1 var(--font-display); letter-spacing: .01em; }
.b-sum__stat span { font: 400 var(--fs-2xs)/1.3 var(--font-mono); color: var(--text-3); }
.b-pm { padding: 18px 20px; background: var(--ink-1); border: 1px solid var(--hair-2); border-top: 3px solid var(--raid); }
.b-pm__head h4 { margin-top: 6px; font: 600 20px/1.25 var(--font-serif); text-transform: none; letter-spacing: 0; }
.b-pm__tbl { width: 100%; margin-top: 12px; border-collapse: collapse; }
.b-pm__tbl th, .b-pm__tbl td { padding: 7px 0; border-bottom: 1px solid var(--hair); text-align: left; font-weight: 400; }
.b-pm__tbl th { font: 400 var(--fs-sm)/1.4 var(--font-serif); color: var(--text-2); }
.b-pm__tbl td { text-align: right; font-size: var(--fs-sm); white-space: nowrap; padding-left: 16px; }
.b-pm__text { margin: 12px 0 0; font: italic 400 15px/1.55 var(--font-serif); color: var(--text-2); }
.b-sum__fine { margin: 0; max-width: none; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-3); padding-left: 10px; border-left: 2px solid var(--cold); }
.b-sum__act { gap: 10px; }
@container (max-width: 560px) { .b-sum__head { grid-template-columns: minmax(0, 1fr); } .b-sum { padding: 16px; } .b-tl__step { grid-template-columns: 44px minmax(0, 1fr); } .b-tl__badge { width: 36px; height: 36px; font-size: 16px; } .b-tl__rail::before { left: 17px; } .b-card { padding: 12px; } }

/* Monte-Carlo */
.b-mc { display: grid; gap: 14px; padding: 20px 22px; }
.b-mc__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; }
.b-mc__head .eyebrow { margin: 0 0 8px; }
.b-mc__cap { margin: 0; max-width: 90ch; padding-left: 12px; border-left: 2px solid var(--cold); font-size: var(--fs-sm); color: var(--text-2); }
.b-mc__cap b { color: var(--cold); font-weight: 600; }
.b-mc__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@container (min-width: 880px) { .b-mc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.b-mc__fig { margin: 0; padding: 14px; background: var(--ink-1); border: 1px solid var(--hair); display: grid; gap: 12px; align-content: start; min-width: 0; }
.b-mc__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 10px; margin: 0; }
.b-mc__stats dd { margin: 5px 0 0; font: 600 var(--fs-sm)/1.2 var(--font-mono); }
.b-mc__loading { font: 400 var(--fs-sm)/1.4 var(--font-mono); color: var(--cold); }
.b-mc__setup { margin: 0; max-width: none; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-3); }
.b-mc__assume summary { cursor: pointer; width: fit-content; font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); padding: 6px 0; }
.b-mc__assume ol { margin: 8px 0 0; padding-left: 1.4em; display: grid; gap: 4px; font: 400 var(--fs-xs)/1.5 var(--font-mono); color: var(--text-2); }

/* ───────── War Room ───────── */
body.b-wrpage { --wrap-max: 1720px; } /* the war room is wider than a reading page: the shared header and footer take the same width (qa.mjs layout) */
.b-wr { position: relative; max-width: var(--wrap-max, 1720px); margin: 0 auto; padding: 0 var(--gutter) 24px; }
.b-wr__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 12px 0; border-bottom: 1px solid var(--hair); }
.b-wr__notlive { display: inline-flex; align-items: center; gap: 9px; margin: 0; padding: 6px 10px; border: 1px solid var(--cold); background: color-mix(in srgb, var(--cold) 9%, transparent); color: var(--cold); font: 600 var(--fs-xs)/1.2 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; }
.b-wr__rec { width: 8px; height: 8px; background: var(--cold); animation: blink 1.1s steps(2, end) infinite; }
.b-wr__cfg, .b-wr__src { font: 400 var(--fs-xs)/1.3 var(--font-mono); color: var(--text-3); }
.b-wr__src { margin-left: auto; letter-spacing: .08em; text-transform: uppercase; }
.b-wr__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 28px; padding: 12px 0 12px; }
.b-wr__id { display: grid; gap: 8px; min-width: 0; }
.b-wr__id .eyebrow { margin: 0; }
.b-wr__h1 { font-size: clamp(42px, 5.2vw, 78px); }
.b-wr__h1 small { font: 500 clamp(15px, 1.5vw, 20px)/1 var(--font-sans); text-transform: none; letter-spacing: 0; color: var(--text-2); }
.b-wr__meta { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; }
.b-wr__meta dd { margin: 4px 0 0; font: 500 var(--fs-sm)/1.2 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }
.b-wr__phases { list-style: none; display: flex; flex-wrap: wrap; margin: 0; padding: 0; }
.b-wr__phases li { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 20px 0 22px; margin-left: -6px; background: var(--ink-2); color: var(--text-3); font: 600 var(--fs-xs)/1 var(--font-mono); letter-spacing: .14em; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%); transition: background var(--t-med) var(--ease), color var(--t-med) var(--ease); }
.b-wr__phases li:first-child { margin-left: 0; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%); padding-left: 14px; }
.b-wr__phases li .num { font-size: 9.5px; font-weight: 500; } /* quieter by weight, not by opacity (a faded number was 3.3:1) */
.b-wr__phases li.is-done { background: var(--ink-4); color: var(--text-2); }
.b-wr__phases li.is-on { background: var(--raid); color: var(--raid-ink); }
.b-wr__beats { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 14px; padding: 0; }
.b-wr__beats li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 2px 10px; padding-top: 8px; border-top: 3px solid var(--hair-2); color: var(--text-3); transition: border-color var(--t-med) var(--ease), color var(--t-med) var(--ease); }
.b-wr__beats .num { font-size: var(--fs-xs); }
.b-wr__beats b { font: 800 clamp(17px, 1.6vw, 23px)/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.b-wr__beats small { grid-column: 2; font: 400 var(--fs-2xs)/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.b-wr__beats li.is-done { border-top-color: var(--text-3); color: var(--text-2); }
.b-wr__beats li.is-on { border-top-color: var(--raid); color: var(--text); }
.b-wr__beats li.is-on .num { color: var(--raid); }
.b-wr__grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr) minmax(320px, 400px); grid-template-areas: "stake stake feed" "price burn feed" "def def feed"; align-items: stretch; }
.b-wr__stake { grid-area: stake; padding: 18px 22px 16px; }
.b-wr__price { grid-area: price; padding: 16px 18px; min-width: 0; }
.b-wr__burn { grid-area: burn; padding: 16px 18px; transition: border-color var(--t-slow) var(--ease); }
.b-wr__def { grid-area: def; padding: 16px 18px; transition: box-shadow var(--t-med) var(--ease); }
.b-wr__feed { grid-area: feed; display: flex; flex-direction: column; min-height: 0; height: 640px; padding-top: 16px; }
.b-wr__feed .b-wr__ph { padding: 0 16px; }
@media (min-width: 1181px) { .b-wr__feed { height: auto; min-height: 560px; contain: size; } }
.b-wr__ph { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.b-wr__ph h2 { margin: 0; }
.b-wr__beatline { margin: 0 0 10px; max-width: none; min-height: 1.5em; padding-left: 10px; border-left: 2px solid var(--raid); font: 500 var(--fs-md)/1.45 var(--font-sans); }
.b-wr__big { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 24px; }
.b-wr__stakev { font: 900 clamp(64px, 8.2vw, 132px)/.82 var(--font-display); color: var(--raid); letter-spacing: -.01em; }
.b-wr__count { display: grid; justify-items: end; gap: 4px; text-align: right; }
.b-wr__count b { font: 800 clamp(26px, 3vw, 46px)/1 var(--font-display); text-transform: uppercase; }
.b-wr__count small { font: 400 var(--fs-xs)/1.3 var(--font-mono); color: var(--text-3); letter-spacing: .06em; }
.b-meter { position: relative; height: 22px; margin-top: 18px; background: var(--ink-4) repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), var(--hair-2) calc(10% - 1px) 10%); }
.b-meter__fill { position: absolute; inset: 0 auto 0 0; width: calc(var(--v, 0) * 100%); background: var(--raid); box-shadow: 0 0 26px var(--raid-glow); transition: width 700ms var(--ease); }
.b-meter__tend { position: absolute; top: 0; bottom: 0; left: calc(var(--v, 0) * 100%); width: calc(var(--t, 0) * 100%); background: var(--mint); opacity: .85; transition: left 700ms var(--ease), width 700ms var(--ease); }
.b-meter__opp { position: absolute; top: 0; bottom: 0; right: 0; width: calc(var(--o, 0) * 100%); background: repeating-linear-gradient(-45deg, var(--loss) 0 3px, transparent 3px 7px); transition: width 700ms var(--ease); }
.b-meter__legend { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 10px 0 0; max-width: none; font: 400 var(--fs-xs)/1.4 var(--font-mono); color: var(--text-3); }
.b-meter__legend i { display: inline-block; width: 9px; height: 9px; margin-right: 7px; vertical-align: -1px; background: var(--c); }
.b-meter__legend i.is-hatch { background: repeating-linear-gradient(-45deg, var(--loss) 0 2px, transparent 2px 4px); outline: 1px solid var(--loss); }
.b-meter__legend b { color: var(--text); font-weight: 500; }
.b-meter__mark { position: absolute; top: -7px; bottom: -7px; width: 2px; background: var(--text-2); }
.b-meter__mark--line { left: calc(var(--line) * 100%); } .b-meter__mark--maj { left: calc(var(--maj) * 100%); background: var(--bone); }
.b-meter__mark b { position: absolute; top: calc(100% + 5px); left: 0; transform: translateX(-50%); white-space: nowrap; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-2); }
.b-meter__mark--maj b { color: var(--bone); }
.is-over .b-meter__mark--maj b { color: var(--mint); }
.b-meter__scale { display: flex; justify-content: space-between; margin-top: 28px; font-size: var(--fs-2xs); color: var(--text-3); }
.b-wr__pricev { margin-left: auto; font: 800 26px/1 var(--font-display); }
.b-wr__chart svg { display: block; }
.b-wr__burnv { display: flex; align-items: baseline; gap: 10px; }
.b-wr__burnv .num { font: 900 clamp(56px, 6vw, 100px)/.9 var(--font-display); color: var(--mint); letter-spacing: -.01em; }
.b-wr__unit { font: 600 var(--fs-md)/1 var(--font-mono); color: var(--text-3); }
.b-wr__burn.is-live { border-color: color-mix(in srgb, var(--mint) 45%, transparent); }
.b-wr__mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--hair); }
.b-wr__mini dd { margin: 5px 0 0; font: 500 var(--fs-md)/1.1 var(--font-mono); }
.b-wr__fine { margin: 10px 0 0; max-width: none; font: 400 var(--fs-2xs)/1.4 var(--font-mono); color: var(--text-3); letter-spacing: .04em; }
.b-wr__deflist { list-style: none; margin: 0; padding: 0; display: grid; }
.b-def { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; padding: 10px 0; border-top: 1px solid var(--hair); animation: b-in var(--t-slow) var(--ease) both; }
.b-def__ico { color: var(--text-3); padding-top: 2px; }
.b-def--hostile .b-def__ico { color: var(--loss); } .b-def--good .b-def__ico { color: var(--mint); }
.b-def p { margin: 0; }
.b-def__h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font: 500 var(--fs-xs)/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-3); }
.b-def__h b { color: var(--text); font-weight: 600; }
.b-def--hostile .b-def__h b { color: var(--loss); }
.b-def__t { font-size: var(--fs-sm); color: var(--text-2); }
.b-wr__def.is-hit { box-shadow: 0 0 0 1px var(--loss), 0 0 40px -10px var(--loss); }
.b-wr__def.is-good { box-shadow: 0 0 0 1px var(--mint); }
.b-wr__events { list-style: none; margin: 0; padding: 0 16px 16px; overflow-y: auto; flex: 1; min-height: 0; }
.b-wr__events:focus-visible { outline-offset: -2px; }
.b-ev { padding: 12px 0; border-top: 1px solid var(--hair); animation: b-in var(--t-slow) var(--ease) both; }
.b-ev__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 500 var(--fs-2xs)/1.2 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); }
.b-ev__step { display: inline-flex; align-items: center; gap: 6px; color: var(--text-2); }
.b-ev__day { color: var(--text-3); }
.b-ev__title { margin: 6px 0 0; font: 600 var(--fs-md)/1.3 var(--font-sans); }
.b-ev__detail { margin: 4px 0 0; font-size: var(--fs-sm); color: var(--text-2); }
.b-ev.is-bid { margin-inline: -16px; padding-inline: 16px; background: color-mix(in srgb, var(--raid) 8%, transparent); box-shadow: inset 3px 0 0 var(--raid); }
.b-ev.is-bid .b-ev__step { color: var(--raid); }
.b-ev.is-counter { margin-inline: -16px; padding-inline: 16px; box-shadow: inset 3px 0 0 var(--loss); }
.b-ev.is-counter .b-ev__step { color: var(--loss); }
.b-ev.is-settle .b-ev__step { color: var(--mint); }
.b-wr .b-tw__text { font-size: 13.5px; }
.b-wr__controls { position: sticky; bottom: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 12px; background: color-mix(in srgb, var(--ink-0) 90%, transparent); border: 1px solid var(--hair-2); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.b-wr__play { min-width: 92px; }
.b-wr__prog { flex: 1 1 120px; height: 4px; background: var(--surface-3); }
.b-wr__prog i { display: block; height: 100%; width: 0; background: var(--raid); transition: width var(--t-med) var(--ease); }
.b-wr__progtxt, .b-wr__keys { font: 400 var(--fs-xs)/1 var(--font-mono); color: var(--text-3); }
.b-wr__flash { position: fixed; inset: 0; z-index: 60; pointer-events: none; opacity: 0; background: var(--raid); }
.b-wr__flash[data-kind="counter"] { background: var(--loss); } .b-wr__flash[data-kind="capture"] { background: var(--mint); }
.b-wr__flash.is-on { animation: b-flash 900ms ease-out; }
@keyframes b-flash { 0% { opacity: .42; } 100% { opacity: 0; } }
.b-wr__slam { position: fixed; inset: 0; z-index: 61; display: grid; place-items: center; pointer-events: none; }
.b-wr__slamin { display: grid; justify-items: center; gap: 14px; opacity: 0; text-align: center; }
.b-wr__slamin .stamp { max-width: 92vw; font-size: clamp(44px, 7.6vw, 140px); background: color-mix(in srgb, var(--void) 70%, transparent); }
.b-wr__slamin.is-mint .stamp { color: var(--mint); }
.b-wr__slamin p { margin: 0; padding: 6px 12px; background: var(--void); font: 600 var(--fs-sm)/1.2 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; }
.b-wr__slam.is-on .b-wr__slamin { animation: b-slam 2.1s var(--ease) both; }
.b-wr__slam.is-static .b-wr__slamin { opacity: 1; }
@keyframes b-slam { 0% { opacity: 0; transform: scale(2.2); } 12% { opacity: 1; transform: scale(1); } 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(.98); } }
.b-wr__stake.is-shake { animation: b-shake 560ms cubic-bezier(.36, .07, .19, .97) both; }
@keyframes b-shake { 10%, 90% { transform: translateX(-2px); } 20%, 80% { transform: translateX(4px); } 30%, 50%, 70% { transform: translateX(-7px); } 40%, 60% { transform: translateX(7px); } }
.b-wr__end { position: fixed; left: 50%; top: 50%; z-index: 55; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; padding: 22px 24px; transform: translate(-50%, -50%); background: var(--ink-1); box-shadow: 0 30px 90px rgba(0, 0, 0, .7); display: grid; gap: 12px; }
.b-wr__end.is-in { animation: b-pop 600ms var(--ease) both; }
@keyframes b-pop { from { opacity: 0; transform: translate(-50%, -46%) scale(.96); } to { opacity: 1; transform: translate(-50%, -50%); } }
.b-wr__end .label { display: flex; align-items: center; gap: 8px; }
.b-wr__outcome { justify-self: start; font-size: clamp(40px, 6vw, 72px); }
.b-wr__sign { margin: 0; font: 600 var(--fs-sm)/1.3 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; }
.b-wr__endstats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--hair); border: 1px solid var(--hair); }
.b-wr__endstats > div { padding: 10px; background: var(--surface); }
.b-wr__endstats dt { font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.b-wr__endstats dd { margin: 6px 0 0; font: 800 24px/1 var(--font-display); }
.b-wr__endbtns { gap: 8px; }
.b-wr__x { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; background: transparent; border: 1px solid var(--hair-2); color: var(--text-2); font: 400 18px/1 var(--font-mono); cursor: pointer; }
.b-wr__x:hover { color: var(--text); border-color: var(--accent); }
.b-wr__hint { position: fixed; left: 50%; bottom: 24px; z-index: 70; transform: translateX(-50%); margin: 0; padding: 8px 12px; background: var(--ink-0); border: 1px solid var(--hair-2); font: 400 var(--fs-xs)/1 var(--font-mono); color: var(--text-2); }
.b-wr__bug { display: none; }
@media (max-width: 1180px) {
  .b-wr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "stake stake" "price burn" "def def" "feed feed"; }
}
@media (max-width: 720px) {
  .b-wr__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "stake" "price" "burn" "feed" "def"; }
  .b-wr__beats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-wr__phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; width: 100%; }
  .b-wr__phases li, .b-wr__phases li:first-child { margin: 0; padding: 0 8px; justify-content: center; clip-path: none; font-size: var(--fs-2xs); letter-spacing: .08em; }
  .b-wr__phases li .num { display: none; }
  .b-wr__count { justify-items: start; text-align: left; }
  .b-wr__stake, .b-wr__price, .b-wr__burn, .b-wr__def { padding: 14px; }
  .b-wr__cfg { display: none; }
  .b-wr__endstats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-wr__controls { gap: 8px; padding: 9px 10px; margin-inline: calc(var(--gutter) * -1); border-inline: 0; }
  .b-wr__controls .btn { padding: 0 12px; }
  .b-wr__play { min-width: 70px; }
  .b-wr__controls [data-stream], .b-wr__controls [data-toend], .b-wr__progtxt { display: none; }
  .b-wr__prog { position: absolute; left: 0; right: 0; top: -1px; height: 3px; }
  .b-seg button { min-width: 40px; }
}

/* Stream mode: big type, no chrome, one 16:9 screen */
body.is-stream rd-nav, body.is-stream rd-footer, body.is-stream .b-wr__controls, body.is-stream .skip-link, body.is-stream .b-wr__cfg, body.is-stream .b-wr__src { display: none !important; }
body.is-stream { overflow: hidden; }
body.is-stream .b-wr { height: 100vh; max-width: none; padding: 1.4vh 2vw 2vh; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); overflow: hidden; }
body.is-stream .b-wr__head { padding: 1.2vh 0 1vh; }
body.is-stream .b-wr__h1 { font-size: 5vw; }
body.is-stream .b-wr__phases li { min-height: 4.6vh; font-size: max(12px, .95vw); }
body.is-stream .b-wr__beats { margin-bottom: 1.4vh; }
body.is-stream .b-wr__beats b { font-size: 2vw; }
body.is-stream .b-wr__grid { min-height: 0; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) 28vw; grid-template-rows: minmax(0, 1.15fr) minmax(0, .85fr) minmax(0, auto); grid-template-areas: "stake price feed" "stake burn feed" "def def feed"; }
body.is-stream .b-wr__stake, body.is-stream .b-wr__price, body.is-stream .b-wr__burn { min-height: 0; overflow: hidden; }
body.is-stream .b-wr__stake { display: flex; flex-direction: column; justify-content: center; }
body.is-stream .b-wr__big { flex-direction: column; align-items: flex-start; }
body.is-stream .b-wr__count { justify-items: start; text-align: left; }
body.is-stream .b-wr__beatline { font-size: 1.5vw; }
body.is-stream .b-wr__stakev { font-size: 9.4vw; }
body.is-stream .b-wr__count b { font-size: 3.2vw; }
body.is-stream .b-wr__burnv .num { font-size: 5vw; }
body.is-stream .b-wr__feed { height: auto; min-height: 0; contain: size; }
body.is-stream .b-wr__def { max-height: 21vh; overflow: hidden; }
body.is-stream .b-ev__title { font-size: 1.15vw; } body.is-stream .b-ev__detail, body.is-stream .b-wr .b-tw__text { font-size: max(13px, .95vw); }
body.is-stream .b-wr__bug { display: block; position: fixed; top: 1.2vh; right: 1.4vw; z-index: 40; margin: 0; padding: 6px 10px; border: 1px solid var(--cold); background: var(--void); color: var(--cold); font: 600 max(11px, .8vw)/1 var(--font-mono); letter-spacing: .16em; }

/* ───────── OBS overlay (transparent; plates carry the contrast) ───────── */
.b-ovpage { margin: 0; min-height: 100vh; }
.b-ov { position: fixed; inset: 0; pointer-events: none; font-size: calc(clamp(11px, .94vw + 6px, 18px) * var(--ov-scale, 1)); --plate: color-mix(in srgb, var(--void) 90%, transparent); --plate-line: var(--line-2); --ink: var(--bone); --ink2: var(--bone-2); --track: var(--ink-4); color: var(--ink); }
.b-ov--light { --plate: color-mix(in srgb, var(--paper) 95%, transparent); --plate-line: var(--paper-line); --ink: var(--paper-ink); --ink2: var(--paper-ink-2); --track: var(--paper-line); }
.b-ov__plate { background: var(--plate); border: 1px solid var(--plate-line); box-shadow: 0 .6em 2.4em rgba(0, 0, 0, .35); }
.b-ov__brand { display: flex; align-items: center; gap: .45em; font: 900 1.05em/1 var(--font-display); letter-spacing: .04em; }
.b-ov__brand span:not(.b-ov__mark) { font: 600 .6em/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--ink2); }
.b-ov__mark svg { width: .9em; height: auto; color: var(--ink); }
.b-ov__tk { font: 900 2em/1 var(--font-display); letter-spacing: .01em; }
.b-ov__phase { padding: .3em .6em; background: var(--raid); color: var(--raid-ink); font: 700 .72em/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.b-ov__sim { padding: .3em .55em; border: 1px solid var(--cold); color: var(--cold); font: 600 .62em/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.b-ov--light .b-ov__sim { color: #1F6FA8; border-color: #1F6FA8; } /* same paper-SIM blue as base.css */
.b-ov__meter { position: relative; flex: 1; height: .8em; background: var(--track); }
.b-ov__meter > i { position: absolute; top: 0; bottom: 0; transition: left 700ms var(--ease), width 700ms var(--ease); }
.b-ov__meter > .r { left: 0; width: calc(var(--v) * 100%); background: var(--raid); }
.b-ov__meter > .t { left: calc(var(--v) * 100%); width: calc(var(--t) * 100%); background: var(--mint); }
.b-ov__meter > .o { right: 0; width: calc(var(--o) * 100%); background: repeating-linear-gradient(-45deg, var(--loss) 0 .15em, transparent .15em .35em); }
.b-ov__phase.is-mint { background: var(--mint); color: var(--ink-0); } .b-ov__phase.is-loss { background: var(--loss); color: var(--ink-0); } .b-ov__phase.is-neutral { background: var(--steel); color: var(--ink-0); }
.b-ov__stakeline [data-sup] { color: var(--mint); }
.b-ov--light .b-ov__stakeline [data-sup] { color: var(--ink); }
.b-ov__mk { position: absolute; top: -.25em; bottom: -.25em; width: 2px; background: var(--ink2); }
.b-ov__mk--line { left: calc(var(--line) * 100%); } .b-ov__mk--maj { left: calc(var(--maj) * 100%); background: var(--ink); width: 3px; }
.b-ov__stakeline { font: 600 .8em/1 var(--font-mono); color: var(--ink2); white-space: nowrap; }
.b-ov__stakeline b { font: 900 1.6em/1 var(--font-display); color: var(--raid); }
.b-ov__last { margin: 0; max-width: none; font: 500 .95em/1.3 var(--font-sans); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b-ov__last.is-new { animation: b-ovnew 700ms var(--ease); }
@keyframes b-ovnew { from { opacity: .2; transform: translateY(.3em); } to { opacity: 1; transform: none; } }
.b-ov__honest { position: absolute; margin: 0; padding: .3em .6em; max-width: none; background: var(--plate); color: var(--ink2); font: 500 .6em/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.b-ov__lt { position: absolute; left: 3vw; bottom: calc(6vh + 1.6em); width: min(46em, 92vw); display: grid; grid-template-columns: auto minmax(0, 1fr); border-left: .32em solid var(--raid); }
.b-ov__lt .b-ov__brand { flex-direction: column; justify-content: center; padding: .7em .9em; border-right: 1px solid var(--plate-line); font-size: 1.1em; }
.b-ov__main { display: grid; gap: .5em; padding: .7em 1em .75em; min-width: 0; }
.b-ov__row { display: flex; flex-wrap: wrap; align-items: center; gap: .4em .7em; min-width: 0; }
.b-ov__row .b-ov__sim { margin-left: auto; }
.b-ov__meterrow { display: flex; align-items: center; gap: .8em; }
.b-ov--lower-third .b-ov__honest { left: 3vw; bottom: 6vh; }
.b-ov__card { position: absolute; right: 2.4vw; top: 4vh; width: min(24em, 44vw); display: grid; gap: .6em; padding: 1.1em 1.2em 1em; border-top: .3em solid var(--raid); }
.b-ov__top { display: flex; align-items: center; justify-content: space-between; gap: .6em; }
.b-ov__card .b-ov__tk { margin: .2em 0 0; font-size: 2.6em; }
.b-ov__name { margin: 0; font: 500 .7em/1.2 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink2); }
.b-ov__phases { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25em; margin: .2em 0 0; padding: 0; }
.b-ov__phases li { padding: .35em .2em; text-align: center; background: var(--track); color: var(--ink2); font: 600 .55em/1 var(--font-mono); letter-spacing: .1em; }
.b-ov__phases li.is-done { color: var(--ink); } .b-ov__phases li.is-on { background: var(--raid); color: var(--raid-ink); }
.b-ov__beat { margin: 0; font: 800 1.1em/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.b-ov__stakebig { display: flex; align-items: baseline; gap: .5em; }
.b-ov__stakebig b { font: 900 3.4em/.9 var(--font-display); color: var(--raid); }
.b-ov__stakebig > span { font: 500 .65em/1.3 var(--font-mono); color: var(--ink2); text-transform: uppercase; letter-spacing: .08em; }
.b-ov__stakebig [data-sup] { color: var(--mint); font-weight: 600; } .b-ov--light .b-ov__stakebig [data-sup] { color: var(--ink); }
.b-ov__card .b-ov__meter { flex: none; height: .9em; }
.b-ov__burn { display: flex; align-items: baseline; justify-content: space-between; gap: .6em; padding-top: .5em; border-top: 1px solid var(--plate-line); font: 600 .62em/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink2); }
.b-ov__burn b { font: 900 2.6em/1 var(--font-display); letter-spacing: 0; color: var(--mint); }
.b-ov--light .b-ov__burn b { color: var(--ink); }
.b-ov__recent { list-style: none; margin: 0; padding: 0; display: grid; gap: .35em; }
.b-ov__recent li { font: 500 .72em/1.35 var(--font-sans); color: var(--ink2); padding-left: .6em; border-left: 2px solid var(--plate-line); }
.b-ov__recent li:first-child { color: var(--ink); border-left-color: var(--raid); }
.b-ov__card .b-ov__honest { position: static; padding: .5em 0 0; background: none; border-top: 1px solid var(--plate-line); }
.b-ov__tick { position: absolute; left: 0; right: 0; bottom: 1.6em; display: flex; flex-wrap: wrap; align-items: center; gap: .3em .9em; min-height: 2.8em; padding: .3em 1em; border-inline: 0; }
.b-ov__tick .b-ov__tk { font-size: 1.4em; }
.b-ov__crawl { flex: 1; min-width: 0; overflow: hidden; mask-image: linear-gradient(90deg, #000 94%, transparent); }
.b-ov__crawl p { margin: 0; white-space: nowrap; font: 500 .95em/1 var(--font-sans); }
.b-ov--ticker .b-ov__honest { left: 0; right: 0; bottom: 0; text-align: center; }
.b-ov.is-bid .b-ov__plate { animation: b-ovbid 1.2s var(--ease); }
@keyframes b-ovbid { 0%, 40% { box-shadow: 0 0 0 .2em var(--raid), 0 0 3em var(--raid-glow); } 100% { box-shadow: 0 .6em 2.4em rgba(0, 0, 0, .35); } }
.b-ov.is-counter .b-ov__plate { animation: b-shake 560ms cubic-bezier(.36, .07, .19, .97) both; }

/* ───────── /overlay?cue=… the runbook's cue set C01–C19 (cue-overlay.js paints what cue-render.js returns). Zones keep the cues from colliding on a 1920×1080 canvas. ───────── */
.b-ov--cue { --zone-x: 2.4vw; }
.b-cue { pointer-events: none; color: var(--ink); }
.b-cue.is-fresh { animation: b-cuein 520ms var(--ease) both; }
@keyframes b-cuein { from { opacity: 0; transform: translateY(.6em); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .b-cue.is-fresh, .b-cue__stamp--tender, .b-cue__stamp--signing { animation: none; } }
/* cues that share a zone flow one under the next instead of piling up: the right column (stamps and the clock, then the panels), the lower-left gauge, the centre cards */
.b-cue-col { position: absolute; right: var(--zone-x); top: 3vh; width: min(27em, 42vw); display: flex; flex-direction: column; gap: .8em; }
.b-cue-col [data-zone="top-right"] { display: flex; flex-direction: column; align-items: flex-end; gap: .5em; }
.b-cue-col [data-zone="panel"] { display: grid; gap: .8em; }
[data-zone="lower"] { position: absolute; left: 3vw; bottom: calc(7vh + 1em); width: min(34em, 60vw); display: grid; gap: .8em; }
[data-zone="center"] { position: absolute; inset: 0; display: grid; place-content: center; gap: 1em; }
.b-cue--zone-top-left { position: absolute; left: var(--zone-x); top: 3vh; display: flex; align-items: center; gap: .6em; }
.b-cue--zone-top-right { display: grid; justify-items: end; gap: .5em; max-width: 30em; text-align: right; }
.b-cue--zone-panel, .b-cue--zone-lower, .b-cue--zone-center { padding: 1em 1.2em 1.05em; background: var(--plate); border: 1px solid var(--plate-line); border-top: .3em solid var(--raid); box-shadow: 0 .6em 2.4em rgba(0, 0, 0, .35); }
.b-cue--zone-center { width: min(52em, 84vw); text-align: center; }
.b-cue__head { display: flex; align-items: center; justify-content: space-between; gap: .6em; margin-bottom: .6em; text-align: left; }
.b-cue__head h2 { margin: 0; font: 900 1.5em/1 var(--font-display); letter-spacing: .02em; text-transform: uppercase; }
.b-cue h3 { margin: 0 0 .45em; font: 600 .62em/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink2); }
.b-cue__lead { margin: 0 0 .7em; max-width: none; font: 500 .9em/1.35 var(--font-sans); }
.b-cue__foot { margin: .7em 0 0; max-width: none; padding-top: .55em; border-top: 1px solid var(--plate-line); font: 500 .6em/1.4 var(--font-mono); letter-spacing: .06em; color: var(--ink2); text-align: left; }
.b-cue__empty { margin: 0; max-width: none; font: 500 .85em/1.4 var(--font-sans); color: var(--ink2); text-align: left; }
.b-cue__eyebrow { margin: 0; max-width: none; font: 600 .7em/1 var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--cold); }
.b-cue__title { margin: .15em 0; font: 900 6em/.9 var(--font-display); letter-spacing: .01em; }
.b-cue__sub { margin: 0; max-width: none; font: 800 2em/1 var(--font-display); letter-spacing: .04em; text-transform: uppercase; color: var(--raid); }
.b-cue__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2em; text-align: left; }
.b-cue__cols ul, .b-cue__cols ol { margin: 0; padding-left: 1.1em; display: grid; gap: .35em; font: 500 .74em/1.35 var(--font-sans); }
.b-cue__close { list-style: none; margin: 0; padding: 0; display: grid; gap: .5em; text-align: left; font: 600 .95em/1.35 var(--font-sans); }
.b-cue__rows { list-style: none; margin: 0; padding: 0; display: grid; gap: .35em; }
.b-cue__rows li { display: grid; align-items: center; gap: .6em; padding: .35em .55em; background: color-mix(in srgb, var(--track) 55%, transparent); font: 600 .78em/1.25 var(--font-mono); text-align: left; }
.b-cue__rows--board li { grid-template-columns: 1.2em auto 1fr auto auto; }
.b-cue__rows--fills li { grid-template-columns: auto 1fr auto; }
.b-cue__rows--fills code { font: 500 .85em/1 var(--font-mono); color: var(--cold); }
.b-cue__rows--def li { grid-template-columns: auto 1fr; border-left: .25em solid var(--steel); }
.b-cue__rows--def li.is-hostile { border-left-color: var(--loss); } .b-cue__rows--def li.is-good { border-left-color: var(--mint); }
.b-cue__rows--time li { grid-template-columns: minmax(0, 1fr); gap: .15em; border-left: .25em solid transparent; }
.b-cue__rows--time li b { font: 800 1.05em/1.1 var(--font-display); letter-spacing: .02em; text-transform: uppercase; }
.b-cue__rows--time li span { font: 500 .85em/1.3 var(--font-sans); color: var(--ink2); }
.b-cue__rows--time li.is-done { opacity: .55; } .b-cue__rows--time li.is-on { border-left-color: var(--raid); }
.b-cue .d { color: var(--ink2); white-space: nowrap; } .b-cue .tk { font: 900 1.25em/1 var(--font-display); }
.b-cue .v { font-style: normal; } .b-cue .v--RAID { color: var(--raid); } .b-cue .v--WATCH { color: var(--amber); } .b-cue .v--PASS { color: var(--ink2); } .b-cue .g { color: var(--ink2); white-space: nowrap; }
.b-cue__gates { list-style: none; margin: 0; padding: 0; display: grid; gap: .3em; font: 500 .8em/1.3 var(--font-sans); text-align: left; }
.b-cue__gates i { margin-right: .5em; font-style: normal; font-weight: 800; } .b-cue__gates .is-pass i { color: var(--mint); } .b-cue__gates .is-fail i { color: var(--loss); }
.b-cue__terms { margin: 0; display: grid; gap: .1em; text-align: left; }
.b-cue__terms div { display: flex; align-items: baseline; justify-content: space-between; gap: 1em; padding: .35em 0; border-bottom: 1px solid var(--plate-line); }
.b-cue__terms dt { font: 600 .62em/1.4 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink2); }
.b-cue__terms dd { margin: 0; font: 800 1.1em/1.1 var(--font-display); text-align: right; }
.b-cue__gauge + .b-cue__gauge { margin-top: .75em; }
.b-cue__gauge p { margin: 0 0 .35em; max-width: none; display: flex; align-items: baseline; gap: .6em; font: 600 .62em/1.2 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2); text-align: left; }
.b-cue__gauge b { font: 900 2em/1 var(--font-display); letter-spacing: 0; color: var(--ink); } .b-cue__gauge small { margin-left: auto; font-size: 1em; }
.b-cue__bar { position: relative; height: .8em; background: var(--track); }
.b-cue__bar i { position: absolute; inset: 0 auto 0 0; width: calc(var(--v) * 100%); background: var(--raid); transition: width 700ms var(--ease); }
.b-cue__bar span { position: absolute; top: -.25em; bottom: -.25em; left: calc(var(--mark) * 100%); width: 3px; background: var(--ink); }
.b-cue__clock { margin: 0; font: 900 7em/.9 var(--font-display); font-variant-numeric: tabular-nums; color: var(--raid); text-shadow: 0 0 .35em var(--raid-glow); }
.b-cue__note, .b-cue__stampsub { margin: .3em 0 0; max-width: 28em; padding: .4em .7em; background: var(--plate); font: 600 .62em/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink2); }
.b-cue__stamp { display: inline-block; padding: .1em .45em; border: .18em solid currentColor; background: color-mix(in srgb, var(--void) 72%, transparent); font: 900 2.4em/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; transform: rotate(-4deg); }
.b-cue__stamp--raid { color: var(--raid); } .b-cue__stamp--placed, .b-cue__stamp--tender { color: var(--mint); } .b-cue__stamp--neutral { color: var(--bone-2); } .b-cue__stamp--signing { color: var(--amber); animation: b-cueblink 1s steps(2, end) infinite; }
.b-cue__stamp--tender { animation: b-cuein 520ms var(--ease) 1.2s both; }
@keyframes b-cueblink { 50% { opacity: .35; } }
.b-cue__chip { padding: .35em .7em; border: 1px solid var(--cold); background: var(--plate); color: var(--cold); font: 700 .8em/1 var(--font-mono); letter-spacing: .16em; white-space: nowrap; }
.b-cue__asof { padding: .4em .6em; background: var(--plate); font: 500 .62em/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2); white-space: nowrap; }
.b-cue__persist { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .2em 1.4em; padding: .5em var(--zone-x) .45em; background: var(--plate); border-top: 1px solid var(--plate-line); }
.b-cue__persona, .b-cue__disc, .b-cue__honest { margin: 0; max-width: none; }
.b-cue__persona { font: 700 .72em/1.3 var(--font-sans); } .b-cue__disc { font: 600 .72em/1.3 var(--font-sans); color: var(--ink2); text-align: right; }
.b-cue__honest { grid-column: 1 / -1; font: 500 .55em/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2); }
.b-ov--light .b-cue__chip, .b-ov--light .b-cue__eyebrow { color: #1F6FA8; border-color: #1F6FA8; } .b-ov--light .b-cue__eyebrow { border: 0; }
.b-ov--light .b-cue__stamp--placed, .b-ov--light .b-cue__stamp--tender { color: #0F7A4E; } .b-ov--light .b-cue__stamp { background: color-mix(in srgb, var(--paper) 80%, transparent); }
/* the operator panel: a normal browser only (OBS has window.obsstudio and hides it), dashed amber so nobody mistakes it for a graphic */
.b-cue__op { position: absolute; left: var(--zone-x); top: 9vh; width: 27em; padding: .7em .8em; background: rgba(8, 10, 14, .88); border: 1px dashed var(--amber); font: 500 .62em/1.35 var(--font-mono); color: #EDE8DD; }
.b-cue__op header { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3em .8em; }
.b-cue__op header b { color: var(--amber); letter-spacing: .16em; text-transform: uppercase; } .b-cue__op header span { color: var(--loss); letter-spacing: .12em; text-transform: uppercase; } .b-cue__op header em { margin-left: auto; font-style: normal; }
.b-cue__onair { list-style: none; margin: .6em 0; padding: 0; display: grid; gap: .3em; }
.b-cue__onair li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1em .6em; } .b-cue__onair li b { color: var(--raid); } .b-cue__onair small { margin-left: auto; color: #9aa0a6; font-size: 1em; }
.b-cue__strip { list-style: none; margin: .5em 0 0; padding: 0; display: grid; grid-template-columns: repeat(10, 1fr); gap: 2px; }
.b-cue__strip li { padding: .35em 0; background: #1b1f26; color: #6b7280; text-align: center; }
.b-cue__strip .is-persist { color: var(--cold); } .b-cue__strip .is-on { background: var(--raid); color: #000; font-weight: 800; } .b-cue__strip .is-armed { outline: 1px solid var(--raid); color: var(--raid); } .b-cue__strip .is-never { color: var(--loss); text-decoration: line-through; }
.b-cue__warn { list-style: none; margin: .5em 0 0; padding: .4em .5em; display: grid; gap: .25em; border-left: 3px solid var(--loss); color: #FFB3BF; }
.b-cue__follow, .b-cue__idle { margin: .5em 0 0; max-width: none; color: #9aa0a6; }
