@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Outfit:wght@400;600;700;800;900&display=swap');

:root {
  --bg:        #0b0f19;
  --bg2:       #0e1420;
  --bg3:       #121a28;
  --panel:     #111827;
  --border:    #1e2d45;
  --border2:   #253550;
  --blue:      #3b82f6;
  --blue2:     #60a5fa;
  --blue-dim:  #1d4ed8;
  --green:     #22c55e;
  --green2:    #4ade80;
  --red:       #ef4444;
  --red2:      #f87171;
  --yellow:    #eab308;
  --text:      #f1f5f9;
  --text2:     #94a3b8;
  --text3:     #475569;
  --font-disp: 'Outfit', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --hdr:       54px;
  --strip:     34px;
  --nav:       188px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{height:100%;}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
.grid-overlay{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(59,130,246,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,0.04) 1px,transparent 1px);background-size:48px 48px;}

/* Header */
header{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--hdr);display:grid;grid-template-columns:var(--nav) 1fr auto;align-items:center;background:rgba(11,15,25,0.97);border-bottom:1px solid var(--border);backdrop-filter:blur(16px);}
.header-left{padding:0 18px;}
.logo{display:flex;align-items:center;gap:10px;}
.logo-name{display:block;font-family:var(--font-disp);font-size:19px;font-weight:800;color:var(--text);line-height:1;}
.logo-sub{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:2px;color:var(--text3);margin-top:3px;}
.header-center{overflow:hidden;padding:0 8px;}
.ticker-bar{overflow:hidden;height:24px;position:relative;}
.ticker-bar::before,.ticker-bar::after{content:'';position:absolute;top:0;bottom:0;width:32px;z-index:2;}
.ticker-bar::before{left:0;background:linear-gradient(90deg,var(--bg),transparent);}
.ticker-bar::after{right:0;background:linear-gradient(270deg,var(--bg),transparent);}
.ticker-inner{display:flex;align-items:center;white-space:nowrap;height:24px;animation:scroll 80s linear infinite;}
.ticker-inner:hover{animation-play-state:paused;}
@keyframes scroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.ticker-item{display:inline-flex;align-items:center;gap:7px;padding:0 16px;font-family:var(--font-mono);font-size:11px;border-right:1px solid var(--border);}
.t-sym{color:var(--text);font-weight:600;}
.t-price{color:var(--text2);}
.t-chg.up{color:var(--green2);}
.t-chg.dn{color:var(--red2);}
.ticker-placeholder{font-family:var(--font-mono);font-size:11px;color:var(--text3);padding:0 16px;}
.header-right{display:flex;border-left:1px solid var(--border);}
.hud-item{padding:0 16px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:2px;}
.hud-label{font-family:var(--font-mono);font-size:8px;letter-spacing:2px;color:var(--text3);}
.hud-value{font-family:var(--font-disp);font-size:14px;font-weight:700;color:var(--text);}
.hud-value.gold{color:var(--blue2);}
.hud-value.mono{font-family:var(--font-mono);font-size:12px;font-weight:500;}
.hud-value.open{color:var(--green2);}
.hud-value.closed{color:var(--red2);}
.hud-value.has-alerts{color:var(--yellow);animation:pulse 2s infinite;}
.alerts-hud{cursor:pointer;transition:background .15s;}
.alerts-hud:hover{background:rgba(234,179,8,.06);}

