/* ═══════════════════════════════════════════════════════
   RE::DACT TICKER BAR — fixed bottom, desktop only
   ═══════════════════════════════════════════════════════ */

#ticker {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 36px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  z-index: 9999;
  border-top: 1px solid rgba(0,0,0,.25);
  transition: background .25s;
  font-family: 'Inter', system-ui, sans-serif;
}

/* LIVE PILL */
#live-pill {
  flex-shrink: 0; width: 62px;
  display: flex; align-items: center; justify-content: center; gap: 5px;
  background: rgba(0,0,0,.18);
  border-right: 1px solid rgba(0,0,0,.18);
}
.ldot { width:5px; height:5px; border-radius:50%; animation:ticker-pulse 1.5s ease-in-out infinite; }
@keyframes ticker-pulse { 0%,100%{opacity:1} 50%{opacity:.15} }
.ltxt { font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; }

/* CRAWLER */
#craw-wrap { flex:3; overflow:hidden; position:relative; min-width:0; }
#craw-wrap::before, #craw-wrap::after {
  content:''; position:absolute; top:0; bottom:0; width:28px; z-index:2; pointer-events:none;
}
#craw-wrap::before { left:0; }
#craw-wrap::after  { right:0; }
#craw-track { display:flex; align-items:center; height:36px; white-space:nowrap; will-change:transform; }
.ci { display:inline-flex; align-items:center; gap:7px; padding:0 16px; height:100%; cursor:pointer; flex-shrink:0; }
.ci:hover { background:rgba(0,0,0,.1); }
.cc { font-family:'IBM Plex Mono',monospace; font-size:7.5px; font-weight:600; letter-spacing:.13em; padding:2px 5px; border-radius:2px; text-transform:uppercase; flex-shrink:0; background:rgba(0,0,0,.18); }
.ct { font-size:11px; font-weight:400; }
.cs-src { font-family:'IBM Plex Mono',monospace; font-size:7px; font-weight:500; letter-spacing:.1em; flex-shrink:0; opacity:.45; padding:2px 4px; }
.cdots { font-size:9px; flex-shrink:0; padding:0 2px; opacity:.25; }

/* DIVIDER */
#div-line { flex-shrink:0; width:1px; background:rgba(0,0,0,.2); }

/* MARKET PANEL */
#mkt { flex:1; position:relative; overflow:hidden; cursor:pointer; min-width:0; }
.mv { position:absolute; inset:0; display:flex; align-items:center; opacity:0; transform:translateY(4px); transition:opacity .3s,transform .3s; pointer-events:none; padding:0 8px; }
.mv.active  { opacity:1; transform:translateY(0); pointer-events:auto; }
.mv.exiting { opacity:0; transform:translateY(-4px); }
.mv-row { display:flex; align-items:center; width:100%; height:100%; }
.mi { flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:0 6px; overflow:hidden; }
.mi + .mi { border-left:1px solid rgba(0,0,0,.18); }
.mi-n { font-family:'IBM Plex Mono',monospace; font-size:6.5px; letter-spacing:.06em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:100%; opacity:.75; }
.mi-bot { display:flex; align-items:baseline; gap:3px; }
.mi-v { font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500; white-space:nowrap; }
.mi-c { font-family:'IBM Plex Mono',monospace; font-size:7.5px; white-space:nowrap; }
#ndots { position:absolute; bottom:4px; right:6px; display:flex; gap:3px; }
.nd { width:3px; height:3px; border-radius:50%; background:rgba(0,0,0,.25); }
.nd.on { background:rgba(0,0,0,.55); }

/* ═══════════════════════════════════════════════════════
   THEMES — synced with RE::DACT body classes
   ═══════════════════════════════════════════════════════ */

