:root{
  --bg:#0b0f17; --panel:#141a26; --panel2:#1b2230; --line:#26303f;
  --txt:#e6edf3; --muted:#8a97a8; --accent:#ffb000;
  --buy:#16c784; --sell:#ea3943; --wait:#6b7785;
  --entry:#e8eaed; --sl:#ea3943; --tp:#16c784;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:"Segoe UI",system-ui,Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:14px;display:flex;flex-direction:column;min-height:100vh}

header{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;
  background:linear-gradient(90deg,#10151f,#0b0f17);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.brand{display:flex;gap:12px;align-items:center}
.logo{background:var(--accent);color:#1a1300;font-weight:800;border-radius:8px;padding:8px 10px;letter-spacing:1px}
h1{font-size:18px}
.sub{color:var(--muted);font-size:12px;margin-top:2px}
.switches{display:flex;gap:10px;align-items:center}
.sym-switch{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:3px}
.sym-switch button{padding:6px 14px;font-weight:700}
.sym-switch button.active{background:var(--accent);color:#1a1300;border-color:var(--accent)}
.sens-group{display:flex;align-items:center;gap:8px}
.sens-cap{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.head-right{display:flex;align-items:center;gap:14px}
.price{font-size:22px;font-weight:700;color:var(--accent);min-width:90px;text-align:right}
.updated{color:var(--muted);font-size:12px}
.auto{color:var(--muted);font-size:12px;display:flex;gap:5px;align-items:center}
button{background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:7px;
  padding:7px 12px;cursor:pointer;font-size:13px}
button:hover{border-color:var(--accent)}

main{display:flex;gap:14px;padding:14px;align-items:stretch;flex:1;min-height:0}
.col{display:flex;flex-direction:column;gap:14px;width:340px;flex:none;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2a3445 transparent}
.col::-webkit-scrollbar{width:7px}
.col::-webkit-scrollbar-thumb{background:#2a3445;border-radius:4px}
.pos{color:var(--buy)!important} .neg{color:var(--sell)!important}
.col.grow{flex:1;min-width:420px;display:flex;flex-direction:column;min-height:0}

.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}
.card h2{font-size:14px;margin-bottom:10px;color:#cdd6e0;display:flex;justify-content:space-between;align-items:center}
.muted{color:var(--muted);font-weight:400}
.small{font-size:11.5px}

/* decision */
.decision{border-width:2px}
.decision-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.badge{font-size:24px;font-weight:800;padding:6px 16px;border-radius:10px;letter-spacing:1px;background:var(--wait);color:#fff}
.badge.BUY{background:var(--buy)} .badge.SELL{background:var(--sell)} .badge.WAIT{background:var(--wait)}
.decision.BUY{border-color:var(--buy)} .decision.SELL{border-color:var(--sell)} .decision.WAIT{border-color:var(--line)}
.conf{color:var(--muted);font-size:13px}
.reasons,.blockers{list-style:none;margin-top:6px;display:flex;flex-direction:column;gap:5px}
.reasons li{padding-left:18px;position:relative;font-size:12.5px}
.reasons li:before{content:"✓";position:absolute;left:0;color:var(--buy)}
.blockers li{padding-left:18px;position:relative;font-size:12.5px;color:#d7b36b}
.blockers li:before{content:"!";position:absolute;left:0;color:var(--accent);font-weight:700}

/* plan */
.plan-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}
.plan-item{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px}
.plan-item span{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}
.plan-item b{font-size:15px}
.plan-item.entry b{color:var(--entry)} .plan-item.sl b{color:var(--sl)} .plan-item.tp b{color:var(--tp)}

/* MTF */
.mtf{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}
.tf{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px;text-align:center}
.tf .name{font-weight:700;font-size:12px;color:var(--muted)}
.tf .tr{font-weight:800;font-size:13px;margin:5px 0;padding:3px;border-radius:5px}
.tr.BULLISH{color:var(--buy)} .tr.BEARISH{color:var(--sell)} .tr.RANGING{color:var(--wait)}
.tf .row{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:3px}
.tf .row b{color:var(--txt)}
.pill{display:inline-block;font-size:10px;padding:1px 6px;border-radius:10px;margin-top:4px}
.pill.OVERBOUGHT{background:rgba(234,57,67,.2);color:#ff8a92}
.pill.OVERSOLD{background:rgba(22,199,132,.2);color:#7ff0c0}
.pill.NEUTRAL{background:rgba(107,119,133,.2);color:#aab4c0}

/* chart */
.chart-card{padding-bottom:8px;flex:1;display:flex;flex-direction:column;min-height:0}
.chart-head{display:flex;align-items:center;gap:14px;margin-bottom:8px}
.tf-switch{display:flex;gap:4px}
.tf-switch button{padding:4px 10px}
.tf-switch button.active{background:var(--accent);color:#1a1300;border-color:var(--accent);font-weight:700}
.h4badge{margin-left:auto;font-size:12px;font-weight:700;padding:4px 10px;border-radius:6px;background:var(--panel2);border:1px solid var(--line)}

/* ---- Multi-AI Agents ---- */
.agents .badge{font-size:13px;font-weight:700;padding:3px 10px;vertical-align:middle}
.agents-sub{margin-bottom:9px}
#runAgents{margin-bottom:4px}
.agent{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 10px;margin-top:8px}
.agent-h{font-size:11.5px;font-weight:700;color:#cdd6e0;margin-bottom:5px;letter-spacing:.2px}
.agent-h .muted{font-weight:400}
.agent-b{font-size:12px;line-height:1.5;color:#aeb9c6}
.agent-b ul.hl{margin:0 0 7px;padding-left:15px}
.agent-b ul.hl li{font-size:11px;color:var(--muted);margin-bottom:2px;line-height:1.35}
.agent-consensus{margin-top:10px;font-size:12.5px;font-weight:700;min-height:16px}
.agent-result{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 12px;border:1.5px solid var(--line);border-radius:9px;font-weight:800}
.agent-result .ar-call{font-size:16px;letter-spacing:.5px}
.agent-result .ar-conf{font-size:12px;font-weight:700;opacity:.85}
.agent-result.BUY{background:rgba(22,199,132,.14);color:var(--buy);border-color:var(--buy)}
.agent-result.SELL{background:rgba(234,57,67,.14);color:var(--sell);border-color:var(--sell)}
.agent-result.WAIT{background:var(--panel2);color:var(--muted);border-color:var(--line)}
.ar-note{margin-top:5px;text-align:center}

/* ---- AI key box (collapsible, inside Multi-AI Agents card) ---- */
.ai-keybox{margin-top:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);overflow:hidden}
.ai-keybox>summary{cursor:pointer;padding:9px 11px;font-size:12.5px;font-weight:600;list-style:none;user-select:none}
.ai-keybox>summary::-webkit-details-marker{display:none}
.ai-keybox>summary::before{content:"▸ ";color:var(--accent)}
.ai-keybox[open]>summary::before{content:"▾ "}
.ai-keybox .kb-title{color:var(--txt)}
.ai-keybox .ai-cfg{margin:0;border-top:1px solid var(--line);padding:11px}

/* ---- Settings · AI key config ---- */
.ai-cfg{margin:14px 0 4px;border-top:1px solid var(--line);padding-top:12px}
.ai-cfg-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.ai-cfg-top .lbl{font-weight:700;font-size:13px}
#aiScopeSwitch button{padding:4px 9px;font-size:11.5px}
.prov{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:9px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}
.prov-t{font-weight:700;font-size:11.5px;color:#cdd6e0;letter-spacing:.2px}
.prov select,.prov input{width:100%;box-sizing:border-box;background:var(--bg);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:12.5px}
.prov select:focus,.prov input:focus{outline:none;border-color:var(--accent)}
.prov-get{font-size:11px;color:var(--accent);text-decoration:none;align-self:flex-start}
.prov-get:hover{text-decoration:underline}
.field-sel{width:100%;box-sizing:border-box;background:var(--bg);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:12.5px;margin-top:4px}
.field-sel:focus{outline:none;border-color:var(--accent)}

.chart-wrap{position:relative;width:100%}
#chartWrap{flex:1;min-height:220px}
#stochWrap{flex:0 0 140px}
#chart,#stoch{position:absolute;inset:0}
.zones{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.band{position:absolute;left:0;right:0}
.stoch-head{padding:6px 2px 2px;font-weight:600}
.pane-resizer{height:9px;flex:0 0 auto;cursor:row-resize;display:flex;align-items:center;justify-content:center;touch-action:none}
.pane-resizer::before{content:"";width:44px;height:3px;border-radius:2px;background:var(--line)}
.pane-resizer:hover::before{background:var(--accent)}
.lg.kk:before{background:#4aa3ff} .lg.dd:before{background:#ea3943}
.legend{display:flex;gap:14px;margin-top:8px;font-size:11px;color:var(--muted);flex-wrap:wrap;flex:0 0 auto}
.lg:before{content:"";display:inline-block;width:11px;height:3px;margin-right:5px;vertical-align:middle;border-radius:2px}
.lg.ma:before{background:#4aa3ff} .lg.bb:before{background:#8a97a8}
.lg.entry:before{background:var(--entry)} .lg.sl:before{background:var(--sl)} .lg.tp:before{background:var(--tp)}

/* fields */
.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin-bottom:9px}
.field input{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:7px;padding:8px;font-size:14px}
.mm-presets{display:flex;gap:8px;margin-bottom:9px}
.mm-presets button{flex:1;font-size:12px}
.mm-out{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12.5px;line-height:1.7}
.mm-out b{color:var(--accent)}

/* paper trading */
.paper-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.paper-stats div{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 9px}
.paper-stats span{display:block;color:var(--muted);font-size:10.5px}
.paper-stats b{font-size:14px}
.paper-actions{display:flex;gap:8px;margin-bottom:8px;align-items:flex-end}
.lotfield{flex:0 0 auto;font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.lotfield input{width:74px;background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:7px;font-size:14px}
button.take{flex:1;height:36px;background:var(--accent);color:#1a1300;font-weight:800;border-color:var(--accent)}
button.take:disabled{opacity:.5;cursor:not-allowed;background:var(--panel2);color:var(--muted);border-color:var(--line)}
.paper-mkt{display:flex;gap:8px;margin-bottom:10px}
button.buy{flex:1;background:rgba(22,199,132,.14);color:var(--buy);border-color:var(--buy);font-weight:700}
button.sell{flex:1;background:rgba(234,57,67,.14);color:var(--sell);border-color:var(--sell);font-weight:700}
button.reset{flex:0 0 auto;font-size:11px;color:var(--muted)}
.orow{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-left-width:3px;border-radius:7px;padding:6px 9px;margin-bottom:5px;font-size:12px}
.orow.BUY{border-left-color:var(--buy)} .orow.SELL{border-left-color:var(--sell)}
.orow .pd{font-weight:700}
.orow .pe{color:var(--muted);font-size:11px}
.orow .pp{margin-left:auto;font-weight:700}
.closebtn{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer}
.closebtn:hover{border-color:var(--sell);color:var(--sell)}
.hist-h{margin:8px 0 3px}
.hrow{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;padding:3px 0;border-top:1px solid var(--line)}
.hrow b{font-weight:700}

/* session */
.sess{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.sflag{font-size:11px;padding:3px 8px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);color:var(--muted)}
.sflag.on{background:rgba(255,176,0,.16);color:var(--accent);border-color:var(--accent)}
.sflag.warn{background:rgba(234,57,67,.18);color:#ff8a92;border-color:var(--sell)}
.sess-notes{list-style:none;display:flex;flex-direction:column;gap:6px}
.sess-notes li{font-size:12px;color:#d7b36b;padding-left:16px;position:relative}
.sess-notes li:before{content:"›";position:absolute;left:0;color:var(--accent)}

/* AI */
.ai-controls{display:flex;gap:6px;margin-bottom:8px}
.ai-controls select{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:7px;padding:7px}
.ai-controls input{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:7px;padding:7px;font-size:12px}
.ai-btn{width:100%;background:var(--accent);color:#1a1300;font-weight:700;border-color:var(--accent)}
.ai-out{margin-top:10px;font-size:12.5px;line-height:1.6;white-space:pre-wrap;color:#cdd6e0;max-height:280px;overflow:auto}

footer{padding:12px 18px;color:var(--muted);font-size:11px;border-top:1px solid var(--line);line-height:1.5}

.err{color:#ff8a92;font-size:12px}
/* tablet / small laptop: stack the three columns and let the page grow */
@media(max-width:1200px){
  html,body{height:auto}              /* not locked to one viewport -> footer sits at the real bottom */
  body{min-height:auto}
  main{flex-wrap:wrap;align-items:flex-start;flex:none;min-height:0}
  .col{width:100%;overflow:visible}
  .col.grow{order:-1;width:100%;flex:none}
  .chart-card{flex:none;height:68vh}
}

/* phone */
@media(max-width:700px){
  header{position:static;flex-direction:column;align-items:stretch;gap:10px;padding:10px 12px}
  .brand{gap:10px}
  .brand .sub{display:none}            /* drop the long subtitle on phones */
  h1{font-size:17px;line-height:1.2}
  .switches{flex-direction:column;width:100%;gap:8px}
  .sym-switch{width:100%}
  .sym-switch button{flex:1;padding:10px}
  .sens-group{width:100%}
  .sens-group .sym-switch{flex:1}
  .head-right{flex-wrap:wrap;justify-content:space-between;gap:8px 14px}
  .price{font-size:21px;min-width:0}
  .updated{order:5;width:100%;text-align:left}
  button,.tf-switch button{min-height:38px}   /* easier tap targets */
  main{padding:10px;gap:10px}
  .chart-head{flex-wrap:wrap;gap:8px 10px}
  .h4badge{margin-left:0}
  .tf-switch{flex-wrap:wrap}
  .chart-card{height:64vh}
  .badge{font-size:22px;padding:6px 14px}
  .plan-grid{grid-template-columns:1fr 1fr}
  .paper-stats{grid-template-columns:1fr 1fr}
  footer{font-size:10.5px;line-height:1.5;padding:14px 12px}
}

/* small phone */
@media(max-width:400px){
  .mtf{grid-template-columns:1fr 1fr}
  .tf-switch button{padding:5px 9px}
}
