/* ============================================================
   COMMAND DECK — dense risk-desk UI for the background-check tool
   Variant 1. System fonts, 1px borders, tabular numerals.
   Theming: every color is a token on :root (dark = default identity);
   [data-theme="light"] overrides the same tokens. Components reference
   tokens only — no color literals below the two token blocks.
   ============================================================ */

:root {
  color-scheme: dark;
  /* ---- Meter (soft) dark palette: slate grounds, desaturated hues,
          teal as the single interactive accent (blue eliminated) ---- */
  --bg0: #1c2128;   /* page */
  --bg-bar: #171c22;/* command bar / rail / crumb bars */
  --bg1: #20262e;   /* panel */
  --bg2: #262d36;   /* raised / header */
  --bg3: #2b323c;   /* hover / active */
  --bg4: #333b46;   /* pressed / toast */
  --line: #2c333c;  /* hairline */
  --line2: #39424d; /* stronger hairline */
  --line3: #46525f; /* hovered control border */
  /* ---- text ---- */
  --tx: #dde3ea;
  --tx2: #8b96a3;   /* one notch above the mock's #818c99 so dim text clears 4.5:1 on raised surfaces */
  --tx3: #67717d;
  /* ---- semantic hues (~40% desaturated fills) ---- */
  --red: #d99186;
  --red-dim: #33231f;
  --red-bd: rgba(217, 145, 134, .40);
  --red-soft: #dde3ea;              /* decline-banner title (Meter: plain text) */
  --amber: #d4b26e;
  --amber-dim: #32291a;
  --amber-bd: rgba(212, 178, 110, .40);
  --green: #7dc9a6;
  --green-dim: #1e332a;
  --green-bd: rgba(125, 201, 166, .40);
  --blue: #6fd3c4;                  /* blue is teal now — every interactive role */
  --blue-dim: #1d3a36;
  --blue-bd: #2e5c54;
  --blue-hov: #8adfd2;
  --purple: #b4a3d8;
  --purple-dim: #292339;
  --purple-dim2: #332c47;
  --purple-bd: rgba(180, 163, 216, .40);
  --teal: #6fd3c4;
  --teal-dim: #1d3a36;
  --teal-bd: #2e5c54;
  /* ---- interaction surfaces ---- */
  --primary-bg: #1d3a36;            /* primary button (Meter: teal-dim fill) */
  --primary-bd: #2e5c54;
  --primary-tx: #6fd3c4;
  --primary-hov: #234741;
  --btn-primary-tx: #10201d;        /* text on solid-teal surfaces (BC mark) */
  --sel: #203033;
  --sel-row: #203033;
  --sev-red: #d05c4a;               /* severity spines / edges */
  --sev-amber: #cf9c43;             /* status dots */
  --ai-bg: #1d2a2c;                 /* AI review band */
  --ai-tx: #8fb8ab;
  --mark-bg: rgba(212, 178, 110, .30);
  --backdrop: rgba(12, 15, 19, .55);
  --scroll: #39424d;
  --scroll-h: #46525f;
  /* ---- shadows ---- */
  --sh-pop: 0 10px 34px rgba(0, 0, 0, .45);
  --sh-modal: 0 24px 70px rgba(0, 0, 0, .55);
  --sh-console: 0 24px 80px rgba(0, 0, 0, .60);
  --sh-toast: 0 8px 26px rgba(0, 0, 0, .40);
  --sh-drawer: -14px 0 40px rgba(0, 0, 0, .40);
  /* ---- type & metrics ---- */
  --sans: -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, Menlo, monospace;
  --bar-h: 46px;
  --rail-w: 52px;
}

/* Light theme — designed cool-gray console, not an inversion.
   Ground is a very light cool gray; panels are near-white with slightly
   darker headers; semantic hues re-tuned dark enough for WCAG-readable
   text on the light ground. */
[data-theme="light"] {
  color-scheme: light;
  --bg0: #eef1f6;   /* page ground */
  --bg-bar: #e7ebf2;
  --bg1: #fafbfd;   /* panel */
  --bg2: #e7ebf2;   /* raised / header */
  --bg3: #dde3ec;   /* hover */
  --bg4: #d0d9e5;   /* pressed / toast */
  --line: #d4dbe5;
  --line2: #b4c0cf;
  --line3: #8fa1b6;
  --tx: #16202b;
  --tx2: #46586d;
  --tx3: #74859a;
  --red: #c1301f;
  --red-dim: rgba(193, 48, 31, .08);
  --red-bd: rgba(193, 48, 31, .35);
  --red-soft: #7c1d12;
  --amber: #955c00;
  --amber-dim: rgba(149, 92, 0, .10);
  --amber-bd: rgba(149, 92, 0, .38);
  --green: #187a46;
  --green-dim: rgba(24, 122, 70, .10);
  --green-bd: rgba(24, 122, 70, .38);
  --blue: #1b5fd0;
  --blue-dim: rgba(27, 95, 208, .08);
  --blue-bd: rgba(27, 95, 208, .35);
  --blue-hov: #2f74e3;
  --purple: #6c3ec6;
  --purple-dim: rgba(108, 62, 198, .08);
  --purple-dim2: rgba(108, 62, 198, .14);
  --purple-bd: rgba(108, 62, 198, .35);
  --teal: #0c7a87;
  --teal-dim: rgba(12, 122, 135, .10);
  --teal-bd: rgba(12, 122, 135, .35);
  --primary-bg: #1b5fd0;
  --primary-bd: #1b5fd0;
  --primary-tx: #ffffff;
  --primary-hov: #2f74e3;
  --btn-primary-tx: #ffffff;
  --sel: rgba(27, 95, 208, .16);
  --sel-row: #dde3ec;
  --sev-red: #c1301f;
  --sev-amber: #955c00;
  --ai-bg: #fafbfd;
  --ai-tx: #46586d;
  --mark-bg: rgba(149, 92, 0, .22);
  --backdrop: rgba(30, 41, 54, .42);
  --scroll: #c2cddb;
  --scroll-h: #a6b6c9;
  --sh-pop: 0 10px 34px rgba(23, 32, 44, .18);
  --sh-modal: 0 24px 70px rgba(23, 32, 44, .26);
  --sh-console: 0 24px 80px rgba(23, 32, 44, .30);
  --sh-toast: 0 8px 26px rgba(23, 32, 44, .20);
  --sh-drawer: -14px 0 40px rgba(23, 32, 44, .16);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  background: var(--bg0);
  color: var(--tx);
  font: 12.5px/1.45 var(--sans);
  font-variant-numeric: tabular-nums;
  overflow: hidden;
}
::selection { background: var(--sel); }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
input, select, textarea {
  font: inherit; color: var(--tx);
  background: var(--bg0);
  border: 1px solid var(--line2);
  border-radius: 2px;
  padding: 3px 7px;
  outline: none;
}
input:focus, select:focus, textarea:focus { border-color: var(--blue); }
input::placeholder { color: var(--tx3); }
code, pre, .mono { font-family: var(--mono); }

/* thin scrollbars */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--scroll); border: 2px solid var(--bg0); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--scroll-h); }

/* ============ app frame ============ */
#app { height: 100vh; display: flex; flex-direction: column; }
#cmdbar {
  /* auto height: the bar wraps and grows on multi-seller deals; content below
     offsets naturally because the bar is in normal flex flow */
  min-height: var(--bar-h); flex: 0 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; align-content: center;
  gap: 3px 8px;
  padding: 4px 10px;
  background: var(--bg-bar);
  border-bottom: 1px solid var(--line2);
  z-index: 60; position: relative;
  white-space: nowrap;
}
.seller-strip { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 3px 5px; min-width: 0; }
.seller-chip {
  font-size: 11px; font-weight: 600; color: var(--tx);
  border: 1px solid var(--line2); background: var(--bg1);
  border-radius: 2px; padding: 2px 7px; white-space: nowrap;
}
.seller-plus { color: var(--tx3); font-size: 10px; font-weight: 700; }
#frame { flex: 1; display: flex; min-height: 0; }
#rail {
  flex: 0 0 var(--rail-w); width: var(--rail-w);
  background: var(--bg-bar); position: relative; border-right: 1px solid var(--line);
  display: flex; flex-direction: column; align-items: stretch;
  padding-top: 6px; z-index: 50;
}
#main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; position: relative; }

