:root{
  --bg0:#040608;--bg1:#080c10;--bg2:#0d1219;--bg3:#111820;--bg4:#161f2a;
  --border:rgba(0,220,180,0.08);--border2:rgba(0,220,180,0.18);
  --teal:#00dca0;--teal2:#00b884;--red:#ff3e5c;--red2:#cc2244;
  --yellow:#f0c040;--blue:#4db8ff;--purple:#9b7fff;
  --orange:#ff8c42;--green-dim:rgba(0,220,160,0.15);--red-dim:rgba(255,62,92,0.15);
  --text:#c8d8e8;--text2:#8aa4bc;--text3:#4d6a80;
  --font-mono:'Share Tech Mono',monospace;
  --font-cond:'Barlow Condensed',sans-serif;
  --font-body:'Barlow',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:14px;}
body{background:var(--bg0);color:var(--text);font-family:var(--font-body);min-height:100vh;overflow-x:hidden;}
body::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,220,160,0.012) 2px,rgba(0,220,160,0.012) 4px);pointer-events:none;z-index:9999;}
a{color:var(--teal);text-decoration:none;}

/* TOPBAR */
.topbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg1);border-bottom:1px solid var(--border2);position:sticky;top:0;z-index:100;}
.logo{font-family:var(--font-cond);font-size:1.6rem;font-weight:900;letter-spacing:5px;color:var(--teal);text-shadow:0 0 15px rgba(0,220,160,0.4);}
.logo span{color:var(--text3);font-weight:300;font-size:0.8em;}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px;}
.badge{font-family:var(--font-mono);font-size:0.6rem;padding:2px 6px;border:1px solid;border-radius:2px;letter-spacing:1px;}
.badge-teal{border-color:var(--teal2);color:var(--teal2);}
.badge-red{border-color:var(--red2);color:var(--red);}
.live-dot{width:7px;height:7px;background:var(--teal);border-radius:50%;box-shadow:0 0 6px var(--teal);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(0.8)}}
.api-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:4px;}
.api-dot.on{background:var(--teal);box-shadow:0 0 4px var(--teal);}
.api-dot.off{background:var(--red);box-shadow:0 0 4px var(--red);}
.api-label{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);}
.clock{font-family:var(--font-mono);font-size:0.7rem;color:var(--text2);}

/* TICKER STRIP */
.ticker-strip{height:30px;background:var(--bg1);border-bottom:1px solid var(--border);overflow:hidden;}
.ticker-inner{display:flex;align-items:center;height:100%;white-space:nowrap;animation:tickerScroll 60s linear infinite;}
@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.ticker-item{display:inline-flex;align-items:center;gap:6px;padding:0 12px;border-right:1px solid var(--border);cursor:pointer;}
.ticker-item:hover{background:var(--bg3);}
.t-sym{font-family:var(--font-cond);font-size:0.75rem;font-weight:700;color:var(--text2);letter-spacing:1px;}
.t-px{font-family:var(--font-mono);font-size:0.68rem;color:var(--text);}
.t-ch{font-family:var(--font-mono);font-size:0.66rem;}
.t-ch.up{color:var(--teal);}
.t-ch.down{color:var(--red);}

/* CONTROLS BAR */
.controls-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg1);border-bottom:1px solid var(--border);flex-wrap:wrap;}
.sym-wrap{position:relative;}
#symInput{background:var(--bg3);border:1px solid var(--border2);color:var(--teal);font-family:var(--font-mono);font-size:0.9rem;padding:6px 12px;border-radius:3px;width:140px;outline:none;text-transform:uppercase;letter-spacing:2px;}
#symInput:focus{border-color:var(--teal);box-shadow:0 0 10px rgba(0,220,160,0.15);}
#symDrop{position:absolute;top:100%;left:0;background:var(--bg2);border:1px solid var(--border2);border-radius:3px;max-height:200px;overflow-y:auto;width:180px;z-index:200;display:none;}
#symDrop.open{display:block;}
.dd-item{padding:5px 10px;font-family:var(--font-mono);font-size:0.75rem;cursor:pointer;color:var(--text2);border-bottom:1px solid var(--border);}
.dd-item:hover{background:var(--bg3);color:var(--teal);}
.tf-group{display:flex;gap:3px;}
.tf-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text3);font-family:var(--font-cond);font-size:0.8rem;font-weight:600;padding:4px 8px;border-radius:2px;cursor:pointer;letter-spacing:1px;}
.tf-btn:hover{border-color:var(--teal2);color:var(--text2);}
.tf-btn.active{background:var(--teal2);border-color:var(--teal);color:#000;}
.btn{font-family:var(--font-cond);font-weight:800;padding:6px 16px;border-radius:3px;cursor:pointer;letter-spacing:2px;text-transform:uppercase;border:none;font-size:0.85rem;}
.btn-analyze{background:var(--teal);color:#000;}
.btn-analyze:hover{background:var(--teal2);}
.btn-analyze:disabled{opacity:0.5;cursor:not-allowed;}
.btn-scan{background:var(--bg3);border:1px solid var(--border2);color:var(--text2);}
.btn-scan:hover{border-color:var(--teal);color:var(--teal);}
.btn-auto{font-family:var(--font-mono);font-size:0.7rem;padding:5px 10px;border-radius:3px;cursor:pointer;letter-spacing:1px;border:1px solid;position:relative;overflow:hidden;}
.btn-auto.off{background:var(--bg3);border-color:var(--border);color:var(--text3);}
.btn-auto.on{background:rgba(0,220,160,0.06);border-color:transparent;color:var(--teal);}
.btn-auto.on::before{content:'';position:absolute;inset:-1px;border-radius:3px;padding:1px;background:conic-gradient(from var(--auto-angle,0deg),var(--teal),var(--purple),var(--blue),var(--teal));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:autoGlow 3s linear infinite;}
@keyframes autoGlow{to{--auto-angle:360deg}}
@property --auto-angle{syntax:'<angle>';initial-value:0deg;inherits:false;}
.btn-auto.on::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(0,220,160,0.08),transparent 70%);pointer-events:none;}
.status-text{font-family:var(--font-mono);font-size:0.65rem;color:var(--text3);margin-left:auto;}

