/* ================================================================
   GOLD INTELLIGENCE TERMINAL — design system v3
   one stylesheet for every page. light = body.day, dark = default.
   rules: cards grow with content (no inner scrollbars), nothing fixed
   on top of the page except the app bar, sentence case, 12px floor.
   class hooks used by the page scripts are kept; their look changed.
   ================================================================ */

/* ============ TOKENS · DARK (default) ============ */
:root{
  --bg:#1b1c1e; --panel:#26272a; --panel2:#2f3034; --panel3:#202124;
  --line:#3a3c40; --line2:#323438; --grid:#34363a;
  --txt:#e8eaed; --mut:#a8adb3; --dim:#868b91;
  --gold:#f2c14e; --gold2:#ffd97a; --goldDk:#5a4a1f; --goldBg:rgba(242,193,78,.12);
  --cyan:#78d9ec; --blue:#8ab4f8; --blueBg:rgba(138,180,248,.14);
  --up:#81c995; --dn:#f28b82; --amber:#fcad70;
  --upBg:rgba(129,201,149,.14); --dnBg:rgba(242,139,130,.14); --amBg:rgba(252,173,112,.14);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.18);
  --sans:'Roboto Flex','Roboto','Segoe UI',system-ui,-apple-system,sans-serif;
  --code:'Roboto Mono',ui-monospace,Consolas,monospace;
  /* legacy names still referenced by inline styles and canvas code */
  --mono:var(--sans); --disp:var(--sans);
  --r:14px; --r-sm:8px; --gap:16px;
  color-scheme:dark;
}
/* ============ TOKENS · LIGHT ============ */
body.day{
  --bg:#f4f6fa; --panel:#ffffff; --panel2:#eef2f7; --panel3:#f6f8fb;
  --line:#dde3ea; --line2:#e9edf2; --grid:#e6eaf0;
  --txt:#1f1f1f; --mut:#5f6368; --dim:#80868b;
  --gold:#a15c00; --gold2:#c98a00; --goldDk:#f0d9a8; --goldBg:#fdf3dc;
  --cyan:#00788a; --blue:#0b57d0; --blueBg:#e8f0fe;
  --up:#137333; --dn:#c5221f; --amber:#b06000;
  --upBg:#e6f4ea; --dnBg:#fce8e6; --amBg:#fef3e0;
  --shadow:0 1px 2px rgba(60,64,67,.12),0 1px 4px rgba(60,64,67,.08);
  color-scheme:light;
}

/* ============ BASE ============ */
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--txt);font:400 14px/1.45 var(--sans);
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;min-height:100vh}
::selection{background:var(--blueBg);color:var(--txt)}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
b,strong{font-weight:600}
button{font:inherit;background:none;border:none;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:var(--txt)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}
img,svg,canvas{display:block;max-width:100%}
.up{color:var(--up)} .dn{color:var(--dn)} .gold{color:var(--gold)}
.cyan{color:var(--cyan)} .blue{color:var(--blue)} .mut{color:var(--mut)} .dim{color:var(--dim)}
.r{text-align:right}
.hide{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#crt,#boot{display:none!important}

/* ============ APP BAR ============ */
#top{position:sticky;top:0;z-index:50;height:60px;display:flex;align-items:center;gap:20px;
  padding:0 max(16px,calc((100vw - 1600px)/2 + 24px));background:var(--panel);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;white-space:nowrap;flex:none;color:var(--txt);text-decoration:none}
