/* Card Edge — dark institutional. Near-black, gold accent. No framework. */
:root {
  --bg:#070a0f; --bg2:#0a0e14; --panel:#111824; --panel2:#0d1320;
  --line:#1e2836; --line2:#2a3648;
  --ink:#e7edf5; --ink2:#c3ccda; --mut:#8390a3; --mut2:#5d6878;
  --gold:#d4af37; --gold-dim:#9c8230; --gold-soft:rgba(212,175,55,.12);
  --green:#3ddc84; --green-dim:#1f5c3a; --red:#ff5c5c; --red-dim:#5c2424;
  --blue:#5aa9e6; --amber:#e6b85a;
  --radius:12px; --radius-sm:8px;
  --shadow:0 8px 30px rgba(0,0,0,.45);
  --mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;
  --sans:-apple-system,"Segoe UI",Roboto,Inter,system-ui,sans-serif;
}
* { box-sizing:border-box; }
html,body { height:100%; }
body {
  margin:0; background:
    radial-gradient(1200px 600px at 80% -10%, rgba(212,175,55,.06), transparent 60%),
    var(--bg);
  color:var(--ink); font:14px/1.55 var(--sans); -webkit-font-smoothing:antialiased;
}
a { color:var(--gold); text-decoration:none; }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:#1c2632; border-radius:6px; }
::-webkit-scrollbar-track { background:transparent; }

/* ── Login ─────────────────────────────────────────────────────────── */
.login-wrap { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login {
  width:100%; max-width:380px; background:var(--panel); border:1px solid var(--line);
  border-radius:16px; padding:34px 30px; box-shadow:var(--shadow);
}
.login .logo { font-weight:800; letter-spacing:3px; font-size:22px; }
.login .logo span { color:var(--gold); }
.login .tag { color:var(--mut); margin:6px 0 24px; font-size:12.5px; letter-spacing:.3px; }
.login label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--mut); margin:14px 0 6px; }
.login input {
  width:100%; padding:11px 13px; background:var(--bg2); border:1px solid var(--line);
  border-radius:var(--radius-sm); color:var(--ink); font-size:14px; outline:none;
}
.login input:focus { border-color:var(--gold-dim); box-shadow:0 0 0 3px var(--gold-soft); }
.login .err { color:var(--red); font-size:12.5px; min-height:18px; margin-top:10px; }
.btn-gold {
  width:100%; margin-top:18px; padding:12px; background:var(--gold); color:#1a1404;
  border:0; border-radius:var(--radius-sm); font-weight:700; letter-spacing:.5px; cursor:pointer;
  transition:filter .15s;
}
.btn-gold:hover { filter:brightness(1.08); }
.btn-gold:disabled { opacity:.5; cursor:default; }
.login .quote { color:var(--gold-dim); font-style:italic; font-size:11.5px; text-align:center; margin-top:24px; line-height:1.5; }

/* ── App shell ─────────────────────────────────────────────────────── */
.shell { display:grid; grid-template-columns:230px 1fr; min-height:100vh; }
.nav {
  background:linear-gradient(180deg,var(--bg2),var(--bg)); border-right:1px solid var(--line);
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
}
.nav .brand { padding:20px 22px 16px; font-weight:800; letter-spacing:3px; font-size:18px; border-bottom:1px solid var(--line); }
.nav .brand span { color:var(--gold); }
.nav .links { flex:1; overflow:auto; padding:10px 10px; }
.nav a.link {
  display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:var(--radius-sm);
  color:var(--ink2); font-size:13.5px; cursor:pointer; margin-bottom:2px; border:1px solid transparent;
  transition:background .12s,color .12s;
}
.nav a.link:hover { background:#0f1622; color:var(--ink); }
.nav a.link.active { background:var(--gold-soft); color:var(--gold); border-color:rgba(212,175,55,.25); }
.nav a.link .ic { width:18px; text-align:center; opacity:.85; }
.nav .foot { border-top:1px solid var(--line); padding:14px 16px; font-size:11.5px; color:var(--mut); }
.nav .foot .who { color:var(--ink2); font-weight:600; }
.nav .foot .quote { font-style:italic; color:var(--gold-dim); margin:8px 0 10px; line-height:1.45; font-size:10.5px; }
.nav .foot button { background:none; border:1px solid var(--line); color:var(--mut); padding:5px 10px; border-radius:6px; cursor:pointer; font-size:11px; }
.nav .foot button:hover { color:var(--ink); border-color:var(--mut2); }

.content { padding:26px 30px 60px; overflow:auto; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:20px; gap:16px; flex-wrap:wrap; }
.page-head h1 { font-size:21px; margin:0; letter-spacing:.3px; }
.page-head .sub { color:var(--mut); font-size:12.5px; margin-top:3px; }

/* ── Cards / panels ────────────────────────────────────────────────── */
.grid { display:grid; gap:16px; }
.cols-2 { grid-template-columns:repeat(2,1fr); }
.cols-3 { grid-template-columns:repeat(3,1fr); }
.cols-4 { grid-template-columns:repeat(4,1fr); }
@media (max-width:1000px){ .cols-3,.cols-4{grid-template-columns:repeat(2,1fr);} .shell{grid-template-columns:64px 1fr;} .nav .brand,.nav .foot .quote,.nav .foot .who,.nav .foot .mut,.nav a.link span.lbl{display:none;} .nav .foot{padding:12px 6px;text-align:center;} .nav .links{padding:10px 8px;} }
@media (max-width:640px){ .cols-2,.cols-3,.cols-4{grid-template-columns:1fr;} }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; }
.panel.tight { padding:14px 16px; }
.panel h3 { margin:0 0 12px; font-size:13px; letter-spacing:.4px; text-transform:uppercase; color:var(--mut); font-weight:600; }
.panel .big { font-size:28px; font-weight:700; letter-spacing:.3px; font-variant-numeric:tabular-nums; }
.panel .big.gold { color:var(--gold); }
.panel .delta { font-size:13px; margin-top:4px; font-variant-numeric:tabular-nums; }
.pos { color:var(--green); } .neg { color:var(--red); }
.kpi-row { display:flex; align-items:baseline; gap:8px; }
.kpi-sub { color:var(--mut); font-size:11.5px; }

