:root{
  --bg:#0E1116; --panel:#151A21; --panel2:#1B222B; --border:#262E39;
  --text:#E8E3D7; --muted:#7E8794; --faint:#4C5662;
  --accent:#E3A53C; --accent-dim:#8a6a28; --blue:#6f93c9;
  --up:#46B97E; --down:#E5604D; --grid:#1A212A;
  --mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
  --disp:'Space Grotesk',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--disp);
  -webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1;}
body{padding:18px 18px 60px;max-width:1620px;margin:0 auto;}
a{color:var(--accent);text-decoration:none}

header{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px 28px;
  border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:14px;}
.brand{display:flex;flex-direction:column;gap:4px}
.wordmark{font-size:30px;font-weight:700;letter-spacing:-0.5px;line-height:1;display:flex;align-items:center;gap:9px}
.wordmark .bk{color:var(--accent)}
.wordmark .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 0 rgba(70,185,126,.6);animation:pulse 2.6s infinite;align-self:center}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(70,185,126,.5)}70%{box-shadow:0 0 0 7px rgba(70,185,126,0)}100%{box-shadow:0 0 0 0 rgba(70,185,126,0)}}
.sub{color:var(--muted);font-size:12.5px;letter-spacing:.2px}
.sub b{color:var(--text);font-weight:500}

.stats{display:flex;gap:26px;margin-left:auto;flex-wrap:wrap}
.stat{display:flex;flex-direction:column;gap:2px;min-width:78px}
.stat .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted)}
.stat .v{font-family:var(--mono);font-size:17px;font-weight:500}

.controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}
.search{flex:1 1 180px;max-width:260px;position:relative}
.search input{width:100%;background:var(--panel);border:1px solid var(--border);color:var(--text);
  font-family:var(--mono);font-size:13px;padding:9px 11px 9px 32px;border-radius:7px;outline:none}
.search input:focus{border-color:var(--accent-dim)}
.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted)}
.btn{background:var(--panel);border:1px solid var(--border);color:var(--text);font-family:var(--disp);
  font-size:13px;font-weight:500;padding:9px 13px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:7px}
.btn:hover{border-color:var(--accent-dim)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.btn.on{color:var(--accent);border-color:var(--accent);background:rgba(227,165,60,.12)}

.seg{display:inline-flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:3px}
.seg .seglbl{font-size:11px;color:var(--muted);padding:0 8px 0 6px;letter-spacing:.3px}
.seg button{background:transparent;border:none;color:var(--muted);font-family:var(--mono);font-size:12px;padding:5px 9px;border-radius:5px;cursor:pointer}
.seg button:hover{color:var(--text)}
.seg button.active{background:var(--accent);color:#1a1205;font-weight:600}
.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.benchnote{font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.benchnote b{color:var(--muted);font-weight:500}
.countdown{font-family:var(--mono);font-size:13px;color:var(--muted)}
.countdown b{color:var(--accent);font-weight:600}
.statusline{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 12px;
  margin:-6px 0 16px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.statusline b{color:var(--text);font-weight:500}
.statusline .st-sep{color:var(--faint)}
.flbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted)}
.fnum{width:78px;background:var(--panel);border:1px solid var(--border);color:var(--text);
  font-family:var(--mono);font-size:12.5px;padding:7px 9px;border-radius:6px;outline:none;text-align:right}
.fnum:focus{border-color:var(--accent-dim)}
.fnum.bad{border-color:var(--down)}
.fdash{color:var(--faint);font-family:var(--mono)}
.sync{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}
.sync .sdot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:blink 1.1s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.sync.done .sdot{background:var(--up);animation:none}

.movers{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.movers .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);align-self:center;margin-right:2px}
.chip{font-family:var(--mono);font-size:12px;padding:5px 9px;border-radius:6px;background:var(--panel);border:1px solid var(--border);display:flex;gap:7px;align-items:baseline}
.chip .t{color:var(--text);font-weight:500}
.chip.up .p{color:var(--up)} .chip.down .p{color:var(--down)}

.wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.wrap table{border-collapse:collapse;width:100%;min-width:1300px}
.wrap thead th{position:sticky;top:0;background:var(--panel2);z-index:2;font-size:11px;text-transform:uppercase;
  letter-spacing:.6px;color:var(--muted);font-weight:600;text-align:right;padding:11px 12px;white-space:nowrap;
  border-bottom:1px solid var(--border);cursor:pointer;user-select:none}
.wrap thead th:first-child{text-align:left}
.wrap thead th .arw{color:var(--accent);font-size:10px;margin-left:3px}
.wrap thead th:hover{color:var(--text)}
.wrap thead th:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.wrap tbody td{font-family:var(--mono);font-size:13px;text-align:right;padding:9px 12px;white-space:nowrap;border-bottom:1px solid var(--grid)}
.wrap tbody tr:last-child td{border-bottom:none}
.wrap tbody tr:hover td{background:rgba(227,165,60,.045)}
.wrap tbody td:first-child{text-align:left}
/* sticky ticker column */
.wrap thead th:first-child{position:sticky;left:0;z-index:4;background:var(--panel2)}
.wrap tbody td:first-child{position:sticky;left:0;z-index:1;background:var(--panel)}
.wrap tbody tr:hover td:first-child{background:#1b212a}
/* watchlist star */
.star{cursor:pointer;color:var(--faint);margin-right:7px;font-size:12px;transition:color .12s}
.star:hover{color:var(--muted)} .star.on{color:var(--accent)}
/* benchmark row marker */
.benchrow td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
.benchrow td{background:rgba(111,147,201,.06)}
/* in-table sparkline */
svg.tspark{width:62px;height:18px;display:inline-block;vertical-align:middle}
.wrap tbody tr{cursor:pointer}
.tk{font-weight:600;font-size:13.5px;color:var(--text)}
.px{color:var(--text)}
.flash-up{animation:fu .6s ease-out} .flash-down{animation:fd .6s ease-out}
@keyframes fu{0%{background:rgba(70,185,126,.22)}100%{background:transparent}}
@keyframes fd{0%{background:rgba(229,96,77,.22)}100%{background:transparent}}
.pos{color:var(--up)} .neg{color:var(--down)} .na{color:var(--faint)}
.sec{color:var(--muted)}
.ph{color:var(--faint);animation:blink 1.4s infinite}
.stale{opacity:.45}
.hotdot{color:var(--accent);margin-left:5px;font-size:11px}
.rg{font-size:11px;margin-left:5px}
.rg-long{color:var(--up)} .rg-sqz{color:var(--accent)} .rg-short{color:var(--down)} .rg-unw{color:var(--blue)}
/* per-ticker detail drawer */
.drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:80;opacity:0;pointer-events:none;transition:opacity .15s}
.drawer-bg.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(460px,94vw);background:var(--panel);border-left:1px solid var(--border);
  z-index:81;transform:translateX(100%);transition:transform .2s ease;overflow-y:auto;padding:20px 22px}