/* Sentiment strip */
.sentiment-strip{position:fixed;top:var(--hdr);left:0;right:0;z-index:190;height:var(--strip);display:flex;align-items:center;gap:12px;padding:0 16px 0 calc(var(--nav) + 16px);background:var(--bg2);border-bottom:1px solid var(--border);}
.ss-label{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;color:var(--text3);}
.ss-badge{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:1px;padding:2px 9px;border-radius:3px;}
.ss-badge.BULLISH{background:rgba(34,197,94,.12);color:var(--green2);border:1px solid rgba(34,197,94,.25);}
.ss-badge.BEARISH{background:rgba(239,68,68,.12);color:var(--red2);border:1px solid rgba(239,68,68,.25);}
.ss-badge.NEUTRAL,.ss-badge.LOADING,.ss-badge.ANALYZING{background:rgba(59,130,246,.1);color:var(--blue2);border:1px solid rgba(59,130,246,.2);}
.ss-div{color:var(--text3);}
.ss-text{font-size:12px;color:var(--text2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ss-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;}
.ss-time{font-family:var(--font-mono);font-size:10px;color:var(--text3);}

/* Layout */
.app-layout{display:flex;margin-top:calc(var(--hdr) + var(--strip));min-height:calc(100vh - var(--hdr) - var(--strip) - 34px);position:relative;z-index:1;}

/* Sidebar */
.sidebar{width:var(--nav);flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:calc(var(--hdr)+var(--strip));height:calc(100vh - var(--hdr) - var(--strip));overflow-y:auto;}
.nav-item{display:flex;align-items:center;gap:9px;padding:12px 16px;background:none;border:none;cursor:pointer;color:var(--text2);font-family:var(--font-body);font-size:13px;font-weight:500;border-left:2px solid transparent;transition:all .15s;width:100%;text-align:left;}
.nav-item:hover{background:rgba(59,130,246,.06);color:var(--text);}
.nav-item.active{border-left-color:var(--blue);color:var(--blue2);background:rgba(59,130,246,.08);}
.ni{font-size:13px;flex-shrink:0;width:15px;}
.nl{flex:1;}
.nb{font-family:var(--font-mono);font-size:10px;background:var(--border);color:var(--text2);padding:1px 5px;border-radius:3px;}
.nb.alert-nb{background:var(--yellow);color:#000;}
.sb-divider{height:1px;background:var(--border);margin:6px 0;}
.sb-footer{margin-top:auto;padding:12px 16px;}
.sb-status{display:flex;flex-direction:column;gap:6px;}
.sr{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10px;color:var(--text3);}
.dot{width:7px;height:7px;border-radius:50%;background:var(--text3);animation:pulse 2s infinite;}
.dot.ok{background:var(--green);animation:none;}
.dot.err{background:var(--red);}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}

/* Content */
.content{flex:1;padding:24px;overflow-y:auto;min-width:0;}
.tab-pane{display:none;}
.tab-pane.active{display:block;animation:fadeUp .2s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);}}
.pane-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px;}
.pane-hdr h2{font-family:var(--font-disp);font-size:24px;font-weight:800;color:var(--text);}
.pane-sub{font-size:12px;color:var(--text2);margin-top:3px;}
.pane-acts{display:flex;gap:8px;flex-shrink:0;}