.logo:hover{text-decoration:none}
.logo .lx{width:22px;height:22px;border-radius:6px;flex:none;
  background:linear-gradient(135deg,#f6d36b 0%,#d99a16 55%,#a86a05 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.logo .lt{font:600 16px var(--sans);letter-spacing:-.01em}
.logo .lv{font:500 12px var(--sans);color:var(--dim)}
.gochips{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;
  mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.gochips::-webkit-scrollbar{display:none}
.gchip{flex:none;font:500 14px var(--sans);color:var(--mut);padding:8px 12px;border-radius:999px;
  white-space:nowrap;text-decoration:none!important;transition:background .15s,color .15s}
.gchip:hover{background:var(--panel2);color:var(--txt)}
.gchip.on{background:var(--blueBg);color:var(--blue)}
.gchip em{font-style:normal}
.tsright{display:flex;align-items:center;gap:8px;white-space:nowrap;flex:none}
.iconbtn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--mut)}
.iconbtn:hover{background:var(--panel2);color:var(--txt)}
.iconbtn svg{width:20px;height:20px}
#clock{font:500 13px var(--sans);color:var(--mut);min-width:64px;text-align:right}
.opbadge{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:var(--goldBg);color:var(--gold);font:600 14px var(--sans);text-transform:uppercase}
#logout{font:500 13px var(--sans);color:var(--mut);padding:7px 12px;border-radius:999px}
#logout:hover{background:var(--dnBg);color:var(--dn)}
.livedot{display:flex;align-items:center;gap:6px;font:500 12px var(--sans);color:var(--up)}
.livedot i{width:8px;height:8px;border-radius:50%;background:currentColor}
.cmdbar,.opr{display:none}

/* ============ QUOTE RIBBON (was the scrolling tape) ============ */
#tape{background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
#tape::-webkit-scrollbar{display:none}
.tape-in{display:flex;width:max-content;min-width:100%;padding:0 max(16px,calc((100vw - 1600px)/2 + 24px));animation:none!important}
#tapeB{display:none}
#tapeA{display:flex}
.tg{display:inline-flex;align-items:baseline;gap:8px;padding:10px 18px 10px 0;margin-right:18px;
  border-right:1px solid var(--line2);font:400 13px var(--sans);white-space:nowrap}
.tg:last-child{border-right:0}
.tg .k{color:var(--mut);font-weight:500}
.tg .v{color:var(--txt);font-weight:500}
.tg .v.g{color:var(--gold)}
.tg .c{font-size:12.5px;font-weight:500}

/* ============ PAGE FRAME ============ */
main,.wrap{width:100%;max-width:1600px;margin:0 auto;padding:20px 24px 28px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:4px 0 16px}
.pagehead h1{font:500 26px/1.2 var(--sans);letter-spacing:-.015em}
.pagehead p{color:var(--mut);margin-top:4px;font-size:14px;max-width:72ch}
.pagehead .ph-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--mut);font-size:13px}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:start}
.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}
.c7{grid-column:span 7}.c8{grid-column:span 8}.c9{grid-column:span 9}.c12{grid-column:1/-1}
.stack{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
.stack>.panel{flex:1 1 auto}
.secT{font:500 18px var(--sans);margin:28px 0 12px;letter-spacing:-.01em}

/* ============ CARD (.panel) ============ */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;
  min-width:0;position:relative}
.panel.sig::before,.panel.sig::after{display:none}
.panel.flash{animation:pFlash 1.2s ease-out}
@keyframes pFlash{0%{box-shadow:0 0 0 2px var(--blue)}100%{box-shadow:0 0 0 0 transparent}}
.p-hd{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:16px 20px 4px;min-height:52px}
.p-hd .sq{display:none}
.p-hd .ttl{font:500 16px/1.3 var(--sans);color:var(--txt);margin-right:auto;text-transform:none;letter-spacing:0}
.p-hd .src{font:400 12px var(--sans);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.p-hd .ttl + .src,.p-hd .chip + .src{margin-left:0}
.p-bd{flex:1 1 auto;padding:10px 20px 18px;min-width:0}
.p-bd>:first-child{margin-top:0}
.p-ft{padding:10px 20px 14px;border-top:1px solid var(--line2);font-size:12px;color:var(--dim)}
.muted-card{background:var(--panel3)}

/* ============ CHIPS / TAGS ============ */
.chip{display:inline-flex;align-items:center;gap:5px;font:500 12px/1 var(--sans);padding:5px 9px;border-radius:999px;
  background:var(--panel2);color:var(--mut);white-space:nowrap;letter-spacing:0;text-transform:none;border:0}
.chip::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.chip.live{background:var(--upBg);color:var(--up)}
.chip.near{background:var(--blueBg);color:var(--blue)}
.chip.month{background:var(--panel2);color:var(--mut)}
.chip.evt,.chip.ai{background:var(--amBg);color:var(--amber)}
.chip.plain::before{display:none}
.tag{font:500 11.5px var(--sans);padding:3px 8px;border-radius:999px;background:var(--panel2);color:var(--mut);border:0}
.tag.amber{background:var(--amBg);color:var(--amber)}
.typetag{font:500 11px var(--sans);color:var(--mut);background:var(--panel2);padding:2px 7px;border-radius:999px;border:0}
.typetag.idx{color:var(--blue);background:var(--blueBg)}
.typetag.ind{color:var(--amber);background:var(--amBg)}

/* ============ TABLES ============ */
table.tb{width:100%;border-collapse:collapse;font:400 13.5px var(--sans)}
.tb th{font:500 12px var(--sans);color:var(--dim);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);
  text-transform:none;letter-spacing:0;white-space:nowrap}