/* ============ command bar pieces ============ */
.mark {
  font-family: var(--mono); font-weight: 700; font-size: 13px;
  color: var(--btn-primary-tx); background: var(--blue);
  padding: 2px 7px; border-radius: 2px; letter-spacing: .04em;
  flex: 0 0 auto; cursor: pointer;
}
.cmd-title { font-weight: 600; font-size: 13px; overflow: hidden; text-overflow: ellipsis; max-width: 340px; }
.cmd-owners { color: var(--tx2); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.cmd-sep { width: 1px; height: 20px; background: var(--line2); flex: 0 0 1px; }
.cmd-spacer { flex: 1; min-width: 6px; }

.chip {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 10px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
  border: 1px solid var(--line2); border-radius: 2px;
  padding: 2px 7px; color: var(--tx2); background: var(--bg1);
  white-space: nowrap; flex: 0 0 auto;
}
.chip .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--tx3); flex: 0 0 6px; }
.chip.c-red    { color: var(--red);    border-color: var(--red-bd);    background: var(--red-dim); }
.chip.c-red .dot { background: var(--red); }
.chip.c-amber  { color: var(--amber);  border-color: var(--amber-bd);  background: var(--amber-dim); }
.chip.c-amber .dot { background: var(--amber); }
.chip.c-green  { color: var(--green);  border-color: var(--green-bd);  background: var(--green-dim); }
.chip.c-green .dot { background: var(--green); }
.chip.c-blue   { color: var(--blue);   border-color: var(--blue-bd);   background: var(--blue-dim); }
.chip.c-blue .dot { background: var(--blue); }
.chip.c-purple { color: var(--purple); border-color: var(--purple-bd); background: var(--purple-dim); }
.chip.c-purple .dot { background: var(--purple); }
.chip.c-teal   { color: var(--teal);   border-color: var(--teal-bd);   background: var(--teal-dim); }
.chip.c-teal .dot { background: var(--teal); }
.chip.clickable { cursor: pointer; }
.chip.clickable:hover { border-color: var(--tx2); }

.btn {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11.5px; font-weight: 600;
  border: 1px solid var(--line2); border-radius: 2px;
  background: var(--bg1); color: var(--tx);
  padding: 4px 10px; white-space: nowrap; flex: 0 0 auto;
}
.btn:hover { background: var(--bg3); border-color: var(--line3); }
.btn:active { background: var(--bg4); }
.btn.primary { background: var(--primary-bg); border-color: var(--primary-bd); color: var(--primary-tx); }
.btn.primary:hover { background: var(--primary-hov); }
.btn.accent { background: var(--purple-dim); border-color: var(--purple-bd); color: var(--purple); }
.btn.accent:hover { background: var(--purple-dim2); }
.btn.danger { color: var(--red); border-color: var(--red-bd); }
.btn.danger:hover { background: var(--red-dim); }
.btn.ghost { border-color: transparent; background: transparent; color: var(--tx2); }
.btn.ghost:hover { color: var(--tx); background: var(--bg3); }
.btn.sm { padding: 2px 7px; font-size: 10.5px; }
.btn.xs { padding: 1px 5px; font-size: 10px; }
.btn svg { width: 13px; height: 13px; }
.btn:disabled { opacity: .45; cursor: default; }