/* Buttons */
.btn-pri{background:var(--blue);color:#fff;border:none;font-family:var(--font-body);font-size:13px;font-weight:600;padding:8px 18px;cursor:pointer;border-radius:6px;transition:all .15s;}
.btn-pri:hover{background:var(--blue2);color:#0b0f19;}
.btn-pri:disabled{opacity:.4;cursor:not-allowed;}
.btn-sec{background:none;border:1px solid var(--border2);color:var(--text2);font-family:var(--font-body);font-size:13px;font-weight:500;padding:7px 14px;cursor:pointer;border-radius:6px;transition:all .15s;}
.btn-sec:hover{border-color:var(--blue);color:var(--blue2);}

/* Stats bar */
.stats-bar{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:18px;background:var(--panel);}
.stat-item{flex:1;padding:12px 16px;border-right:1px solid var(--border);text-align:center;}
.stat-item:last-child{border-right:none;}
.stat-lbl{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;color:var(--text3);margin-bottom:5px;}
.stat-val{display:block;font-family:var(--font-disp);font-size:20px;font-weight:800;color:var(--text);}

/* Signal cards */
.signals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;}
.sig-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:18px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;}
.sig-card::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;}
.sig-card.BUY::after{background:linear-gradient(90deg,var(--green),#86efac);}
.sig-card.WATCH::after{background:linear-gradient(90deg,var(--yellow),#fde68a);}
.sig-card.AVOID::after{background:linear-gradient(90deg,var(--red),#fca5a5);}
.sig-card:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.4);}
.sc-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.sc-sym{font-family:var(--font-disp);font-size:26px;font-weight:900;color:var(--text);line-height:1;}
.sc-name{font-size:11px;color:var(--text2);margin-top:2px;}
.action-badge{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:0.5px;padding:4px 10px;border-radius:4px;}
.action-badge.BUY{background:rgba(34,197,94,.12);color:var(--green2);border:1px solid rgba(34,197,94,.25);}
.action-badge.WATCH{background:rgba(234,179,8,.12);color:var(--yellow);border:1px solid rgba(234,179,8,.25);}
.action-badge.AVOID{background:rgba(239,68,68,.12);color:var(--red2);border:1px solid rgba(239,68,68,.25);}
.sc-catalyst{font-family:var(--font-mono);font-size:10px;color:var(--blue2);background:rgba(59,130,246,.06);border-left:2px solid var(--blue-dim);padding:5px 9px;border-radius:3px;margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sc-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px;}
.sc-m{background:var(--bg3);padding:8px 10px;border-radius:5px;}
.sc-ml{font-family:var(--font-mono);font-size:8px;letter-spacing:1.5px;color:var(--text3);margin-bottom:3px;}
.sc-mv{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);}
.sc-mv.g{color:var(--green2);}
.sc-mv.r{color:var(--red2);}
.sc-mv.a{color:var(--blue2);}
.sc-conf{margin-bottom:10px;}
.sc-conf-hd{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9px;color:var(--text3);margin-bottom:4px;}
.conf-track{height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.conf-fill{height:100%;background:linear-gradient(90deg,var(--blue-dim),var(--blue2));transition:width 1s ease;}
.sc-sum{font-size:12px;color:var(--text2);line-height:1.65;border-top:1px solid var(--border);padding-top:10px;}
.risk-pill{font-family:var(--font-mono);font-size:9px;padding:2px 8px;border-radius:10px;display:inline-block;margin-top:7px;}
.risk-pill.LOW{background:rgba(34,197,94,.1);color:var(--green);}
.risk-pill.MEDIUM{background:rgba(234,179,8,.1);color:var(--yellow);}
.risk-pill.HIGH{background:rgba(239,68,68,.1);color:var(--red2);}

/* Inline ROI Calculator — always visible slider */
.sc-calc{border-top:1px solid var(--border);margin-top:12px;padding-top:12px;}
.sc-calc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.sc-calc-label{font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;color:var(--text3);}
.sc-calc-amount-display{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--blue2);}
.sc-calc-slider{
  width:100%;margin-bottom:4px;cursor:pointer;
  -webkit-appearance:none;appearance:none;
  height:4px;border-radius:2px;outline:none;
  background:linear-gradient(90deg, var(--blue) 2%, var(--border2) 2%);
  transition:background .1s;
}
.sc-calc-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--blue2);border:2px solid var(--bg);cursor:pointer;box-shadow:0 0 6px rgba(59,130,246,.5);}
.sc-calc-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--blue2);border:2px solid var(--bg);cursor:pointer;}
.sc-calc-ticks{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:8px;color:var(--text3);margin-bottom:10px;}
.sc-calc-result-wrap{}
.sc-calc-result{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.sc-calc-scenario{background:var(--bg3);border:1px solid var(--border);border-radius:5px;padding:9px 8px;text-align:center;}
.sc-calc-scenario.bear{border-color:rgba(239,68,68,.3);}
.sc-calc-scenario.base{border-color:rgba(234,179,8,.3);}
.sc-calc-scenario.bull{border-color:rgba(34,197,94,.3);}
.scs-label{font-family:var(--font-mono);font-size:8px;letter-spacing:1px;color:var(--text3);margin-bottom:4px;}
.scs-pct{font-family:var(--font-disp);font-size:17px;font-weight:800;line-height:1;}
.scs-pct.bear{color:var(--red2);}
.scs-pct.base{color:var(--yellow);}
.scs-pct.bull{color:var(--green2);}
.scs-profit{font-family:var(--font-mono);font-size:11px;margin-top:3px;}
.scs-profit.pos{color:var(--green2);}
.scs-profit.neg{color:var(--red2);}
.scs-total{font-family:var(--font-mono);font-size:9px;color:var(--text3);margin-top:2px;}
/* Slider gradient fill tracks value position */
.sc-calc-slider::-webkit-slider-runnable-track{height:4px;border-radius:2px;}

/* Calculator inside mover table rows */
.mrow + .sc-calc{border-top:none;margin-top:0;padding:0 14px 12px 14px;background:var(--panel);border-bottom:1px solid var(--border);}

/* Tables */
.movers-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;}
.mc.narrow{display:flex;flex-direction:column;}
.mt16{margin-top:16px;}
.table-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.t-title{font-size:13px;font-weight:600;color:var(--text2);padding:12px 16px;border-bottom:1px solid var(--border);}
.t-hdr{display:grid;padding:8px 14px;font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;color:var(--text3);background:var(--bg3);border-bottom:1px solid var(--border);}
.mr6{grid-template-columns:70px 1fr 80px 72px 72px 80px;}
.mr3{grid-template-columns:60px 1fr 72px;}
.hist-row{grid-template-columns:110px 60px 65px 55px 80px 80px 70px 1fr;}
.cron-row{grid-template-columns:130px 90px 65px 70px 1fr;}
.mrow{display:grid;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;font-size:13px;align-items:center;}
.mrow:hover{background:rgba(59,130,246,.04);}
.mrow:last-child{border-bottom:none;}
.mrow.mr6{grid-template-columns:70px 1fr 80px 72px 72px 80px;}
.mrow.mr3{grid-template-columns:60px 1fr 72px;}
.m-sym{font-family:var(--font-disp);font-size:15px;font-weight:800;color:var(--blue2);}
.m-name{font-size:11px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.m-price{font-family:var(--font-mono);font-size:12px;font-weight:500;text-align:right;color:var(--text);}
.m-chg{font-family:var(--font-mono);font-size:12px;font-weight:600;text-align:right;}
.m-chg.up{color:var(--green2);}
.m-chg.dn{color:var(--red2);}
.m-surge{font-family:var(--font-mono);font-size:11px;text-align:right;color:var(--text2);}
.m-surge.hot{color:var(--yellow);font-weight:600;}
.hrow{display:grid;grid-template-columns:110px 60px 65px 55px 80px 80px 70px 1fr;padding:9px 14px;border-bottom:1px solid var(--border);font-size:11px;align-items:center;}
.hrow:hover{background:rgba(59,130,246,.03);}
.hrow:last-child{border-bottom:none;}
.outcome-badge{font-family:var(--font-mono);font-size:9px;padding:2px 7px;border-radius:3px;}
.outcome-badge.win{background:rgba(34,197,94,.12);color:var(--green);}
.outcome-badge.loss{background:rgba(239,68,68,.12);color:var(--red2);}
.outcome-badge.pending{background:rgba(59,130,246,.08);color:var(--text3);}
.crow{display:grid;grid-template-columns:130px 90px 65px 70px 1fr;padding:8px 14px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:10px;color:var(--text2);}
.crow:last-child{border-bottom:none;}
.cron-status.done{color:var(--green);}
.cron-status.error{color:var(--red2);}
.cron-status.running{color:var(--yellow);}

/* Alternatives */
.macro-strip{background:rgba(59,130,246,.05);border:1px solid rgba(59,130,246,.15);border-left:3px solid var(--blue);padding:14px 18px;border-radius:6px;margin-bottom:16px;}
.macro-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;color:var(--blue2);margin-bottom:6px;}
.macro-txt{font-size:13px;color:var(--text2);line-height:1.7;}
.sectors-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.sec-tag{font-family:var(--font-mono);font-size:10px;padding:3px 10px;border-radius:20px;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);color:var(--green);}
.sec-tag.avoid{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2);color:var(--red2);}
.alts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;}
.alt-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;transition:all .2s;}
.alt-card:hover{border-color:var(--border2);}
.alt-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.alt-type{font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;padding:3px 8px;border-radius:3px;background:var(--bg3);color:var(--text3);border:1px solid var(--border);}
.alt-type.ETF{color:var(--blue2);border-color:rgba(59,130,246,.3);}
.alt-type.CRYPTO{color:#a78bfa;border-color:rgba(167,139,250,.3);}
.alt-type.COMMODITY{color:var(--yellow);border-color:rgba(234,179,8,.3);}
.alt-type.IPO{color:var(--green);border-color:rgba(34,197,94,.3);}
.alt-type.OPTIONS{color:var(--red2);border-color:rgba(239,68,68,.3);}
.alt-name{font-family:var(--font-disp);font-size:17px;font-weight:800;color:var(--text);margin-bottom:6px;}
.alt-reason{font-size:12px;color:var(--text2);line-height:1.65;margin-bottom:12px;}
.alt-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:10px;}
.alt-s{background:var(--bg3);padding:7px 8px;border-radius:4px;text-align:center;}
.alt-sl{font-family:var(--font-mono);font-size:8px;letter-spacing:1px;color:var(--text3);}
.alt-sv{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--green2);margin-top:2px;}
.alt-how{font-family:var(--font-mono);font-size:9px;color:var(--text3);border-top:1px solid var(--border);padding-top:8px;margin-top:8px;}