/* ── DARK (default) ── */
#ticker.t-dark { background:#0a0a0a; border-top-color:#2a2a2a; }
#ticker.t-dark .ltxt,
#ticker.t-dark .ct,
#ticker.t-dark .mi-v,
#ticker.t-dark .mi-n  { color:#f0f0f0; }
#ticker.t-dark .ldot  { background:#f0f0f0; }
#ticker.t-dark #craw-wrap::before { background:linear-gradient(to right,#0a0a0a,transparent); }
#ticker.t-dark #craw-wrap::after  { background:linear-gradient(to left, #0a0a0a,transparent); }
#ticker.t-dark #div-line   { background:#2a2a2a; }
#ticker.t-dark .mi + .mi   { border-color:#2a2a2a; }
#ticker.t-dark .nd         { background:#2a2a2a; }
#ticker.t-dark .nd.on      { background:#f0f0f0; }
#ticker.t-dark .up         { color:#4ade80; }
#ticker.t-dark .down       { color:#f87171; }
#ticker.t-dark .cp  { background:rgba(100,130,210,.15); color:#7a9de0; }
#ticker.t-dark .ce  { background:rgba(60,180,160,.15);  color:#3cb4a0; }
#ticker.t-dark .cs  { background:rgba(240,160,60,.15);  color:#f0a830; }
#ticker.t-dark .cte { background:rgba(160,120,240,.15); color:#a078f0; }
#ticker.t-dark .cw  { background:rgba(60,200,220,.15);  color:#40c8dc; }
#ticker.t-dark .co  { background:rgba(240,100,150,.15); color:#f07898; }
#ticker.t-dark .cr  { background:rgba(100,180,80,.15);  color:#68b450; }
#ticker.t-dark .cx  { background:rgba(200,200,200,.1);  color:#999; }
#ticker.t-dark .cs-src { color:#888; }
#ticker.t-dark .cdots  { color:#555; }

/* ── BLUE ── */
#ticker.t-blue { background:#1e3a5f; border-top-color:#162d4a; }
#ticker.t-blue .ltxt,
#ticker.t-blue .ct,
#ticker.t-blue .mi-v,
#ticker.t-blue .mi-n  { color:#ffffff; }
#ticker.t-blue .ldot  { background:#ffffff; }
#ticker.t-blue #craw-wrap::before { background:linear-gradient(to right,#1e3a5f,transparent); }
#ticker.t-blue #craw-wrap::after  { background:linear-gradient(to left, #1e3a5f,transparent); }
#ticker.t-blue #div-line   { background:rgba(255,255,255,.15); }
#ticker.t-blue .mi + .mi   { border-color:rgba(255,255,255,.15); }
#ticker.t-blue .nd         { background:rgba(255,255,255,.2); }
#ticker.t-blue .nd.on      { background:#ffffff; }
#ticker.t-blue .up         { color:#86efac; }
#ticker.t-blue .down       { color:#fca5a5; }
#ticker.t-blue .cp  { background:rgba(255,255,255,.18); color:#ffffff; }
#ticker.t-blue .ce  { background:rgba(255,255,255,.1);  color:#bdd7f0; }
#ticker.t-blue .cs  { background:rgba(255,200,100,.12); color:#ffd080; }
#ticker.t-blue .cte { background:rgba(200,150,255,.1);  color:#d8b4fe; }
#ticker.t-blue .cw  { background:rgba(100,220,255,.1);  color:#80deea; }
#ticker.t-blue .co  { background:rgba(255,150,200,.1);  color:#f48fb1; }
#ticker.t-blue .cr  { background:rgba(150,255,150,.1);  color:#a5d6a7; }
#ticker.t-blue .cx  { background:rgba(255,255,255,.08); color:rgba(255,255,255,.5); }
#ticker.t-blue .cs-src { color:rgba(255,255,255,.4); }
#ticker.t-blue .cdots  { color:rgba(255,255,255,.2); }