/* deal switcher */
.switcher { position: relative; flex: 0 0 auto; }
.switcher > button {
  display: flex; align-items: center; gap: 7px;
  border: 1px solid var(--line2); border-radius: 2px;
  background: var(--bg1); padding: 4px 9px;
  font-weight: 600; font-size: 12.5px; max-width: 400px;
}
.switcher > button:hover { background: var(--bg3); }
.switcher > button .caret { color: var(--tx3); font-size: 9px; }
.switcher-pop {
  position: absolute; top: calc(100% + 5px); left: 0;
  width: 480px; max-height: 480px; overflow: hidden auto;
  background: var(--bg2); border: 1px solid var(--line2); border-radius: 3px;
  box-shadow: var(--sh-pop);
  z-index: 200; display: flex; flex-direction: column;
}
.switcher-pop input { margin: 8px; flex: 0 0 auto; }
.switcher-list { overflow-y: auto; }
.switcher-item {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 10px;
  padding: 7px 12px; cursor: pointer; border-top: 1px solid var(--line);
}
.switcher-item:hover, .switcher-item.hl { background: var(--bg3); }
.switcher-item .si-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.switcher-item .si-sub { grid-column: 1; color: var(--tx2); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.switcher-item .si-right { grid-row: 1 / span 2; align-self: center; display: flex; gap: 5px; align-items: center; }
.switcher-item.current { background: var(--blue-dim); }

/* ============ left icon rail ============ */
.rail-item {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 7px 2px 6px; margin: 1px 4px;
  border-radius: 3px; color: var(--tx3); cursor: pointer;
  border: 1px solid transparent;
  text-align: center;
}
.rail-item svg { width: 17px; height: 17px; }
.rail-item .rlbl { font-size: 8.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.rail-item:hover { color: var(--tx2); background: var(--bg3); }
.rail-item.active { color: var(--blue); background: var(--blue-dim); border-color: var(--blue-bd); }
.rail-item.src.active { color: var(--teal); background: var(--teal-dim); border-color: var(--teal-bd); }
.rail-gap { flex: 1; }

/* expanded rail with the sources tree */
#rail.expanded { overflow-y: auto; }  /* width set inline from the persisted panel width */
#rail.expanded .rail-item { flex-direction: row; justify-content: flex-start; gap: 9px; padding: 5px 12px; }
#rail.expanded .rail-item .rlbl { font-size: 11px; }
.src-tree { padding: 2px 0 8px; }
.src-grp-h {
  display: flex; align-items: center; gap: 6px; padding: 5px 12px 4px; cursor: pointer;
  font-size: 11px; color: var(--tx2);
}
.src-grp-h:hover { background: var(--bg3); }
.src-grp-h.sel { background: var(--teal-dim); }
.src-grp-h .src-caret { color: var(--tx3); font-size: 9px; padding: 0 3px; }
.src-grp-h .src-caret:hover { color: var(--tx); }
.src-row.sel { background: var(--blue-dim); }
.src-row.sel .src-name { color: var(--blue); font-weight: 600; }
.src-grp-h .src-off { color: var(--tx3); font-size: 10px; }
.src-grp-h .src-cnt, .src-row .src-cnt { margin-left: auto; font-family: var(--mono); font-size: 10px; color: var(--tx3); }
.src-row {
  display: flex; align-items: center; gap: 7px; padding: 3px 12px 3px 20px; cursor: pointer;
  font-size: 11.5px; color: var(--tx2);
}
.src-row:hover { background: var(--bg3); color: var(--tx); }
.src-row .src-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.src-row .src-od { font-size: 8.5px; }
.src-row input[type=checkbox] { margin: 0; flex: 0 0 auto; }

/* ============ generic view scaffolding ============ */
.view { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
.view-pad { padding: 14px 16px; overflow-y: auto; flex: 1; min-height: 0; }
.view-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.view-head h2 { font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.view-head .sub { color: var(--tx2); font-size: 11.5px; }

.panel { background: var(--bg1); border: 1px solid var(--line); border-radius: 3px; margin-bottom: 12px; }
.panel-head {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 12px; border-bottom: 1px solid var(--line);
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tx2);
}
.panel-head .grow { flex: 1; }
.panel-body { padding: 10px 12px; }

.note-quiet { color: var(--tx3); font-size: 11px; padding: 6px 0 0; }
.kv-line { display: flex; gap: 8px; font-size: 11.5px; padding: 1px 0; }
.kv-line b { color: var(--tx2); font-weight: 600; min-width: 110px; flex: 0 0 auto; }

.empty-state {
  padding: 44px 20px; text-align: center; color: var(--tx3);
}
.empty-state .big { font-size: 13px; color: var(--tx2); margin-bottom: 4px; }

/* ============ the one table component ============ */
.tbl-wrap { display: flex; flex-direction: column; min-height: 0; border: 1px solid var(--line); border-radius: 3px; background: var(--bg1); }
.tbl-wrap.borderless { border: none; background: transparent; }
.tbl-toolbar {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; border-bottom: 1px solid var(--line);
  flex: 0 0 auto; flex-wrap: wrap;
}
.tbl-toolbar .grow { flex: 1; min-width: 10px; }
.tbl-toolbar .tcount { color: var(--tx3); font-size: 11px; }
.tbl-global { width: 170px; padding: 3px 8px; font-size: 11.5px; }
.tbl-scroll { overflow: auto; flex: 1; min-height: 0; }
table.tbl { border-collapse: separate; border-spacing: 0; width: 100%; }
table.tbl th {
  position: sticky; top: 0; z-index: 5;
  background: var(--bg2); color: var(--tx2);
  font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  text-align: left; padding: 5px 8px;
  border-bottom: 1px solid var(--line2);
  cursor: pointer; user-select: none; white-space: nowrap;
}
table.tbl th.nosort { cursor: default; }
table.tbl th .arrow { color: var(--blue); margin-left: 3px; font-size: 9px; }
table.tbl th:hover { color: var(--tx); }
table.tbl tr.filter-row th { padding: 3px 5px; background: var(--bg1); top: 25px; cursor: default; }
table.tbl tr.filter-row input { width: 100%; min-width: 40px; padding: 2px 5px; font-size: 11px; }
table.tbl td {
  padding: 4px 8px; border-bottom: 1px solid var(--line);
  vertical-align: top; font-size: 12px;
}
.tbl.dense td { padding: 2px 8px; font-size: 11.5px; }
/* Scan density: strict one-line rows — nothing wraps, everything ellipsizes */
.tbl.scan td { padding: 2px 8px; font-size: 11.5px; white-space: nowrap; vertical-align: middle; }
.scan-cell {
  max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.scan-cell > * { vertical-align: middle; }
.name-collapse { display: inline-flex; gap: 5px; align-items: center; white-space: nowrap; }
tbody.rowgrp { cursor: default; }
tbody.rowgrp.clickable { cursor: pointer; }
tbody.rowgrp:hover td { background: var(--bg2); }
tbody.rowgrp.sel td { background: var(--sel-row); }
tbody.rowgrp.sel .l1 td { border-top: 1px solid var(--blue-bd); }
tbody.rowgrp.sel .last td, tbody.rowgrp.sel td { box-shadow: none; }
tr.line2 td { padding-top: 0; color: var(--tx2); font-size: 11px; border-bottom: 1px solid var(--line); }
tbody.rowgrp tr.l1 td { border-bottom: none; }
tbody.rowgrp.muted td { color: var(--tx3); }
tbody.rowgrp.muted .fnd-title { color: var(--tx2); }
td.num, th.num { text-align: right; font-family: var(--mono); }
td.nowrap { white-space: nowrap; }
td.shrink { width: 1%; white-space: nowrap; }
.cell-ellipsis { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* column menu / popovers */
.pop {
  position: fixed; z-index: 300;
  background: var(--bg2); border: 1px solid var(--line2); border-radius: 3px;
  box-shadow: var(--sh-pop);
  min-width: 160px; max-height: 380px; overflow-y: auto;
  padding: 4px;
}
.pop label { display: flex; align-items: center; gap: 7px; padding: 4px 8px; font-size: 11.5px; cursor: pointer; border-radius: 2px; }
.pop label:hover { background: var(--bg3); }
.pop .pop-item { display: block; width: 100%; text-align: left; padding: 4px 8px; font-size: 11.5px; border-radius: 2px; }
.pop .pop-item:hover { background: var(--bg3); }
.pop .pop-sep { height: 1px; background: var(--line); margin: 3px 0; }

/* ============ badges ============ */
.badge {
  display: inline-block; font-size: 9.5px; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
  border-radius: 2px; padding: 1px 5px;
  border: 1px solid var(--line2); color: var(--tx2); background: var(--bg2);
  white-space: nowrap; vertical-align: 1px;
}
.badge.b-red    { color: var(--red);    border-color: var(--red-bd);    background: var(--red-dim); }
.badge.b-amber  { color: var(--amber);  border-color: var(--amber-bd);  background: var(--amber-dim); }
.badge.b-green  { color: var(--green);  border-color: var(--green-bd);  background: var(--green-dim); }
.badge.b-blue   { color: var(--blue);   border-color: var(--blue-bd);   background: var(--blue-dim); }
.badge.b-purple { color: var(--purple); border-color: var(--purple-bd); background: var(--purple-dim); }
.badge.b-teal   { color: var(--teal);   border-color: var(--teal-bd);   background: var(--teal-dim); }
.badge.b-dim    { color: var(--tx3); border-color: var(--line); background: transparent; }
.src-link {
  font-size: 10px; font-weight: 700; letter-spacing: .05em;
  color: var(--teal); border: 1px solid var(--teal-bd);
  background: var(--teal-dim); border-radius: 2px; padding: 1px 5px;
  cursor: pointer; white-space: nowrap; display: inline-block;
}
.src-link:hover { border-color: var(--teal); text-decoration: none; }
.conf-pill { font-family: var(--mono); font-size: 11px; }
.conf-hi { color: var(--green); }
.conf-md { color: var(--amber); }
.conf-lo { color: var(--tx3); }
.warn-mark { color: var(--amber); cursor: help; }

/* ============ findings master-detail ============ */
.fnd-split { flex: 1; min-height: 0; display: flex; }
.fnd-left { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.fnd-right { flex: 0 0 auto; min-width: 0; overflow-y: auto; background: var(--bg1); }
/* draggable panel divider */
.pane-resizer {
  flex: 0 0 6px; cursor: col-resize; position: relative;
  background: transparent; border-left: 1px solid var(--line2);
}
.pane-resizer::after {
  content: ""; position: absolute; top: 50%; left: 1px; width: 3px; height: 34px;
  transform: translateY(-50%); border-radius: 2px; background: var(--line2);
}
.pane-resizer:hover { border-left-color: var(--teal); }
.pane-resizer:hover::after { background: var(--teal); }
.rail-resizer {
  position: absolute; top: 0; right: -1px; bottom: 0; width: 6px;
  cursor: col-resize; z-index: 5;
}
.rail-resizer:hover { border-right: 2px solid var(--teal); }

.ai-banner { border-bottom: 1px solid var(--line2); background: var(--ai-bg); color: var(--ai-tx); flex: 0 0 auto; }
.ai-banner-head {
  display: flex; align-items: center; gap: 9px; padding: 8px 12px; cursor: pointer;
}
.ai-banner-head .ai-tag {
  font-size: 9.5px; font-weight: 800; letter-spacing: .1em; padding: 2px 6px;
  border-radius: 2px; flex: 0 0 auto;
}
.tone-decline .ai-tag { color: var(--red); background: var(--red-dim); border: 1px solid var(--red-bd); }
.tone-caution .ai-tag { color: var(--amber); background: var(--amber-dim); border: 1px solid var(--amber-bd); }
.tone-ok .ai-tag, .tone-approve .ai-tag { color: var(--green); background: var(--green-dim); border: 1px solid var(--green-bd); }
.tone-neutral .ai-tag { color: var(--purple); background: var(--purple-dim); border: 1px solid var(--purple-bd); }
.ai-banner-head .ai-title { font-weight: 600; font-size: 12.5px; flex: 1; min-width: 0; }
.tone-decline .ai-title { color: var(--red-soft); }
.ai-banner-body { padding: 0 12px 12px; border-top: 1px dashed var(--line); max-height: 44vh; overflow-y: auto; }
.ai-sec-h { font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--purple); margin: 12px 0 5px; }
.ai-item { display: flex; gap: 8px; padding: 3px 0; }
.ai-item .n { font-family: var(--mono); color: var(--purple); flex: 0 0 16px; text-align: right; font-size: 11px; }
.ai-item .lead { font-weight: 600; }
.ai-item .gist { color: var(--tx2); font-size: 11.5px; }
.ai-bullet { display: flex; gap: 7px; padding: 2px 0; color: var(--tx2); font-size: 11.5px; }
.ai-bullet::before { content: "▪"; color: var(--purple); }
.ai-verdict { font-size: 12px; color: var(--tx); background: var(--bg2); border: 1px solid var(--line); border-left: 2px solid var(--purple); padding: 8px 10px; margin-top: 4px; }
.ai-meta { color: var(--tx3); font-size: 10.5px; margin-top: 8px; font-style: italic; }

.fnd-toolbar-note {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10.5px; color: var(--amber);
  border: 1px dashed var(--amber-bd); border-radius: 2px; padding: 2px 7px;
}
.fnd-toolbar-note button { color: var(--amber); font-weight: 700; text-decoration: underline; font-size: 10.5px; }

.rank-cell { display: flex; align-items: center; gap: 3px; white-space: nowrap; }
.rank-num { font-family: var(--mono); color: var(--tx2); min-width: 18px; text-align: right; font-size: 11px; }
.drag-handle { cursor: grab; color: var(--tx3); }
tbody.rowgrp.dragging { opacity: .35; }
tbody.rowgrp.drop-above .l1 td { border-top: 2px solid var(--blue); }
tbody.rowgrp.drop-below td { border-bottom: 2px solid var(--blue) !important; }

/* findings detail levels */
.tbl.lvl-ledger td { white-space: nowrap; vertical-align: middle; padding: 3px 8px; }
.fnd-tc { max-width: 520px; }
.fnd-t b { font-weight: 600; color: var(--tx); }
.fnd-ent { color: var(--tx3); font-size: 11.5px; }
.whisper-note {
  color: var(--tx2); font-style: italic; font-size: 11px;
  max-width: 640px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.st-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--tx3); cursor: help; }
.st-dot.sd-open { background: var(--sev-amber); }
.st-dot.sd-closed { background: var(--green); }
.st-dot.sd-none { background: var(--line2); }

.fnd-title { font-weight: 600; color: var(--tx); }
.fnd-fact { font-family: var(--mono); font-size: 10.5px; color: var(--tx3); }
.fnd-ainote { color: var(--purple); font-size: 11px; }
.fnd-ainote::before { content: "AI "; font-size: 8.5px; font-weight: 800; letter-spacing: .08em; border: 1px solid var(--purple-bd); border-radius: 2px; padding: 0 3px; margin-right: 4px; vertical-align: 1px; color: var(--purple); }
.pin-ind { color: var(--blue); font-size: 10px; }

/* set-aside tray */
.tray { border-top: 1px solid var(--line2); flex: 0 0 auto; background: var(--bg1); max-height: 45%; display: flex; flex-direction: column; }
.tray-head {
  display: flex; align-items: center; gap: 8px; padding: 6px 12px; cursor: pointer;
  font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--tx3);
}
.tray-head:hover { color: var(--tx2); background: var(--bg2); }
.tray-body { overflow-y: auto; min-height: 0; }
.tray-why { font-size: 10px; color: var(--tx3); }

/* inspector */
.insp { padding: 0; }
.insp-empty { padding: 60px 24px; color: var(--tx3); text-align: center; }
.insp-head { padding: 12px 14px 10px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: var(--bg1); z-index: 5; }
.insp-title { font-size: 13.5px; font-weight: 700; line-height: 1.35; margin: 6px 0 4px; }
.insp-sub { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; color: var(--tx2); font-size: 11.5px; }
.insp-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; align-items: center; }
.insp-body { padding: 4px 14px 30px; }
.insp-sec { margin-top: 14px; }
.insp-sec-h {
  font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--tx3); margin-bottom: 6px; display: flex; align-items: center; gap: 7px;
}
.insp-sec-h .rule { flex: 1; height: 1px; background: var(--line); }
.cite-card {
  border: 1px solid var(--line); border-left: 2px solid var(--teal);
  background: var(--bg2); border-radius: 2px; padding: 7px 10px; margin-bottom: 6px;
}
.cite-card.web { border-left-color: var(--blue); }
.cite-card .cite-label { font-weight: 600; font-size: 11.5px; }
.cite-card .cite-quote { color: var(--tx2); font-size: 11.5px; font-style: italic; margin-top: 3px; }
.cite-card .cite-src { margin-top: 4px; }
.claim-line { display: flex; gap: 8px; align-items: baseline; padding: 3px 0; font-size: 11.5px; color: var(--tx2); }
/* raw text container — always pretty-printed, never a flowing blob */
.raw-block {
  color: var(--tx2); background: var(--bg0);
  border: 1px solid var(--line); border-radius: 2px; padding: 8px 11px;
  max-height: 340px; overflow-y: auto; font-size: 11px;
}
.rp-line { display: flex; gap: 7px; padding: 1px 0; line-height: 1.45; }
.rp-line .rp-k { font-family: var(--mono); font-size: 10px; color: var(--tx3); flex: 0 0 auto; padding-top: 1px; }
.rp-line .rp-v { color: var(--tx); word-break: break-word; min-width: 0; }
.raw-prose { white-space: normal; word-break: break-word; color: var(--tx2); font-size: 11.5px; line-height: 1.55; max-width: 72ch; }
.raw-prose p { margin: 0 0 7px; }
.raw-prose p:last-child { margin-bottom: 0; }
.dmr-head { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; font-weight: 600; font-size: 11.5px; padding-bottom: 3px; }
.dmr-row { padding: 3px 0; border-top: 1px dashed var(--line); }
.dmr-h { font-weight: 600; font-size: 11px; }
.dmr-n { color: var(--tx2); font-size: 11px; }
.rel-name { font-weight: 600; font-size: 11.5px; padding-bottom: 2px; }
.note-item { border: 1px solid var(--line); background: var(--bg2); border-radius: 2px; padding: 6px 9px; margin-bottom: 5px; font-size: 11.5px; }
.note-item .note-meta { color: var(--tx3); font-size: 10px; margin-top: 3px; }
.note-add { display: flex; gap: 6px; margin-top: 6px; }
.note-add input { flex: 1; }
details.quiet > summary {
  cursor: pointer; color: var(--tx3); font-size: 11px; user-select: none;
  padding: 4px 0; list-style: none;
}
details.quiet > summary::before { content: "▸ "; font-size: 9px; }
details.quiet[open] > summary::before { content: "▾ "; }
details.quiet > summary:hover { color: var(--tx2); }

/* ============ deals list ============ */
.deals-hero { padding: 18px 18px 6px; }
.deals-hero h1 { font-size: 16px; font-weight: 700; letter-spacing: .02em; }
.deals-hero .sub { color: var(--tx3); font-size: 11.5px; margin-top: 2px; }
.deals-view { padding: 10px 18px 18px; flex: 1; min-height: 0; display: flex; flex-direction: column; }
.deal-name { font-weight: 600; font-size: 12.5px; }

/* queue facets + pagination footer */
.deals-facets { display: flex; gap: 7px; align-items: center; padding: 0 0 8px; flex-wrap: wrap; }
.deals-facets select { background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 3px 7px; border-radius: 2px; font-size: 11.5px; }
.deals-facets .btn.on { border-color: var(--blue-bd); color: var(--blue); }
.page-foot { display: flex; gap: 6px; align-items: center; padding: 7px 2px 0; color: var(--tx2); font-size: 11px; font-variant-numeric: tabular-nums; }

/* global search */
.cmd-search { background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 4px 9px; border-radius: 2px; font-size: 11.5px; width: 200px; }
.cmd-search:focus { outline: none; border-color: var(--blue-bd); }
.search-bar { display: flex; gap: 7px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.search-bar input[type="search"] { flex: 0 1 420px; background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 6px 10px; border-radius: 2px; font-size: 12.5px; }
.search-bar select { background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 5px 7px; border-radius: 2px; font-size: 11.5px; }
.search-arch { display: inline-flex; gap: 4px; align-items: center; color: var(--tx2); font-size: 11px; cursor: pointer; }
.search-group { margin-bottom: 14px; }
.search-row { display: flex; gap: 8px; align-items: center; padding: 5px 8px; border: 1px solid var(--line); border-top: 0; background: var(--bg1); cursor: pointer; font-size: 12px; min-width: 0; }
.search-row:first-of-type { border-top: 1px solid var(--line); }
.search-row:hover { background: var(--bg2); }

/* ============ AI brief strip + panel ============ */
.brief-strip { flex: 0 0 auto; background: var(--ai-bg); border-bottom: 1px solid var(--line2); }
.bs-line1 { display: flex; gap: 9px; align-items: center; padding: 7px 12px; border-bottom: 1px solid var(--line); font-size: 12.5px; min-width: 0; }
.bs-headline { font-size: 12.5px; color: var(--tx); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
.bs-verdict { font-weight: 700; font-size: 12px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 34vw; }
.lean-decline { color: var(--red); }
.lean-approve { color: var(--green); }
.lean-info { color: var(--amber); }
.bs-counter { cursor: pointer; flex: 0 0 auto; }
.bs-notcov { color: var(--amber); font-size: 11px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.bs-line2 { display: flex; gap: 6px; align-items: center; padding: 6px 12px; overflow-x: auto; }
.bs-k { font-size: 10px; letter-spacing: .09em; text-transform: uppercase; color: var(--tx3); flex: 0 0 auto; }
.cchip { display: inline-flex; gap: 6px; align-items: center; background: var(--bg2); border: 1px solid var(--line2); border-radius: 6px; padding: 3px 10px; font-size: 12px; white-space: nowrap; cursor: pointer; flex: 0 0 auto; }
.cchip:hover { border-color: var(--blue-bd); }
.cchip.sel { background: var(--blue-dim); border-color: var(--blue-bd); color: var(--blue); }
.cchip.hi { border-left: 3px solid var(--sev-red); }
.cchip.md { border-left: 3px solid var(--sev-amber); }
.cchip .num { color: var(--tx3); font-variant-numeric: tabular-nums; }
.cchip .cx { color: var(--tx3); font-size: 10.5px; }
.factrow { display: flex; gap: 6px 14px; flex-wrap: wrap; font-size: 12px; }
.factrow .fact { color: var(--tx2); }
.factrow b.num, .brief-list b.num { color: var(--tx); font-weight: 600; font-variant-numeric: tabular-nums; }
.impact { border-left: 3px solid var(--sev-red); background: var(--red-dim); padding: 6px 10px; font-size: 12.5px; border-radius: 0 4px 4px 0; color: var(--tx); }
.rec-chip { display: inline-flex; gap: 2px; align-items: center; background: var(--blue-dim); border: 1px solid var(--blue-bd); color: var(--blue); border-radius: 3px; padding: 2px 8px; font-size: 10.5px; font-weight: 600; cursor: pointer; }
.rec-chip .rc-kind { font-weight: 400; color: var(--tx3); }
.brief-list { margin: 4px 0 0 18px; font-size: 12px; color: var(--tx2); display: flex; flex-direction: column; gap: 5px; }
.ai-orig { margin-top: 8px; border-top: 1px dashed var(--line2); padding-top: 8px; }
.sum-brief { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; border: 1px solid var(--line2); background: var(--ai-bg); padding: 8px 10px; border-radius: 2px; margin-bottom: 10px; font-size: 12.5px; }
.sum-verdict { flex-basis: 100%; font-weight: 700; font-size: 12px; }

/* ============ interactive Brief page ============ */
.brief-head { flex: 0 0 auto; background: var(--ai-bg); border-bottom: 1px solid var(--line2); padding: 11px 14px 10px; }
.bh-row1 { display: flex; gap: 10px; align-items: baseline; min-width: 0; flex-wrap: wrap; }
.bh-headline { font-size: 15px; color: var(--tx); min-width: 0; }
.bh-meta { color: var(--tx3); font-size: 11px; white-space: nowrap; }
.bh-row2 { display: flex; gap: 10px; align-items: stretch; margin-top: 9px; flex-wrap: wrap; }
.pos-card { flex: 1 1 260px; min-width: 240px; border: 1px solid var(--line2); border-radius: 5px; padding: 6px 11px; font-size: 12.5px; background: var(--bg1); }
.pos-card .pc-k { font-size: 10px; letter-spacing: .08em; color: var(--tx3); }
.pos-card .pc-line { margin-top: 1px; color: var(--tx); }
.pos-ai.lean-decline { border-left: 3px solid var(--sev-red); background: var(--red-dim); }
.pos-ai.lean-approve { border-left: 3px solid var(--green); background: var(--green-dim); }
.pos-ai.lean-info { border-left: 3px solid var(--sev-amber); background: var(--amber-dim); }
.pos-uw { border-left: 3px solid var(--blue); background: var(--blue-dim); }
.pc-lean { font-weight: 700; }
.pc-suffix { color: var(--tx3); font-size: 11px; }
.bh-tallies { display: flex; flex-direction: column; justify-content: center; gap: 2px; font-size: 11.5px; color: var(--tx2); flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.t-grn { color: var(--green); } .t-amb { color: var(--amber); } .t-dim { color: var(--tx3); }
.brief-band { background: var(--bg2); padding: 5px 12px; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); border-bottom: 1px solid var(--line2); border-top: 1px solid var(--line2); display: flex; gap: 8px; align-items: center; }
.brief-band .bb-hint { margin-left: auto; color: var(--tx3); letter-spacing: .02em; text-transform: none; font-size: 10.5px; }
.brief-band.clickable { cursor: pointer; }
.sev-sq { display: inline-block; width: 8px; height: 8px; border-radius: 1px; margin-right: 8px; }
.sev-sq.sq-hi { background: var(--sev-red); }
.sev-sq.sq-md { background: var(--sev-amber); }
.sev-sq.sq-none { background: var(--line2); }
.cs-line { font-size: 11px; }
.cs-line.d-confirm, .cs-line.d-mitigate { color: var(--green); }
.cs-line.d-dismiss, .cs-line.cs-dim { color: var(--tx3); }
.cs-line.cs-open { color: var(--amber); }
.cs-line.cs-uw { color: var(--tx3); }
tbody.rowgrp.disp-dismissed { opacity: .5; }
.disp-seg button.on-confirm { background: var(--red-dim); color: var(--red); }
.disp-seg button.on-mitigate { background: var(--green-dim); color: var(--green); }
.disp-seg button.on-dismiss { background: var(--bg2); color: var(--tx3); }
.brief-addrow { padding: 5px 12px; border-bottom: 1px solid var(--line); }
.brief-composer { padding: 9px 12px; border: 1px solid var(--line2); background: var(--bg1); margin: 6px 12px; border-radius: 3px; display: flex; flex-direction: column; gap: 6px; }
.brief-composer input, .brief-composer textarea { background: var(--bg0); border: 1px solid var(--line2); color: var(--tx); padding: 4px 8px; border-radius: 2px; font-size: 12px; font-family: inherit; }
.cond-met { text-decoration: line-through; color: var(--tx3); }
.cond-ev { color: var(--tx3); font-size: 10.5px; white-space: nowrap; }
.nm-row { padding: 4px 14px; font-size: 11.5px; color: var(--tx3); border-bottom: 1px dashed var(--line); }
.brief-note { width: 100%; background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 6px 9px; border-radius: 3px; font-size: 12px; font-family: inherit; margin-top: 3px; }
.brief-peek { background: var(--bg1); border: 1px solid var(--line2); border-radius: 5px; padding: 7px 10px; margin-top: 6px; font-size: 11.5px; }
.brief-peek .bp-head { color: var(--tx3); font-size: 10.5px; }
.brief-peek .bp-raw { font-family: var(--mono, ui-monospace, Consolas, monospace); font-size: 11px; color: var(--tx2); margin-top: 3px; word-break: break-word; }
.impact.impact-md { border-left-color: var(--sev-amber); background: var(--amber-dim); }
.impact.impact-dim { border-left-color: var(--line2); background: var(--bg1); }
.dec-gate { border-left: 3px solid var(--sev-amber); background: var(--amber-dim); color: var(--tx); padding: 6px 10px; font-size: 12px; border-radius: 0 4px 4px 0; margin-bottom: 10px; }
.pop-group { padding: 5px 8px 2px; font-size: 9.5px; letter-spacing: .09em; text-transform: uppercase; color: var(--tx3); }
.rail-cnt { font-size: 9px; background: var(--bg2); border: 1px solid var(--line2); border-radius: 8px; padding: 0 5px; color: var(--tx2); font-variant-numeric: tabular-nums; }

/* findings-list brief tags */
.ai-ref { display: inline-block; margin-left: 6px; font-size: 9.5px; font-weight: 700; letter-spacing: .05em; color: var(--ai-tx); background: var(--ai-bg); border: 1px solid var(--line2); border-radius: 2px; padding: 0 5px; cursor: pointer; vertical-align: 1px; }
.ai-ref:hover { border-color: var(--blue-bd); color: var(--blue); }
.ai-missing { display: inline-block; margin-left: 6px; font-size: 9.5px; font-weight: 600; color: var(--amber); border: 1px dashed var(--amber-bd); border-radius: 2px; padding: 0 5px; vertical-align: 1px; }

/* inline add-party / add-entity bar */
.addparty-bar { display: flex; gap: 6px; align-items: center; padding: 7px 10px; border: 1px solid var(--line2); background: var(--bg1); margin: 6px 12px; border-radius: 2px; }
.addparty-bar input { flex: 0 1 280px; background: var(--bg0); border: 1px solid var(--line2); color: var(--tx); padding: 4px 8px; border-radius: 2px; font-size: 11.5px; }

/* ignored-row trays (entities / people / UCC) */
.ign-row { display: flex; gap: 8px; align-items: center; padding: 5px 12px; border-top: 1px dashed var(--line); color: var(--tx2); font-size: 11.5px; opacity: .75; }

/* run-sources matrix */
.mx-cost { color: var(--tx3); font-size: 9.5px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.mx-ran { color: var(--green); font-size: 10.5px; font-weight: 600; white-space: nowrap; }

/* intake dropzone */
.dropzone { border: 1px dashed var(--line2); border-radius: 3px; padding: 18px 14px; text-align: center; color: var(--tx2); font-size: 12px; cursor: default; }
.dropzone.dropover { border-color: var(--blue-bd); background: var(--sel); }
.drop-list { margin-top: 8px; }
.drop-item { padding: 4px 6px; border-top: 1px dashed var(--line); font-size: 11.5px; }

/* queue findings: three fixed numeric slots, right-aligned tabular numerals */
.qf-num { display: block; min-width: 34px; text-align: right; font-variant-numeric: tabular-nums; font-size: 12px; }
.q-high { color: var(--red); font-weight: 700; }
.q-open { color: var(--tx); }
.q-aside { color: var(--tx3); }

/* queue AI risk: fixed-width level cell + summary starting at a constant x
   (text uses the verified --red/--amber text tokens; the dot inherits them) */
.ai-cell { display: inline-flex; gap: 8px; align-items: baseline; min-width: 0; max-width: 460px; }
.ai-lvl { flex: 0 0 74px; width: 74px; display: inline-flex; gap: 5px; align-items: center; font-size: 11px; font-weight: 600; }
.ai-lvl .dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: 0 0 7px; }
.ai-lvl.lv-high { color: var(--red); }
.ai-lvl.lv-poss { color: var(--amber); }
.ai-lvl.lv-none { color: var(--tx3); }
.ai-lvl.lv-none .dot { opacity: .35; }
.ai-sum { color: var(--tx2); font-size: 11px; max-width: 340px; }

/* ============ deal info ============ */
.info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 12px; margin-bottom: 12px; }
.field-row { display: grid; grid-template-columns: 130px 1fr auto; gap: 8px; align-items: center; padding: 3px 0; }
.field-row label { color: var(--tx2); font-size: 11px; font-weight: 600; }
.field-row label .hint { display: block; color: var(--tx3); font-weight: 400; font-size: 10px; }
.field-row input { width: 100%; background: var(--bg0); }
.field-row input.dirty { border-color: var(--amber); }
.field-row input:read-only { border-color: transparent; background: transparent; color: var(--tx); }
.masked-wrap { display: flex; gap: 5px; align-items: center; }
.masked-wrap input { flex: 1; font-family: var(--mono); }

/* deal-info tabs */
.info-tabs {
  display: flex; gap: 2px; padding: 8px 14px 0; border-bottom: 1px solid var(--line);
  background: var(--bg0); flex: 0 0 auto;
}
.info-tab {
  padding: 5px 14px; font-size: 12px; color: var(--tx2);
  border: 1px solid transparent; border-bottom: none; border-radius: 5px 5px 0 0;
}
.info-tab:hover { color: var(--tx); }
.info-tab.on { color: var(--teal); background: var(--bg1); border-color: var(--line); }
.info-tab .itn { color: var(--tx3); font-size: 10.5px; margin-left: 6px; font-family: var(--mono); }

/* parties ledger */
.band-h {
  background: var(--bg2); padding: 4px 12px; font-size: 10.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--teal); border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line); flex: 0 0 auto;
}
.party-tag {
  display: inline-block; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--tx3); margin-left: 7px;
}
.party-foot {
  padding: 7px 12px; font-size: 12px; color: var(--tx2); border-top: 1px solid var(--line);
  display: flex; gap: 18px; flex-wrap: wrap; flex: 0 0 auto;
}
.party-foot b { color: var(--tx); font-weight: 600; }
.party-xlinks { margin-top: 12px; font-size: 11px; color: var(--tx3); }
.xlink { color: var(--teal); font-size: 11px; }
.xlink:hover { text-decoration: underline; }