.tb td{padding:9px 8px;border-top:1px solid var(--line2);white-space:nowrap}
.tb tr:first-child td{border-top:0}
.tb td.r,.tb th.r{text-align:right}
.tb td:first-child,.tb th:first-child{padding-left:0}
.tb td:last-child,.tb th:last-child{padding-right:0}
.tb tbody tr:hover td{background:var(--panel3)}
.tb .hl td{background:var(--goldBg)}
.tbwrap{overflow-x:auto;margin:0 -2px}

/* ============ PRICE HERO ============ */
.hero{display:flex;flex-direction:column;gap:12px}
.bigpx{font:350 clamp(36px,3.4vw,52px)/1.05 var(--sans);letter-spacing:-.02em;color:var(--txt)}
.bigchg{font:500 15px var(--sans);margin-top:6px}
.unitlab{font:400 13px var(--sans);color:var(--mut)}
.pxmeta{display:flex;align-items:center;gap:8px;font:400 13px var(--sans);color:var(--mut)}
.pxmeta .new{color:var(--gold);background:var(--goldBg);padding:2px 8px;border-radius:999px;font-size:12px}
.ba{display:flex;justify-content:space-between;gap:12px;font:400 13px var(--sans);color:var(--mut);
  background:var(--panel3);border-radius:var(--r-sm);padding:9px 12px}
.ba b{color:var(--txt);font-weight:500}
.ba .spr{color:var(--dim);font-size:12px}
.rng{display:flex;align-items:center;gap:10px;font:400 12px var(--sans);color:var(--dim)}
.rtrack{flex:1;height:4px;border-radius:4px;background:var(--grid);position:relative}
.rtrack i{position:absolute;top:-4px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 3px var(--panel)}
.rng b{color:var(--mut);font-weight:500}
.ohlc{font:400 13px var(--sans);color:var(--mut)}
.ohlc b{color:var(--txt);font-weight:500}
.spk-wrap{position:relative;height:64px}
.spk-wrap canvas{position:absolute;inset:0;width:100%;height:100%}
.spk-lb{position:absolute;top:2px;right:4px;font:400 11.5px var(--sans);color:var(--dim)}
.stat6,.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 12px;font:500 15px var(--sans)}
.stat6 div,.kv div{min-width:0;border:0;padding:0}
.stat6 label,.kv label,.hrow label{display:block;font:400 12px var(--sans);color:var(--dim);margin-bottom:3px;letter-spacing:0}
.kv.k2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kv.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
.hrow{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-weight:500}
.hrow br{display:none}
.regime{margin-top:auto;border-top:1px solid var(--line2);padding-top:12px;font:400 13px var(--sans);color:var(--mut)}

/* ============ CHART ============ */
.ch-tools{display:flex;align-items:center;gap:10px;padding:4px 20px 8px;flex-wrap:wrap}
.tgrp,.segT{display:inline-flex;background:var(--panel2);border-radius:999px;padding:3px;gap:2px;border:0;margin:0}
.tgrp button,.segT button{font:500 12.5px var(--sans);color:var(--mut);padding:5px 12px;border-radius:999px;border:0;letter-spacing:0}
.tgrp button + button,.segT button + button{border:0}
.tgrp button:hover,.segT button:hover{color:var(--txt)}
.tgrp button.on,.segT button.on{background:var(--panel);color:var(--txt);box-shadow:var(--shadow)}
.tgrp button.on.c{color:var(--cyan)}
.tgrp button.on.b{color:var(--blue)}
.ch-info{margin-left:auto;font:400 12.5px var(--sans);color:var(--mut)}
.ch-wrap{position:relative;height:clamp(300px,30vw,440px);margin:0 12px 0 16px;flex:none}
.ch-wrap canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.ch-read{flex:none;min-height:40px;display:flex;align-items:center;gap:4px;padding:8px 20px 14px;
  font:400 13px var(--sans);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-read b{color:var(--txt);font-weight:500;margin-right:8px}

/* ============ WHY GOLD MOVED ============ */
.why{display:flex;flex-direction:column;gap:12px}
.move{font:400 14px var(--sans);color:var(--mut);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.drv{display:flex;flex-direction:column;gap:2px}
.drv .dr,.drow{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;align-items:center;gap:10px;padding:6px 0;
  border-top:1px solid var(--line2);font-size:13.5px}
.drv .dr:first-child,.drow:first-child{border-top:0}
.drv .dr .n,.drow .n{color:var(--txt)}
.drv .dr .d,.drow .d{font-weight:500;text-align:right}
.drv .dr .v{color:var(--dim);text-align:right;font-size:12px}
.drv .m,.drow .m,.meter{height:6px;border-radius:6px;background:var(--grid);position:relative;overflow:hidden;border:0}
.drv .m i,.drow .m i,.meter i{position:absolute;inset:0 auto 0 0;border-radius:6px;background:var(--gold)}
.conf{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line2);padding-top:12px}
.conf .cl{font:400 13px var(--sans);color:var(--mut)}
.segs{display:flex;gap:0;flex:1;height:6px;border-radius:6px;background:var(--grid);overflow:hidden}
.segs i{flex:1;height:6px;background:transparent;border:0}
.segs i.on{background:var(--gold)}
.conf .cv{font:500 16px var(--sans);color:var(--txt)}
.evi{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.evi h6{font:500 12.5px var(--sans);color:var(--dim);margin-bottom:6px}
.evi ul{list-style:none}
.evi li{font:400 13px var(--sans);color:var(--mut);padding:3px 0 3px 14px;line-height:1.45;position:relative}
.evi li b{color:var(--txt)}
.evi li::before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--dim)}
.evi li.pos::before{background:var(--up)} .evi li.neg::before{background:var(--dn)}

