/* TPC RADAR — naval-intelligence instrument. Phosphor-restrained palette on black; monospace numerics; motion only for state change. */
@font-face { font-family: "Plex Sans"; src: url("/static/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Plex Sans"; src: url("/static/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Plex Sans"; src: url("/static/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Plex Mono"; src: url("/static/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Plex Mono"; src: url("/static/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }

:root {
  --bg: #030705; --bg-1: #06100b; --bg-2: #0a1711; --bg-3: #0f2019;
  --line: #16291f; --line-2: #1f3a2c;
  --ink: #d3e6da; --ink-2: #9db8a8; --ink-3: #6a8878; --ink-4: #45604f;
  --phos: #8fe3b0; --phos-dim: #3f7a5c; --phos-faint: rgba(143, 227, 176, .08);
  --amber: #e8b25a; --amber-dim: rgba(232, 178, 90, .14);
  --cyan: #6fb8d8; --cyan-dim: rgba(111, 184, 216, .14);
  --red: #e0675c; --red-dim: rgba(224, 103, 92, .14);
  --grey: #8a9a92; --hatch: rgba(157, 184, 168, .10);
  --sans: "Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --mono: "Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --r: 3px;
  --top: 52px;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--ink); font: 13px/1.45 var(--sans); -webkit-font-smoothing: antialiased; }
body { min-height: 100vh; }
a { color: var(--phos); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 1px solid var(--phos); outline-offset: 2px; }
.num, .mono, code { font-family: var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.cap { text-transform: uppercase; letter-spacing: .12em; font-size: 10.5px; font-weight: 500; color: var(--ink-3); }
.muted { color: var(--ink-3); }
.dim { color: var(--ink-4); }
.hidden { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.boot { height: 100vh; display: grid; place-content: center; gap: 8px; text-align: center; }
.wordmark { font: 600 14px var(--mono); letter-spacing: .32em; color: var(--phos); }
.boot-sub { font: 11px var(--mono); letter-spacing: .3em; color: var(--ink-4); }

/* ---------- top bar ---------- */
.top { position: sticky; top: 0; z-index: 20; height: var(--top); display: flex; align-items: center; gap: 22px; padding: 0 20px;
  background: rgba(3, 7, 5, .94); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }
.brand .wordmark { font-size: 13px; }
.brand .pilot { font: 500 9.5px var(--mono); letter-spacing: .22em; color: var(--ink-4); }
.nav { display: flex; gap: 2px; height: 100%; }
.nav a { display: flex; align-items: center; padding: 0 12px; height: 100%; color: var(--ink-3); font: 500 11px var(--mono); letter-spacing: .16em;
  border-bottom: 1px solid transparent; }
.nav a:hover { color: var(--ink); text-decoration: none; }
.nav a.on { color: var(--phos); border-bottom-color: var(--phos); }
.top .spacer { flex: 1; }
.asof { display: flex; align-items: center; gap: 8px; }
.asof label { font: 500 10px var(--mono); letter-spacing: .16em; color: var(--ink-3); }
.asof input { background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 5px 7px; font: 12px var(--mono); color: var(--ink); color-scheme: dark; }
.asof button, .btn { background: transparent; border: 1px solid var(--line-2); color: var(--ink-2); border-radius: var(--r); padding: 5px 10px; font: 500 10.5px var(--mono);
  letter-spacing: .12em; cursor: pointer; text-transform: uppercase; }
.btn:hover, .asof button:hover { border-color: var(--phos-dim); color: var(--ink); }
.btn.primary { background: var(--phos); color: #04120a; border-color: var(--phos); }
.btn.primary:hover { background: #a6ecc2; }
.btn.warn { border-color: var(--amber); color: var(--amber); }
.sync { display: flex; align-items: center; gap: 7px; font: 10.5px var(--mono); color: var(--ink-3); white-space: nowrap; }
.dot { width: 6px; height: 6px; border-radius: 50%; background: var(--phos); display: inline-block; }
.dot.stale { background: var(--amber); } .dot.off { background: var(--red); }
.userbtn { font: 10.5px var(--mono); color: var(--ink-3); }

.rewind { background: var(--amber-dim); border-bottom: 1px solid rgba(232, 178, 90, .35); color: var(--amber); font: 500 11px var(--mono); letter-spacing: .1em;
  padding: 6px 20px; display: flex; gap: 14px; align-items: center; }
.offline { background: var(--red-dim); border-bottom: 1px solid rgba(224, 103, 92, .4); color: var(--red); font: 500 11px var(--mono); letter-spacing: .08em; padding: 6px 20px; }

/* ---------- layout ---------- */
main { padding: 18px 20px 90px; max-width: 1560px; margin: 0 auto; }
.grid-radar { display: grid; grid-template-columns: minmax(520px, 1fr) 420px; gap: 18px; align-items: start; }
.panel { background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--r); }
.panel > header { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.panel > header h2 { margin: 0; font: 500 10.5px var(--mono); letter-spacing: .18em; color: var(--ink-2); text-transform: uppercase; }
.panel .body { padding: 12px 14px; }
h1.title { font: 500 20px var(--sans); letter-spacing: -.01em; margin: 0; color: var(--ink); }
.pagehead { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin: 4px 0 16px; flex-wrap: wrap; }
.pagehead .sub { color: var(--ink-3); font-size: 12px; margin-top: 4px; }

/* ---------- scope ---------- */
.scope-wrap { position: relative; aspect-ratio: 1 / 1; width: 100%; max-height: calc(100vh - 130px); margin: 0 auto; }
.scope-wrap canvas { width: 100%; height: 100%; display: block; }
.scope-hud { position: absolute; font: 10.5px/1.5 var(--mono); color: var(--ink-3); pointer-events: none; }
.scope-hud.tl { top: 10px; left: 12px; } .scope-hud.tr { top: 10px; right: 12px; text-align: right; }
.scope-hud.bl { bottom: 10px; left: 12px; } .scope-hud.br { bottom: 10px; right: 12px; text-align: right; }
.scope-hud b { color: var(--ink); font-weight: 500; }
.scope-hud .amber { color: var(--amber); }
.covbox { border: 1px solid rgba(157, 184, 168, .25); background: rgba(3, 7, 5, .86); padding: 6px 8px; border-radius: var(--r); pointer-events: auto; max-width: 290px; font-size: 10px; }
.covbox .k { color: var(--ink-3); } .covbox .v { color: var(--ink); }
.hatch { background-image: repeating-linear-gradient(135deg, var(--hatch) 0 2px, transparent 2px 6px); }
.sweepline { animation: none; }
.tip { position: absolute; z-index: 5; background: var(--bg-2); border: 1px solid var(--line-2); border-radius: var(--r); padding: 8px 10px; font-size: 12px; pointer-events: none; max-width: 280px; }

/* ---------- contact list ---------- */
.clist { list-style: none; margin: 0; padding: 0; }
.clist li { border-bottom: 1px solid var(--line); }
.clist li:last-child { border-bottom: 0; }
.clist a { display: grid; grid-template-columns: 18px 1fr auto; gap: 10px; padding: 9px 14px; color: var(--ink); align-items: start; }
.clist a:hover, .clist a.hl { background: var(--phos-faint); text-decoration: none; }
.clist .nm { font-weight: 500; } .clist .meta { color: var(--ink-3); font-size: 11.5px; }
.clist .rng { font: 11px var(--mono); text-align: right; white-space: nowrap; }
.glyph { width: 12px; height: 12px; margin-top: 3px; display: inline-block; }

/* ---------- chips & states ---------- */
.chip { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--line-2); border-radius: 2px; padding: 1px 6px; font: 500 10px var(--mono);
  letter-spacing: .08em; color: var(--ink-2); white-space: nowrap; text-transform: uppercase; }
.chip.verified { color: var(--phos); border-color: var(--phos-dim); }
.chip.inferred, .chip.candidate { color: var(--cyan); border-color: rgba(111, 184, 216, .45); }
.chip.active { color: var(--amber); border-color: rgba(232, 178, 90, .5); }
.chip.unknown, .chip.insufficient { color: var(--grey); border-style: dashed; }
.chip.warn, .chip.contra { color: var(--red); border-color: rgba(224, 103, 92, .5); }
.chip.call { color: var(--cyan); border-color: rgba(111, 184, 216, .45); border-style: dotted; font-size: 9px; }
.stmt.contra-stmt { border-left: 2px solid var(--red); background: var(--red-dim); }
.chip.internal { color: #c9a2e6; border-color: rgba(201, 162, 230, .45); }
.chip.new { color: var(--phos); } .chip.aging { color: var(--ink-4); }
.state-HEALTHY { color: var(--phos); } .state-DEGRADED, .state-STALE { color: var(--amber); } .state-BLOCKED { color: var(--red); }
.state-HUMAN_REQUIRED, .state-UNDOCUMENTED { color: var(--grey); }
.cov-SEARCHED { color: var(--phos); } .cov-NOT_SEARCHED { color: var(--amber); } .cov-NOT_CONNECTED, .cov-NOT_PROVIDED, .cov-HUMAN_REQUIRED { color: var(--grey); }
.out-FIRED { color: var(--amber); } .out-CLEAR { color: var(--phos); } .out-INSUFFICIENT_COVERAGE { color: var(--grey); }

/* ---------- tables ---------- */
.table-wrap { overflow-x: auto; }
table.t { width: 100%; border-collapse: collapse; font-size: 12.5px; }
table.t th { text-align: left; font: 500 10px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); padding: 8px 10px;
  border-bottom: 1px solid var(--line-2); white-space: nowrap; background: var(--bg-1); position: sticky; top: 0; }
table.t th button { all: unset; cursor: pointer; } table.t th button:hover { color: var(--ink); }
table.t td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
table.t tr.row:hover td { background: var(--phos-faint); cursor: pointer; }
table.t td.num, table.t td.mono { font-family: var(--mono); font-size: 11.5px; }
.why { color: var(--ink-2); max-width: 420px; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; align-items: center; }
.filters select, .filters input { background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 5px 8px; font: 12px var(--mono); color: var(--ink); }
.filters .count { margin-left: auto; font: 11px var(--mono); color: var(--ink-3); }

/* ---------- deal room ---------- */
.dr-head { display: grid; grid-template-columns: 1fr auto; gap: 16px; margin-bottom: 14px; }
.dr-head h1 { font: 500 22px var(--sans); margin: 0 0 6px; }
.dr-head .facts { display: flex; flex-wrap: wrap; gap: 16px; color: var(--ink-2); font-size: 12px; }
.dr-head .facts b { color: var(--ink); font: 500 12px var(--mono); }
.dr { display: grid; grid-template-columns: 190px 1fr; gap: 22px; align-items: start; }
.dr nav { position: sticky; top: calc(var(--top) + 14px); display: flex; flex-direction: column; gap: 1px; }
.dr nav a { font: 500 10.5px var(--mono); letter-spacing: .12em; color: var(--ink-3); padding: 5px 8px; border-left: 1px solid var(--line); }
.dr nav a:hover { color: var(--ink); text-decoration: none; border-left-color: var(--phos-dim); }
.sec { margin-bottom: 18px; scroll-margin-top: calc(var(--top) + 12px); }
.sec > h2 { font: 500 10.5px var(--mono); letter-spacing: .18em; color: var(--phos); margin: 0 0 8px; text-transform: uppercase; display: flex; gap: 10px; align-items: baseline; }
.sec > h2 .cnt { color: var(--ink-4); letter-spacing: .05em; }
.stmt { border-left: 2px solid var(--amber); background: var(--bg-1); padding: 10px 12px; margin-bottom: 8px; }
.stmt.prop { border-left-color: var(--cyan); }
.stmt p { margin: 0 0 6px; font-size: 13.5px; }
.stmt .def { color: var(--ink-3); font-size: 11.5px; margin-bottom: 6px; }
.evlinks { display: flex; flex-wrap: wrap; gap: 6px; }
.evid { font: 11px var(--mono); color: var(--phos); border-bottom: 1px dotted var(--phos-dim); cursor: pointer; background: none; border-top: 0; border-left: 0; border-right: 0; padding: 0; }
.evid:hover { color: #b7f3cf; }
.kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); background: var(--bg-1); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.kv > div { padding: 9px 11px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kv .k { font: 500 10px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 3px; }
.kv .v { font-size: 12.5px; }
.note-form textarea { width: 100%; min-height: 76px; background: var(--bg); border: 1px solid var(--line-2); border-radius: var(--r); padding: 9px; font-size: 13px; resize: vertical; }
.note-form .row { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; gap: 10px; }
.empty { color: var(--ink-3); font-size: 12.5px; padding: 8px 0; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 100%); background: var(--bg-2); border-left: 1px solid var(--line-2); z-index: 40;
  padding: 18px; overflow: auto; box-shadow: -20px 0 50px rgba(0, 0, 0, .5); }
.drawer h3 { font: 500 11px var(--mono); letter-spacing: .16em; color: var(--phos); margin: 0 0 12px; }
.drawer dl { display: grid; grid-template-columns: 120px 1fr; gap: 6px 10px; margin: 0; font-size: 12.5px; }
.drawer dt { font: 500 10px var(--mono); letter-spacing: .1em; color: var(--ink-3); text-transform: uppercase; padding-top: 2px; }
.drawer dd { margin: 0; word-break: break-word; }
.scrim { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 39; }

/* ---------- ask ---------- */
.ask { display: grid; grid-template-columns: 1fr 340px; gap: 18px; align-items: start; }
.prompts { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.prompts button { background: var(--bg-1); border: 1px solid var(--line-2); border-radius: 2px; padding: 7px 10px; color: var(--ink-2); cursor: pointer; font-size: 12.5px; text-align: left; }
.prompts button:hover { border-color: var(--phos-dim); color: var(--ink); }
.askbar { display: flex; gap: 8px; }
.askbar input { flex: 1; background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 9px 11px; font-size: 13.5px; }
.answer .sect { border-top: 1px solid var(--line); padding: 10px 0; }
.answer .sect > .cap { display: block; margin-bottom: 5px; }
.answer.insufficient { border-left: 2px solid var(--grey); padding-left: 12px; }
.answer ul { margin: 0; padding-left: 16px; } .answer li { margin: 3px 0; }

/* ---------- login / install ---------- */
.gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.gate .card { width: min(380px, 100%); }
.gate .mark { display: flex; justify-content: center; margin-bottom: 18px; }
.gate h1 { font: 600 14px var(--mono); letter-spacing: .34em; color: var(--phos); text-align: center; margin: 0; }
.gate .pilot { text-align: center; font: 500 10px var(--mono); letter-spacing: .24em; color: var(--ink-4); margin: 6px 0 26px; }
.gate label { display: block; font: 500 10px var(--mono); letter-spacing: .16em; color: var(--ink-3); margin: 12px 0 5px; }
.gate input { width: 100%; background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 10px 11px; font-size: 14px; }
.gate .btn { width: 100%; margin-top: 18px; padding: 11px; font-size: 11.5px; }
.gate .err { color: var(--red); font-size: 12.5px; margin-top: 12px; min-height: 18px; }
.gate .fine { color: var(--ink-4); font-size: 11.5px; margin-top: 22px; text-align: center; line-height: 1.5; }
.steps { counter-reset: s; list-style: none; padding: 0; margin: 12px 0; }
.steps li { counter-increment: s; display: grid; grid-template-columns: 28px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.steps li::before { content: counter(s); font: 500 12px var(--mono); color: var(--phos); border: 1px solid var(--phos-dim); border-radius: 50%; width: 22px; height: 22px; display: grid; place-items: center; }
.kbd { font: 11px var(--mono); border: 1px solid var(--line-2); padding: 1px 5px; border-radius: 2px; color: var(--ink); }

/* ---------- bottom nav (mobile) ---------- */
.tabbar { display: none; }
@media (max-width: 860px) {
  :root { --top: 48px; }
  .top { padding: 0 12px; gap: 10px; }
  .nav, .top .userbtn, .brand .pilot, .asof label { display: none; }
  .asof input { width: 116px; padding: 4px 5px; font-size: 11px; }
  .asof button { padding: 4px 7px; }
  .sync .txt { display: none; }
  main { padding: 12px 12px 92px; }
  .grid-radar { grid-template-columns: 1fr; }
  .scope-wrap { max-height: none; aspect-ratio: auto; display: flex; flex-direction: column; }
  .scope-wrap canvas { aspect-ratio: 1 / 1; height: auto; }
  .scope-hud { font-size: 9.5px; }
  .scope-hud.tr { display: none; }
  .scope-hud.bl, .scope-hud.br { position: static; padding: 0 10px 10px; text-align: left; }
  .scope-hud.tl, .scope-hud.bl, .scope-hud.br { position: static; }
  .scope-hud.tl { order: -2; padding: 10px 10px 0; } .scope-hud.bl { order: -1; padding-top: 8px; }
  .covbox { max-width: none; padding: 7px 9px; }
  .brand .wordmark { font-size: 11.5px; letter-spacing: .24em; }
  .sync { font-size: 10px; }
  .dr { grid-template-columns: 1fr; } .dr nav { display: none; }
  .dr-head { grid-template-columns: 1fr; }
  .ask { grid-template-columns: 1fr; }
  table.t.cards thead { display: none; }
  table.t.cards tr { display: block; border-bottom: 1px solid var(--line); padding: 8px 0; }
  table.t.cards td { display: block; border: 0; padding: 3px 4px; }
  table.t.cards td[data-l]::before { content: attr(data-l); display: block; font: 500 9.5px var(--mono); letter-spacing: .12em; color: var(--ink-4); text-transform: uppercase; }
  .tabbar { display: grid; grid-template-columns: repeat(6, 1fr); position: fixed; bottom: 0; left: 0; right: 0; z-index: 30; background: rgba(3, 7, 5, .97);
    border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
  .tabbar a { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 9px 0 10px; font: 500 9.5px var(--mono); letter-spacing: .12em; color: var(--ink-3); }
  .tabbar a.on { color: var(--phos); } .tabbar a:hover { text-decoration: none; }
  .tabbar svg { width: 18px; height: 18px; }
  .rewind, .offline { padding: 6px 12px; font-size: 10.5px; }
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* ---------- generated from former inline styles (CSP style-src 'self' forbids style attributes) ---------- */
.u-08935a { color:var(--amber) }
.u-11a508 { font-size:11px }
.u-15434a { color:var(--cyan) }
.u-1abd5d { display:flex;gap:6px;flex-wrap:wrap;margin-top:10px }
.u-1b0f49 { margin-top:16px }
.u-1c07a0 { font-size:12px;display:grid;gap:6px }
.u-1ca9a2 { font-size:11.5px }
.u-24301c { font-size:14.5px }
.u-2b583d { margin-bottom:14px }
.u-346895 { cursor:pointer;font-size:11px }
.u-349ae1 { border-color:rgba(232,178,90,.5);margin-bottom:14px }
.u-3808be { padding:10px 14px;cursor:pointer }
.u-3ebff5 { border-left-color:#c9a2e6 }
.u-4adef8 { font-size:10.5px }
.u-4e420a { margin-bottom:6px }
.u-54c2af { text-align:right }
.u-60bde0 { padding:12px 14px }
.u-60dda7 { font-size:11.5px;margin-top:6px }
.u-65480c { font-size:11px;margin-top:3px }
.u-6cb285 { font-size:12px }
.u-761d3a { margin-bottom:10px }
.u-7848f4 { border-left-color:var(--red) }
.u-7a5722 { display:grid;gap:8px;font-size:12px;color:var(--ink-2) }
.u-87c136 { margin-bottom:16px }
.u-8caa45 { font-size:14px;margin:4px 0 }
.u-a76d59 { display:flex;gap:8px }
.u-aac001 { font-size:11.5px;margin-top:4px }
.u-afe896 { display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap }
.u-ba41ca { display:grid;gap:14px }
.u-ba9dc4 { width:100%;padding:14px;font-size:12px }
.u-c00d39 { margin-top:3px }
.u-c1fafc { margin:6px 0 }
.u-d2c171 { margin-top:10px }
.u-d3702f { margin:0 0 8px;color:var(--phos) }
.u-d6f2af { margin-top:14px }
.u-da12f2 { margin-bottom:12px }
.u-de1d08 { font-size:11.5px;margin-bottom:8px }
.u-e2b01b { max-width:640px }
.u-fdf33f { margin-bottom:8px }

/* ---- Situation: an ESTIMATE must never be able to be read as a fact ----
   A verified fact is set in the body face on the page background. An estimate is set inside a bounded block with a dashed
   rule, a tag, and a RANGE as its primary value — the midpoint is deliberately secondary and smaller. There is no state in
   which an estimate renders as a single confident number. */
.sit-q { margin: 1.1rem 0 0; }
.sit-q h3 { font-size: .82rem; letter-spacing: .07em; text-transform: uppercase; color: var(--dim, #8a93a0); margin: 0 0 .35rem; }
.sit-list { margin: .2rem 0 0 1.05rem; padding: 0; }
.sit-list li { margin: .2rem 0; }
.unknown-note { color: var(--dim, #8a93a0); font-style: italic; }
.est-grid { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.est { border: 1px dashed var(--line, #2a3038); border-radius: 6px; padding: .6rem .7rem; background: transparent; }
.est-unknown { opacity: .78; }
.est-k { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--dim, #8a93a0); }
.est-tag { border: 1px solid currentColor; border-radius: 3px; padding: 0 .28rem; margin-left: .3rem; font-size: .62rem; letter-spacing: .08em; }
.est-v { font-family: var(--mono, ui-monospace, monospace); font-size: 1.02rem; margin: .18rem 0 .1rem; font-variant-numeric: tabular-nums; }
.est-mid, .est-why, .est-meta { font-size: .74rem; color: var(--dim, #8a93a0); line-height: 1.35; }
.est-assum { font-size: .74rem; margin: .3rem 0; }
.est-assum div { margin: .12rem 0; }
.replace { margin-top: .5rem; font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; border-left: 2px solid currentColor; padding-left: .5rem; }
@media (max-width: 620px) { .est-grid { grid-template-columns: 1fr; } }

/* ---------- TODAY: the Monday brief ---------- */
.brief-head h1 { margin: 0; font: 600 22px var(--sans); color: var(--ink); }
.brief-head .date { font: 500 11px var(--mono); letter-spacing: .2em; color: var(--ink-3); text-transform: uppercase; }
.brief-head .lede { font-size: 16px; color: var(--amber); margin-top: 6px; }
.sit { background: var(--bg-1); border: 1px solid var(--line); border-left: 3px solid var(--amber); border-radius: var(--r); padding: 14px 16px; margin-bottom: 12px; }
.sit.watch { border-left-color: var(--cyan); }
.sit .sit-top { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.sit .rk { font: 600 13px var(--mono); color: var(--amber); }
.sit.watch .rk { color: var(--cyan); }
.sit h2 { margin: 0; font: 600 17px var(--sans); color: var(--ink); }
.sit h2 a { color: inherit; }
.sit .tier { font: 500 10px var(--mono); letter-spacing: .14em; color: var(--amber); text-transform: uppercase; }
.sit.watch .tier { color: var(--cyan); }
.sit .matters { font-size: 14.5px; margin: 8px 0 10px; color: var(--ink); }
.qa { display: grid; grid-template-columns: 170px 1fr; gap: 6px 14px; font-size: 13px; }
.qa dt { color: var(--ink-3); font: 500 10.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; padding-top: 2px; }
.qa dd { margin: 0; color: var(--ink-2); }
.qa dd b { color: var(--ink); font-weight: 500; }
.qa dd ul { margin: 0; padding-left: 16px; }
.next { margin-top: 10px; padding: 8px 10px; background: var(--phos-faint); border: 1px solid var(--phos-dim); border-radius: var(--r); }
.next .cap { color: var(--phos); }
.facts3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 10px; }
.facts3 h3 { margin: 0 0 6px; font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.facts3 .kn h3 { color: var(--phos); } .facts3 .es h3 { color: var(--amber); } .facts3 .un h3 { color: var(--grey); }
.facts3 ul { margin: 0; padding-left: 0; list-style: none; font-size: 12.5px; }
.facts3 li { padding: 3px 0; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.facts3 li .src { display: block; color: var(--ink-4); font-size: 11px; }
.why-rank { margin-top: 8px; font-size: 12px; color: var(--ink-3); }
.why-rank li { margin: 2px 0; }
.brief-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.mini { list-style: none; margin: 0; padding: 0; }
.mini li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.mini .t { color: var(--ink); } .mini .m { color: var(--ink-3); font-size: 12px; }
.ask-prompts a { display: block; padding: 7px 10px; margin-bottom: 6px; border: 1px solid var(--line-2); border-radius: var(--r); color: var(--ink-2); }
.ask-prompts a:hover { border-color: var(--phos-dim); color: var(--phos); text-decoration: none; }
.kind { font: 500 10px var(--mono); padding: 1px 6px; border-radius: 2px; border: 1px solid var(--line-2); }
.kind.WORLD { color: var(--amber); border-color: rgba(232, 178, 90, .5); } .kind.TIME { color: var(--cyan); } .kind.LEARNED, .kind.SOURCE { color: var(--ink-4); }
@media (max-width: 860px) {
  .brief-grid { grid-template-columns: 1fr; }
  .qa { grid-template-columns: 1fr; gap: 2px; } .qa dd { margin-bottom: 8px; }
  .facts3 { grid-template-columns: 1fr; }
  .sit h2 { font-size: 16px; } .sit .matters { font-size: 14px; }
}
.u-rules { white-space: pre-wrap; font: 11.5px/1.5 var(--mono); color: var(--ink-3); margin: 0 0 8px; }
.funnel { margin: 6px 0 14px; font-size: 12.5px; }
details.chal, details.fw { margin-top: 8px; border-top: 1px solid var(--line); }
details.fw summary { color: var(--phos); }

/* DEAL intake — dense by design: this is an underwriting work surface, not a marketing card. */
.deal-intake,.deal-value{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r);padding:5px 7px;font:11px var(--mono)}
.deal-value{width:min(280px,100%)} .deal-intake{min-width:118px}

/* delivery screens */
.chip.owner { color: #f1c27d; border-color: #8a6a3a; }
.chip.servicer { color: #9fc9e8; border-color: #3d6680; }
.uw-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px 16px; }
.uw-form label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.uw-form input { background: #fff6d5; color: #111; border: 1px solid #c9b46a; padding: 4px 6px; font-variant-numeric: tabular-nums; }
.uw-form .row { grid-column: 1 / -1; }
.ask-form textarea { width: 100%; min-height: 80px; background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 9px 11px; font-size: 13.5px; color: var(--ink); resize: vertical; }
.ask-form input { background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 5px 8px; font: 12px var(--mono); color: var(--ink); }
.working { font-family: var(--mono, monospace); letter-spacing: .06em; color: #8fd3b0; padding: 8px 0; }
.working::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #8fd3b0; animation: pulse 1.2s infinite; }
@keyframes pulse { 0%, 100% { opacity: .25 } 50% { opacity: 1 } }
pre.partial, pre.doc { white-space: pre-wrap; word-break: break-word; max-height: 60vh; overflow: auto; font-size: 12px; opacity: .85; }
.answer .lede { font-size: 15px; line-height: 1.5; }
@media (max-width: 640px) { .uw-form { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- principal workflow (RADAR, OPPORTUNITIES, DOSSIER, DEAL ROOM) */
.radar-home { display: grid; grid-template-columns: minmax(460px, 1.15fr) minmax(360px, 1fr); gap: 24px; align-items: start; }
.scope-panel { background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--r); padding: 10px; }
.scope-actions { display: flex; gap: 8px; justify-content: flex-end; padding-top: 6px; }
.scan-panel { display: flex; flex-direction: column; gap: 12px; }
.scan-title { font: 500 26px/1.15 var(--sans); margin: 2px 0 0; color: var(--ink); }
.scan-panel .lede { color: var(--ink-2); font-size: 14px; }
.scan-steps { list-style: none; margin: 4px 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.scan-steps li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; padding: 9px 10px; border-left: 2px solid var(--line); transition: border-color .3s, background .3s, opacity .3s; }
.scan-steps li .sn { font: 500 12px var(--mono); color: var(--ink-3); padding-top: 1px; }
.scan-steps li .sh { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.scan-steps li .sd { color: var(--ink-3); font-size: 12px; margin-top: 2px; }
.scan-steps li.pending { opacity: .45; }
.scan-steps li.now { border-left-color: var(--phos); background: var(--phos-faint); opacity: 1; }
.scan-steps li.done { border-left-color: var(--phos-dim); opacity: 1; }
.scan-steps li.done .sn { color: var(--phos); }
.linkbtn { background: none; border: 0; padding: 2px 0; color: var(--phos); cursor: pointer; font-size: 12px; text-align: left; }
.linkbtn:hover { text-decoration: underline; }
.btn.big { font-size: 13px; padding: 12px 18px; letter-spacing: .14em; align-self: flex-start; }
.since { border: 1px solid var(--line); border-radius: var(--r); padding: 10px 12px; background: var(--bg-1); }
.mandate { border-top: 1px solid var(--line); padding-top: 8px; }
.opps { display: flex; flex-direction: column; gap: 10px; }
.opp { background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; cursor: pointer; }
.opp:hover, .opp:focus-visible { border-color: var(--line-2); background: var(--bg-2); }
.opp.locked { border-left: 2px solid var(--phos); }
.opp-top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.opp-top h2 { font: 500 16px var(--sans); margin: 0; }
.opp-top .rk { font: 500 12px var(--mono); color: var(--ink-3); min-width: 22px; }
.opp-sub { color: var(--ink-3); font-size: 12px; margin: 4px 0 6px; }
.opp-why { margin: 6px 0 10px; color: var(--ink); font-size: 13.5px; max-width: 90ch; }
.opp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 18px; }
.opp-grid .k { font: 500 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.opp-grid .v { font-size: 12.5px; }
.opp-next { margin-top: 10px; color: var(--ink-2); font-size: 12.5px; }
.opp-deal { margin-top: 6px; }
.dos-head { margin: 4px 0 14px; }
.dos-head h1 { font: 500 24px var(--sans); margin: 4px 0 6px; }
.dos-head .facts { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--ink-2); font-size: 12.5px; }
.dossier { display: grid; grid-template-columns: 170px 1fr; gap: 22px; align-items: start; }
.dos-nav { position: sticky; top: calc(var(--top) + 14px); display: flex; flex-direction: column; gap: 1px; }
.dos-nav a { font: 500 10.5px var(--mono); letter-spacing: .12em; color: var(--ink-3); padding: 6px 8px; border-left: 1px solid var(--line); }
.dos-nav a:hover { color: var(--ink); text-decoration: none; border-left-color: var(--phos-dim); }
.dos-body .sec { scroll-margin-top: calc(var(--top) + 12px); }
.dos-body .lede { font-size: 15px; color: var(--ink); max-width: 90ch; }
.chain { margin: 6px 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.four { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.four .k { font: 500 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.path { padding-left: 18px; display: flex; flex-direction: column; gap: 8px; }
.path .m { color: var(--ink-3); font-size: 12px; }
button.noi { background: none; border: 0; border-bottom: 1px dotted var(--phos-dim); color: var(--ink); font: 500 14px var(--mono); padding: 0; cursor: pointer; }
button.noi:hover { color: var(--phos); }
.sec.bring { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; border-top: 1px solid var(--line-2); padding-top: 18px; }
.drawer.wide { width: min(860px, 100%); overflow-y: auto; }
.drawer-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.drawer-head h3 { margin: 0; }
.drawer .qa { display: grid; grid-template-columns: 170px 1fr; gap: 6px 12px; }
.removed li { padding: 6px 0; border-bottom: 1px solid var(--line); }
.deals { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.deal-card { display: flex; flex-direction: column; gap: 6px; background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; color: var(--ink); }
.deal-card:hover { border-color: var(--line-2); text-decoration: none; }
.dc-row { display: flex; flex-wrap: wrap; gap: 12px; color: var(--ink-2); font-size: 12px; }
.upload { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 10px; }
.upload select, .upload input[type=file], form.treat select, form.treat input { background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 5px 7px; color: var(--ink); font-size: 12px; }
.upload .dim { flex-basis: 100%; }
tr.open td { background: rgba(232, 178, 90, .04); }
form.treat { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.err { color: var(--red); font-size: 12px; }
.review-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.review-card { display: flex; flex-direction: column; gap: 4px; background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; color: var(--ink); }
.review-card:hover { border-color: var(--line-2); text-decoration: none; }
table.three td:first-child { width: 230px; }
@media (max-width: 1100px) { .radar-home { grid-template-columns: 1fr; } .opp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .dossier { grid-template-columns: 1fr; } .dos-nav { display: none; }
  .four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .drawer .qa { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .opp-grid { grid-template-columns: 1fr; } .scan-title { font-size: 21px; } .btn.big { align-self: stretch; text-align: center; } }
.tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 10px; border-bottom: 1px solid var(--line); }
.tab { background: none; border: 0; border-bottom: 2px solid transparent; padding: 8px 12px; color: var(--ink-3); cursor: pointer; font: 500 11px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.tab[aria-selected="true"] { color: var(--phos); border-bottom-color: var(--phos); }
.tab .num { color: var(--ink-2); margin-left: 4px; }
.glance { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); margin: 0 0 18px; }
.glance > div { background: var(--bg-1); padding: 10px 12px; }
.glance .k { font: 500 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 3px; }
.glance .v { font-size: 13px; }
@media (max-width: 1100px) { .glance { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .glance { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* a drawer never grows past the screen: long ids and mono text wrap, tables scroll inside their own wrapper */
.drawer-body { min-width: 0; overflow-wrap: anywhere; }
.drawer .qa { grid-template-columns: 170px minmax(0, 1fr); }
.drawer .qa dd { min-width: 0; }
.drawer-head { position: sticky; top: -18px; background: var(--bg-2); padding: 4px 0 8px; z-index: 1; }
@media (max-width: 860px) { .drawer .qa { grid-template-columns: minmax(0, 1fr); } }
.dossier { grid-template-columns: 170px minmax(0, 1fr); }
.dos-body { min-width: 0; }
.chip { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 860px) { .dossier { grid-template-columns: minmax(0, 1fr); } }
.uw-form label.wide { grid-column: 1 / -1; }
.uw-form textarea { width: 100%; background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); color: var(--ink); font: 12px var(--mono); padding: 6px; }
.t .chip { white-space: nowrap; overflow-wrap: normal; }

/* Gate 3: white-label accent (an organisation's colour on its own wordmark and primary actions only) and the operator's swatch */
.brand .wordmark { color: var(--brand-accent, inherit); }
.btn.primary { border-color: var(--brand-accent, var(--accent, currentColor)); }
.swatch { display: inline-block; width: .9em; height: .9em; border: 1px solid var(--line, #333); vertical-align: -1px; }
.op-org .ruleForm { margin-top: .6rem; }
.op-org input.mono { font-family: var(--mono, monospace); max-width: 100%; }
/* Gate 3 forms (operator, mandate builder, claims, outcomes): the same dark controls as the Deal Room's */
.ruleForm input:not([type=checkbox]), .ruleForm select, .sec table input, .sec table select, .login input {
  background: var(--bg-1); border: 1px solid var(--line-2); border-radius: var(--r); padding: 5px 7px; color: var(--ink); font-size: 12px; max-width: 100%; }
.sec table input[type=number] { width: 7.5em; }
.ruleForm { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.ruleForm label { display: inline-flex; gap: 6px; align-items: center; color: var(--ink-2); }
.claim { margin-top: 10px; }

/* ---------- research (RESEARCH_V1): hero, radar details card, coverage, counterparty desk ---------- */
.hero { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: 16px; margin: 0 0 14px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--bg-1); overflow: hidden; }
.hero figure { margin: 0; position: relative; background: var(--bg-2); min-height: 220px; }
.hero figure img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; display: block; }
.hero figcaption { font-size: 11px; color: var(--ink-3); padding: 6px 10px; border-top: 1px solid var(--line); }
.hero .ph { display: grid; place-content: center; text-align: center; gap: 6px; height: 100%; min-height: 220px; padding: 16px; color: var(--ink-3);
  background: repeating-linear-gradient(135deg, var(--bg-2) 0 10px, var(--bg-1) 10px 20px); }
.hero .side { padding: 14px 16px 14px 0; display: flex; flex-direction: column; gap: 8px; }
.hero .side .big { font: 500 22px var(--sans); }
.hero .side dl { display: grid; grid-template-columns: 110px 1fr; gap: 4px 10px; margin: 0; font-size: 12.5px; }
.hero .side dt { color: var(--ink-3); font: 500 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; padding-top: 2px; }
.hero .side dd { margin: 0; }
.cls { display: inline-block; padding: 3px 9px; border-radius: 2px; font: 600 10.5px var(--mono); letter-spacing: .12em; text-transform: uppercase; border: 1px solid; }
.cls.ACTIONABLE_NOW { color: var(--phos); border-color: var(--phos); background: var(--phos-faint); }
.cls.INVESTIGATE { color: var(--amber); border-color: var(--amber); background: var(--amber-dim); }
.cls.EARLY_WARNING { color: var(--cyan); border-color: var(--cyan); background: var(--cyan-dim); }
.met { margin: 4px 0 0; padding-left: 16px; font-size: 12px; }
.met li.ok::marker { content: "✓ "; color: var(--phos); }
.met li.no::marker { content: "✗ "; color: var(--red); }
.cov { width: 100%; border-collapse: collapse; font-size: 12px; }
.cov td { border-top: 1px solid var(--line); padding: 5px 6px; vertical-align: top; }
.cov td:first-child { white-space: nowrap; color: var(--ink-2); }
.st { font: 500 10px var(--mono); letter-spacing: .08em; padding: 1px 6px; border-radius: 2px; white-space: nowrap; border: 1px solid var(--line-2); color: var(--ink-2); }
.st.FOUND { color: var(--phos); border-color: var(--phos-dim); }
.st.PARTIAL { color: var(--amber); border-color: var(--amber); }
.st.RIGHTS_RESTRICTION, .st.BOT_PROTECTION, .st.AUTHENTICATION_REQUIRED { color: var(--red); border-color: var(--red); }
.st.SOURCE_FAILURE, .st.MISSING_SOFTWARE { color: var(--red); }
.st.HUMAN_REQUIRED, .st.NOT_DISCOVERED, .st.ABSENT_PUBLISHED_DATA { color: var(--cyan); border-color: var(--cyan); }
.desk { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; }
.desk .role { border: 1px solid var(--line-2); border-radius: var(--r); padding: 10px 12px; background: var(--bg-1); }
.desk .role h4 { margin: 0 0 4px; font: 500 10.5px var(--mono); letter-spacing: .14em; color: var(--phos); text-transform: uppercase; }
.desk .role .org { font-size: 14px; margin-bottom: 6px; }
.desk .ch { font-size: 12px; margin: 3px 0; }
.desk .ch .lbl { display: block; color: var(--ink-4); font-size: 11px; }
.radar-card { border: 1px solid var(--line-2); border-radius: var(--r); background: var(--bg-1); padding: 10px 12px; min-height: 84px; }
.radar-card.pinned { border-color: var(--phos-dim); }
.radar-card h3 { margin: 0 0 2px; font: 500 15px var(--sans); }
.radar-card .row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.scope-wrap canvas:focus-visible { outline: 1px solid var(--phos); outline-offset: -1px; }
.tip.docked { left: 8px !important; bottom: 8px; top: auto !important; pointer-events: none; }
.research-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.research-grid img { width: 100%; border: 1px solid var(--line); }
@media (max-width: 760px) {
  .hero { grid-template-columns: 1fr; }
  .hero .side { padding: 0 12px 12px; }
  .hero .side dl { grid-template-columns: 96px 1fr; }
}

/* ACQ_BRIEF_V1 sections */
.sec.brief .lede{font-size:1.02rem;line-height:1.55;margin:.2rem 0 .6rem}
.sec.brief ul.pts{margin:.2rem 0 .6rem 1.1rem;padding:0}
.sec.brief ul.pts li{margin:.25rem 0;line-height:1.5}
.sec.brief .open{margin:.4rem 0;display:grid;gap:.3rem}
.sec.brief details.detail{margin-top:.6rem;border-top:1px solid var(--line, #d7dde2);padding-top:.4rem}
.sec.brief details.detail > section.sec{border:0;padding:0;margin:.4rem 0}
.rewind.sim{background:#5a1414;color:#fff;font-weight:600;position:sticky;top:52px;z-index:5}