/* Deep Scan */
.deep-row{display:flex;gap:10px;margin-bottom:10px;max-width:480px;}
.deep-row input{flex:1;background:var(--panel);border:1px solid var(--border2);color:var(--text);font-family:var(--font-mono);font-size:16px;font-weight:600;padding:11px 14px;border-radius:6px;outline:none;letter-spacing:2px;text-transform:uppercase;transition:border-color .2s;}
.deep-row input:focus{border-color:var(--blue);}
.deep-row input::placeholder{color:var(--text3);font-size:12px;letter-spacing:1px;text-transform:none;}
.deep-batch-row{display:flex;align-items:center;gap:10px;margin-bottom:22px;max-width:680px;}
.batch-label{font-family:var(--font-mono);font-size:10px;color:var(--text3);white-space:nowrap;}
.deep-batch-row input{flex:1;background:var(--panel);border:1px solid var(--border2);color:var(--text);font-family:var(--font-mono);font-size:12px;padding:8px 12px;border-radius:5px;outline:none;transition:border-color .2s;}
.deep-batch-row input:focus{border-color:var(--blue-dim);}
.deep-report{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.deep-hero{padding:24px;background:linear-gradient(135deg,var(--bg2),var(--bg3));border-bottom:1px solid var(--border);}
.deep-symbol{font-family:var(--font-disp);font-size:48px;font-weight:900;letter-spacing:-2px;color:var(--text);line-height:1;}
.deep-verdict{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:1.5px;padding:5px 12px;border-radius:4px;display:inline-block;margin-top:8px;}
.deep-verdict.BUY,.deep-verdict.STRONG-BUY{background:rgba(34,197,94,.12);color:var(--green2);border:1px solid rgba(34,197,94,.25);}
.deep-verdict.HOLD{background:rgba(59,130,246,.1);color:var(--blue2);border:1px solid rgba(59,130,246,.2);}
.deep-verdict.SELL,.deep-verdict.STRONG-SELL{background:rgba(239,68,68,.12);color:var(--red2);border:1px solid rgba(239,68,68,.25);}
.deep-metrics{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.dm{background:rgba(0,0,0,.3);padding:9px 13px;border-radius:5px;min-width:88px;}
.dm-l{font-family:var(--font-mono);font-size:8px;letter-spacing:1.5px;color:var(--text3);}
.dm-v{font-family:var(--font-mono);font-size:13px;font-weight:600;margin-top:3px;color:var(--text);}
.dm-v.g{color:var(--green2);}
.dm-v.r{color:var(--red2);}
.dm-v.a{color:var(--blue2);}
.deep-body{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:24px;}
.deep-sec{margin-bottom:14px;}
.deep-sec-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;color:var(--text3);padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.deep-thesis{font-size:13px;color:var(--text2);line-height:1.8;grid-column:1/-1;background:rgba(59,130,246,.04);padding:16px;border-radius:6px;border-left:2px solid var(--blue-dim);}
.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;}
.dtag{font-family:var(--font-mono);font-size:10px;padding:3px 9px;border-radius:3px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);}
.dtag.g{border-color:rgba(34,197,94,.3);color:var(--green);}
.dtag.r{border-color:rgba(239,68,68,.3);color:var(--red2);}
.news-item{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--text2);}
.news-item:last-child{border-bottom:none;}
.ndot{width:6px;height:6px;border-radius:50%;margin-top:3px;flex-shrink:0;}
.ndot.POSITIVE{background:var(--green);}
.ndot.NEGATIVE{background:var(--red);}
.ndot.NEUTRAL{background:var(--text3);}
.cached-note{font-family:var(--font-mono);font-size:10px;color:var(--blue-dim);padding:6px 14px;background:rgba(59,130,246,.05);border-bottom:1px solid var(--border);}
.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:4px;}
.batch-mini{background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:14px;cursor:pointer;transition:all .2s;}
.batch-mini:hover{border-color:var(--border2);transform:translateY(-1px);}
.bm-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.bm-sym{font-family:var(--font-disp);font-size:22px;font-weight:900;color:var(--text);}
.bm-thesis{font-size:11px;color:var(--text2);line-height:1.5;margin-top:8px;border-top:1px solid var(--border);padding-top:8px;}