/* ── Tables ────────────────────────────────────────────────────────── */
table { width:100%; border-collapse:collapse; font-size:13px; }
th { text-align:left; color:var(--mut); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.6px; padding:8px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
td { padding:10px; border-bottom:1px solid var(--line); vertical-align:middle; }
tr:last-child td { border-bottom:0; }
tbody tr:hover { background:#0f1622; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; font-family:var(--mono); }
.tbl-wrap { overflow:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); }

/* ── Badges / chips ────────────────────────────────────────────────── */
.badge { display:inline-block; padding:2px 8px; border-radius:20px; font-size:11px; font-weight:700; letter-spacing:.4px; border:1px solid transparent; }
.badge.A1{ background:rgba(90,169,230,.12); color:var(--blue); border-color:rgba(90,169,230,.3);}
.badge.A2{ background:rgba(230,184,90,.12); color:var(--amber); border-color:rgba(230,184,90,.3);}
.badge.A3{ background:rgba(168,130,230,.12); color:#b09ae6; border-color:rgba(168,130,230,.3);}
.badge.A4{ background:rgba(61,220,132,.12); color:var(--green); border-color:rgba(61,220,132,.3);}
.badge.hold{ background:var(--gold-soft); color:var(--gold); border-color:rgba(212,175,55,.3);}
.badge.live{ background:rgba(61,220,132,.12); color:var(--green); border-color:rgba(61,220,132,.3);}
.badge.stub{ background:#1a2230; color:var(--mut); border-color:var(--line); }
.badge.phase-accumulation{ background:rgba(90,169,230,.12); color:var(--blue);}
.badge.phase-momentum{ background:rgba(230,184,90,.14); color:var(--amber);}
.badge.phase-explosion{ background:rgba(255,92,92,.14); color:var(--red);}
.chip { display:inline-block; padding:3px 9px; border:1px solid var(--line); border-radius:20px; font-size:12px; color:var(--ink2); cursor:pointer; margin:0 6px 6px 0; background:var(--bg2); }
.chip:hover { border-color:var(--gold-dim); color:var(--ink); }
.chip.on { background:var(--gold-soft); color:var(--gold); border-color:rgba(212,175,55,.35); }

/* ── Buttons / inputs ──────────────────────────────────────────────── */
.btn { padding:8px 14px; background:var(--bg2); border:1px solid var(--line); color:var(--ink); border-radius:var(--radius-sm); cursor:pointer; font-size:13px; transition:border-color .12s,background .12s; }
.btn:hover { border-color:var(--mut2); }
.btn.primary { background:var(--gold); color:#1a1404; border-color:var(--gold); font-weight:700; }
.btn.primary:hover { filter:brightness(1.08); }
.btn.sm { padding:5px 10px; font-size:12px; }
.btn:disabled { opacity:.5; cursor:default; }
input.fld, select.fld, textarea.fld {
  background:var(--bg2); border:1px solid var(--line); color:var(--ink); border-radius:var(--radius-sm);
  padding:9px 12px; font-size:13px; outline:none; font-family:var(--sans);
}
input.fld:focus, select.fld:focus, textarea.fld:focus { border-color:var(--gold-dim); box-shadow:0 0 0 3px var(--gold-soft); }

/* ── Misc ──────────────────────────────────────────────────────────── */
.mut { color:var(--mut); } .small { font-size:12px; }
.empty { color:var(--mut); padding:30px; text-align:center; border:1px dashed var(--line); border-radius:var(--radius); background:var(--bg2); }
.bar { height:7px; border-radius:6px; background:#1a2230; overflow:hidden; }
.bar > i { display:block; height:100%; background:linear-gradient(90deg,var(--gold-dim),var(--gold)); }
.bar.green > i { background:linear-gradient(90deg,var(--green-dim),var(--green)); }
.spinner { display:inline-block; width:14px; height:14px; border:2px solid var(--line); border-top-color:var(--gold); border-radius:50%; animation:spin .7s linear infinite; vertical-align:-2px; }
@keyframes spin { to{ transform:rotate(360deg);} }
.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.between { justify-content:space-between; }
.divider { height:1px; background:var(--line); margin:14px 0; }
.rationale { color:var(--mut); font-size:12px; max-width:340px; }
.flag-ok { color:var(--green); } .flag-bad { color:var(--red); font-weight:700; }
.hero-pill { display:inline-flex; align-items:center; gap:6px; background:var(--gold-soft); color:var(--gold); border:1px solid rgba(212,175,55,.3); padding:4px 11px; border-radius:20px; font-size:11.5px; font-weight:600; letter-spacing:.4px; }

/* Brain chat */
.chat { display:flex; flex-direction:column; height:calc(100vh - 150px); }
.chat .log { flex:1; overflow:auto; padding:6px 2px; }
.msg { max-width:78%; padding:11px 14px; border-radius:14px; margin:8px 0; white-space:pre-wrap; line-height:1.5; }
.msg.user { margin-left:auto; background:var(--gold-soft); border:1px solid rgba(212,175,55,.25); color:var(--ink); }
.msg.bot { background:var(--panel); border:1px solid var(--line); color:var(--ink2); }
.chat .compose { display:flex; gap:10px; padding-top:12px; border-top:1px solid var(--line); }
.chat .compose input { flex:1; }

/* Scan dropzone */
.drop { border:1.5px dashed var(--line2); border-radius:var(--radius); padding:30px; text-align:center; color:var(--mut); background:var(--bg2); }
.scan-result dl { display:grid; grid-template-columns:140px 1fr; gap:8px 14px; margin:0; }
.scan-result dt { color:var(--mut); font-size:12px; }
.scan-result dd { margin:0; font-weight:600; }

.flash { position:fixed; bottom:22px; right:22px; background:var(--panel); border:1px solid var(--gold-dim); color:var(--ink); padding:12px 16px; border-radius:var(--radius-sm); box-shadow:var(--shadow); font-size:13px; z-index:80; }

/* ════════════════════════════════════════════════════════════════════ */
/* AUTOPILOT LAYER                                                        */
/* ════════════════════════════════════════════════════════════════════ */

/* ── Conviction badges ─────────────────────────────────────────────── */
.conv { display:inline-block; padding:2px 9px; border-radius:6px; font-size:10px; font-weight:800; letter-spacing:.7px; border:1px solid transparent; text-transform:uppercase; }
.conv.watch { background:#161d28; color:var(--mut); border-color:var(--line2); }
.conv.strong { background:rgba(61,220,132,.14); color:var(--green); border-color:rgba(61,220,132,.4); }
.conv.slam_dunk {
  background:linear-gradient(135deg,rgba(212,175,55,.22),rgba(212,175,55,.08));
  color:var(--gold); border-color:rgba(212,175,55,.55);
  box-shadow:0 0 0 0 rgba(212,175,55,.5); animation:slamPulse 1.8s ease-in-out infinite;
}
@keyframes slamPulse {
  0%,100% { box-shadow:0 0 0 0 rgba(212,175,55,.45); }
  50%     { box-shadow:0 0 12px 1px rgba(212,175,55,.35); }
}

/* ── Header bell ───────────────────────────────────────────────────── */
.nav .brand-row { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); padding-right:14px; }
.nav .brand-row .brand { border-bottom:0; flex:1; }
.bell { position:relative; background:none; border:0; cursor:pointer; font-size:16px; padding:6px; line-height:1; color:var(--ink2); border-radius:8px; }
.bell:hover { background:#0f1622; }
.bell-badge { position:absolute; top:-2px; right:-2px; min-width:16px; height:16px; padding:0 4px; background:var(--red); color:#fff; font-size:10px; font-weight:800; border-radius:9px; align-items:center; justify-content:center; }

/* ── Today feed ────────────────────────────────────────────────────── */
.today-sec { margin-bottom:26px; }
.today-sec-head { display:flex; align-items:baseline; gap:12px; margin-bottom:12px; }
.today-sec-head h3 { margin:0; font-size:13px; letter-spacing:.5px; text-transform:uppercase; color:var(--ink2); }
.today-feed { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:14px; }
.today-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; display:flex; flex-direction:column; gap:12px; transition:border-color .15s,transform .12s; }
.today-card:hover { transform:translateY(-1px); }
.today-card.strong { border-color:rgba(61,220,132,.3); }
.today-card.slam_dunk { border-color:rgba(212,175,55,.5); background:linear-gradient(180deg,rgba(212,175,55,.05),var(--panel)); box-shadow:0 0 24px rgba(212,175,55,.07); }
.tc-top { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.tc-name { font-size:16px; font-weight:700; margin-top:7px; letter-spacing:.2px; }
.tc-meta { margin-top:3px; }
.tc-metric { text-align:right; flex-shrink:0; }
.tc-metric .big { font-size:24px; line-height:1.1; font-variant-numeric:tabular-nums; }
.tc-why { display:flex; flex-wrap:wrap; gap:6px; }
.why-chip { background:var(--bg2); border:1px solid var(--line); color:var(--ink2); font-size:11.5px; padding:3px 9px; border-radius:14px; }
.tc-sub { font-variant-numeric:tabular-nums; }
.tc-actions { display:flex; gap:8px; margin-top:2px; flex-wrap:wrap; }
.tc-actions .btn { flex:1; min-width:84px; text-align:center; justify-content:center; }
.btn.ghost { background:transparent; }
.btn.ghost:hover { border-color:var(--red-dim); color:var(--red); }
a.btn { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }

.today-empty { text-align:center; padding:60px 20px; border:1px dashed var(--line); border-radius:var(--radius); background:var(--bg2); }
.today-empty .big-emoji { font-size:46px; margin-bottom:14px; }
.today-empty .big { font-size:20px; font-weight:700; margin-bottom:8px; }

/* ── Automation: guardrails + kill switch ──────────────────────────── */
.guard-panel { padding:18px 20px; }
.guard-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:14px; }
.guard-stat .num { font-size:17px; margin-top:2px; }
.kill-wrap { display:flex; align-items:center; }
.kill {
  display:flex; flex-direction:column; align-items:center; gap:4px; min-width:200px;
  background:#10151d; border:1.5px solid var(--line2); color:var(--ink2);
  padding:16px 22px; border-radius:14px; cursor:pointer; font-weight:800; letter-spacing:1px; font-size:13px;
  transition:all .15s;
}
.kill:hover { border-color:var(--red); color:var(--red); }
.kill .kill-dot { width:12px; height:12px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); }
.kill .kill-sub { font-size:10px; font-weight:500; letter-spacing:.3px; color:var(--mut); text-transform:none; }
.kill.on { background:rgba(255,92,92,.1); border-color:var(--red); color:var(--red); animation:killPulse 1.4s ease-in-out infinite; }
.kill.on .kill-dot { background:var(--red); box-shadow:0 0 10px var(--red); }
.kill.on .kill-sub { color:var(--red); opacity:.8; }
@keyframes killPulse { 0%,100% { box-shadow:0 0 0 0 rgba(255,92,92,.3); } 50% { box-shadow:0 0 0 5px rgba(255,92,92,0); } }
.bar > i.over { background:linear-gradient(90deg,var(--red-dim),var(--red)); }

/* ── Automation: rules + audit ─────────────────────────────────────── */
.rule-add { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:6px; }
.rule-list { margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.rule-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius-sm); }
.rule-row.off { opacity:.55; }
.chk { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--ink2); cursor:pointer; }
.audit-list { display:flex; flex-direction:column; max-height:340px; overflow:auto; }
.audit-row { display:grid; grid-template-columns:1fr auto; gap:2px 12px; padding:8px 2px; border-bottom:1px solid var(--line); }
.audit-act { font-weight:600; font-size:12.5px; grid-column:1; }
.audit-row .audit-when { grid-column:2; grid-row:1; text-align:right; white-space:nowrap; }
.audit-row .mut.small:not(.audit-when) { grid-column:1; }

/* ── Settings: dials + pills ───────────────────────────────────────── */
.pill-group { display:flex; flex-direction:column; gap:8px; }
.pill { text-align:left; background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius-sm); padding:11px 14px; cursor:pointer; color:var(--ink2); transition:all .12s; }
.pill:hover { border-color:var(--mut2); }
.pill.on { background:var(--gold-soft); border-color:rgba(212,175,55,.45); color:var(--ink); }
.pill-lbl { font-weight:700; font-size:13.5px; }
.pill-sub { font-size:11.5px; color:var(--mut); margin-top:2px; }
.dial-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; align-items:end; }
.dial-lbl { display:block; margin-bottom:6px; }
.dial-chk { padding-bottom:9px; }
.dial-grid .fld { width:100%; }
.chip-checks { display:flex; flex-wrap:wrap; gap:10px; }
.chip-chk { background:var(--bg2); border:1px solid var(--line); border-radius:20px; padding:6px 12px; }

/* ── Onboarding wizard ─────────────────────────────────────────────── */
.wizard { max-width:560px; margin:0 auto; background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:26px 28px; box-shadow:var(--shadow); }
.wiz-dots { display:flex; gap:8px; justify-content:center; margin-bottom:22px; }
.wiz-dot { width:34px; height:4px; border-radius:3px; background:var(--line2); transition:background .2s; }
.wiz-dot.on { background:var(--gold); }
.wiz-body { min-height:220px; }
.wiz-h { font-size:19px; margin:0 0 6px; }
.wiz-body p { margin:0 0 18px; font-size:13px; }
.wiz-nav { display:flex; justify-content:space-between; margin-top:22px; gap:12px; }
.wiz-nav .btn { min-width:120px; justify-content:center; }

/* ── Health ────────────────────────────────────────────────────────── */
.status-pill { display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:20px; font-size:11.5px; font-weight:700; letter-spacing:.4px; border:1px solid; }
.status-pill.ok { background:rgba(61,220,132,.12); color:var(--green); border-color:rgba(61,220,132,.35); }
.status-pill.warn { background:rgba(230,184,90,.12); color:var(--amber); border-color:rgba(230,184,90,.35); }
.status-pill.down { background:rgba(255,92,92,.12); color:var(--red); border-color:rgba(255,92,92,.35); }
.fresh-row { display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid var(--line); font-size:13px; }
.fresh-row:last-child { border-bottom:0; }
.dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.dot.ok { background:var(--green); } .dot.warn { background:var(--amber); } .dot.down { background:var(--red); }

/* ── Alerts drawer ─────────────────────────────────────────────────── */
.drawer-back { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:70; display:flex; justify-content:flex-end; }
.drawer { width:min(420px,92vw); height:100%; background:var(--bg2); border-left:1px solid var(--line); padding:18px 20px; overflow:auto; box-shadow:var(--shadow); }
.drawer-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.drawer-head h3 { margin:0; font-size:16px; }
.drawer-list { display:flex; flex-direction:column; gap:10px; }
.alert-row { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px 14px; }
.alert-row.unread { border-color:var(--gold-dim); }
.alert-title { font-weight:700; margin-left:8px; }
.alert-body { margin-top:6px; }

/* ════════════════════════════════════════════════════════════════════ */
/* WAVE 1 — TRUST GATE · INVENTORY · FINANCE                              */
/* ════════════════════════════════════════════════════════════════════ */

/* ── Trust verdict badges (clear/flag/veto) + sell-trigger ─────────── */
.trust { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; border-radius:6px; font-size:10.5px; font-weight:800; letter-spacing:.5px; border:1px solid transparent; text-transform:uppercase; white-space:nowrap; }
.trust.clear { background:rgba(61,220,132,.14); color:var(--green); border-color:rgba(61,220,132,.4); }
.trust.flag  { background:rgba(230,184,90,.14); color:var(--amber); border-color:rgba(230,184,90,.45); }
.trust.veto  { background:rgba(255,92,92,.16); color:var(--red); border-color:rgba(255,92,92,.55); box-shadow:0 0 0 0 rgba(255,92,92,.4); animation:vetoPulse 1.8s ease-in-out infinite; }
.trust.sell  { background:rgba(255,92,92,.12); color:var(--red); border-color:rgba(255,92,92,.4); }
@keyframes vetoPulse { 0%,100% { box-shadow:0 0 0 0 rgba(255,92,92,.4); } 50% { box-shadow:0 0 10px 1px rgba(255,92,92,.3); } }

/* Veto'd today card — clearly blocked, no actions. */
.today-card.vetoed { border-color:rgba(255,92,92,.55); background:linear-gradient(180deg,rgba(255,92,92,.06),var(--panel)); }
.veto-banner { background:rgba(255,92,92,.1); border:1px solid rgba(255,92,92,.4); color:var(--red); font-weight:700; font-size:12.5px; padding:9px 12px; border-radius:var(--radius-sm); text-align:center; }

/* Veto / sell row tints in tables. */
tr.veto-row { background:rgba(255,92,92,.06); }
tr.veto-row:hover { background:rgba(255,92,92,.1); }
tr.veto-row td:first-child { box-shadow:inset 3px 0 0 var(--red); }
tr.sell-row td:first-child { box-shadow:inset 3px 0 0 var(--amber); }

/* ── Inventory ─────────────────────────────────────────────────────── */
code.barcode { font-family:var(--mono); font-size:11.5px; background:var(--bg2); border:1px solid var(--line); border-radius:5px; padding:2px 7px; color:var(--ink2); letter-spacing:.5px; }

/* ── Sources (global buy-side) ─────────────────────────────────────── */
.cov-h { text-transform:uppercase; letter-spacing:.6px; font-weight:700; margin-bottom:10px; }
.cov-row { margin-bottom:11px; }
.cov-row:last-child { margin-bottom:0; }
.src-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin-top:4px; }
.src-card { background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius); padding:14px 15px; }
.src-card.on { border-color:rgba(61,220,132,.35); }
.src-name { font-weight:700; font-size:14px; }
.edge-stars { color:var(--gold); letter-spacing:1px; font-size:13px; }
.lang-chip { display:inline-block; padding:1px 7px; border-radius:5px; font-size:10px; font-weight:800; letter-spacing:.5px; background:var(--gold-soft); color:var(--gold); border:1px solid rgba(212,175,55,.3); }
.trust.cf { text-transform:none; }