.drawer.show{transform:translateX(0)}
.drawer .dhead{font-family:var(--disp);font-size:22px;font-weight:600;color:var(--text);display:flex;align-items:baseline;gap:10px}
.drawer .dsub{font-family:var(--mono);font-size:12px;color:var(--muted);margin:2px 0 14px}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin:12px 0 16px}
.dstat{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12.5px;border-bottom:1px solid var(--grid);padding:5px 0}
.dstat .dk{color:var(--muted)} .dstat .dv{color:var(--text);font-weight:500}
.dsec{font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--faint);margin:16px 0 6px}
.drawer .dclose{margin-left:auto;cursor:pointer;color:var(--muted);font-size:18px;background:none;border:none;padding:0 4px}
.drawer .dclose:hover{color:var(--text)}
@media(max-width:480px){.dgrid{grid-template-columns:1fr}}

.msg{padding:40px 20px;text-align:center;color:var(--muted);font-size:14px;line-height:1.6}
.msg.err{color:var(--down)}
.msg .big{font-family:var(--disp);font-size:16px;color:var(--text);font-weight:500;margin-bottom:6px;display:block}
footer{margin-top:14px;color:var(--faint);font-size:11.5px;line-height:1.6}
footer code{font-family:var(--mono);color:var(--muted)}
/* column drag-to-reorder + show/hide */
.wrap thead th .grip{color:var(--faint);margin-right:6px;font-size:11px;opacity:0;transition:opacity .15s;cursor:grab}
.wrap thead th:hover .grip{opacity:1}
.wrap thead th.dragging{opacity:.45}
.wrap thead th.drop-before{box-shadow:inset 3px 0 0 var(--accent)}
.wrap thead th.drop-after{box-shadow:inset -3px 0 0 var(--accent)}
.filtermenu{position:relative}
.filt-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;margin-left:1px}
.filterpop{position:absolute;top:calc(100% + 6px);right:0;z-index:35;background:var(--panel2);border:1px solid var(--border);
  border-radius:9px;padding:12px 14px;min-width:236px;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.filterpop .cphead{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);margin:0 2px 10px}