/* ── RED ── */
#ticker.t-red { background:#b91c1c; border-top-color:#991b1b; }
#ticker.t-red .ltxt,
#ticker.t-red .ct,
#ticker.t-red .mi-v,
#ticker.t-red .mi-n  { color:#ffffff; }
#ticker.t-red .ldot  { background:#ffffff; }
#ticker.t-red #craw-wrap::before { background:linear-gradient(to right,#b91c1c,transparent); }
#ticker.t-red #craw-wrap::after  { background:linear-gradient(to left, #b91c1c,transparent); }
#ticker.t-red .mi-n { opacity:1; }
#ticker.t-red #div-line   { background:rgba(255,255,255,.2); }
#ticker.t-red .mi + .mi   { border-color:rgba(255,255,255,.2); }
#ticker.t-red .nd         { background:rgba(255,255,255,.25); }
#ticker.t-red .nd.on      { background:#ffffff; }
#ticker.t-red .up         { color:#bbf7d0; }
#ticker.t-red .down       { color:#fecaca; }
#ticker.t-red .cp  { background:rgba(255,255,255,.2);  color:#ffffff; }
#ticker.t-red .ce  { background:rgba(255,255,255,.1);  color:#fecaca; }
#ticker.t-red .cs  { background:rgba(255,200,100,.12); color:#fff3e0; }
#ticker.t-red .cte { background:rgba(200,150,255,.1);  color:#e9d5ff; }
#ticker.t-red .cw  { background:rgba(100,220,255,.1);  color:#b2ebf2; }
#ticker.t-red .co  { background:rgba(0,0,0,.18);       color:#fce4ec; }
#ticker.t-red .cr  { background:rgba(150,255,150,.1);  color:#bbf7d0; }
#ticker.t-red .cx  { background:rgba(255,255,255,.08); color:rgba(255,255,255,.5); }
#ticker.t-red .cs-src { color:rgba(255,255,255,.4); }
#ticker.t-red .cdots  { color:rgba(255,255,255,.2); }

/* ── ORANGE ── */
#ticker.t-orange { background:#FF9A00; border-top-color:#e08800; }
#ticker.t-orange .ltxt,
#ticker.t-orange .ct,
#ticker.t-orange .mi-v,
#ticker.t-orange .mi-n  { color:#ffffff; }
#ticker.t-orange .ldot  { background:#ffffff; }
#ticker.t-orange #craw-wrap::before { background:linear-gradient(to right,#FF9A00,transparent); }
#ticker.t-orange #craw-wrap::after  { background:linear-gradient(to left, #FF9A00,transparent); }
#ticker.t-orange #div-line   { background:rgba(0,0,0,.2); }
#ticker.t-orange .mi + .mi   { border-color:rgba(0,0,0,.2); }
#ticker.t-orange .mi-n { opacity:1; }
#ticker.t-orange .nd         { background:rgba(0,0,0,.2); }
#ticker.t-orange .nd.on      { background:rgba(0,0,0,.6); }
#ticker.t-orange .up         { color:#14532d; }
#ticker.t-orange .down       { color:#7f1d1d; }
#ticker.t-orange .cp  { background:rgba(0,0,0,.15); color:#1a0a00; }
#ticker.t-orange .ce  { background:rgba(0,0,0,.1);  color:#2a1500; }
#ticker.t-orange .cs  { background:rgba(0,0,0,.12); color:#4a2800; }
#ticker.t-orange .cte { background:rgba(0,0,0,.12); color:#2a0a3a; }
#ticker.t-orange .cw  { background:rgba(0,0,0,.1);  color:#004d40; }
#ticker.t-orange .co  { background:rgba(0,0,0,.15); color:#4a0028; }
#ticker.t-orange .cr  { background:rgba(0,0,0,.1);  color:#1b5e20; }
#ticker.t-orange .cx  { background:rgba(0,0,0,.08); color:rgba(0,0,0,.4); }
#ticker.t-orange .cs-src { color:rgba(0,0,0,.35); }
#ticker.t-orange .cdots  { color:rgba(0,0,0,.2); }