/* Portfolio */
.port-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;margin-bottom:4px;}
.ps-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px;}
.ps-label{font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;color:var(--text3);margin-bottom:5px;}
.ps-value{font-family:var(--font-disp);font-size:21px;font-weight:800;color:var(--text);}
.ps-value.pos{color:var(--green2);}
.ps-value.neg{color:var(--red2);}
.port-row{grid-template-columns:70px 70px 90px 90px 90px 90px 70px 70px 80px;}
.prow{display:grid;grid-template-columns:70px 70px 90px 90px 90px 90px 70px 70px 80px;padding:10px 14px;border-bottom:1px solid var(--border);align-items:center;font-size:12px;}
.prow:hover{background:rgba(59,130,246,.03);}
.prow:last-child{border-bottom:none;}
.p-sym{font-family:var(--font-disp);font-size:15px;font-weight:800;color:var(--blue2);}
.p-mono{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--text);}
.p-pos{color:var(--green2)!important;}
.p-neg{color:var(--red2)!important;}
.p-btn{font-family:var(--font-mono);font-size:10px;padding:3px 8px;border:1px solid var(--border);background:none;color:var(--text2);cursor:pointer;border-radius:4px;transition:all .15s;}
.p-btn:hover{border-color:var(--blue);color:var(--blue2);}
.p-btn.close-btn:hover{border-color:var(--green2);color:var(--green2);}
.p-btn.del-btn:hover{border-color:var(--red2);color:var(--red2);}