.filterpop .fpg{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.filterpop .fpg .flbl{flex:1 1 auto}
.filterpop .fpg-act{justify-content:flex-end;gap:8px;margin-top:2px;margin-bottom:0}
.filterpop .fpg-act .btn{padding:7px 12px}
.filterpop .fpfoot{color:var(--muted);font-size:11px;margin-top:9px;min-height:13px;text-align:right}
@media(max-width:480px){ .filterpop{right:auto;left:0} }
.colmenu{position:relative}
.colpop{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--panel2);border:1px solid var(--border);
  border-radius:9px;padding:10px;min-width:200px;max-height:60vh;overflow:auto;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.colpop .cphead{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);margin:0 2px 8px}
.copt{display:flex;align-items:center;gap:9px;font-size:13px;padding:6px 5px;cursor:pointer;border-radius:5px;color:var(--text)}
.copt:hover{background:rgba(227,165,60,.08)}
.copt input{accent-color:var(--accent);width:15px;height:15px}
.copt input:disabled{opacity:.45} .copt.dis{color:var(--muted);cursor:default}

/* alerts */
.bellwrap{position:relative}
.bell-badge{position:absolute;top:-6px;right:-6px;background:var(--down);color:#fff;font-family:var(--mono);font-size:10px;
  min-width:16px;height:16px;border-radius:9px;display:none;align-items:center;justify-content:center;padding:0 4px;font-weight:600}
.bell-badge.show{display:flex}
.alertpop{position:absolute;top:calc(100% + 6px);right:0;z-index:40;background:var(--panel2);border:1px solid var(--border);
  border-radius:9px;padding:12px;width:340px;max-height:72vh;overflow:auto;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.alertpop .cphead{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);margin:10px 2px 6px}