/* ════════════════════════════════════════════════════════════════════ */
/* WAVE 2 — SELL · ORDERS · TREASURY · LIQUIDITY · SAAS · GRADE MODEL     */
/* ════════════════════════════════════════════════════════════════════ */

/* 13-week cashflow mini-chart (no library — pure flex bars). */
.cf-chart { display:flex; align-items:flex-end; gap:6px; height:120px; padding:6px 2px 0; overflow-x:auto; }
.cf-col { flex:1; min-width:22px; display:flex; flex-direction:column; align-items:center; height:100%; }
.cf-bar-wrap { flex:1; width:100%; display:flex; align-items:flex-end; justify-content:center; }
.cf-bar { width:70%; max-width:26px; border-radius:4px 4px 0 0; background:linear-gradient(180deg,var(--gold),var(--gold-dim)); min-height:3px; transition:height .2s; }
.cf-bar.neg { background:linear-gradient(180deg,var(--red),var(--red-dim)); }
.cf-wk { font-size:10px; margin-top:5px; font-variant-numeric:tabular-nums; }

/* ── Mobile-first ──────────────────────────────────────────────────── */
@media (max-width:1000px){
  .today-feed { grid-template-columns:1fr; }
  .kill-wrap { width:100%; } .kill { width:100%; }
  .cf-chart { gap:3px; }
  .cf-col { min-width:16px; }
}
@media (max-width:640px){
  .content { padding:18px 14px 70px; }
  .page-head h1 { font-size:18px; }
  .today-card { padding:14px; }
  .tc-actions .btn { flex:1 1 100%; }
  .wizard { padding:20px 16px; }
  .guard-grid { grid-template-columns:repeat(2,1fr); }
  .drawer { width:100vw; }
  .rule-add .fld, .dial-grid .fld, .dial-grid select.fld { width:100%; flex:1 1 100%; }
  .src-grid { grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════════════════════════════ */
/* WAVE 3 — DEAL FEED · NEGOTIATION · BRIEF · INTEL · CONSIGNMENT ·        */
/*          COMPLIANCE · CAPITAL  (the compounding layer)                 */
/* ════════════════════════════════════════════════════════════════════ */

/* ── Deal Feed + content exports ───────────────────────────────────── */
.feed-list { display:flex; flex-direction:column; gap:10px; }
.feed-row { background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius-sm); padding:11px 13px; }
.feed-headline { font-weight:600; font-size:13.5px; margin:6px 0 2px; letter-spacing:.2px; }

/* ── Brief body (spoken script, preserve section headers) ──────────── */
.brief-body {
  white-space:pre-wrap; line-height:1.6; font-size:13.5px; color:var(--ink2);
  background:var(--bg2); border:1px solid var(--line); border-left:3px solid var(--gold-dim);
  border-radius:var(--radius-sm); padding:14px 16px; max-height:440px; overflow:auto;
}
.brief-body h2 { font-size:13px; }

/* ── Shared Wave-3 mobile-first ────────────────────────────────────── */
@media (max-width:640px){
  .rule-add .fld, .rule-add select.fld, .dial-grid .fld { width:100%; flex:1 1 100%; }
  .rule-add { gap:6px; }
  .feed-row, .rule-row { padding:11px; }
  .brief-body { font-size:13px; padding:12px; }
}

/* ════════════════════════════════════════════════════════════════════ */
/* SEA RAIL — the focused business (PRIMARY) + collapsed Engine group     */
/* ════════════════════════════════════════════════════════════════════ */

/* Collapsed "Engine (advanced)" nav group — demotes the 30 generic tabs. */
.eng-group { margin-top:8px; border-top:1px solid var(--line); padding-top:8px; }
.eng-toggle {
  display:flex; align-items:center; gap:10px; width:100%; padding:9px 12px; margin-bottom:2px;
  background:none; border:1px solid transparent; border-radius:var(--radius-sm);
  color:var(--mut); font-size:12px; letter-spacing:.5px; text-transform:uppercase; font-weight:700;
  cursor:pointer; transition:background .12s,color .12s; font-family:inherit;
}
.eng-toggle:hover { background:#0f1622; color:var(--ink2); }
.eng-toggle.open { color:var(--ink2); }
.eng-toggle .ic { width:18px; text-align:center; opacity:.85; }
.eng-toggle .eng-caret { margin-left:auto; font-size:10px; opacity:.7; }
.eng-links { display:flex; flex-direction:column; padding-left:6px; border-left:1px solid var(--line); margin-left:8px; }
.eng-links a.link { font-size:13px; }

/* On the rail-collapsed mobile nav, keep the toggle compact. */
@media (max-width:1000px){
  .eng-toggle .lbl, .eng-toggle .eng-caret { display:none; }
  .eng-links { margin-left:0; padding-left:0; border-left:0; }
}

/* ── Gate tracker (3 gates · progress vs threshold · go/no-go) ──────── */
.gate-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gate-card {
  background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px; display:flex; flex-direction:column; gap:9px;
}
.gate-card.go { border-color:rgba(61,220,132,.4); background:linear-gradient(180deg,rgba(61,220,132,.05),var(--bg2)); }
.gate-n { font-size:10px; text-transform:uppercase; letter-spacing:.7px; color:var(--mut); font-weight:700; }
.gate-label { font-size:14px; font-weight:700; margin-top:2px; color:var(--ink); }
.gate-val { font-variant-numeric:tabular-nums; }
.gate-cur { font-size:22px; font-weight:700; color:var(--gold); }
.gate-card.go .gate-cur { color:var(--green); }
.gate-badge { display:inline-block; padding:2px 9px; border-radius:6px; font-size:10px; font-weight:800; letter-spacing:.7px; border:1px solid transparent; }
.gate-badge.go { background:rgba(61,220,132,.14); color:var(--green); border-color:rgba(61,220,132,.45); }
.gate-badge.nogo { background:#161d28; color:var(--mut); border-color:var(--line2); }

/* ════════════════════════════════════════════════════════════════════ */
/* OPERATOR — the legal/ops legs (permits · payouts · custody · KYC ·     */
/*            insurance · attention queue). The audit's missing 60%.      */
/* ════════════════════════════════════════════════════════════════════ */

/* KPI cta tile — the "Open Operator" / quick-jump panel in a KPI band. */
.kpi-cta { display:flex; flex-direction:column; justify-content:center; }
.kpi-cta .btn { align-self:flex-start; }

/* Footer link to the public /verify cert page. */
.verify-link {
  display:inline-block; margin:10px 0 4px; font-size:12px; color:var(--mut);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:6px 10px;
  transition:border-color .12s,color .12s;
}
.verify-link:hover { color:var(--gold); border-color:var(--gold-dim); }
@media (max-width:1000px){ .verify-link { padding:6px; font-size:0; } .verify-link::first-letter { font-size:16px; } }

/* Attention queue — severity-coded rows. */
.attn-panel.has-attn { border-color:rgba(255,92,92,.35); }
.attn-list { display:flex; flex-direction:column; gap:8px; }
.attn-row {
  display:flex; align-items:flex-start; gap:11px; padding:11px 13px;
  background:var(--bg2); border:1px solid var(--line); border-left:3px solid var(--mut2);
  border-radius:var(--radius-sm);
}
.attn-row.sev-high { border-left-color:var(--red); background:linear-gradient(90deg,rgba(255,92,92,.06),var(--bg2)); }
.attn-row.sev-med  { border-left-color:var(--amber); }
.attn-row.sev-low  { border-left-color:var(--mut2); }
.attn-ic { font-size:15px; line-height:1.2; flex:0 0 auto; }
.attn-main { min-width:0; }
.attn-title { font-weight:600; font-size:13.5px; letter-spacing:.2px; }

/* Permit clock — breach-risk / breached row tints. */
tr.row-risk td { background:rgba(230,184,90,.05); }
tr.row-breach td { background:rgba(255,92,92,.06); }

/* Custody locate output. */
.locate-out { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-height:24px; margin-top:10px; }

/* Verify note panel (operator footer cta). */
.verify-note { border-left:3px solid var(--gold-dim); }

/* ════════════════════════════════════════════════════════════════════ */
/* CRITICAL MOBILE FIX — dashboard tables CARD-STACK at ≤640px instead of */
/* horizontally overflowing. An operator works shows from a phone.        */
/* Each <tr> becomes a self-contained card; the header row is hidden and  */
/* each <td> stacks as a line. Label-free but readable: the first cell is */
/* the card title, numeric/right cells align right.                       */
/* ════════════════════════════════════════════════════════════════════ */
@media (max-width:640px){
  .tbl-wrap { overflow:visible; border:0; background:none; border-radius:0; }
  .tbl-wrap table, .tbl-wrap thead, .tbl-wrap tbody, .tbl-wrap tr, .tbl-wrap th, .tbl-wrap td {
    display:block; width:100%;
  }
  /* Hide the header row entirely — values carry their own meaning in context. */
  .tbl-wrap thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .tbl-wrap tr {
    background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
    padding:6px 12px; margin-bottom:10px;
  }
  .tbl-wrap tbody tr:hover { background:var(--panel); }
  .tbl-wrap td {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:7px 0; border-bottom:1px solid var(--line); text-align:right;
    white-space:normal; word-break:break-word;
  }
  .tbl-wrap tr td:last-child { border-bottom:0; }
  .tbl-wrap td.num { text-align:right; justify-content:flex-end; }
  /* First cell = card title: full-width, left, emphasised. */
  .tbl-wrap td:first-child {
    justify-content:flex-start; text-align:left; font-size:14px;
    border-bottom:1px solid var(--line2); padding-bottom:9px; margin-bottom:2px;
  }
  /* Action cells (buttons) span full width for a fat tap target. */
  .tbl-wrap td .btn { flex:1 1 auto; }
}

@media (max-width:900px){ .gate-grid { grid-template-columns:1fr; } }

/* ════════════════════════════════════════════════════════════════════ */
/* RE-ARCHITECTURE — grouped nav · HOME command center · phase awareness · */
/*   guided intake · command palette · mobile bottom-nav (DASHBOARD-IA)    */
/* ════════════════════════════════════════════════════════════════════ */

/* Grouped nav generalizes the .eng-* chrome; legacy items are muted. */
.nav-group { margin-top:6px; border-top:1px solid var(--line); padding-top:6px; }
.nav-group:first-child { border-top:0; margin-top:0; padding-top:0; }
.nav a.link.legacy { opacity:.62; }
.nav a.link.legacy:hover { opacity:1; }

/* Phase pill — validation (amber) vs operating (green). */
.phase-pill {
  display:inline-block; margin-left:10px; padding:2px 8px; border-radius:20px;
  font-size:9.5px; font-weight:800; letter-spacing:.6px; border:1px solid; vertical-align:middle;
}
.phase-pill.validation { background:rgba(230,184,90,.12); color:var(--amber); border-color:rgba(230,184,90,.4); }
.phase-pill.operating  { background:rgba(61,220,132,.12); color:var(--green); border-color:rgba(61,220,132,.4); }

/* Search / command-palette launcher in the sidebar. */
.palette-btn {
  display:flex; align-items:center; gap:10px; width:calc(100% - 20px); margin:8px 10px 2px;
  padding:8px 12px; background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius-sm);
  color:var(--mut); font-size:13px; cursor:pointer; font-family:inherit; transition:border-color .12s,color .12s;
}
.palette-btn:hover { border-color:var(--gold-dim); color:var(--ink2); }
.palette-btn .ic { width:18px; text-align:center; }
.palette-btn .kbd { margin-left:auto; font-size:10px; border:1px solid var(--line2); border-radius:5px; padding:1px 5px; color:var(--mut2); }

/* HOME — phase banner. */
.phase-banner {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:11px 16px; border-radius:var(--radius); border:1px solid var(--line);
  font-size:13.5px; margin-bottom:16px; background:var(--panel);
}
.phase-banner.validation { border-left:3px solid var(--amber); }
.phase-banner.operating  { border-left:3px solid var(--green); }
.phase-banner .btn { margin-left:auto; }

/* HOME — first-run setup card. */
.setup-card { border:1px solid var(--gold-dim); background:linear-gradient(180deg,rgba(212,175,55,.05),var(--panel)); margin-bottom:16px; }

/* HOME — quick actions grid. */
.qa-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:4px; }
.qa-card {
  display:flex; align-items:center; gap:12px; text-align:left; padding:14px 16px; cursor:pointer;
  background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius); color:var(--ink);
  font-family:inherit; transition:border-color .12s,transform .12s,background .12s;
}
.qa-card:hover { border-color:var(--gold-dim); transform:translateY(-1px); background:var(--panel); }
.qa-ic { font-size:22px; line-height:1; flex:0 0 auto; }
.qa-main { display:flex; flex-direction:column; min-width:0; }
.qa-label { font-weight:700; font-size:13.5px; }
.qa-sub { color:var(--mut); font-size:11.5px; margin-top:2px; }