/* Alerts */
.alert-row{grid-template-columns:70px 140px 100px 80px 1fr 110px 80px;}
.arow{display:grid;grid-template-columns:70px 140px 100px 80px 1fr 110px 80px;padding:10px 14px;border-bottom:1px solid var(--border);align-items:center;font-size:12px;}
.arow:hover{background:rgba(59,130,246,.03);}
.arow:last-child{border-bottom:none;}
.alert-status{font-family:var(--font-mono);font-size:10px;padding:2px 7px;border-radius:3px;}
.alert-status.active{background:rgba(59,130,246,.1);color:var(--blue2);}
.alert-status.triggered{background:rgba(34,197,94,.1);color:var(--green2);}
.alert-status.dismissed{background:rgba(100,100,100,.08);color:var(--text3);}
.alert-type-badge{font-family:var(--font-mono);font-size:9px;padding:2px 6px;border-radius:3px;background:var(--bg3);color:var(--text2);border:1px solid var(--border);}
.alerts-tabs{display:flex;gap:6px;margin-bottom:0;}
.atab{background:none;border:1px solid var(--border);color:var(--text2);font-family:var(--font-mono);font-size:11px;padding:6px 16px;cursor:pointer;border-radius:5px;transition:all .15s;}
.atab:hover{color:var(--text);}
.atab.active{background:rgba(59,130,246,.1);border-color:var(--blue);color:var(--blue2);}

