
/* THEME: terminal — matched to the poly.intel reference.
   Near-black with a blue cast, ELECTRIC BLUE as the single accent, mint/coral for direction.
   The blue is our own (#4c7dff text/rings, #3a63ff fills) — deliberately NOT the venue's brand hex,
   and no venue logo or wordmark anywhere: this product must never read as the venue itself.
   Series check (dataviz validate_palette.js, dark, surface #0d1119): #2ea86a,#4c7dff →
   lightness PASS, chroma PASS, CVD deutan ΔE 26.1, normal ΔE 28.2, contrast PASS. */
:root {
  --bg:          #07090f;
  --surface:     #0d1119;
  --surface-2:   #121722;
  --surface-3:   #1a2130;
  --border:      #222b3c;
  --border-soft: #151c28;

  --text:        #e8edf5;
  --text-dim:    #8d97a6;
  --text-faint:  #5a6474;

  --accent:        #4c7dff;   /* text, rings, underline, sparkline — 5.2:1 on --bg */
  --accent-dim:    #2a47a8;
  --accent-strong: #3a63ff;   /* filled buttons, white label ≥ 4.5:1 */
  --on-accent:     #ffffff;
  --accent-warm:   #4c7dff;   /* brand mark + "new"/LIVE markers follow the accent */
  --yes:         #2ea86a;
  --no:          #e5534b;
  --warn:        #d29922;
  --warn-bg:     #21190a;
  --feed-bg:     #0b0f16;

  --hairline:        rgba(160,180,255,.07);
  --hairline-strong: rgba(170,190,255,.12);
  --hairline-grad:   linear-gradient(180deg, rgba(170,190,255,.14) 0%, rgba(170,190,255,.05) 40%, rgba(170,190,255,.035) 100%);
  --panel-bg:        linear-gradient(180deg, #0e131c 0%, #0b0f17 100%);
}

/* blue radial glow behind the header — fixed to the top of the page, not the viewport */
body {
  background:
    radial-gradient(1200px 420px at 50% -160px, rgba(58,99,255,.28), transparent 70%),
    radial-gradient(600px 300px at 12% -120px, rgba(76,125,255,.10), transparent 70%),
    var(--bg);
  background-repeat: no-repeat;
}
.topbar { background: color-mix(in srgb, #07090f 66%, transparent); border-bottom-color: rgba(170,190,255,.08); }

/* square brand mark, electric */
.brand-mark { border-radius: 2px; background: linear-gradient(135deg, #7da0ff, #3a63ff); }

/* the reference marks the active nav item with a rule beneath, not a fill */
.nav a { border-radius: var(--r-sm); }
.nav a.on { background: transparent; color: var(--text); box-shadow: none; }
.nav a.on::after {
  content: ''; position: absolute; left: 10px; right: 10px; bottom: -13px; height: 2px; border-radius: 2px;
  background: var(--accent); box-shadow: 0 0 12px rgba(76,125,255,.8), 0 0 2px rgba(76,125,255,.9);
}
@media (max-width: 760px) { .nav a.on::after { bottom: -4px; } }

/* KPI tiles: large mono numbers, blue lift on hover */
.kpi .v { font-size: 30px; }
.kpi:hover { box-shadow: var(--shadow-2), 0 0 0 1px rgba(76,125,255,.18), 0 10px 40px -18px rgba(58,99,255,.55); }
@media (max-width: 760px) { .kpi .v { font-size: 25px; } }
.pagehead h1 { font-size: 30px; }
@media (max-width: 760px) { .pagehead h1 { font-size: 24px; } }

.mkt-icon { border-color: rgba(170,190,255,.12); font-size: 15px; }
.delta.up   { color: #3cc47f; background: rgba(46,168,106,.14); border-color: rgba(46,168,106,.26); }
.delta.down { color: #f0645c; background: rgba(229,83,75,.14);  border-color: rgba(229,83,75,.26); }

/* segmented control: active segment tinted blue */
.tabs button.on, .seg button.on, .seg a.on, .seg [aria-pressed=true] {
  background: linear-gradient(180deg, rgba(76,125,255,.26), rgba(58,99,255,.16));
  color: #fff; box-shadow: inset 0 0 0 1px rgba(76,125,255,.45), 0 2px 10px -2px rgba(58,99,255,.5);
}

/* rows: blue edge on hover */
table.grid tbody tr:hover { background: rgba(76,125,255,.045); }

/* category dots: crypto keeps its original orange (the accent moved to blue, the category did not) */
.chip.crypto::before { background: #f0883e; }
.chip.tech::before   { background: #4c7dff; }

.statusline b { color: var(--text-dim); }