.alertpop .cphead:first-child{margin-top:0}
.arule-form{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.arule-form input,.arule-form select{background:var(--panel);border:1px solid var(--border);color:var(--text);
  font-family:var(--mono);font-size:12px;padding:6px 7px;border-radius:6px;width:100%}
.arule-form .full{grid-column:1 / -1}
.arule-form input.bad{border-color:var(--down)}
.arule{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;padding:5px 4px;border-bottom:1px solid var(--grid)}
.arule .ax{margin-left:auto;cursor:pointer;color:var(--faint);font-size:14px} .arule .ax:hover{color:var(--down)}
.alog{font-family:var(--mono);font-size:11.5px;color:var(--muted);padding:4px 4px;border-bottom:1px solid var(--grid);line-height:1.4}
.alog .at{color:var(--faint)}
.toast-wrap{position:fixed;bottom:16px;right:16px;z-index:90;display:flex;flex-direction:column;gap:8px;max-width:320px}
.toast{background:var(--panel2);border:1px solid var(--accent-dim);border-left:3px solid var(--accent);border-radius:8px;
  padding:9px 12px;font-family:var(--mono);font-size:12px;color:var(--text);box-shadow:0 8px 24px rgba(0,0,0,.5);
  animation:toastin .25s ease-out}
@keyframes toastin{from{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}

/* responsive */
@media(max-width:480px){ .alertpop{right:auto;left:0;width:calc(100vw - 28px)} }
@media (max-width:900px){ .sub{font-size:12px} .stats{gap:16px 22px} }
@media (max-width:680px){
  body{padding:14px 12px 48px}
  .wordmark{font-size:23px}
  .stats{width:100%;margin-left:0;gap:12px 20px}
  .stat{min-width:0} .stat .v{font-size:15px}
  .controls{gap:8px}
  .search{flex:1 1 100%;max-width:none}
  .countdown,.benchnote{font-size:12px}
  .movers{gap:6px}
  .wrap table{min-width:0}
  .wrap thead th,.wrap tbody td{padding:9px 10px}
  .tabs .tab{padding:9px 12px}
}
@media (max-width:480px){
  .seg .seglbl{display:none}
  .seg button{padding:6px 8px}
  .colpop{right:auto;left:0;width:calc(100vw - 28px)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

/* tabs */
.tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--border)}
.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:var(--disp);font-size:14px;font-weight:500;padding:9px 15px;cursor:pointer;margin-bottom:-1px}
.tab:hover{color:var(--text)}
.tab.active{color:var(--text);border-bottom-color:var(--accent)}
.tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* correlation heatmap */
.corr-legend{display:flex;align-items:center;gap:8px;margin:2px 2px 12px;font-family:var(--mono);font-size:11px;color:var(--muted);flex-wrap:wrap}
.corr-legend .grad{height:10px;width:150px;border-radius:3px;background:linear-gradient(90deg,rgb(229,96,77),rgb(20,26,33),rgb(70,185,126))}
#corr-readout{font-family:var(--mono);font-size:12px}
#corr-readout b{color:var(--text);font-weight:500}
.corrwrap{overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:10px}
table.cmx{border-collapse:separate;border-spacing:1px}
table.cmx td{width:var(--cell);height:var(--cell);min-width:var(--cell);padding:0;font-family:var(--mono);font-size:9.5px;text-align:center;color:rgba(232,227,215,.92);border-radius:2px}
table.cmx td:hover{outline:2px solid var(--text);outline-offset:-1px}
table.cmx td.diag{background:var(--panel2)!important}
table.cmx td.nodata{background:var(--panel2)!important;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(124,135,148,.16) 3px,rgba(124,135,148,.16) 4px)!important}
table.cmx th.corner{position:sticky;left:0;background:var(--panel);z-index:3}
table.cmx th.cl{height:72px;width:var(--cell);vertical-align:bottom;cursor:pointer;padding:0;position:relative}
table.cmx th.cl span{position:absolute;bottom:5px;left:calc(50% - 1px);transform-origin:left bottom;transform:rotate(-50deg);white-space:nowrap;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
table.cmx th.rl{position:sticky;left:0;background:var(--panel);text-align:right;padding:0 9px;font-family:var(--mono);font-size:11px;color:var(--muted);cursor:pointer;white-space:nowrap;z-index:2}
table.cmx th.cl.hl span,table.cmx th.rl.hl{color:var(--accent);font-weight:700}
table.cmx th.cl:hover span,table.cmx th.rl:hover{color:var(--text)}

.corrpanel{margin-top:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:14px 16px}
.cp-head{font-family:var(--disp);font-size:15px;font-weight:600;margin-bottom:12px}
.cp-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cp-sub{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);margin-bottom:8px}
.crow{display:flex;align-items:center;gap:8px;margin:4px 0;font-family:var(--mono);font-size:12px}
.crow .ct{width:70px;color:var(--text);overflow:hidden;text-overflow:ellipsis}
.crow .cbar{height:9px;border-radius:2px;display:inline-block;flex:none}
.crow .cv{width:46px;text-align:right;margin-left:auto}
.crow .cv2{width:58px;text-align:right;color:var(--muted)}
.corrpairs{margin-top:8px}
table.ptbl{width:100%;border-collapse:collapse}
table.ptbl td{font-family:var(--mono);font-size:12.5px;padding:5px 4px;border-bottom:1px solid var(--grid);text-align:right}
table.ptbl tbody tr{cursor:pointer}
table.ptbl tbody tr:hover td{background:rgba(227,165,60,.05)}
table.ptbl th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);
  font-weight:600;text-align:right;padding:2px 4px 6px;border-bottom:1px solid var(--border)}
table.ptbl th:first-child{text-align:left}
table.ptbl td:first-child{text-align:left}
.smapsvg .bub,.smapsvg .lead{transition:opacity .12s ease}
.smapsvg.hv .bub:not(.hot),.smapsvg.hv .lead:not(.hot){opacity:.16}
.smapsvg .bub.hot circle,.smapsvg .lead.hot circle{fill-opacity:.55}
.smapsvg .bub.hot .mlbl,.smapsvg .lead.hot .mlbl{font-weight:700}
.smapsvg .mleader{stroke:var(--faint);stroke-width:.8;stroke-opacity:.5}
.smapsvg .bub.hot .mleader,.smapsvg .lead.hot .mleader{stroke-opacity:.95}
.ptbl .pp{color:var(--text)}
.corrtip{position:fixed;z-index:60;pointer-events:none;background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  padding:8px 10px;font-family:var(--mono);font-size:11.5px;line-height:1.55;box-shadow:0 8px 24px rgba(0,0,0,.5);max-width:280px}
.corrtip .tk{color:var(--text);font-weight:600}
.corrtip .mut{color:var(--muted)}
.corrtip .hd{margin-bottom:3px}
.pairstats{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--mono);font-size:12px;color:var(--muted);margin:8px 0 14px}
.pairstats b{color:var(--text);font-weight:600;margin-left:5px}
.pairgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
svg.spark{width:100%;height:46px;display:block;margin:5px 0 2px}
.spk-cap{font-size:11px;margin-top:2px}
.btn.xtiny{padding:2px 8px;font-size:12px;line-height:1.4}
table.cmx tbody td:not(.diag):not(.nodata){cursor:pointer}
@media(max-width:620px){.cp-cols{grid-template-columns:1fr;gap:16px} .pairgrid{grid-template-columns:1fr;gap:16px} .corrtip{display:none}}