/* Watchlist */
.watchlist-grid{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0;}
.wl-chip{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:8px 12px;transition:all .15s;}
.wl-chip:hover{border-color:var(--border2);}
.wl-sym{font-family:var(--font-disp);font-size:15px;font-weight:800;color:var(--text);min-width:50px;}
.wl-price{font-family:var(--font-mono);font-size:11px;color:var(--text2);}
.wl-chg{font-family:var(--font-mono);font-size:11px;font-weight:600;}
.wl-chg.up{color:var(--green2);}
.wl-chg.dn{color:var(--red2);}
.wl-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:12px;padding:0 2px;transition:color .15s;}
.wl-del:hover{color:var(--red2);}
.wl-scan{background:none;border:none;color:var(--text3);cursor:pointer;font-size:11px;padding:0 2px;transition:color .15s;}
.wl-scan:hover{color:var(--blue2);}

/* System */
.sys-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:12px;}
.sys-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px;}
.sys-card-title{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;color:var(--text3);margin-bottom:8px;}
.sys-val{font-family:var(--font-disp);font-size:22px;font-weight:800;color:var(--text);}
.sys-val.ok{color:var(--green2);}
.sys-val.err{color:var(--red2);}
.sys-val.warn{color:var(--yellow);}
.sys-sub{font-size:11px;color:var(--text2);margin-top:4px;font-family:var(--font-mono);}
.cron-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin-top:16px;}
.cron-pre{font-family:var(--font-mono);font-size:11px;color:var(--text2);background:var(--bg3);padding:14px;border-radius:5px;overflow-x:auto;line-height:1.8;margin-top:10px;}

