:root {
  --bg:        #0a0c11;
  --panel:     #13171f;
  --panel-2:   #171c26;
  --line:      #232b39;
  --line-soft: #1a212b;
  --ink:       #ece7db;
  --ink-dim:   #b6b3a7;
  --muted:     #717a8b;
  --green:     #5ad29f;
  --red:       #f17b72;
  --brass:     #d8b25a;
  --crypto:    #e8a24c;
  --politics:  #6ea8ff;
  --sports:    #e879b0;
  --other:     #b89bff;

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, Menlo, monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

/* atmospheric backdrop — subtle gradient mesh + grain, no flat color */
.atmosphere {
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60% 50% at 12% -5%, rgba(110,168,255,.10), transparent 70%),
    radial-gradient(55% 45% at 98% 0%, rgba(216,178,90,.08), transparent 65%),
    radial-gradient(80% 60% at 50% 120%, rgba(90,210,159,.06), transparent 70%);
}
.atmosphere::after {
  content: ""; position: absolute; inset: 0; opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- header ------------------------------------------------------------- */
.site-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; flex-wrap: wrap;
  max-width: 1280px; margin: 0 auto; padding: 30px 28px 18px;
}
.brand { display: flex; align-items: center; gap: 14px; }
.mark {
  width: 30px; height: 30px; border-radius: 7px; flex: none; display: block;
}
h1 {
  margin: 0; font-family: var(--serif); font-weight: 600;
  font-size: 25px; letter-spacing: -.01em; line-height: 1;
}
.kicker { margin: 5px 0 0; color: var(--muted); font-size: 12.5px; letter-spacing: .01em; }

.statusbar { font-family: var(--mono); font-size: 11px; color: var(--muted); text-align: right; }
.statusbar .pills { display: flex; gap: 7px; justify-content: flex-end; margin-bottom: 6px; }
.pill {
  padding: 3px 9px; border-radius: 999px; font-size: 10px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; border: 1px solid transparent;
  display: inline-flex; align-items: center; gap: 6px;
}
.pill.live   { color: var(--green);    background: rgba(90,210,159,.10); border-color: rgba(90,210,159,.25); }
.pill.mock   { color: var(--brass);    background: rgba(216,178,90,.10); border-color: rgba(216,178,90,.25); }
.pill.ro     { color: var(--politics); background: rgba(110,168,255,.10); border-color: rgba(110,168,255,.22); }
.pill.on     { color: var(--green);    background: rgba(90,210,159,.10); border-color: rgba(90,210,159,.25); }
.pill.off    { color: var(--muted);    background: rgba(113,122,139,.10); border-color: rgba(113,122,139,.25); }
.pill.err    { color: var(--red);      background: rgba(241,123,114,.10); border-color: rgba(241,123,114,.3); }
.pill .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill.live .dot, .pill.on .dot { animation: pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .25; } }

/* ---- advisory ----------------------------------------------------------- */
.advisory {
  max-width: 1280px; margin: 4px auto 0; padding: 13px 18px;
  width: calc(100% - 56px);
  background: linear-gradient(90deg, rgba(216,178,90,.09), rgba(216,178,90,.03));
  border: 1px solid rgba(216,178,90,.22); border-left-width: 3px;
  border-radius: 10px; color: var(--ink-dim); font-size: 12.5px; line-height: 1.55;
}
.advisory strong { color: var(--ink); font-weight: 600; }
.advisory-tag {
  font-family: var(--mono); font-size: 10px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .1em; color: var(--brass); margin-right: 9px;
}
.advisory-tag.warn { color: var(--red); }
.advisory.bt-warn {
  background: linear-gradient(90deg, rgba(241,123,114,.09), rgba(241,123,114,.03));
  border-color: rgba(241,123,114,.22);
}

/* ---- tabs --------------------------------------------------------------- */
.tabs { display: inline-flex; gap: 3px; padding: 4px; margin: 4px 0 2px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 10px; }
.tab {
  font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .03em;
  color: var(--muted); background: transparent; border: none; cursor: pointer;
  padding: 7px 16px; border-radius: 7px; transition: color .15s ease, background .15s ease;
}
.tab:hover { color: var(--ink-dim); }
.tab.on { color: var(--bg); background: var(--brass); }