/* ============ BUTTONS / INPUTS ============ */
.runbtn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:500 14px var(--sans);
  color:var(--blue);background:var(--blueBg);border:0;border-radius:999px;padding:10px 20px;width:100%;letter-spacing:0;transition:filter .15s}
.runbtn:hover,.btn:hover{filter:brightness(.97);background:var(--blueBg);color:var(--blue)}
body:not(.day) .runbtn:hover,body:not(.day) .btn:hover{filter:brightness(1.15)}
.runbtn:disabled,.btn:disabled{opacity:.55;cursor:progress}
.btn.auto{width:auto}
.btn.fill{background:var(--blue);color:#fff}
body:not(.day) .btn.fill{color:#062e6f}
.btn.ghost{background:transparent;color:var(--mut);border:1px solid var(--line)}
.btn.sm{padding:6px 12px;font-size:13px}
.sub{font:400 12px var(--sans);color:var(--dim);text-align:center}
.inp{background:var(--panel3);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:400 14px var(--sans);
  color:var(--txt);outline:none;min-width:0}
.inp:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blueBg)}
.console{background:var(--panel3);border-radius:10px;padding:12px 14px;font:400 13.5px/1.6 var(--sans);color:var(--txt);
  min-height:96px;max-height:360px;overflow:auto;border:0}
.console .hint{color:var(--dim)}
.console .ln{white-space:pre-wrap}
.console .eng{font:400 12px var(--code);color:var(--dim);margin-bottom:6px}