/* documents: entity / classification dropdowns */
select.doc-ent { font-size: 11.5px; padding: 1px 7px; border-radius: 3px; }
select.doc-ent.unassigned {
  background: var(--amber-dim); border-color: var(--amber-bd); color: var(--amber);
}

/* coverage matrix: entity rows × check columns */
.cov-cell { display: inline-flex; gap: 4px; align-items: center; cursor: help; white-space: nowrap; }
.cov-cell .cv-g { font-size: 12px; width: 14px; text-align: center; }
.cov-cell.cv-ok .cv-g { color: var(--green); }
.cov-cell.cv-warn .cv-g { color: var(--amber); }
.cov-cell.cv-empty .cv-g { color: var(--tx3); }
.cov-cell.cv-off .cv-g { color: var(--tx3); opacity: .55; }
.cov-cell.cv-na .cv-g { color: var(--tx3); opacity: .4; }
.cov-cell .cv-n { font-family: var(--mono); font-size: 10px; color: var(--tx3); }
.cv-rerun {
  visibility: hidden; color: var(--blue); font-size: 11px; padding: 0 2px; border-radius: 2px;
}
td:hover .cv-rerun { visibility: visible; }
.cv-rerun:hover { background: var(--blue-dim); }
.cov-legend { display: flex; gap: 16px; flex-wrap: wrap; padding: 8px 2px 0; color: var(--tx3); font-size: 10.5px; }
.info-card .field-row.ro { grid-template-columns: 130px 1fr auto; }
.faintval { color: var(--tx3); }