/* MAIN LAYOUT */
.main-layout{display:grid;grid-template-columns:280px 1fr 300px;height:calc(100vh - 125px);}
.panel-l{background:var(--bg1);border-right:1px solid var(--border);overflow-y:auto;}
.panel-c{display:flex;flex-direction:column;overflow:hidden;}
.panel-r{background:var(--bg1);border-left:1px solid var(--border);overflow-y:auto;}

.section{border-bottom:1px solid var(--border);padding:10px 12px;}
.sec-title{font-family:var(--font-cond);font-size:0.68rem;font-weight:700;letter-spacing:3px;color:var(--text3);text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.sec-title::after{content:'';flex:1;height:1px;background:var(--border);}

/* PRICE DISPLAY */
.price-box{text-align:center;padding:14px 12px;border-bottom:1px solid var(--border);}
.price-sym{font-family:var(--font-cond);font-size:0.9rem;font-weight:700;color:var(--text2);letter-spacing:3px;}
.price-val{font-family:var(--font-cond);font-size:2rem;font-weight:900;color:var(--text);letter-spacing:2px;line-height:1.1;}
.price-chg{font-family:var(--font-mono);font-size:0.75rem;margin-top:3px;}
.price-chg.up{color:var(--teal);}
.price-chg.down{color:var(--red);}

/* BIAS */
.bias-box{padding:12px;border-bottom:1px solid var(--border);text-align:center;}
.bias-label{font-family:var(--font-cond);font-size:0.6rem;letter-spacing:3px;color:var(--text3);}
.bias-val{font-family:var(--font-cond);font-size:1.8rem;font-weight:900;letter-spacing:4px;margin:3px 0;}
.bias-val.long{color:var(--teal);text-shadow:0 0 15px rgba(0,220,160,0.3);}
.bias-val.short{color:var(--red);text-shadow:0 0 15px rgba(255,62,92,0.3);}
.bias-val.neutral{color:var(--text3);}
.conf-wrap{margin-top:6px;}
.conf-label{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);margin-bottom:3px;}
.conf-bar{height:3px;background:var(--bg3);border-radius:2px;overflow:hidden;}
.conf-fill{height:100%;background:linear-gradient(90deg,var(--teal2),var(--teal));border-radius:2px;transition:width 0.4s;}