/* HOME — attention row action affordances. */
.attn-row .attn-act { margin-left:auto; flex:0 0 auto; align-self:center; }
.attn-go { color:var(--mut); font-size:16px; }
.attn-row:hover .attn-go { color:var(--gold); }

/* Deep-link section focus flash. */
.section-focus { outline:2px solid var(--gold-dim); outline-offset:4px; border-radius:var(--radius);
  animation:sectionFlash 1.8s ease-out; }
@keyframes sectionFlash { 0%{ outline-color:var(--gold); } 100%{ outline-color:transparent; } }

/* Rich empty state — optional CTA + "?" explainer. */
.empty-rich { flex-direction:column; gap:8px; }
.empty-q {
  margin-left:8px; width:20px; height:20px; border-radius:50%; border:1px solid var(--line2);
  background:var(--bg2); color:var(--mut); cursor:pointer; font-size:11px; font-weight:700;
}
.empty-q:hover { color:var(--gold); border-color:var(--gold-dim); }
.empty-help { font-size:12px; color:var(--mut); max-width:520px; margin-top:6px; line-height:1.5; text-align:left; }

/* Guided intake wizard — full-screen overlay reusing the wizard chrome. */
.intake-wiz { max-width:520px; }
.intake-cards { margin-bottom:8px; }
.intake-wiz .rule-row { padding:8px 0; }