/* party-card header: small inline icon, full name (wraps, never truncated) */
.info-card .panel-head { align-items: flex-start; }
.card-title { display: flex; gap: 7px; align-items: flex-start; flex: 1; min-width: 0; text-transform: none; letter-spacing: 0; }
.card-title svg { width: 15px; height: 15px; flex: 0 0 15px; margin-top: 1px; color: var(--tx2); }
.card-title .ct-name { font-size: 12.5px; font-weight: 600; color: var(--tx); white-space: normal; word-break: break-word; line-height: 1.35; }
.card-title .ct-role { color: var(--tx3); font-weight: 400; font-size: 9.5px; text-transform: uppercase; letter-spacing: .07em; white-space: nowrap; margin-left: 7px; }

/* coverage-matrix entity cell: one compact line, uniform row height */
.cov-ent { display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.cov-ent svg { width: 14px; height: 14px; flex: 0 0 14px; color: var(--tx2); }
.cov-ent .ce-name { font-weight: 600; }
.cov-ent .ce-role { color: var(--tx3); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }

/* ============ entities / people ============ */
.runs-cell { display: flex; flex-wrap: nowrap; gap: 3px; white-space: nowrap; }
.run-pill {
  display: inline-flex; gap: 4px; align-items: center; white-space: nowrap;
  font-size: 9.5px; border: 1px solid var(--line); border-radius: 2px; padding: 1px 5px; color: var(--tx3);
}
.run-pill b { color: var(--tx2); font-weight: 700; }
.run-pill button { color: var(--blue); font-size: 9.5px; font-weight: 700; }
.run-pill button:hover { text-decoration: underline; }
.weak-expander { padding: 6px 12px; }
.ent-fnd-row {
  display: flex; gap: 7px; align-items: center; padding: 3px 6px; margin: 0 -6px;
  font-size: 11.5px; cursor: pointer; border-radius: 2px;
}
.ent-fnd-row:hover { background: var(--bg3); }
.gtoggle { width: 30px; height: 16px; border-radius: 9px; border: 1px solid var(--line2); background: var(--bg0); position: relative; cursor: pointer; flex: 0 0 auto; display: inline-block; vertical-align: middle; }
.gtoggle::after { content: ""; position: absolute; top: 2px; left: 2px; width: 10px; height: 10px; border-radius: 50%; background: var(--tx3); transition: left .12s; }
.gtoggle.on { background: var(--green-dim); border-color: var(--green-bd); }
.gtoggle.on::after { left: 16px; background: var(--green); }
.group-note-row td { color: var(--tx3) !important; font-size: 10.5px; font-style: italic; background: var(--bg0); }

/* ============ UCC ============ */
.bulk-bar {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  border: 1px solid var(--blue-bd); background: var(--blue-dim);
  border-radius: 3px; padding: 6px 10px; margin-bottom: 10px;
}
.bulk-bar .bulk-n { font-weight: 700; color: var(--blue); font-size: 12px; }
.ucc-strip { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.ucc-cat {
  flex: 1; min-width: 170px; border: 1px solid var(--line); border-radius: 3px;
  background: var(--bg1); padding: 8px 12px; cursor: pointer; position: relative;
}
.ucc-cat .cnt { font-family: var(--mono); font-size: 20px; font-weight: 700; }
.ucc-cat .lbl { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tx2); }
.ucc-cat .cnote { font-size: 10px; color: var(--tx3); margin-top: 3px; line-height: 1.3; }
.ucc-cat.active { border-color: var(--blue); background: var(--blue-dim); }
.ucc-cat.dropover { border-color: var(--green); background: var(--green-dim); }
.ucc-cat[data-cat="MCA"] .cnt { color: var(--red); }
.ucc-cat[data-cat="Masked"] .cnt { color: var(--amber); }
.ucc-cat[data-cat="Unknown"] .cnt { color: var(--blue); }
.ucc-cat[data-cat="Non-MCA"] .cnt { color: var(--green); }
.debtor-row { display: flex; gap: 7px; align-items: baseline; padding: 2px 0; font-size: 11.5px; }
.debtor-row .dr-name { min-width: 0; }
.debtor-row .dr-added { color: var(--tx3); font-size: 10px; }
.debtor-inline { display: inline-flex; flex-wrap: wrap; gap: 2px 9px; }
.debtor-inline .di { display: inline-flex; gap: 4px; align-items: baseline; white-space: nowrap; }
.life-line { display: flex; gap: 8px; font-family: var(--mono); font-size: 10.5px; color: var(--tx2); padding: 1px 0; }
.life-line .lf-status-open { color: var(--amber); }
.life-line .lf-status-terminated { color: var(--tx3); }
.moved-tag { font-size: 9px; color: var(--amber); }

/* ============ history ============ */
.thread-card { border: 1px solid var(--line); border-radius: 3px; background: var(--bg2); margin-bottom: 8px; }
.thread-head { padding: 8px 11px; cursor: pointer; }
.thread-head:hover { background: var(--bg3); }
.thread-subject { font-weight: 600; font-size: 12.5px; }
.thread-meta { color: var(--tx3); font-size: 10.5px; margin-top: 2px; }
.thread-found { margin: 6px 0 0; font-size: 11.5px; color: var(--tx2); }
.thread-found b { color: var(--teal); font-weight: 700; }
.thread-match {
  margin-top: 5px; font-size: 11.5px; color: var(--tx2);
  border-left: 2px solid var(--teal); background: var(--teal-dim);
  padding: 5px 9px; border-radius: 0 2px 2px 0;
}
.msg-card { border-top: 1px solid var(--line); padding: 8px 11px; }
.msg-meta { font-size: 10.5px; color: var(--tx3); font-family: var(--mono); margin-bottom: 4px; }
.msg-body { font-size: 11.5px; color: var(--tx2); white-space: pre-wrap; word-break: break-word; }
.timeline { position: relative; padding-left: 16px; }
.timeline::before { content: ""; position: absolute; left: 4px; top: 6px; bottom: 6px; width: 1px; background: var(--line2); }
.tl-item { position: relative; padding: 3px 0 3px 6px; }
.tl-item::before { content: ""; position: absolute; left: -15px; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--bg2); border: 1px solid var(--line2); }
.tl-item.decision::before { background: var(--sev-red); border-color: var(--sev-red); }
.tl-item .act { font-weight: 600; font-size: 12px; }
.tl-item .meta { color: var(--tx3); font-size: 10.5px; font-family: var(--mono); }
.tl-item .sub { color: var(--tx2); font-size: 11px; }