/* ============ MINERS HEATMAP (treemap-style tiles) ============ */
.hm-sum{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.hm-sum span{font:400 13px var(--sans);color:var(--mut);background:var(--panel2);padding:4px 10px;border-radius:999px;border:0}
.hm-sum span b{color:var(--txt);font-weight:500}
.hm{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.hc{border-radius:10px;padding:10px;min-height:64px;overflow:hidden;border:0;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between}
.hc .t{font:600 14px var(--sans);color:inherit}
.hc .p{font:400 12px var(--sans);opacity:.75}
.hc .c{font:500 13px var(--sans);margin-top:2px;color:inherit}
.hc:hover,.hc.sel{box-shadow:0 0 0 2px var(--blue)}
.hm-leg{display:flex;align-items:center;gap:6px;margin-top:12px;font:400 12px var(--sans);color:var(--dim)}
.hm-leg i{width:22px;height:8px;border-radius:3px;border:0}
.hm-focus{margin-top:10px;font:400 13px var(--sans);color:var(--mut);min-height:20px}
.hm-focus b{color:var(--txt)}

/* ============ SMALL CHARTS ============ */
.vs .mini{height:160px;position:relative}
.vs .mini canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.vs .stat{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font:400 13px var(--sans);color:var(--mut);flex-wrap:wrap}
.vs .stat b{color:var(--txt);font-weight:500}
.vs .note{margin-top:6px;font:400 12px var(--sans);color:var(--dim)}
.vs .rd{margin-top:6px;font:400 12.5px var(--sans);color:var(--mut);min-height:18px}

/* ============ INFO ROWS ============ */
.secH{font:500 13px var(--sans);color:var(--dim);margin:0 0 8px;letter-spacing:0;text-transform:none}
.bi{display:grid;grid-template-columns:minmax(0,1fr) 72px 90px;align-items:center;gap:12px;padding:7px 0;font:400 13.5px var(--sans);
  border-top:1px solid var(--line2)}
.bi:first-of-type{border-top:0}
.bi .n{color:var(--txt)}
.bi .m{height:6px;border-radius:6px;background:var(--grid);position:relative;overflow:hidden}
.bi .m i{position:absolute;inset:0 auto 0 0;border-radius:6px;background:var(--amber)}
.bi.neg .m i{background:var(--up)}
.brk{margin-top:14px;border-top:1px solid var(--line2);padding-top:12px}
.brk h6{font:500 13px var(--sans);color:var(--dim);margin-bottom:6px}
.inf-foot,.footnote{margin-top:14px;padding-top:10px;border-top:1px solid var(--line2);font:400 12px/1.55 var(--sans);color:var(--dim)}
.re .bi{grid-template-columns:minmax(0,1fr) 54px 90px 50px}
.re .bi .v{text-align:right;font-weight:500}
.regline{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line2);padding-top:10px;margin-top:10px;font:400 13px var(--sans);color:var(--mut);flex-wrap:wrap}
.stag{display:flex;align-items:center;gap:8px}
.stag .sg{display:flex;gap:3px}
.stag .sg i{width:8px;height:8px;border-radius:50%;background:var(--grid)}
.stag .sg i.on{background:var(--amber)}
.myidx{border-top:1px solid var(--line2);margin-top:12px;padding-top:12px}
.myidx .wrow{display:grid;grid-template-columns:110px 1fr 40px;align-items:center;gap:10px;font:400 13px var(--sans);color:var(--mut);padding:3px 0}
.myidx .res{display:flex;align-items:center;gap:10px;margin-top:8px;font:400 13px var(--sans)}
.myidx .res b{font-size:18px;color:var(--gold)}
.myidx .dis{font:400 11.5px var(--sans);color:var(--dim);margin-top:4px}
input[type=range]{-webkit-appearance:none;appearance:none;height:4px;border-radius:4px;background:var(--grid);outline:none;width:100%}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--blue);cursor:ew-resize;border:2px solid var(--panel)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--blue);border:2px solid var(--panel);cursor:ew-resize}
.fx-strip{font:400 13px var(--sans);color:var(--mut);margin-bottom:8px}
.rngcell{width:72px;height:4px;border-radius:4px;background:var(--grid);position:relative;display:inline-block;vertical-align:middle;margin-left:8px}
.rngcell i{position:absolute;top:-3px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--gold)}

/* ============ ALERTS ============ */
.alf{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}
.alf button{font:500 12.5px var(--sans);color:var(--mut);padding:5px 12px;border-radius:999px;background:var(--panel2);border:0;letter-spacing:0}
.alf button.on{color:var(--blue);background:var(--blueBg)}
.al{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line2);font:400 13.5px var(--sans);align-items:baseline}
.al:first-child{border-top:0}
.al time{color:var(--dim);font-size:12.5px;flex:none;min-width:40px}
.al .g{flex:none;width:8px;height:8px;border-radius:50%;background:var(--blue);font-size:0;align-self:center}
.al.crit .g{background:var(--dn)} .al.warn .g{background:var(--amber)} .al.info .g{background:var(--blue)}
.al p{flex:1;color:var(--txt);line-height:1.45}
.al.crit p{color:var(--txt)}

/* ============ NEWS (legacy list) ============ */
.nwl{list-style:none}
.nwl li{padding:10px 0;border-top:1px solid var(--line2);font:400 14px/1.45 var(--sans);cursor:default;
  display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:baseline}
.nwl li:first-child{border-top:0}
.nwl time{color:var(--dim);font-size:12.5px;grid-row:1;grid-column:1}
.nwl .tag{grid-column:2;grid-row:2;justify-self:start;margin:0;background:none;padding:0;color:var(--dim);font-size:12px}
.nwl p{display:block;grid-column:2;grid-row:1;color:var(--txt)}
.nwl .sent{grid-column:3;grid-row:1;font:500 11.5px var(--sans);padding:2px 8px;border-radius:999px;background:var(--panel2);color:var(--mut);border:0}
.nwl .sent.b{color:var(--up);background:var(--upBg)}
.nwl .sent.s{color:var(--dn);background:var(--dnBg)}
.nwl .sum{display:none;grid-column:2;font-size:13px;color:var(--mut)}
.nwl li.open .sum{display:block}