/* RECOMMENDATION */
.rec-card{background:var(--bg2);border-radius:3px;padding:8px;margin-bottom:4px;position:relative;overflow:hidden;}
.rec-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.rec-card.grade-A::before{background:var(--teal);}
.rec-card.grade-B::before{background:var(--blue);}
.rec-card.grade-C::before{background:var(--yellow);}
.rec-card.grade-D::before{background:var(--orange);}
.rec-card.grade-F::before{background:var(--red);}
.rec-hdr{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.rec-grade-badge{font-family:var(--font-cond);font-size:1.5rem;font-weight:900;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px;border:2px solid;line-height:1;}
.rec-grade-badge.A{color:var(--teal);border-color:var(--teal);background:rgba(0,220,160,0.1);}
.rec-grade-badge.B{color:var(--blue);border-color:var(--blue);background:rgba(77,184,255,0.1);}
.rec-grade-badge.C{color:var(--yellow);border-color:var(--yellow);background:rgba(240,192,64,0.1);}
.rec-grade-badge.D{color:var(--orange);border-color:var(--orange);background:rgba(255,140,66,0.1);}
.rec-grade-badge.F{color:var(--red);border-color:var(--red);background:rgba(255,62,92,0.1);}
.rec-info{flex:1;}
.rec-action{font-family:var(--font-cond);font-size:0.8rem;font-weight:800;letter-spacing:2px;}
.rec-action.go{color:var(--teal);}
.rec-action.wait{color:var(--yellow);}
.rec-action.no{color:var(--red);}
.rec-score-bar{height:2px;background:var(--bg3);border-radius:2px;margin-top:3px;overflow:hidden;}
.rec-score-fill{height:100%;border-radius:2px;transition:width 0.4s;}
.rec-headline{font-family:var(--font-mono);font-size:0.58rem;color:var(--text2);margin-bottom:4px;line-height:1.4;}
.rec-checks{display:flex;flex-direction:column;gap:2px;}
.rec-check{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:0.56rem;}
.rec-check-icon{width:12px;height:12px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:0.5rem;flex-shrink:0;}
.rec-check-icon.pass{background:var(--green-dim);color:var(--teal);}
.rec-check-icon.fail{background:var(--red-dim);color:var(--red);}
.rec-check-lbl{color:var(--text3);width:60px;flex-shrink:0;}
.rec-check-dtl{color:var(--text2);flex:1;}
.rec-check-pts{color:var(--text3);font-size:0.5rem;}

/* SETUP CARD */
.setup-card{background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:8px;}
.setup-badge{font-family:var(--font-cond);font-size:0.6rem;font-weight:700;letter-spacing:2px;color:var(--blue);margin-bottom:6px;}
.setup-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.setup-key{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);}
.setup-val{font-family:var(--font-mono);font-size:0.7rem;font-weight:bold;}
.v-entry{color:var(--blue);}
.v-sl{color:var(--red);}
.v-tp1{color:var(--teal2);}
.v-tp2{color:var(--teal);}
.v-tp3{color:var(--yellow);}
.v-rr{color:var(--purple);}
.entry-badge{display:inline-block;font-family:var(--font-mono);font-size:0.5rem;padding:1px 5px;border-radius:2px;letter-spacing:1px;margin-left:4px;}
.entry-badge.limit{background:rgba(77,184,255,0.12);color:var(--blue);border:1px solid rgba(77,184,255,0.25);}
.entry-badge.wait{background:rgba(240,192,64,0.12);color:var(--yellow);border:1px solid rgba(240,192,64,0.25);}
.entry-reason{font-family:var(--font-mono);font-size:0.54rem;color:var(--text3);margin-top:1px;padding-left:2px;}
.mkt-vs-entry{font-family:var(--font-mono);font-size:0.54rem;color:var(--text3);margin-top:3px;padding:3px 5px;background:var(--bg3);border-radius:2px;}
.mkt-vs-entry .delta{font-weight:bold;}
.mkt-vs-entry .delta.better{color:var(--teal);}

/* TRADE BUTTON */
.trade-btn{width:100%;margin-top:8px;padding:10px;font-family:var(--font-cond);font-size:0.85rem;font-weight:900;letter-spacing:3px;border:none;border-radius:3px;cursor:pointer;text-transform:uppercase;}
.trade-btn.long{background:linear-gradient(135deg,var(--teal2),var(--teal));color:#000;}
.trade-btn.short{background:linear-gradient(135deg,var(--red2),var(--red));color:#fff;}
.trade-btn:hover{filter:brightness(1.1);}
.trade-btn:disabled{opacity:0.3;cursor:not-allowed;}
.trade-hint{font-family:var(--font-mono);font-size:0.54rem;color:var(--text3);text-align:center;margin-top:3px;}

.insight-box{font-family:var(--font-mono);font-size:0.65rem;color:var(--blue);line-height:1.5;padding:6px;background:rgba(77,184,255,0.04);border:1px solid rgba(77,184,255,0.12);border-radius:2px;}
.warning-box{font-family:var(--font-mono);font-size:0.65rem;color:var(--yellow);line-height:1.5;padding:6px;background:rgba(240,192,64,0.04);border:1px solid rgba(240,192,64,0.12);border-radius:2px;}

/* CHART */
.chart-header{display:flex;background:var(--bg1);border-bottom:1px solid var(--border);}
.chart-tab{padding:6px 14px;font-family:var(--font-cond);font-size:0.7rem;font-weight:700;letter-spacing:2px;cursor:pointer;color:var(--text3);border-bottom:2px solid transparent;}
.chart-tab.active{color:var(--teal);border-bottom-color:var(--teal);}
.chart-info{display:flex;align-items:center;gap:10px;padding:3px 12px;background:var(--bg1);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:0.62rem;}
.ci-item{color:var(--text3);}
.ci-item span{color:var(--text2);margin-left:3px;}
.ci-item span.up{color:var(--teal);}
.ci-item span.down{color:var(--red);}
.chart-wrap{flex:1;position:relative;min-height:0;}
#mainChart{width:100%;height:100%;}
.loading-overlay{position:absolute;inset:0;background:rgba(4,6,8,0.85);display:flex;align-items:center;justify-content:center;z-index:50;}
.loading-content{text-align:center;}
.loading-spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--teal);border-radius:50%;animation:spin 0.8s linear infinite;margin:0 auto 10px;}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-family:var(--font-cond);font-size:0.9rem;font-weight:700;letter-spacing:3px;color:var(--teal);}
.loading-sub{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);margin-top:4px;}
.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;}
.empty-icon{font-size:2.5rem;color:var(--text3);}
.empty-text{font-family:var(--font-cond);font-size:1rem;font-weight:700;letter-spacing:3px;color:var(--text3);}
/* SUB-PANEL (below chart) */
.sub-panel{display:flex;flex-direction:column;background:var(--bg1);border-top:1px solid var(--border);}
.sub-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg1);}
.sub-tab{padding:5px 12px;font-family:var(--font-cond);font-size:0.65rem;font-weight:700;letter-spacing:2px;cursor:pointer;color:var(--text3);border-bottom:2px solid transparent;transition:color 0.15s;}
.sub-tab:hover{color:var(--text2);}
.sub-tab.active{color:var(--teal);border-bottom-color:var(--teal);}
.sub-content{overflow-y:auto;max-height:180px;}
.sub-pane{display:none;padding:6px 10px;}
.sub-pane.active{display:block;}
.sub-pane .mini-chart-canvas{width:100%;height:70px;}
.sub-oi-grid,.sub-ob-wrap{font-size:0.7rem;}
.sub-ind-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;}
.sub-ind-grid .ind-card{background:var(--bg2);border:1px solid var(--border);border-radius:2px;padding:4px 6px;}
.sub-ind-grid .ind-name{font-family:var(--font-mono);font-size:0.52rem;color:var(--text3);margin-bottom:1px;}
.sub-ind-grid .ind-value{font-family:var(--font-mono);font-size:0.66rem;font-weight:bold;color:var(--text);}