/* Forms */
.modal-form{padding:24px;}
.modal-form h3{font-family:var(--font-disp);font-size:20px;font-weight:800;color:var(--text);margin-bottom:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.form-row.full{grid-template-columns:1fr;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-group label{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;color:var(--text3);}
.form-group input,.form-group select,.form-group textarea{background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--font-body);font-size:13px;padding:9px 11px;border-radius:5px;outline:none;transition:border-color .2s;}
.form-group input:focus,.form-group select:focus{border-color:var(--blue);}
.form-group select{cursor:pointer;}
.form-group option{background:var(--bg2);}
.form-actions{display:flex;gap:10px;margin-top:18px;justify-content:flex-end;}

/* States */
.state-load{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;gap:14px;color:var(--text3);}
.spinner{width:28px;height:28px;border:2px solid var(--border2);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.err-box{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2);border-radius:6px;padding:16px;font-family:var(--font-mono);font-size:12px;color:var(--red2);}

/* Modal */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);z-index:500;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-bg.open{display:flex;}
.modal-box{background:var(--panel);border:1px solid var(--border2);border-radius:10px;max-width:680px;width:100%;max-height:82vh;overflow-y:auto;position:relative;animation:mIn .2s ease;}
@keyframes mIn{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:scale(1);}}
.modal-x{position:absolute;top:14px;right:14px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:12px;z-index:10;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.modal-x:hover{background:var(--border2);color:var(--text);}

/* Footer */
footer{text-align:center;padding:16px;font-family:var(--font-mono);font-size:10px;color:var(--text3);border-top:1px solid var(--border);}

/* Responsive */
@media(max-width:1100px){.movers-layout{grid-template-columns:1fr;}}
@media(max-width:800px){
  :root{--nav:46px;}
  .nl,.nb{display:none;}
  .ni{font-size:16px;width:auto;}
  .nav-item{justify-content:center;padding:14px 8px;}
  .content{padding:16px;}
  .signals-grid{grid-template-columns:1fr;}
  .deep-body{grid-template-columns:1fr;}
  .sentiment-strip{padding-left:62px;}
}

/* ── Calculator inside mover table rows ── */
.mrow + .sc-calc {
  border-top: none;
  margin-top: 0;
  padding: 0 14px 10px 14px;
  background: var(--panel);
  border-bottom: 1px solid var(--border);
}
.mrow + .sc-calc .sc-calc-toggle {
  padding-top: 6px;
}

/* ── Spikes tab ──────────────────────────────────────────────────── */
.spikes-filter{display:flex;gap:6px;margin-bottom:0;}
.spike-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;}
.spike-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:18px;position:relative;overflow:hidden;}
.spike-card::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;}
.spike-card.price_up::after{background:linear-gradient(90deg,var(--green),#86efac);}
.spike-card.price_down::after{background:linear-gradient(90deg,var(--red),#fca5a5);}
.spike-card.volume::after{background:linear-gradient(90deg,var(--yellow),#fde68a);}
.spike-card.combined::after{background:linear-gradient(90deg,var(--blue),var(--blue2));}
.spike-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.spike-sym{font-family:var(--font-disp);font-size:26px;font-weight:900;color:var(--text);line-height:1;}
.spike-time{font-family:var(--font-mono);font-size:10px;color:var(--text3);margin-top:3px;}
.spike-badge{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:0.5px;padding:4px 10px;border-radius:4px;}
.spike-badge.price_up{background:rgba(34,197,94,.12);color:var(--green2);border:1px solid rgba(34,197,94,.25);}
.spike-badge.price_down{background:rgba(239,68,68,.12);color:var(--red2);border:1px solid rgba(239,68,68,.25);}
.spike-badge.volume{background:rgba(234,179,8,.12);color:var(--yellow);border:1px solid rgba(234,179,8,.25);}
.spike-badge.combined{background:rgba(59,130,246,.12);color:var(--blue2);border:1px solid rgba(59,130,246,.25);}
.spike-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;}
.spike-analysis{font-size:12px;color:var(--text2);line-height:1.7;background:var(--bg3);padding:10px 12px;border-radius:5px;border-left:2px solid var(--blue-dim);}
.spike-cta{display:flex;gap:8px;margin-top:12px;}
.spike-cta button{font-family:var(--font-mono);font-size:10px;padding:4px 10px;border:1px solid var(--border);background:none;color:var(--text2);cursor:pointer;border-radius:4px;transition:all .15s;}
.spike-cta button:hover{border-color:var(--blue);color:var(--blue2);}

/* Technical indicators in deep scan */
.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:12px 0;}
.tech-item{background:var(--bg3);padding:8px 10px;border-radius:5px;}
.tech-label{font-family:var(--font-mono);font-size:8px;letter-spacing:1.5px;color:var(--text3);margin-bottom:3px;}
.tech-value{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);}
.tech-value.overbought{color:var(--red2);}
.tech-value.oversold{color:var(--green2);}
.tech-value.bullish{color:var(--green2);}
.tech-value.bearish{color:var(--red2);}
.tech-value.neutral{color:var(--text2);}
.tech-value.squeeze{color:var(--yellow);}

/* ── Mini charts ─────────────────────────────────────────────────── */
/* Signal card chart — top right corner */
[id^="chart-sig-"] {
  min-width: 100px;
  min-height: 38px;
}
[id^="chart-sig-"] svg {
  border-radius: 3px;
}

/* Mover row chart — replaces the vol_surge column */
[id^="chart-mov-"] {
  min-width: 80px;
  min-height: 32px;
  justify-content: flex-end;
}

/* Deep scan chart — full width under symbol */
[id^="chart-deep-"] {
  min-width: 200px;
}
[id^="chart-deep-"] svg {
  border-radius: 4px;
}

/* Spike card chart */
[id^="chart-spk-"] svg,
[id^="chart-pred-"] svg {
  border-radius: 3px;
}

/* Alt card chart */
[id^="chart-alt-"] {
  margin-top: 8px;
}

/* Override mover grid to give chart space */
.mrow.mr6 {
  grid-template-columns: 70px 1fr 80px 72px 72px 88px !important;
}
.t-hdr.mr6 {
  grid-template-columns: 70px 1fr 80px 72px 72px 88px !important;
}