/* ============ NEWS FEED v3 (js/newsfeed.js) ============ */
.nf{display:flex;flex-direction:column}
.nf-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.nf-filters .tag{cursor:pointer;font-size:13px;padding:6px 12px}
.nf-filters .tag:hover{color:var(--txt)}
.nf-filters .tag.on{background:var(--blueBg);color:var(--blue)}
.nf-it{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:12px 0;border-top:1px solid var(--line2)}
.nf-it:first-of-type{border-top:0}
.nf-meta{grid-column:1/-1;display:flex;align-items:center;gap:8px;font:400 12.5px var(--sans);color:var(--dim);min-width:0;flex-wrap:wrap}
.nf-meta .src{color:var(--mut);font-weight:500}
.nf-meta .yt{color:var(--dn)}
.nf-t{font:500 15px/1.4 var(--sans);color:var(--txt);text-decoration:none}
a.nf-t:hover{text-decoration:underline}
.nf-s{grid-column:1/-1;font:400 14px/1.55 var(--sans);color:var(--mut);max-width:80ch}
.nf-thumb{grid-row:2/4;grid-column:2;width:112px;height:63px;border-radius:8px;object-fit:cover;background:var(--panel2)}
.nf-tags{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.sdot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--dim)}
.sdot.bull{background:var(--up)} .sdot.bear{background:var(--dn)}
.idea{display:inline-flex;align-items:center;gap:6px;font:500 12.5px var(--sans);padding:4px 10px;border-radius:999px;background:var(--panel2);color:var(--mut)}
.idea.long{background:var(--upBg);color:var(--up)}
.idea.short{background:var(--dnBg);color:var(--dn)}
.nf-more{margin-top:10px}
.empty{padding:22px 0;color:var(--mut);font-size:14px}
.empty b{color:var(--txt);font-weight:500}

/* ============ TRADING IDEAS (home) ============ */
.ideas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ic{border:1px solid var(--line2);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--panel3)}
.ic-h{display:flex;align-items:center;gap:8px}
.ic-a{font:600 15px var(--sans)}
.ic-b{margin-left:auto}
.ic-r{font:400 13.5px/1.5 var(--sans);color:var(--txt)}
.ic-x{font:400 12.5px/1.45 var(--sans);color:var(--mut)}
.ic-f{font:400 12px var(--sans);color:var(--dim);margin-top:auto}