/* ============ in-pane report pages ============ */
.crumb-bar {
  display: flex; align-items: center; gap: 10px;
  min-height: 36px; flex: 0 0 auto; padding: 4px 14px;
  background: var(--bg-bar); border-bottom: 1px solid var(--line2);
  white-space: nowrap;
}
.crumb-back {
  color: var(--blue); font-size: 11.5px; font-weight: 600; padding: 2px 6px; border-radius: 2px;
}
.crumb-back:hover { background: var(--blue-dim); }
.crumb-title { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

/* record peek card (A2) */
.peek-card {
  border: 1px solid var(--line2); border-left: 2px solid var(--teal);
  background: var(--bg2); border-radius: 3px; padding: 9px 12px; margin: 10px 12px 4px;
}
.peek-head { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.peek-head b { font-size: 12px; }
.peek-actions { display: flex; gap: 8px; align-items: center; margin-top: 4px; }

/* subject identity cards */
.subj-card { border-bottom: 1px solid var(--line); }
.subj-card:last-child { border-bottom: none; }

.id-note {
  border: 1px solid var(--purple-bd); border-left: 2px solid var(--purple);
  background: var(--purple-dim); color: var(--tx);
  padding: 7px 11px; border-radius: 2px; margin-bottom: 10px; font-size: 12px;
}
.con-controls { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.con-controls input[type=search] { width: 260px; }
.seg { display: inline-flex; border: 1px solid var(--line2); border-radius: 2px; overflow: hidden; }
.seg button { padding: 3px 9px; font-size: 10.5px; font-weight: 600; color: var(--tx2); background: var(--bg1); border-right: 1px solid var(--line2); }
.seg button:last-child { border-right: none; }
.seg button.on { background: var(--blue-dim); color: var(--blue); }
.seg button:hover:not(.on) { background: var(--bg3); }

.rsec { border: 1px solid var(--line); border-radius: 3px; background: var(--bg1); margin-bottom: 8px; }
.rsec.tier-derog { border-left: 2px solid var(--sev-red); }
.rsec.tier-ucc { border-left: 2px solid var(--teal); }
.rsec.tier-corp { border-left: 2px solid var(--blue); }
.rsec.tier-noise { border-left: 2px solid var(--line2); opacity: .92; }
.rsec-head { display: flex; align-items: center; gap: 8px; padding: 6px 10px; cursor: pointer; user-select: none; }
.rsec-head:hover { background: var(--bg2); }
.rsec-head .chev { color: var(--tx3); font-size: 9px; width: 10px; }
.rsec-head .nm { font-weight: 700; font-size: 12px; }
.rsec.tier-noise .rsec-head .nm { color: var(--tx2); font-weight: 600; }
.rsec-head .cnt { font-family: var(--mono); font-size: 10.5px; color: var(--tx3); }
.rsec-head .matchcnt { font-family: var(--mono); font-size: 10px; color: var(--amber); }
.rsec-head .grow { flex: 1; }
.rsec-head .grip { color: var(--tx3); cursor: grab; visibility: hidden; }
.rsec-head:hover .grip { visibility: visible; }
.rsec-explain { color: var(--tx3); font-size: 11px; padding: 0 12px 8px; line-height: 1.45; }
.rsec-body { border-top: 1px solid var(--line); }
.rsec.dragging { opacity: .4; }
.rsec.dragover-top { box-shadow: inset 0 2px 0 var(--blue); }
.rsec.dragover-bot { box-shadow: inset 0 -2px 0 var(--blue); }

.rec-hit { animation: recflash 1.6s ease-out 2; outline: 1px solid var(--amber); outline-offset: -1px; }
@keyframes recflash {
  0% { background: var(--amber-dim); }
  100% { background: transparent; }
}
tbody.rowgrp.rec-hit td { background: var(--amber-dim); }
.dm-idcheck { color: var(--tx2); }
.dm-idcheck .idc-strong { color: var(--green); font-weight: 700; }
.dm-idcheck .idc-weak { color: var(--amber); font-weight: 700; }
mark { background: var(--mark-bg); color: inherit; border-radius: 1px; }
mark.hl-cur { outline: 1px solid var(--sev-amber); }

/* find-in-document bar (doc reader) */
.doc-find { display: inline-flex; gap: 5px; align-items: center; }
.doc-find input { width: 180px; background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 3px 7px; border-radius: 2px; font-size: 11.5px; }
.df-count { color: var(--tx3); font-size: 10.5px; font-variant-numeric: tabular-nums; min-width: 52px; text-align: right; }

/* needs-input question banner */
.q-banner { border-bottom: 1px solid var(--line2); border-left: 3px solid var(--sev-amber); background: var(--amber-dim); padding: 8px 14px 9px; flex: 0 0 auto; }
.q-head { display: flex; gap: 8px; align-items: center; font-size: 12.5px; }
.q-tag { font-size: 9px; font-weight: 800; letter-spacing: .1em; color: var(--amber); border: 1px solid var(--amber-bd); padding: 1px 6px; border-radius: 2px; }
.q-context { color: var(--tx2); font-size: 11.5px; margin: 4px 0 7px; max-width: 92ch; }
.q-actions { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.q-actions input { background: var(--bg1); border: 1px solid var(--line2); color: var(--tx); padding: 3px 7px; border-radius: 2px; font-size: 11.5px; width: 240px; }

/* decision reasons checklist */
.dec-reasons { margin-top: 12px; }
.dec-reason-list { max-height: 220px; overflow-y: auto; border: 1px solid var(--line); border-radius: 2px; background: var(--bg1); }
.dec-reason-row { display: flex; gap: 7px; align-items: center; padding: 4px 8px; border-bottom: 1px solid var(--line); font-size: 11.5px; cursor: pointer; }
.dec-reason-row:last-child { border-bottom: 0; }
.dec-reason-row:hover { background: var(--bg2); }

/* report money/export action strip */
.rep-actions { display: inline-flex; gap: 4px; align-items: center; flex-wrap: wrap; }

/* combined view header */
.combine-bar {
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
  border: 1px solid var(--line); background: var(--bg1); border-radius: 3px;
  padding: 7px 10px; margin-bottom: 10px; font-size: 12.5px;
}
.combine-chip { cursor: pointer; }
.combine-chip:hover { text-decoration: line-through; }

/* KV record grid (parsed CLEAR records) */
.kvgrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 2px;
  margin: 4px 0; overflow: hidden;
}
.kvcell { background: var(--bg2); padding: 5px 9px; min-width: 0; }
.kvcell .kk { font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--tx3); }
.kvcell .vv { font-size: 11.5px; color: var(--tx); white-space: normal; word-break: break-word; }
.kv-xn { color: var(--tx3); font-family: var(--mono); font-size: 10px; }

/* universal record language: headline + ledger */
.rec-view { min-width: 0; }
.rec-hero { padding: 2px 0 6px; }
.rec-hl { display: flex; gap: 7px; align-items: baseline; flex-wrap: wrap; }
.rec-hl > b { font-size: 12.5px; color: var(--tx); }
.rec-what { color: var(--tx3); font-size: 11.5px; }
.rec-facts {
  display: flex; gap: 14px; flex-wrap: wrap; margin-top: 4px;
  padding-bottom: 6px; border-bottom: 1px solid var(--line);
}
.rec-facts .rf { font-size: 11px; white-space: nowrap; }
.rec-facts .rf-l { color: var(--tx3); }
.rec-facts .rf b { font-weight: 600; color: var(--tx); }
.rec-ledger { margin: 6px 0 4px; max-width: 560px; }
.rec-pair { display: grid; grid-template-columns: 130px 1fr; gap: 10px; padding: 2px 0; font-size: 11.5px; }
.rec-pair > b { color: var(--tx3); font-weight: 600; text-align: right; font-size: 10.5px; padding-top: 1px; }
.rec-pair > span { color: var(--tx); word-break: break-word; min-width: 0; }
.rec-note { color: var(--tx3); font-size: 10px; }
.rec-foot { color: var(--tx3); font-size: 10.5px; padding: 4px 0 0; border-top: 1px dashed var(--line); margin-top: 4px; }
.rec-body { margin: 4px 0; }

/* parties sub-table inside KV views */
.party-wrap { margin: 6px 0 4px; border: 1px solid var(--line); border-radius: 2px; overflow: hidden; }
.party-h {
  font-size: 9.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  color: var(--tx3); background: var(--bg2); padding: 4px 9px; border-bottom: 1px solid var(--line);
}

/* courts rows + case panel */
.case-cell { min-width: 0; }
.case-link { color: var(--blue); text-align: left; padding: 0; }
.case-link b { font-weight: 600; }
.case-link:hover { text-decoration: underline; }
.case-sub { color: var(--tx3); font-size: 11px; }
.case-open { color: var(--amber); font-size: 11.5px; }
.case-closed { color: var(--green); font-size: 11.5px; }
.case-panel { padding: 8px 10px; background: var(--bg0); border: 1px solid var(--line); border-radius: 2px; margin: 4px 0; }
.case-title { font-weight: 700; font-size: 12.5px; }
.court-caveat { padding: 4px 12px 6px; font-size: 11px; color: var(--tx3); }
.court-caveat.warn { color: var(--amber); }

/* doc reader — prose as prose: proportional font, readable measure */
.doc-read { max-width: 860px; margin: 0 auto; }
.doc-prose {
  font-size: 13px; line-height: 1.65; color: var(--tx);
  background: var(--bg1); border: 1px solid var(--line); border-radius: 3px; padding: 20px 26px;
}
.doc-prose p { margin: 0 0 12px; max-width: 72ch; overflow-wrap: break-word; }
.doc-prose p:last-child { margin-bottom: 0; }

/* ============ modals / drawers ============ */
#modal-root { position: fixed; inset: 0; z-index: 400; display: flex; align-items: flex-start; justify-content: center; background: var(--backdrop); }
.modal {
  margin-top: 8vh; width: 620px; max-width: calc(100vw - 40px); max-height: 80vh;
  background: var(--bg2); border: 1px solid var(--line2); border-radius: 4px;
  box-shadow: var(--sh-modal);
  display: flex; flex-direction: column; overflow: hidden;
}
.modal-head { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line2); font-weight: 700; font-size: 13px; }
.modal-body { padding: 12px 14px; overflow-y: auto; }
.modal-foot { padding: 10px 14px; border-top: 1px solid var(--line); display: flex; gap: 8px; justify-content: flex-end; }
.sum-bullet { display: flex; gap: 8px; padding: 3px 0; font-size: 12px; cursor: pointer; border-radius: 2px; }
.sum-bullet:hover { background: var(--bg3); }
.sum-bullet::before { content: "▪"; color: var(--blue); }
.dec-grid { display: grid; grid-template-columns: 110px 1fr; gap: 10px 12px; align-items: center; }
.dec-grid .lbl { color: var(--tx2); font-size: 11px; font-weight: 600; }

#drawer {
  position: fixed; top: var(--bar-h); right: 0; bottom: 0; width: 380px; z-index: 90;
  background: var(--bg2); border-left: 1px solid var(--line2);
  box-shadow: var(--sh-drawer);
  display: flex; flex-direction: column;
}
.drawer-head { display: flex; align-items: center; gap: 8px; padding: 10px 13px; border-bottom: 1px solid var(--line2); font-weight: 700; }
.drawer-body { flex: 1; overflow-y: auto; padding: 12px 13px; }
.drawer-foot { padding: 10px 13px; border-top: 1px solid var(--line); display: flex; gap: 7px; }
.drawer-foot input { flex: 1; }
.chat-user { background: var(--blue-dim); border: 1px solid var(--blue-bd); border-radius: 3px; padding: 7px 10px; margin-bottom: 8px; font-size: 12px; margin-left: 40px; }
.chat-sys {
  border: 1px dashed var(--line2); border-radius: 3px; padding: 7px 10px; margin-bottom: 8px;
  font-size: 11.5px; color: var(--tx3); font-style: italic; margin-right: 40px;
}

/* toast */
#toast-root { position: fixed; bottom: 18px; left: 50%; transform: translateX(-50%); z-index: 500; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.toast {
  background: var(--bg4); border: 1px solid var(--line2); color: var(--tx);
  padding: 7px 14px; border-radius: 3px; font-size: 12px;
  box-shadow: var(--sh-toast);
  animation: toastin .18s ease-out;
}
.toast.warn { border-color: var(--amber-bd); color: var(--amber); }
@keyframes toastin { from { opacity: 0; transform: translateY(8px); } }

kbd {
  font-family: var(--mono); font-size: 9.5px; color: var(--tx3);
  border: 1px solid var(--line2); border-bottom-width: 2px; border-radius: 3px; padding: 0 4px;
}
.kbd-hint { color: var(--tx3); font-size: 10.5px; }

@media (max-width: 1350px) {
  .con-nav { flex-basis: 200px; }
}