/* Command palette. */
.palette-back { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:90; display:flex; justify-content:center; align-items:flex-start; padding-top:12vh; }
.palette { width:min(560px,92vw); background:var(--panel); border:1px solid var(--line2); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.palette-input { width:100%; padding:15px 18px; background:var(--bg2); border:0; border-bottom:1px solid var(--line); color:var(--ink); font-size:15px; outline:none; }
.palette-results { max-height:50vh; overflow:auto; padding:6px; }
.palette-row { display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:var(--radius-sm); cursor:pointer; }
.palette-row.active, .palette-row:hover { background:var(--gold-soft); }
.palette-row .pr-ic { width:20px; text-align:center; }
.palette-row .pr-label { flex:1; font-size:13.5px; }
.palette-row .pr-hint { font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--mut2); border:1px solid var(--line); border-radius:5px; padding:1px 7px; }

/* Mobile bottom-nav — hidden on desktop. */
.bottom-nav { display:none; }

/* ── Mobile: real bottom-nav for the phone operator (≤700px) ─────────── */
@media (max-width:700px){
  .shell { grid-template-columns:1fr; }
  /* Collapse the full sidebar; the bottom-nav drives navigation instead. */
  .nav { position:fixed; bottom:0; left:0; right:0; top:auto; height:auto; flex-direction:row;
    z-index:60; border-right:0; border-top:1px solid var(--line); display:none; }
  .bottom-nav {
    display:flex; position:fixed; bottom:0; left:0; right:0; z-index:65; height:58px;
    background:var(--bg2); border-top:1px solid var(--line);
  }
  .bn-tab {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
    background:none; border:0; color:var(--mut); font-family:inherit; cursor:pointer; padding:6px 2px;
  }
  .bn-tab.active { color:var(--gold); }
  .bn-ic { font-size:18px; line-height:1; }
  .bn-lbl { font-size:10px; letter-spacing:.2px; }
  .content { padding-bottom:78px; }
  .qa-grid { grid-template-columns:1fr 1fr; }
  .phase-banner .btn { margin-left:0; width:100%; }
  .palette { width:96vw; }
  /* Fatter tap targets on the HOME attention Pay/→ buttons. */
  .attn-row .btn.sm { padding:8px 14px; }
  .flip-grid { grid-template-columns:1fr; }
}

/* ── FLIP SCANNER — the cash engine view ─────────────────────────────── */
.flip-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; }
.flip-card { padding:16px; }
.flip-under { font-size:34px; font-weight:800; line-height:1; color:var(--gold); }
.flip-under.hot { color:#3fbf6b; }
.flip-under span { font-size:12px; font-weight:500; color:var(--mut); letter-spacing:.2px; }
.flip-name { margin:12px 0 4px; font-size:15px; }
.flip-flow { margin-bottom:10px; }
.flip-metrics { display:grid; grid-template-columns:repeat(2,1fr); gap:9px 16px; padding-top:11px; border-top:1px solid var(--line); }
.flip-metric-v { font-family:'SF Mono',ui-monospace,Menlo,Consolas,monospace; font-size:14px; font-weight:600; margin-top:1px; }
.stat .stat-v { font-size:22px; font-weight:800; }
.badge.FLIP { background:rgba(212,175,55,.18); color:var(--gold); border:1px solid rgba(212,175,55,.5); }