/* ============ CALENDAR (js/calendar.js) ============ */
.calx{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px}
.calm-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.calm-h b{font:500 15px var(--sans);margin-right:auto}
.calm{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.calm .dw{font:500 11.5px var(--sans);color:var(--dim);padding:4px 0}
.calm .d{position:relative;aspect-ratio:1/0.82;border-radius:10px;font:400 13px var(--sans);color:var(--txt);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;border:0;background:none}
.calm .d:hover{background:var(--panel2)}
.calm .d.o{color:var(--dim);opacity:.5}
.calm .d.t{background:var(--blue);color:#fff;font-weight:600}
body:not(.day) .calm .d.t{color:#062e6f}
.calm .d.sel{box-shadow:inset 0 0 0 2px var(--blue)}
.calm .d .dots{display:flex;gap:2px;height:5px}
.calm .d .dots i{width:5px;height:5px;border-radius:50%;background:var(--dim)}
.calm .d .dots i.h{background:var(--dn)} .calm .d .dots i.m{background:var(--amber)} .calm .d .dots i.l{background:var(--blue)}
.calm .d.t .dots i{background:#fff}
.cal-ag{display:flex;flex-direction:column;min-width:0}
.cal-ag h5{font:500 13px var(--sans);color:var(--dim);margin:2px 0 6px}
.cal-ev{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:2px 12px;padding:9px 0;border-top:1px solid var(--line2);align-items:baseline}
.cal-ev:first-of-type{border-top:0}
.cal-ev .w{font:500 13px var(--sans);color:var(--mut)}
.cal-ev .w small{display:block;font:400 12px var(--sans);color:var(--dim)}
.cal-ev .e{font:500 14px var(--sans);color:var(--txt);min-width:0}
.cal-ev .e small{display:block;font:400 12.5px var(--sans);color:var(--mut)}
.imp{font:500 11.5px var(--sans);padding:2px 8px;border-radius:999px;white-space:nowrap}
.imp.h{background:var(--dnBg);color:var(--dn)} .imp.m{background:var(--amBg);color:var(--amber)} .imp.l{background:var(--blueBg);color:var(--blue)}
.cd{display:flex;align-items:baseline;gap:10px;background:var(--panel3);border-radius:12px;padding:12px 14px;margin-bottom:10px;flex-wrap:wrap}
.cd b{font:500 22px var(--sans)}
.cd span{color:var(--mut);font-size:13px}
.cal .imp i{display:none}
.cd-live{font:500 14px var(--sans);color:var(--amber)}
.react{margin-top:12px;border-top:1px solid var(--line2);padding-top:10px;font:400 13px var(--sans);color:var(--mut);line-height:1.6}
.react b{color:var(--txt)}

/* ============ MAPS (js/usmap.js, js/worldmap.js) ============ */
.mapbox{position:relative;width:100%}
.mapbox svg{width:100%;height:auto;overflow:visible}
.mapbox .st{stroke:var(--panel);stroke-width:.8;transition:opacity .15s}
.mapbox .st:hover{stroke:var(--txt);stroke-width:1.4}
.mapbox .lbl{font:500 9.5px var(--sans);fill:var(--txt);pointer-events:none;paint-order:stroke;stroke:var(--panel);stroke-width:2.2px}
.mapbox .land{fill:var(--panel2);stroke:var(--line);stroke-width:.5}
.mapbox .bord{fill:none;stroke:var(--line);stroke-width:.4}
.mapbox .route{fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;opacity:.75}
.mapbox .route.flow{stroke-dasharray:4 7;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-22}}
.mapbox .pt{stroke:var(--panel);stroke-width:1.5;cursor:pointer}
.mapbox .pt:hover{stroke:var(--txt)}
.mapbox .ring{fill:none;stroke-width:1.2;opacity:.5}
.maptip{position:absolute;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow);padding:9px 12px;font:400 13px/1.45 var(--sans);color:var(--txt);min-width:160px;z-index:5;display:none}
.maptip b{font-weight:600}
.maptip .m{color:var(--mut);font-size:12.5px}
.legend{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;font:400 12.5px var(--sans);color:var(--mut);margin-top:10px}
.legend .sw{display:inline-flex;align-items:center;gap:6px}
.legend .sw i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legend .ramp{height:8px;border-radius:4px;width:160px}
.maptabs{display:flex;gap:6px;flex-wrap:wrap}

/* ============ ML · INSIGHT STRIP (js/ml-strip.js) ============ */
#mlstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 var(--gap);
  background:none;border:0;min-height:0;overflow:visible;white-space:normal}
#mlstrip .ms-c{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;background:var(--panel);
  border:1px solid var(--line);border-radius:12px;color:var(--txt);text-decoration:none;font:400 13px var(--sans)}
#mlstrip a.ms-c:hover{border-color:var(--blue);text-decoration:none}
#mlstrip .ms-k{font:500 12px var(--sans);color:var(--dim);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mlstrip b{font:500 18px/1.25 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mlstrip .ms-d{font:400 12.5px var(--sans);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mlstrip .ms-d b{font-size:12.5px}
#mlstrip.loading .ms-c{min-height:72px;background:linear-gradient(90deg,var(--panel) 0%,var(--panel2) 50%,var(--panel) 100%);background-size:200% 100%;animation:shimmer 1.4s infinite}
@keyframes shimmer{to{background-position:-200% 0}}