/* RIGHT PANEL */
.ind-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;}
.ind-card{background:var(--bg2);border:1px solid var(--border);border-radius:2px;padding:5px 6px;}
.ind-name{font-family:var(--font-mono);font-size:0.54rem;color:var(--text3);margin-bottom:1px;}
.ind-value{font-family:var(--font-mono);font-size:0.72rem;font-weight:bold;color:var(--text);}
.kv-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid var(--border);}
.kv-key{font-family:var(--font-mono);font-size:0.58rem;color:var(--text3);}
.kv-val{font-family:var(--font-mono);font-size:0.68rem;font-weight:bold;color:var(--text2);}
.kv-val.up{color:var(--teal);}
.kv-val.down{color:var(--red);}
.kv-val.warn{color:var(--yellow);}
.kv-val.neutral{color:var(--text3);}
.ob-row{display:flex;justify-content:space-between;padding:2px 5px;font-family:var(--font-mono);font-size:0.6rem;position:relative;overflow:hidden;}
.ob-bg-bar{position:absolute;top:0;bottom:0;left:0;opacity:0.12;border-radius:1px;}
.ob-ask .ob-bg-bar{background:var(--red);}
.ob-bid .ob-bg-bar{background:var(--teal);}
.ob-ask .ob-price{color:var(--red);}
.ob-bid .ob-price{color:var(--teal);}
.ob-size{color:var(--text2);}
.ob-spread{text-align:center;font-family:var(--font-mono);font-size:0.55rem;color:var(--text3);padding:2px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.signal-item{display:flex;gap:6px;align-items:flex-start;padding:4px 0;border-bottom:1px solid var(--border);}
.signal-dot{width:5px;height:5px;border-radius:50%;margin-top:3px;flex-shrink:0;}
.signal-dot.bull{background:var(--teal);}
.signal-dot.bear{background:var(--red);}
.signal-dot.warn{background:var(--yellow);}
.signal-dot.info{background:var(--blue);}
.signal-label{font-family:var(--font-cond);font-size:0.7rem;font-weight:700;letter-spacing:1px;}
.signal-label.bull{color:var(--teal);}
.signal-label.bear{color:var(--red);}
.signal-label.warn{color:var(--yellow);}
.signal-label.info{color:var(--blue);}
.signal-detail{font-family:var(--font-mono);font-size:0.58rem;color:var(--text3);margin-top:1px;}

/* EXPANDABLE SECTION */
.expandable .sec-title{cursor:pointer;user-select:none;}
.expandable .sec-title::before{content:'▸';margin-right:4px;font-size:0.6rem;transition:transform 0.2s;}
.expandable.open .sec-title::before{transform:rotate(90deg);}
.expandable .sec-body{display:none;}
.expandable.open .sec-body{display:block;}

/* SCANNER MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(4,6,8,0.85);z-index:500;align-items:flex-start;justify-content:center;padding-top:50px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;width:min(960px,96vw);max-height:78vh;display:flex;flex-direction:column;box-shadow:0 0 30px rgba(0,220,160,0.06);}
.modal-hdr{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);}
.modal-title{font-family:var(--font-cond);font-size:0.9rem;font-weight:800;letter-spacing:3px;color:var(--teal);}
.modal-close{margin-left:auto;background:none;border:none;color:var(--text3);font-size:1.1rem;cursor:pointer;}
.modal-close:hover{color:var(--text);}
.modal-info{font-family:var(--font-mono);font-size:0.58rem;color:var(--text3);}
.scan-tabs{display:flex;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.scan-tab{padding:6px 14px;font-family:var(--font-cond);font-size:0.75rem;font-weight:700;letter-spacing:2px;cursor:pointer;color:var(--text3);border-bottom:2px solid transparent;}
.scan-tab:hover{color:var(--text2);}
.scan-tab.active{color:var(--teal);border-bottom-color:var(--teal);}
.scan-body{overflow-y:auto;flex:1;}
.scan-table{width:100%;border-collapse:collapse;}
.scan-table th{position:sticky;top:0;background:var(--bg3);padding:6px 10px;font-family:var(--font-cond);font-size:0.65rem;font-weight:700;letter-spacing:2px;color:var(--text3);text-align:right;border-bottom:1px solid var(--border);}
.scan-table th:first-child{text-align:left;}
.scan-table th:nth-child(2){text-align:left;}
.scan-table td{padding:6px 10px;font-family:var(--font-mono);font-size:0.72rem;color:var(--text2);border-bottom:1px solid var(--border);text-align:right;cursor:pointer;}
.scan-table td:first-child{text-align:left;color:var(--text3);}
.scan-table td:nth-child(2){text-align:left;color:var(--teal);font-weight:bold;}
.scan-table tr:hover td{background:var(--bg3);}
.scan-loading{padding:30px;text-align:center;color:var(--text3);font-family:var(--font-mono);font-size:0.7rem;}
.grade-pill{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-size:0.65rem;font-weight:900;width:20px;height:20px;border-radius:3px;border:1.5px solid;}
.grade-pill.g-A{color:var(--teal);border-color:var(--teal);background:rgba(0,220,160,0.08);}
.grade-pill.g-B{color:var(--blue);border-color:var(--blue);background:rgba(77,184,255,0.08);}
.grade-pill.g-C{color:var(--yellow);border-color:var(--yellow);background:rgba(240,192,64,0.08);}
.grade-pill.g-D{color:var(--orange);border-color:var(--orange);background:rgba(255,140,66,0.08);}
.grade-pill.g-F{color:var(--red);border-color:var(--red);background:rgba(255,62,92,0.08);}
.bias-pill{font-family:var(--font-cond);font-size:0.6rem;font-weight:800;letter-spacing:1px;padding:1px 6px;border-radius:2px;}
.bias-pill.long{color:#000;background:var(--teal);}
.bias-pill.short{color:#fff;background:var(--red);}
.bias-pill.neutral{color:var(--text3);background:var(--bg3);}
.screener-filter-row{display:flex;gap:4px;padding:6px 10px;border-bottom:1px solid var(--border);}
.screener-filter-btn{font-family:var(--font-cond);font-size:0.68rem;font-weight:700;letter-spacing:1px;padding:3px 10px;border-radius:2px;cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--text3);}
.screener-filter-btn:hover{border-color:var(--text2);color:var(--text2);}
.screener-filter-btn.active{background:var(--teal2);border-color:var(--teal);color:#000;}
.screener-progress{padding:8px 12px;font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);border-bottom:1px solid var(--border);}
.screener-progress-bar{height:2px;background:var(--bg3);border-radius:2px;margin-top:3px;overflow:hidden;}
.screener-progress-fill{height:100%;background:var(--teal);transition:width 0.3s;border-radius:2px;}

/* SETTINGS MODAL */
#settingsModal{align-items:center;justify-content:center;padding-top:0;}
.settings-box{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;width:min(460px,94vw);max-height:90vh;overflow-y:auto;box-shadow:0 0 30px rgba(255,140,66,0.06);}
.settings-hdr{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);}
.settings-title{font-family:var(--font-cond);font-size:0.9rem;font-weight:800;letter-spacing:3px;color:var(--orange);}
.settings-body{padding:14px;}
.settings-sec{margin-bottom:14px;}
.settings-sec-title{font-family:var(--font-cond);font-size:0.68rem;font-weight:700;letter-spacing:3px;color:var(--orange);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.settings-sec-title::after{content:'';flex:1;height:1px;background:rgba(255,140,66,0.12);}
.settings-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.settings-lbl{font-family:var(--font-mono);font-size:0.62rem;color:var(--text3);width:100px;flex-shrink:0;}
.settings-inp{flex:1;background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:0.72rem;padding:5px 8px;border-radius:3px;outline:none;}
.settings-inp:focus{border-color:var(--orange);box-shadow:0 0 6px rgba(255,140,66,0.1);}
.settings-inp.secret{-webkit-text-security:disc;text-security:disc;}
.settings-hint{font-family:var(--font-mono);font-size:0.54rem;color:var(--text3);margin-top:3px;line-height:1.4;padding-left:108px;}
.mode-tf-preview{display:flex;gap:10px;padding:4px 0 2px 108px;}
.mode-tf-item{font-family:var(--font-mono);font-size:0.58rem;color:var(--text3);}
.mode-tf-item b{color:var(--teal);}
.daily-pnl-status{margin-top:6px;padding:6px 8px;background:var(--bg3);border-radius:3px;font-family:var(--font-mono);font-size:0.58rem;color:var(--text2);line-height:1.5;}
/* Scanner Cards */
.scr-cards-wrap{display:flex;flex-direction:column;gap:8px;padding:4px 0;}
.scr-card{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;overflow:hidden;}
.scr-card-top{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--bg3);}
.scr-card-rank{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);min-width:20px;}
.scr-card-sym{font-family:var(--font-cond);font-size:0.85rem;font-weight:700;color:var(--text);letter-spacing:1px;flex:1;}
.scr-card-pair{font-size:0.55rem;color:var(--text3);font-weight:400;margin-left:1px;}
.scr-card-score{font-family:var(--font-mono);font-size:0.8rem;font-weight:bold;}
.scr-card-body{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;padding:8px 10px;}
.scr-card-row{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:0.68rem;}
.scr-k{color:var(--text3);}
.scr-v{color:var(--text);}
.scr-card-actions{display:flex;border-top:1px solid var(--border);}
.scr-btn-chart,.scr-btn-ai{flex:1;padding:8px;font-family:var(--font-cond);font-size:0.72rem;font-weight:700;letter-spacing:1px;border:none;cursor:pointer;background:var(--bg3);transition:background 0.15s;}
.scr-btn-chart{color:var(--teal);border-right:1px solid var(--border);}
.scr-btn-chart:hover{background:rgba(0,220,160,0.08);}
.scr-btn-ai{color:var(--purple);}
.scr-btn-ai:hover{background:rgba(155,127,255,0.08);}
.btn-fetch-models{background:var(--bg3);border:1px solid var(--border);color:var(--purple);font-size:0.8rem;padding:4px 8px;border-radius:3px;cursor:pointer;flex-shrink:0;font-family:var(--font-mono);}
.btn-fetch-models:hover{border-color:var(--purple);}
.ai-model-list{max-height:120px;overflow-y:auto;padding:4px 0 4px 108px;display:flex;flex-wrap:wrap;gap:4px;}
.ai-model-chip{font-family:var(--font-mono);font-size:0.55rem;padding:3px 8px;border-radius:10px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;white-space:nowrap;}
.ai-model-chip:hover{border-color:var(--purple);color:var(--purple);}
.settings-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--border);}
.btn-save{background:var(--orange);border:none;color:#000;font-family:var(--font-cond);font-size:0.8rem;font-weight:800;padding:7px 20px;border-radius:3px;cursor:pointer;letter-spacing:2px;}
.btn-save:hover{filter:brightness(1.1);}
.btn-clear{background:var(--bg3);border:1px solid var(--border);color:var(--red);font-family:var(--font-cond);font-size:0.8rem;font-weight:700;padding:7px 14px;border-radius:3px;cursor:pointer;letter-spacing:1px;}
.btn-clear:hover{border-color:var(--red);}

/* TRADE CONFIRM MODAL */
#tradeModal{align-items:center;justify-content:center;padding-top:0;}
.trade-box{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;width:min(500px,94vw);max-height:90vh;overflow-y:auto;box-shadow:0 0 40px rgba(0,220,160,0.08);}
.trade-hdr{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);}
.trade-title{font-family:var(--font-cond);font-size:1rem;font-weight:900;letter-spacing:3px;}
.trade-title.long{color:var(--teal);}
.trade-title.short{color:var(--red);}
.trade-body{padding:14px;}
.trade-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;}
.trade-info-item{background:var(--bg3);border-radius:3px;padding:6px 8px;}
.trade-info-lbl{font-family:var(--font-mono);font-size:0.54rem;color:var(--text3);margin-bottom:2px;}
.trade-info-val{font-family:var(--font-mono);font-size:0.76rem;font-weight:bold;color:var(--text);}
.trade-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.trade-row-lbl{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);width:100px;flex-shrink:0;}
.trade-row-inp{flex:1;background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:0.72rem;padding:4px 7px;border-radius:3px;outline:none;}
.trade-row-inp:focus{border-color:var(--teal);}
.trade-row-unit{font-family:var(--font-mono);font-size:0.6rem;color:var(--text3);width:36px;}
.trade-warning{font-family:var(--font-mono);font-size:0.56rem;color:var(--yellow);line-height:1.4;padding:6px;background:rgba(240,192,64,0.04);border:1px solid rgba(240,192,64,0.12);border-radius:2px;margin-bottom:10px;}
.trade-actions{display:flex;gap:8px;}
.trade-exec-btn{flex:1;padding:10px;font-family:var(--font-cond);font-size:0.9rem;font-weight:900;letter-spacing:3px;border:none;border-radius:3px;cursor:pointer;}
.trade-exec-btn.long{background:var(--teal);color:#000;}
.trade-exec-btn.short{background:var(--red);color:#fff;}
.trade-exec-btn:hover{filter:brightness(1.1);}
.trade-exec-btn:disabled{opacity:0.35;cursor:not-allowed;}
.trade-cancel-btn{padding:10px 16px;font-family:var(--font-cond);font-size:0.8rem;font-weight:700;letter-spacing:1px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);border-radius:3px;cursor:pointer;}
.trade-cancel-btn:hover{border-color:var(--text2);}
.trade-result{margin-top:10px;padding:8px;border-radius:3px;font-family:var(--font-mono);font-size:0.65rem;line-height:1.5;}
.trade-result.success{background:rgba(0,220,160,0.06);border:1px solid rgba(0,220,160,0.2);color:var(--teal);}
.trade-result.error{background:rgba(255,62,92,0.06);border:1px solid rgba(255,62,92,0.2);color:var(--red);}

/* FAB */
.fab{position:fixed;bottom:20px;right:20px;width:50px;height:50px;border-radius:50%;background:var(--teal);border:none;color:#000;font-size:1.1rem;cursor:pointer;box-shadow:0 4px 20px rgba(0,220,160,0.35);z-index:200;display:flex;align-items:center;justify-content:center;transition:transform 0.15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.fab:hover,.fab:active{transform:scale(1.1);background:var(--teal2);}

/* CHAT OVERLAY */
.chat-overlay{display:none;position:fixed;inset:0;background:var(--bg0);z-index:600;flex-direction:column;}
.chat-overlay.open{display:flex;}
.chat-header{display:flex;align-items:center;padding:12px 16px;background:var(--bg1);border-bottom:1px solid var(--border2);}
.chat-agent-info{display:flex;align-items:center;gap:12px;flex:1;}
.chat-agent-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--teal2),var(--teal));display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-size:1.2rem;font-weight:900;color:#000;box-shadow:0 0 16px rgba(0,220,160,0.35);position:relative;overflow:hidden;}
.chat-agent-avatar::after{content:'';position:absolute;inset:-1px;border-radius:50%;padding:1.5px;background:conic-gradient(var(--teal),var(--purple),var(--blue),var(--teal));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:autoGlow 4s linear infinite;}
.chat-agent-name{font-family:var(--font-cond);font-size:0.95rem;font-weight:800;letter-spacing:2px;color:var(--text);}
.chat-agent-status{font-family:var(--font-mono);font-size:0.6rem;color:var(--teal);}
.chat-close{background:none;border:none;color:var(--text2);font-size:1.3rem;cursor:pointer;padding:6px 10px;}
.chat-close:hover{color:var(--text);}
.chat-body{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;}
.chat-welcome{text-align:center;padding:50px 20px;}
.chat-welcome-icon{font-size:3rem;margin-bottom:10px;}
.chat-welcome-title{font-family:var(--font-cond);font-size:1.5rem;font-weight:900;letter-spacing:4px;color:var(--teal);text-shadow:0 0 20px rgba(0,220,160,0.25);}
.chat-welcome-sub{font-family:var(--font-mono);font-size:0.7rem;color:var(--text2);margin-top:6px;}
.chat-msg{max-width:85%;animation:chatFadeIn 0.25s ease;}
@keyframes chatFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.chat-msg.user{align-self:flex-end;}
.chat-msg.agent{align-self:flex-start;}
.chat-bubble{padding:12px 16px;border-radius:4px;font-family:var(--font-body);font-size:0.92rem;line-height:1.65;word-break:break-word;}
.chat-msg.user .chat-bubble{background:var(--teal2);color:#000;font-weight:500;}
.chat-msg.agent .chat-bubble{background:var(--bg2);color:var(--text);border:1px solid var(--border2);}
.chat-msg.agent .chat-bubble strong{color:var(--teal);}
.chat-msg.agent .chat-bubble code{background:var(--bg4);color:var(--blue);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:0.82rem;}
.chat-msg-time{font-family:var(--font-mono);font-size:0.55rem;color:var(--text3);margin-top:3px;padding:0 6px;}
.chat-msg.user .chat-msg-time{text-align:right;}
.chat-cursor{color:var(--teal);animation:cursorBlink 0.7s step-end infinite;font-size:0.85rem;margin-left:2px;}
@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}
.chat-typing{align-self:flex-start;padding:10px 16px;background:var(--bg2);border-radius:4px;border:1px solid var(--border2);}
.chat-typing-dots{display:flex;gap:5px;}
.chat-typing-dots span{width:7px;height:7px;background:var(--teal);border-radius:50%;animation:typingBounce 1.2s infinite;}
.chat-typing-dots span:nth-child(2){animation-delay:0.2s;}
.chat-typing-dots span:nth-child(3){animation-delay:0.4s;}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-8px)}}
/* Action Cards */
.chat-action-card{margin-top:10px;background:var(--bg3);border:1px solid var(--border2);border-radius:4px;overflow:hidden;}
.chat-action-hdr{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg4);}
.chat-action-badge{font-family:var(--font-cond);font-size:0.65rem;font-weight:800;letter-spacing:1px;padding:3px 10px;border-radius:4px;}
.chat-action-badge.long{background:var(--teal2);color:#000;}
.chat-action-badge.short{background:var(--red);color:#fff;}
.chat-action-badge.analysis{background:var(--purple);color:#fff;}
.chat-action-sym{font-family:var(--font-cond);font-size:0.9rem;font-weight:700;color:var(--text);letter-spacing:1px;}
.chat-action-conf{margin-left:auto;font-family:var(--font-mono);font-size:0.72rem;color:var(--teal);font-weight:bold;}
.chat-action-body{padding:10px 14px;}
.chat-action-row{display:flex;justify-content:space-between;padding:3px 0;font-family:var(--font-mono);font-size:0.72rem;}
.chat-action-row .k{color:var(--text2);}
.chat-action-row .v{color:var(--text);font-weight:bold;}
.chat-action-row .v.entry{color:var(--blue);}
.chat-action-row .v.sl{color:var(--red);}
.chat-action-row .v.tp{color:var(--teal);}
.chat-action-reason{font-family:var(--font-body);font-size:0.72rem;color:var(--text2);padding:6px 0;line-height:1.5;}
.chat-action-btn{width:100%;padding:10px;font-family:var(--font-cond);font-size:0.8rem;font-weight:800;letter-spacing:2px;border:none;border-top:1px solid var(--border);cursor:pointer;background:var(--bg2);transition:background 0.15s;}
.chat-action-btn.long{color:var(--teal);}
.chat-action-btn.long:hover{background:rgba(0,220,160,0.1);}
.chat-action-btn.short{color:var(--red);}
.chat-action-btn.short:hover{background:rgba(255,62,92,0.1);}
/* Quick Chat */
.chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-top:1px solid var(--border);background:var(--bg1);}
.chat-quick-btn{font-family:var(--font-body);font-size:0.72rem;font-weight:500;padding:7px 14px;border-radius:3px;border:1px solid var(--border2);background:var(--bg2);color:var(--text);cursor:pointer;white-space:nowrap;transition:all 0.15s;}
.chat-quick-btn:hover{border-color:var(--teal);color:var(--teal);background:rgba(0,220,160,0.05);}
/* Chat Input */
.chat-input-wrap{display:flex;gap:10px;padding:12px 14px;background:var(--bg1);border-top:1px solid var(--border2);}
.chat-input{flex:1;background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--font-body);font-size:0.92rem;padding:12px 16px;border-radius:4px;outline:none;}
.chat-input::placeholder{color:var(--text3);}
.chat-input:focus{border-color:var(--teal);box-shadow:0 0 12px rgba(0,220,160,0.12);}
.chat-send{width:42px;height:42px;border-radius:4px;background:var(--teal2);border:none;color:#000;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.15s;}
.chat-send:hover{background:var(--teal);transform:scale(1.05);box-shadow:0 0 12px rgba(0,220,160,0.3);}
.chat-send:disabled{opacity:0.3;cursor:not-allowed;}

/* ══════════════════════════════════════════════════════
   MOBILE RESPONSIVE
   ══════════════════════════════════════════════════════ */
@media(max-width:900px){
  .topbar{padding:6px 10px;gap:8px;}
  .logo{font-size:1.2rem;letter-spacing:3px;}
  .badge{display:none;}
  .ticker-strip{height:26px;}
  .controls-bar{padding:6px 10px;gap:6px;flex-wrap:wrap;}
  #symInput{width:100px;font-size:0.8rem;padding:5px 8px;}
  .tf-btn{padding:3px 6px;font-size:0.7rem;}
  .btn{font-size:0.75rem;padding:5px 10px;}
  .btn-auto{font-size:0.6rem;padding:3px 8px;}
  .status-text{width:100%;font-size:0.58rem;margin-left:0;margin-top:2px;}

  /* MOBILE: single column stack */
  .main-layout{display:flex;flex-direction:column;height:auto;min-height:calc(100vh - 150px);padding-bottom:56px;}

  /* All panels hidden by default */
  .panel-l,.panel-r{display:none;width:100%;border:none;overflow-y:auto;}
  .panel-c{display:flex;flex-direction:column;min-height:55vh;width:100%;}

  /* Mobile nav switches panels */
  .panel-l.mob-show{display:flex;flex-direction:column;width:100%;}
  .panel-r.mob-show{display:block;width:100%;}
  .panel-c.mob-hide{display:none;}

  /* Sub-panel always visible on mobile when chart shown */
  .sub-content{max-height:200px;}

  /* Trade panel (panel-l) MUST be vertical column on mobile */
  .panel-l.mob-show .price-box,
  .panel-l.mob-show .bias-box,
  .panel-l.mob-show .section{
    width:100%;
    flex-shrink:0;
  }

  /* Mobile bottom nav */
  .mob-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg1);border-top:1px solid var(--border2);z-index:95;padding:6px 0;justify-content:space-around;}
  .mob-nav-item{display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 8px;cursor:pointer;color:var(--text3);font-family:var(--font-cond);font-size:0.58rem;font-weight:700;letter-spacing:1px;border:none;background:none;-webkit-tap-highlight-color:transparent;}
  .mob-nav-item.active{color:var(--teal);}
  .mob-nav-item .mob-icon{font-size:1.1rem;line-height:1;}

  /* FAB above nav */
  .fab{bottom:68px;right:16px;width:46px;height:46px;font-size:1rem;}

  /* Expandable collapsed by default on mobile */
  .section.expandable .sec-body{display:none;}
  .section.expandable.open .sec-body{display:block;}

  /* Smaller modals on mobile */
  .modal-box{width:96vw;max-height:85vh;}
  .settings-box{width:96vw;}
  .trade-box{width:96vw;}
  #settingsModal{padding:0 2vw;}
  #tradeModal{padding:0 2vw;}

  /* Rec card compact */
  .rec-grade-badge{width:26px;height:26px;font-size:1.2rem;}
  .rec-check-lbl{width:50px;}
}
@media(min-width:901px){
  .mob-nav{display:none;}
  .expandable .sec-body{display:block !important;}
}