/* sectors tab */
.sect-legend{margin:2px 2px 12px;font-family:var(--mono);font-size:11.5px;color:var(--muted);line-height:1.5}
.sect-legend b{color:var(--text);font-weight:500}

/* ranked leaders rows (Sectors → leaders view) */
.lrow{cursor:pointer;border-radius:4px;padding:2px 4px}
.lrow:hover{background:rgba(227,165,60,.08)}

/* ============ Bloomberg terminal theme (new palette) ============
   #000000 base · #fb8b1e orange (headers/labels/active) · #0068ff blue
   (benchmark + interactive) · #4af6c3 mint up · #ff433d red down.
   Neutral off-white body text; orange + blue do the standout work.
   Attribute key stays "amber" so the toggle wiring + reset flag are untouched. */
:root[data-theme="amber"]{
  --bg:#000000; --panel:#0a0a0a; --panel2:#121212; --border:#262626;
  --text:#e6e4df; --muted:#8b8b8b; --faint:#565656;
  --accent:#fb8b1e; --accent-dim:#8a4d10; --blue:#0068ff;
  --up:#4af6c3; --down:#ff433d; --grid:#161616;
  --disp:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
}
:root[data-theme="amber"] body{ letter-spacing:.1px; }
:root[data-theme="amber"] .wordmark{ letter-spacing:0; }
:root[data-theme="amber"] .seg button.active{ background:var(--accent); color:#000; }
:root[data-theme="amber"] .btn.on{ background:var(--accent); color:#000; }
:root[data-theme="amber"] .wrap thead th .arw{ color:var(--accent); }
:root[data-theme="amber"] .tab.active{ color:var(--accent); border-bottom-color:var(--accent); }
:root[data-theme="amber"] .wrap thead th{ color:var(--accent); }
:root[data-theme="amber"] .cp-sub{ color:var(--accent); }
:root[data-theme="amber"] .hd{ color:var(--accent); }
:root[data-theme="amber"] .cp-head,
:root[data-theme="amber"] .stat .v{ color:var(--text); }
:root[data-theme="amber"] a{ color:var(--blue); }
:root[data-theme="amber"] .search input:focus{ border-color:var(--blue); }
:root[data-theme="amber"] .wrap tbody tr:hover td{ background:rgba(251,139,30,.055); }
:root[data-theme="amber"] .wrap tbody tr:hover td:first-child{ background:#191308; }
:root[data-theme="amber"] table.ptbl tbody tr:hover td{ background:rgba(251,139,30,.07); }
:root[data-theme="amber"] .lrow:hover{ background:rgba(251,139,30,.08); }
:root[data-theme="amber"] .benchrow td:first-child{ box-shadow:inset 3px 0 0 var(--blue); }
:root[data-theme="amber"] .benchrow td{ background:rgba(0,104,255,.08); }
:root[data-theme="amber"] ::selection{ background:var(--blue); color:#fff; }
:root[data-theme="amber"] ::-webkit-scrollbar{ width:10px; height:10px; }
:root[data-theme="amber"] ::-webkit-scrollbar-track{ background:#000; }
:root[data-theme="amber"] ::-webkit-scrollbar-thumb{ background:#2c2c2c; border-radius:5px; }
:root[data-theme="amber"] ::-webkit-scrollbar-thumb:hover{ background:#454545; }

/* ===== market regime strip ===== */
.regimestrip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;
  margin:0 0 16px;padding:8px 14px;background:var(--panel);border:1px solid var(--border);
  border-radius:8px;font-family:var(--mono);font-size:12px}
.regimestrip .rs-lab{font-family:var(--disp);font-weight:600;font-size:12.5px;letter-spacing:.2px;
  padding:2px 9px;border-radius:5px;background:var(--panel2);border:1px solid var(--border)}
.regimestrip .rs-m{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.regimestrip .rs-k{color:var(--muted);text-transform:uppercase;letter-spacing:.7px;font-size:10px}
.regimestrip .rs-m b{font-weight:600}
.regimestrip .rs-bar{position:relative;width:52px;height:6px;border-radius:3px;
  background:var(--down);opacity:.5;overflow:hidden;display:inline-block}
.regimestrip .rs-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--up)}
/* OI-weighted positioning mix (stacked regime shares) — sized to match .rs-bar exactly */
.regimestrip .rs-mix{display:inline-flex;width:110px;height:6px;border-radius:3px;overflow:hidden;background:var(--grid)}
.regimestrip .rs-mix-seg{height:100%;min-width:1px}
.regimestrip .rs-mix-seg:hover{filter:brightness(1.35)}
.blue{color:var(--blue)}
@media(max-width:640px){ .regimestrip{font-size:11px;gap:6px 14px;padding:7px 10px} .regimestrip .rs-bar{width:40px} .regimestrip .rs-mix{width:80px} }

/* drawer: hourly-candle timeframe selector + 30d session-split readout */
.cdtf-seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.cdtf{background:var(--panel2);color:var(--muted);border:none;padding:3px 8px;font-family:var(--mono);font-size:10.5px;cursor:pointer}
.cdtf:hover{color:var(--text)}
.cdtf.on{background:var(--accent);color:var(--bg)}
.cdtf+.cdtf{border-left:1px solid var(--border)}
.dsplit{display:flex;flex-wrap:wrap;gap:6px 16px;font-family:var(--mono);font-size:12px;color:var(--muted);margin:2px 0 4px}
.dsplit b{color:var(--text);font-weight:600;margin-left:4px}

/* Sessions tab — hour-of-day clock controls */
.clocksel{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-family:var(--mono);font-size:12px;max-width:220px}
.clockseg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.clockmetric,.ovmetric,.dowmetric{background:var(--panel2);color:var(--muted);border:none;padding:5px 10px;font-family:var(--mono);font-size:11px;cursor:pointer}
.clockmetric:hover,.ovmetric:hover,.dowmetric:hover{color:var(--text)}
.clockmetric.on,.ovmetric.on,.dowmetric.on{background:var(--accent);color:var(--bg)}
.clockmetric+.clockmetric,.ovmetric+.ovmetric,.dowmetric+.dowmetric{border-left:1px solid var(--border)}

/* Sessions tab — interactive chart hover (crosshair + readout) */
.lwrap{position:relative}
.lchart{cursor:crosshair}
.lchart .lcx{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;opacity:0;pointer-events:none}
.lread{position:absolute;top:8px;right:10px;background:var(--panel2);border:1px solid var(--border);border-radius:6px;
  padding:6px 9px;font-family:var(--mono);font-size:11px;color:var(--text);opacity:0;pointer-events:none;
  transition:opacity .08s;max-width:62%;line-height:1.5;z-index:3;box-shadow:0 2px 10px rgba(0,0,0,.35)}

/* ============ Sessions tab: unified chart system ============ */
.s-sec{margin:26px 0 12px;font-size:13px;line-height:1.4}
.s-sec:first-child{margin-top:6px}
.s-sec .t{color:var(--accent);font-weight:600;letter-spacing:.3px}
.s-sec .d{color:var(--muted);font-weight:400;font-size:12px}
.s-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.s-cap{color:var(--muted);font-size:11px;margin-top:9px;line-height:1.55}
.s-cap b{color:var(--text);font-weight:600}
.s-ctrls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.s-ctrls .lbl{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px}
.s-ctrls .rt{margin-left:auto;color:var(--muted);font-size:11px;text-align:right}
.s-leg{display:flex;gap:15px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.s-leg .it{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}
.s-leg .sw{width:15px;height:3px;border-radius:2px;display:inline-block}
.s-leg .dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.s-grid{display:flex;flex-wrap:wrap;gap:12px}
.s-stat{background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:12px 14px;flex:1 1 150px;min-width:140px}
.s-stat .k{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.s-stat .v{font-family:var(--mono);font-size:19px;color:var(--text);line-height:1.1}
.s-stat .s{color:var(--muted);font-size:11px;margin-top:4px}
.s-stat .s-k{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}
.s-stat .s-row{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:12.5px;margin:3px 0}
.s-stat .s-row span{color:var(--muted)}
.s-stat .s-row b{color:var(--text);font-weight:500}
.bt-book-grid{display:flex;gap:14px;flex-wrap:wrap}
.bt-col{flex:1 1 220px;min-width:200px}
.bt-col-h{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px;border-bottom:1px solid var(--border);padding-bottom:5px}
.bt-pos{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:12.5px;padding:3px 2px}
.bt-pos .bt-tk{color:var(--text);flex:0 0 auto}
.bt-pos .bt-sc{color:var(--muted);font-size:11px;margin-left:auto}
.bt-pos .bt-w{flex:0 0 56px;text-align:right}
.live-dot{color:var(--accent);font-size:7px;margin-left:4px;vertical-align:middle;animation:livepulse 1.6s ease-in-out infinite}
@keyframes livepulse{0%,100%{opacity:.3}50%{opacity:1}}
/* shared SVG text scale (one place) */
.lchart text,.sclock text,.sheat text{font-family:var(--mono)}
.lc-tick{font-size:9px;fill:var(--muted)}
.lc-ax{font-size:9px;fill:var(--muted)}
.lc-end{font-size:9px;font-weight:700}

/* ===== signals tab ===== */
.siglist{display:flex;flex-direction:column;gap:6px}
.sig{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;background:var(--panel);border:1px solid var(--border);
  border-radius:8px;padding:9px 14px;font-family:var(--mono);font-size:12.5px}
.sig:hover{border-color:var(--faint)}
.sig-rank{color:var(--faint);font-size:11px;min-width:18px;text-align:right}
.sig-tick{color:var(--accent);cursor:pointer;min-width:56px}
.sig-tick:hover{text-decoration:underline}
.sig-chip{border:1px solid var(--border);background:var(--panel2);color:var(--muted);border-radius:5px;
  padding:2px 8px;font-size:10.5px;white-space:nowrap}
.sig-read{color:var(--text)}
.sig-hist{color:var(--muted);font-size:11.5px;flex:1 1 260px;line-height:1.45}
.sig-unp{font-style:normal;color:var(--accent-dim);border:1px solid var(--accent-dim);border-radius:4px;
  padding:0 5px;font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;margin-left:6px}
.sig.unp .sig-bar span{background:var(--faint)}
.sig-score{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;min-width:96px;justify-content:flex-end;margin-left:auto}
.sig-bar{width:56px;height:5px;border-radius:3px;background:var(--grid);overflow:hidden;display:inline-block}
.sig-bar span{display:block;height:100%;background:var(--accent)}

/* signals v2: track-record strip + confluence cards + playbook lines */
.recstrip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.recstrip .rec{border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:5px 10px;
  font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.recstrip .rec b{color:var(--text);margin-right:5px}
.recstrip .rec.good{border-color:var(--up)}
.recstrip .rec.bad{border-color:var(--down)}
.recstrip .rec i{font-style:normal;color:var(--down)}
.sigcard{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 14px 10px;margin-bottom:6px}
.sigcard.conf{border-color:var(--accent-dim)}
.sigcard-h{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;padding:2px 0 6px}
.sig-conf{border:1px solid var(--accent-dim);color:var(--accent);border-radius:5px;padding:1px 8px;font-size:10px}
.sigcard .sig{border:none;background:none;padding:5px 0;border-radius:0;border-top:1px solid var(--grid)}
.sigcard .sig:hover{border-color:var(--grid)}
.sig-age{color:var(--faint);font-size:10px;border:1px solid var(--grid);border-radius:4px;padding:1px 5px}
.sig-play{flex-basis:100%;color:var(--muted);font-size:11px;line-height:1.5;padding-left:2px}
.sig-play b{color:var(--blue);font-weight:600}

/* structured playbook row */
.sig-play{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.sp-k{color:var(--faint);font-size:9.5px;text-transform:uppercase;letter-spacing:.8px}
.sp-side{font-size:10px;letter-spacing:.6px;border-radius:4px;padding:1px 7px;font-weight:700}
.sp-long{color:var(--up);border:1px solid var(--up)}
.sp-short{color:var(--down);border:1px solid var(--down)}
.sp-watch-pill{color:var(--muted);border:1px solid var(--border)}
.sp-bias{color:var(--blue);font-weight:600;font-size:11px}
.sp-lvl{color:var(--muted);font-size:11px}
.sp-lvl b{color:var(--text);font-weight:600}
.sp-lvl i{font-style:normal;font-size:10px}
.sp-watch{color:var(--faint);font-size:10.5px;flex-basis:100%;padding-left:2px}

/* compact signals view */
.sigc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;background:var(--panel);border:1px solid var(--border);
  border-radius:8px;padding:7px 14px;font-family:var(--mono);font-size:12px}
.sigc:hover{border-color:var(--faint)}
.sigc .sig-score{margin-left:auto}

/* signal accuracy panel + expand affordances */
.sig-caret{color:var(--faint);font-size:11px;width:12px;display:inline-block}
.sigc[data-exp]{cursor:pointer}
.sigrec-top{display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--mono);font-size:12px;color:var(--muted);margin:6px 0 10px}
.sigrec-top b{color:var(--text);margin-left:4px}
.sigrec-t{border-collapse:collapse;font-family:var(--mono);font-size:11.5px;margin-bottom:6px}
.sigrec-t th{color:var(--faint);font-weight:400;text-transform:uppercase;font-size:9.5px;letter-spacing:.6px;text-align:left;padding:3px 22px 5px 0}
.sigrec-t td{color:var(--muted);padding:4px 22px 4px 0;border-top:1px solid var(--grid)}
.sigrec-t td:first-child{color:var(--text)}
.sigrec-recent{display:flex;flex-wrap:wrap;gap:6px}
.recr{border:1px solid var(--border);background:var(--panel);border-radius:5px;padding:3px 9px;
  font-family:var(--mono);font-size:11px;color:var(--muted)}
.recr.w{border-color:var(--up)}
.recr.l{border-color:var(--down)}

/* decayed signal: past its claimed horizon, score x0.6, drops at 2x */
.sig-age.dk{color:var(--accent);border-color:var(--accent-dim)}

/* signal card cleanup: aligned chip column, 3-line rhythm, inset play row */
.sigcard .sig{display:grid;grid-template-columns:158px 1fr;column-gap:14px;row-gap:4px;
  align-items:baseline;padding:8px 0 9px}
.sigcard .sig-chip{grid-column:1;justify-self:start;max-width:158px;overflow:hidden;text-overflow:ellipsis}
.sig-line1{grid-column:2;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.sigcard .sig-hist{grid-column:2}
.sigcard .sig-play{grid-column:2;background:var(--panel2);border-radius:6px;padding:6px 10px;margin-top:2px}
.sig-prime{font-style:normal;color:var(--up);border:1px solid var(--up);border-radius:4px;
  padding:0 6px;font-size:9.5px;text-transform:uppercase;letter-spacing:.5px}
.sigcard.prime,.sigc.prime{border-left:2px solid var(--up)}
.sig-lowx{color:var(--faint);font-family:var(--mono);font-size:11.5px;cursor:pointer;
  padding:8px 14px;border:1px dashed var(--border);border-radius:8px}
.sig-lowx:hover{color:var(--muted);border-color:var(--faint)}

/* accuracy panel cross-cuts */
.sigrec-xr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:7px 0;font-family:var(--mono)}
.sigrec-k{color:var(--faint);font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;min-width:78px}
.sigrec-chip{border:1px solid var(--border);background:var(--panel);border-radius:5px;padding:3px 9px;font-size:11px;color:var(--muted)}
.sigrec-chip i{font-style:normal;color:var(--faint);font-size:10px}

/* shadow-variant incumbent chip */
.sigrec-chip.inc{border-color:var(--accent);color:var(--text)}

/* stop-aware column group */
.sigrec-t th.ss,.sigrec-t td.ss{border-left:1px solid var(--grid);padding-left:14px}
.sigrec-t td.ss+td.ss,.sigrec-t th.ss+th.ss{border-left:none;padding-left:0}


/* scope switcher: Stocks | Crypto */
.scopeseg{display:inline-flex;align-self:center;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-right:14px;background:var(--panel2)}
.scope{background:none;border:none;color:var(--faint);font-family:var(--mono);font-size:11.5px;letter-spacing:.5px;
  padding:7px 14px;cursor:pointer;text-transform:uppercase}
.scope:hover{color:var(--muted)}
.scope.on{color:var(--accent);background:var(--panel);font-weight:700;box-shadow:inset 0 0 0 1px var(--accent)}


/* funding percentile extreme flag */
.fpx{font-style:normal;font-size:9px;margin-left:4px;padding:0 3px;border-radius:3px;vertical-align:1px}
.fpx.hi{color:var(--down);border:1px solid var(--down)}
.fpx.lo{color:var(--up);border:1px solid var(--up)}

/* ---- per-tab help modal ---- */
.help-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:120}
.help-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:121;
  width:min(760px,94vw);max-height:min(82vh,860px);overflow-y:auto;background:var(--panel);
  border:1px solid var(--border);border-radius:8px;padding:20px 24px;box-shadow:0 18px 60px rgba(0,0,0,.6)}
.help-modal .hlp-head{font-family:var(--disp);font-size:16px;font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:10px}
.help-modal .hlp-head .btn{margin-left:auto}
.help-modal .hlp-sub{color:var(--muted);font-size:12px;margin-bottom:14px;line-height:1.5}
.help-modal .hlp-h{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--accent);margin:16px 0 5px}
.help-modal .hlp-h:first-of-type{margin-top:8px}
.help-modal p{font-size:12.5px;line-height:1.62;color:var(--text);margin:0 0 8px}
.help-modal p b{color:var(--text)}
.help-modal p .k{color:var(--muted)}
.help-modal code{font-family:var(--mono);font-size:11.5px;color:var(--accent)}