/* ============ REFERENCE / MISC ============ */
.pressure{display:inline-flex;gap:3px;vertical-align:middle;margin-left:8px}
.pressure i{width:7px;height:7px;border-radius:50%;background:var(--grid);border:0}
.pressure i.on{background:var(--dn)}
.pressure.md i.on{background:var(--amber)}
.pressure.lo i.on{background:var(--up)}
.stance{font:500 12.5px var(--sans)}
.stance.h{color:var(--dn)} .stance.d{color:var(--up)} .stance.n{color:var(--dim)} .stance.e{color:var(--cyan)}
.buyt{color:var(--up);font-weight:600}
.ingbar{display:flex;gap:16px;flex-wrap:wrap;font:400 12.5px var(--sans);color:var(--dim);margin-bottom:10px}
.ingbar b{color:var(--mut);font-weight:500}
.stdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}
.stdot.on{background:var(--up)} .stdot.idle{background:var(--amber)} .stdot.off{background:var(--dim)}
.navgrid,.deskcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
a.navcard,a.deskcard{display:block;border:1px solid var(--line2);background:var(--panel3);border-radius:12px;padding:14px 16px;text-decoration:none;color:var(--txt)}
a.navcard:hover,a.deskcard:hover{border-color:var(--blue);text-decoration:none}
.navcard .nt,.deskcard .dt{font:500 15px var(--sans);color:var(--txt);letter-spacing:0}
.navcard .nd,.deskcard .dd{font:400 13px/1.45 var(--sans);color:var(--mut);margin-top:4px}
.kpi{display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi label{font:400 12.5px var(--sans);color:var(--dim)}
.kpi b{font:400 26px/1.15 var(--sans);letter-spacing:-.01em}
.kpi small{font:400 12.5px var(--sans);color:var(--mut)}
.kpis-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.ring{position:relative;width:132px;height:132px;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .rv{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .rv b{font:400 28px var(--sans)}
.ring .rv small{font:400 12px var(--sans);color:var(--mut)}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lst{display:flex;flex-direction:column}
.lst>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line2);font-size:13.5px}
.lst>div:first-child{border-top:0}
.lst .n{color:var(--txt);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lst .n small{display:block;color:var(--dim);font-size:12px;white-space:normal}
.lst .v{font-weight:500;text-align:right}
.lst .c{text-align:right;font-size:13px;min-width:64px}

/* ============ FOOTER ============ */
#status{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:1600px;margin:0 auto;
  padding:4px 24px 28px;font:400 12.5px var(--sans);color:var(--dim);background:none;border:0;height:auto}
#status .mid{flex:1;text-align:right;color:var(--dim)}
#status b{color:var(--mut);font-weight:500}

/* ============ PALETTE / TOOLTIP / TOASTS ============ */
#pal{position:fixed;inset:0;background:rgba(32,33,36,.45);z-index:90;display:none;padding-top:12vh}
#pal.on{display:block}
.palbox{width:600px;max-width:92vw;margin:0 auto;background:var(--panel);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.3);overflow:hidden}
.palin{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.palin input{flex:1;background:none;border:none;outline:none;font:400 16px var(--sans)}
.pallist{list-style:none;max-height:340px;overflow:auto}
.pallist li{display:flex;gap:14px;align-items:baseline;padding:10px 18px;cursor:pointer}
.pallist li .c{min-width:150px}
.pallist li .d{color:var(--dim);font-size:13px}
.pallist li.on{background:var(--blueBg)}
.palft{padding:8px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--dim)}
#tip{position:fixed;z-index:95;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  font:400 13px var(--sans);pointer-events:none;display:none;min-width:190px;box-shadow:var(--shadow)}
#tip .th{font-weight:600;margin-bottom:4px}
#tip .tr{display:flex;justify-content:space-between;gap:16px;color:var(--mut);padding:1px 0}
#tip .tr b{color:var(--txt)}
#tip .tf{margin-top:6px;border-top:1px solid var(--line2);padding-top:5px;font-size:12px;color:var(--dim)}
#toasts{position:fixed;bottom:20px;right:20px;z-index:96;display:flex;flex-direction:column;gap:8px;width:340px;max-width:calc(100vw - 40px)}
.toast{background:#303134;color:#e8eaed;border-radius:10px;padding:12px 14px;font:400 13.5px/1.45 var(--sans);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.toast b{color:#fff}
.toast.out{opacity:0;transform:translateY(10px);transition:.3s}

/* ============ RESPONSIVE ============ */
@media (max-width:1280px){
  .c2{grid-column:span 3}
  .c3{grid-column:span 6}
  .c4,.c5{grid-column:span 6}
  .c7,.c8,.c9{grid-column:1/-1}
  .c6{grid-column:span 6}
  .calx{grid-template-columns:1fr}
}
@media (max-width:1100px){
  .logo .lv{display:none}
  #clock{display:none}
}
@media (max-width:860px){
  main,.wrap{padding:14px 14px 22px}
  .grid{gap:12px}
  .c2,.c3,.c4,.c5,.c6{grid-column:1/-1}
  #top{gap:10px;padding:0 10px;height:56px}
  .logo .lt{display:none}
  #logout{display:none}
  .p-hd{padding:14px 16px 2px}
  .p-bd{padding:8px 16px 16px;overflow-x:auto}
  .tb td,.tb th{padding-left:6px;padding-right:6px}
  .tb td.wrap{min-width:140px}
  .ch-tools{padding:4px 16px 8px}
  .ch-wrap{margin:0 8px 0 10px;height:280px}
  .evi{grid-template-columns:1fr}
  .stat6,.kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kv.k4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pagehead h1{font-size:22px}
  #status{padding:4px 14px 22px}
  #status .mid{text-align:left}
  .nf-thumb{width:84px;height:48px}
  #mlstrip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tape-in{padding:0 14px}
}
@media (max-width:420px){
  #mlstrip b{font-size:16px}
  .bigpx{font-size:34px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