/* ---- summary metrics ---------------------------------------------------- */
.summary {
  max-width: 1280px; margin: 22px auto 6px; padding: 0 28px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.metric {
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
  border: 1px solid var(--line); border-radius: 12px; padding: 15px 17px;
  display: flex; flex-direction: column; gap: 3px;
}
.metric-val { font-family: var(--serif); font-size: 28px; font-weight: 500; letter-spacing: -.02em; line-height: 1.05; }
.metric-lab { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; }

/* ---- blocks ------------------------------------------------------------- */
main { max-width: 1280px; margin: 0 auto; padding: 14px 28px 40px; }
.block { margin-top: 30px; }
.block-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.block-head h2, .history summary h2 {
  margin: 0; font-family: var(--serif); font-size: 18px; font-weight: 600; letter-spacing: -.01em;
}
.block-sub { color: var(--muted); font-size: 12px; }

/* days-until-resolution segmented filter */
.seg {
  margin-left: auto; display: inline-flex; gap: 2px; padding: 3px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 9px;
}
.seg-btn {
  font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .02em;
  color: var(--muted); background: transparent; border: none; cursor: pointer;
  padding: 5px 11px; border-radius: 6px; transition: color .15s ease, background .15s ease;
}
.seg-btn:hover { color: var(--ink-dim); }
.seg-btn.on { color: var(--bg); background: var(--brass); }

/* ---- ranked signal table ----------------------------------------------- */
.table-wrap {
  overflow-x: auto; border: 1px solid var(--line); border-radius: 13px;
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
}
.sig-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.sig-table thead th {
  text-align: left; font-family: var(--mono); font-size: 10px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em; color: var(--muted);
  padding: 12px 7px; border-bottom: 1px solid var(--line); white-space: nowrap;
}
.sig-table tbody td { padding: 11px 7px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.sig-row { transition: background .15s ease; }
.sig-row:hover { background: rgba(255,255,255,.025); }
.sig-row:last-child td { border-bottom: none; }

.c-rank { font-family: var(--mono); font-size: 12px; color: var(--muted); width: 30px; }

.c-conv { width: 116px; }
.conv-num { font-family: var(--mono); font-size: 14px; font-weight: 600; display: block; margin-bottom: 5px; }
.conv-num.high { color: var(--brass); }
.conv-num.notable { color: var(--ink-dim); }
.conv-num.standard { color: var(--muted); }
.conv-bar { display: block; height: 4px; border-radius: 999px; background: var(--line); overflow: hidden; }
.conv-fill { display: block; height: 100%; border-radius: 999px; }
.conv-fill.high { background: var(--brass); }
.conv-fill.notable { background: var(--politics); }
.conv-fill.standard { background: var(--muted); }
.conv-flag {
  display: inline-block; margin-top: 5px; font-family: var(--mono); font-size: 9px;
  font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--muted);
  border: 1px solid var(--line); border-radius: 5px; padding: 1px 5px;
}

/* ---- conviction explainer tab ------------------------------------------ */
.conv-formula { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 8px; }
.cf-row {
  display: flex; gap: 16px; align-items: flex-start; padding: 14px 18px;
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
  border: 1px solid var(--line); border-radius: 12px;
}
.cf-w {
  font-family: var(--serif); font-size: 26px; font-weight: 600; line-height: 1;
  color: var(--brass); min-width: 58px;
}
.cf-body { display: flex; flex-direction: column; gap: 4px; }
.cf-name { font-size: 14px; font-weight: 600; color: var(--ink); }
.cf-desc { font-size: 12.5px; color: var(--ink-dim); line-height: 1.5; }
.cf-desc strong { color: var(--ink); font-weight: 600; }
.conv-tiers { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; }
.ct { font-size: 12.5px; color: var(--ink-dim); line-height: 1.5; }
.ct strong { color: var(--ink); }
.ct-dot { display: inline-block; width: 9px; height: 9px; border-radius: 999px; margin-right: 8px; vertical-align: middle; }
.ct-dot.high { background: var(--brass); }
.ct-dot.notable { background: var(--politics); }
.ct-dot.standard { background: var(--muted); }

.c-market {
  font-family: var(--serif); font-size: 14px; color: var(--ink);
  max-width: 200px; line-height: 1.3;
}
.c-market .mkt-title { display: block; }
.c-market .mkt-date {
  display: block; font-family: var(--mono); font-size: 11px;
  color: var(--muted); margin-top: 2px;
}
.c-bet { white-space: nowrap; }
.pos {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 7px;
}
.pos.yes { color: var(--green); background: rgba(90,210,159,.12); }
.pos.no  { color: var(--red);   background: rgba(241,123,114,.12); }
.bet-px { font-family: var(--mono); font-size: 12px; color: var(--ink-dim); margin-left: 8px; }
.c-size { font-family: var(--mono); font-size: 13.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.c-resolves { font-family: var(--mono); font-size: 12.5px; color: var(--ink-dim); white-space: nowrap; }
.c-resolves.past { color: var(--muted); font-style: italic; }
.c-resolves .res-rel { display: block; }
.c-resolves .res-date { display: block; font-size: 11px; color: var(--muted); margin-top: 1px; }

.c-spec { white-space: nowrap; }
.spec-dot { display: inline-block; width: 7px; height: 7px; border-radius: 2px; background: var(--cat, var(--muted)); margin-right: 7px; vertical-align: middle; }
.spec-meta { display: inline-flex; flex-direction: column; gap: 2px; vertical-align: middle; }
.spec-name { color: var(--ink); font-size: 12.5px; font-weight: 500; }
.spec-sub { font-family: var(--mono); font-size: 10.5px; font-weight: 400; color: var(--muted); }
.spec-sub.thin { font-style: italic; }
.spec-sub.none { font-style: italic; }
.c-whales { font-family: var(--mono); font-size: 12.5px; text-align: center; color: var(--muted); }
.c-whales.multi { color: var(--green); font-weight: 600; }
.c-when { font-family: var(--mono); font-size: 11px; color: var(--muted); white-space: nowrap; }

.empty {
  border: 1px dashed var(--line); border-radius: 12px; padding: 26px;
  text-align: center; color: var(--muted); font-size: 13px; font-style: italic;
}

.research-def {
  margin: 0 0 14px; padding: 11px 14px; font-size: 13px; line-height: 1.55;
  color: var(--ink); background: var(--panel-2, rgba(255,255,255,0.02));
  border-left: 2px solid var(--accent, var(--line)); border-radius: 8px;
}
.research-def strong { font-weight: 600; }

/* ---- backtest table ----------------------------------------------------- */
.bt-table { min-width: 640px; }
.bt-thr { font-family: var(--mono); font-size: 14px; font-weight: 600; color: var(--brass); }
.bt-n { font-family: var(--mono); font-size: 13px; color: var(--ink-dim); white-space: nowrap; }
.bt-pl { font-family: var(--mono); font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.bt-pl.pos { color: var(--green); }
.bt-pl.neg { color: var(--red); }
.bt-foot { margin: 12px 2px 0; color: var(--muted); font-size: 11.5px; line-height: 1.5; font-style: italic; }
.bt-baseline { background: rgba(216, 178, 90, 0.06); }
.bt-baseline .bt-thr { color: var(--ink-dim); font-style: italic; }
.bt-active { background: rgba(90, 210, 159, 0.08); box-shadow: inset 3px 0 0 var(--green); }
.bt-active .bt-thr { color: var(--green); }
.bt-live-badge { display: inline-block; margin-left: 8px; padding: 1px 6px; border-radius: 4px;
  font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: 0.05em;
  color: var(--bg); background: var(--green); vertical-align: middle; }

/* ---- hover tooltips (definitions) --------------------------------------- */
.tip { border-bottom: 1px dotted var(--ink-dim); cursor: help; outline: none; }
.tip:hover, .tip:focus-visible { color: var(--green); border-bottom-color: var(--green); }
.tipbox { position: fixed; z-index: 200; max-width: 280px; padding: 8px 11px;
  border-radius: 7px; background: var(--panel-2); color: var(--ink);
  border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  font-family: var(--mono); font-size: 11.5px; line-height: 1.5; pointer-events: none;
  opacity: 0; transform: translateY(3px); transition: opacity 0.12s ease, transform 0.12s ease; }
.tipbox.on { opacity: 1; transform: translateY(0); }

/* ---- buy-criteria backtest card ----------------------------------------- */
.bt-criteria { margin: 4px 0 22px; }
.btc-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
  padding: 16px 18px;
}
.btc-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin-bottom: 14px;
}
.btc-title { font-family: var(--serif); font-size: 16px; color: var(--ink); }
.btc-crit { font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.btc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.btc-tile {
  border: 1px solid var(--line-soft); border-radius: 9px;
  background: rgba(255,255,255,.012); padding: 12px 13px;
}
.btc-val { display: block; font-family: var(--mono); font-size: 20px; font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
.btc-val.pos { color: var(--green); }
.btc-val.neg { color: var(--red); }
.btc-lab { display: block; margin-top: 5px; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.btc-sub { display: block; margin-top: 3px; font-family: var(--mono); font-size: 11px; color: var(--ink-dim); }
.btc-empty { color: var(--muted); font-style: italic; font-size: 13px; }
.btc-note { margin: 13px 2px 0; color: var(--muted); font-size: 11px; line-height: 1.5; font-style: italic; }
@media (max-width: 720px) { .btc-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---- specialist chips --------------------------------------------------- */
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  display: flex; align-items: center; gap: 10px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 14px 8px 10px;
}
.chip .rk {
  font-family: var(--mono); font-size: 11px; font-weight: 600; color: var(--bg);
  background: var(--cat, var(--muted)); width: 22px; height: 22px; border-radius: 50%;
  display: grid; place-items: center;
}
.chip .meta { display: flex; flex-direction: column; line-height: 1.25; }
.chip .cat { font-size: 11px; font-weight: 600; text-transform: capitalize; }
.chip .pnl { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.chip .winrate { font-family: var(--mono); font-size: 10.5px; font-weight: 600; color: var(--green); margin-top: 1px; }
.chip .winrate.thin { color: var(--muted); font-weight: 400; font-style: italic; }

/* ---- history (collapsible) --------------------------------------------- */
.history { border-top: 1px solid var(--line-soft); padding-top: 6px; }
.history summary {
  list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 12px;
  padding: 18px 2px; user-select: none;
}
.history summary::-webkit-details-marker { display: none; }
.history summary::after {
  content: "▸"; margin-left: auto; color: var(--muted); font-size: 12px;
  transition: transform .2s ease;
}
.history[open] summary::after { transform: rotate(90deg); }
.hist-list { display: flex; flex-direction: column; }
.hist-row {
  display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center;
  padding: 10px 4px; border-top: 1px solid var(--line-soft); font-size: 12.5px;
}
.hist-row:first-child { border-top: none; }
.hist-q { color: var(--ink-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hist-bet { font-family: var(--mono); font-size: 11.5px; }
.hist-bet.yes { color: var(--green); } .hist-bet.no { color: var(--red); }
.hist-when { font-family: var(--mono); font-size: 11px; color: var(--muted); white-space: nowrap; }

/* ---- footer ------------------------------------------------------------- */
footer {
  max-width: 1280px; margin: 0 auto; padding: 22px 28px 40px;
  color: var(--muted); font-size: 11.5px; font-family: var(--mono);
  border-top: 1px solid var(--line-soft);
}

@media (max-width: 720px) {
  .summary { grid-template-columns: repeat(2, 1fr); }
  .statusbar { text-align: left; }
  .statusbar .pills { justify-content: flex-start; }
}

.arb-summary { color: var(--ink-dim); font-family: "IBM Plex Mono", monospace; font-size: 13px; margin: 4px 0 14px; }
.arb-h { font-size: 14px; margin: 18px 0 8px; color: var(--ink-dim); font-weight: 600; }
.arb-table .arb-mkt { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.arb-conf { font-family: "IBM Plex Mono", monospace; color: var(--brass); }
.arb-stat.pos { color: var(--green); }
.arb-stat.neg { color: var(--muted); }

.chip .clv { display: block; font-family: var(--mono); font-size: 11px; margin-top: 2px; }
.chip .clv.pos { color: var(--green); }
.chip .clv.neg { color: var(--red); }

.crypto-list { display: flex; flex-direction: column; gap: 14px; }
.cw-card { border: 1px solid var(--line, #2a2a2a); border-left: 3px solid var(--cat, var(--brass)); border-radius: 6px; padding: 12px 14px; background: rgba(255,255,255,0.015); }
.cw-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.cw-rk { font-family: var(--mono); font-size: 12px; color: var(--cat, var(--brass)); font-weight: 600; }
.cw-addr { font-family: var(--mono); font-size: 14px; font-weight: 600; }
.cw-pnl { font-family: var(--mono); font-size: 12px; color: var(--green); }
.cw-count { font-size: 12px; color: var(--ink-dim); margin-left: auto; }
.cw-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cw-table td { padding: 5px 8px; font-size: 13px; border-top: 1px solid var(--line, #2a2a2a); vertical-align: top; }
.cw-mkt { width: 36%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cw-side { font-family: var(--mono); white-space: nowrap; }
.cw-side.yes { color: var(--green); }
.cw-side.no { color: var(--red); }
.cw-size { font-family: var(--mono); text-align: right; white-space: nowrap; }
.cw-when, .cw-res { font-family: var(--mono); font-size: 11px; color: var(--ink-dim); white-space: nowrap; }

.edge-grid { width: 100%; border-collapse: collapse; }
.edge-grid th, .edge-grid td { border: 1px solid var(--line, #2a2a2a); padding: 8px; text-align: center; vertical-align: top; }
.edge-grid th { font-family: var(--mono); font-size: 11px; color: var(--muted, #999); font-weight: 500; }
.edge-band { text-align: right; white-space: nowrap; }
.edge-cell { position: relative; }
.edge-cell.untrusted { opacity: 0.45; }
.edge-cell.qualify { outline: 2px solid var(--green); outline-offset: -2px; }
.edge-roi { display: block; font-family: var(--mono); font-size: 16px; font-weight: 600; }
.edge-roi.pos { color: var(--green); }
.edge-roi.neg { color: var(--red); }
.edge-roi.na { color: var(--muted, #999); }
.edge-ideal, .edge-n { display: block; font-family: var(--mono); font-size: 10px; color: var(--muted, #999); margin-top: 2px; }
.edge-badge { display: inline-block; margin-top: 4px; font-size: 10px; color: var(--green); font-weight: 600; }

.c-edge { font-family: var(--mono); font-size: 12.5px; white-space: nowrap; }
.c-edge.pos { color: var(--green); }
.c-edge.neg { color: var(--red); }
.c-edge.na { color: var(--muted, #999); }
.rule-toggle { display: inline-flex; margin-left: 8px; }
.rule-btn { font-family: var(--mono); font-size: 11px; padding: 4px 10px; border-radius: 6px;
  border: 1px solid var(--line, #2a2a2a); background: transparent; color: var(--muted, #999); cursor: pointer; }
.rule-btn.on { border-color: var(--green); color: var(--green); }

/* ---- predictions tab ---- */
.pred-list { display: flex; flex-direction: column; gap: 14px; }
.pred-h { margin: 8px 0 2px; font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; color: var(--muted); }
.pred-h:first-child { margin-top: 0; }
.pred-card { border: 1px solid var(--line); border-radius: 10px; padding: 13px 15px;
  background: linear-gradient(180deg, var(--panel-2), var(--panel)); }
.pred-card.btc { border-left: 3px solid var(--crypto); }
.pred-card.rates { border-left: 3px solid var(--brass); }
.pred-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.pred-card-title { font-size: 13.5px; font-weight: 600; color: var(--ink); }
.pred-card-when { font-family: var(--mono); font-size: 11px; color: var(--muted); white-space: nowrap; }
.pv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pv { padding: 11px 13px; border: 1px solid var(--line-soft); border-radius: 8px;
  background: rgba(255,255,255,0.015); }
.pv.whale { border-color: rgba(90,210,159,.22); }
.pv-lab { display: block; font-family: var(--mono); font-size: 10px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.pv.whale .pv-lab { color: var(--green); }
.pv-val { display: block; margin-top: 5px; font-family: var(--mono); font-size: 22px;
  font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
.pv-val.muted { font-size: 15px; color: var(--muted); }
.pv-sub { display: block; margin-top: 4px; font-family: var(--mono); font-size: 10.5px; color: var(--ink-dim); }
.cuts-bars { display: flex; flex-direction: column; gap: 5px; margin-top: 12px; }
.cuts-bar { display: grid; grid-template-columns: 64px 1fr 38px; align-items: center; gap: 9px; }
.cuts-k { font-family: var(--mono); font-size: 11px; color: var(--ink-dim); white-space: nowrap; }
.cuts-track { height: 7px; border-radius: 4px; background: rgba(255,255,255,0.05); overflow: hidden; }
.cuts-fill { display: block; height: 100%; background: var(--brass); border-radius: 4px; }
.cuts-p { font-family: var(--mono); font-size: 11px; color: var(--ink); text-align: right; }
.mortgage-proxy { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px;
  margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line-soft); }
.mp-tag { font-family: var(--mono); font-size: 9px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .1em; color: var(--bg); background: var(--brass); padding: 2px 6px; border-radius: 4px; }
.mp-est { font-family: var(--mono); font-size: 18px; font-weight: 600; color: var(--ink); }
.mp-lab { font-size: 12px; color: var(--ink-dim); }
.mp-note { flex-basis: 100%; font-family: var(--mono); font-size: 10.5px; line-height: 1.5; color: var(--muted); }
@media (max-width: 560px) { .pv-row { grid-template-columns: 1fr; } }
