/* =========================================================
   ORB TERMINAL — enterprise institutional UI
   restrained neutral palette · one blue accent · desaturated
   semantic colours used only where they carry meaning.
   ========================================================= */
:root{
  --bg:#0d1117; --panel:#11161d; --panel-2:#161b22; --head:#10151b; --raised:#1a2029;
  --line:#21262d; --line-2:#2d333b; --row-alt:rgba(255,255,255,.014);
  --txt:#e6edf3; --txt-2:#adbac7; --muted:#768390; --muted-2:#545d68;
  --accent:#4184e4; --accent-2:#2f6fd0; --accent-soft:rgba(65,132,228,.14); --accent-dim:#22364f;
  --green:#3fb950; --green-soft:rgba(63,185,80,.13);
  --red:#e5534b;   --red-soft:rgba(229,83,75,.13);
  --amber:#d1a13a; --amber-soft:rgba(209,161,58,.13);
  --violet:#8b7bd8; --violet-soft:rgba(139,123,216,.13);
  --shadow:0 8px 28px rgba(0,0,0,.4); --shadow-sm:0 1px 3px rgba(0,0,0,.3);
  --mono:"IBM Plex Mono",ui-monospace,"Consolas",monospace;
  --sans:"Inter","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,sans-serif;
  --r:6px;
}
:root[data-theme="light"]{
  --bg:#f4f6f9; --panel:#ffffff; --panel-2:#f7f9fb; --head:#fbfcfd; --raised:#f0f3f7;
  --line:#e4e9f0; --line-2:#d5dbe4; --row-alt:rgba(15,25,45,.014);
  --txt:#1c2430; --txt-2:#48505c; --muted:#69727e; --muted-2:#98a1ad;
  --accent:#2f6fd0; --accent-2:#215bb5; --accent-soft:rgba(47,111,208,.10); --accent-dim:#cbdcf3;
  --green:#2c9e3f; --red:#d0453d; --amber:#b7860f; --violet:#6f5fc0;
  --green-soft:rgba(44,158,63,.10); --red-soft:rgba(208,69,61,.10);
  --amber-soft:rgba(183,134,15,.12); --violet-soft:rgba(111,95,192,.10);
  --shadow:0 8px 26px rgba(30,44,74,.10); --shadow-sm:0 1px 3px rgba(30,44,74,.06);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:var(--sans); font-size:13px; color:var(--txt); background:var(--bg);
  line-height:1.5; letter-spacing:-.05px; -webkit-font-smoothing:antialiased; overflow:hidden;
}
.mono,td.r,.num,.clock,.m-lo,.m-hi,.vol,.last,.pos{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}
::-webkit-scrollbar-track{background:transparent}
button{font-family:var(--sans)}

/* ================= LAYOUT ================= */
.term{display:flex;flex-direction:column;height:100vh}
.view{flex:1;min-height:0;display:flex;flex-direction:column}
.view.hidden{display:none}

/* ---- TICKER TAPE ---- */
.tape{flex:none;height:30px;background:var(--panel-2);border-bottom:1px solid var(--line);overflow:hidden;display:flex;align-items:center}
.tape-track{display:flex;white-space:nowrap;will-change:transform;animation:tape 72s linear infinite}
@keyframes tape{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tk{display:inline-flex;align-items:center;gap:8px;padding:0 20px;font-size:12px;border-right:1px solid var(--line);cursor:pointer}
.tk:hover .s{color:var(--accent)}
[data-tv]{cursor:pointer}
tr[data-tv]:hover .nm,tr[data-tv]:hover .a-sym .nm{color:var(--accent)}
.tk .s{color:var(--txt-2);font-weight:600}
.tk .p{color:var(--txt);font-family:var(--mono)}
.tk .a{font-family:var(--mono);font-size:11px;color:var(--muted)}
.tk.up .a{color:var(--green)} .tk.dn .a{color:var(--red)}
.tk .st{width:6px;height:6px;border-radius:50%;background:var(--muted-2)}
.tk .st.g{background:var(--green)} .tk .st.r{background:var(--red)} .tk .st.a{background:var(--amber)}
/* AI verdict badges */
.vbadge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.4px;padding:2px 7px;border-radius:4px;white-space:nowrap;cursor:help}
.vbadge.vd-take{color:var(--green);background:var(--green-soft);border:1px solid var(--green)}
.vbadge.vd-skip{color:var(--red);background:var(--red-soft);border:1px solid var(--red)}
.vbadge.vd-watch{color:var(--amber);background:var(--amber-soft);border:1px solid var(--amber)}
.vconf{margin-left:6px;font-size:11px;font-weight:700;color:var(--txt-2);font-variant-numeric:tabular-nums}
/* auto-trade control panel */
.at-panel{border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:12px 0;background:var(--panel,transparent)}
.at-row{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-end}
.at-row+.at-row{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.at-ctl label,.at-fld label{display:block;font-size:10px;font-weight:700;letter-spacing:.6px;color:var(--muted);margin-bottom:6px;text-transform:uppercase}
.seg{display:inline-flex;border:1px solid var(--line-2,var(--line));border-radius:6px;overflow:hidden}
.seg button{background:transparent;color:var(--txt-2);border:0;padding:7px 14px;font-size:12px;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:.12s;border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}
.seg button:hover{background:var(--line)}
.seg button.on{background:var(--txt-2);color:var(--bg,#0d1117)}
.seg button.on.live{background:var(--red);color:#fff}
.seg button.live{color:var(--red)}
.at-settings{gap:14px}
.at-fld input{width:96px;background:var(--bg2,rgba(127,127,127,.08));border:1px solid var(--line);border-radius:5px;color:var(--txt);padding:7px 9px;font-size:13px;font-weight:600;font-family:inherit}
.at-fld input:focus{outline:0;border-color:var(--txt-2)}
#at-save{margin-left:auto}
/* backtest */
.tbtn.big{font-size:13px;font-weight:700;padding:9px 18px;letter-spacing:.4px}
a.tbtn.big{text-decoration:none;display:inline-block}
.bt-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.btbar{height:8px;border-radius:5px;background:var(--line);overflow:hidden;margin:14px auto;max-width:360px}
.btbar span{display:block;height:100%;background:var(--green);transition:width .4s ease}

/* ---- COMMAND BAR ---- */
.cmdbar{flex:none;height:46px;display:flex;align-items:center;gap:14px;padding:0 16px;background:var(--head);border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:14px;letter-spacing:-.2px;color:var(--txt);display:flex;align-items:center;gap:8px;white-space:nowrap}
.bmark{color:var(--accent);font-size:15px}
.bmark-2{color:var(--muted);font-weight:600;letter-spacing:.5px;font-size:12px}
.cmd{flex:1;max-width:520px;display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:0 11px;height:30px}
.cmd:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.prompt{color:var(--muted-2);font-family:var(--mono);font-size:13px}
#cmd{flex:1;background:transparent;border:none;outline:none;color:var(--txt);font-size:12.5px}
#cmd::placeholder{color:var(--muted-2)}
.cmd-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.markets{display:flex;gap:6px}
.mkt{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;padding:5px 9px;border:1px solid var(--line);border-radius:var(--r);color:var(--muted)}
.mkt .d{width:6px;height:6px;border-radius:50%;background:var(--muted-2)}
.mkt.open{color:var(--txt-2);border-color:var(--line-2)} .mkt.open .d{background:var(--green)}
.clock{font-size:14px;font-weight:500;color:var(--txt-2);letter-spacing:.3px;white-space:nowrap}
.demo-badge{font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--amber);border:1px solid var(--amber-soft);
  padding:3px 8px;border-radius:var(--r);background:var(--amber-soft)}

/* ---- TABS ---- */
.tabbar{flex:none;height:38px;display:flex;align-items:stretch;background:var(--head);border-bottom:1px solid var(--line);padding:0 12px}
.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);
  font-size:12.5px;font-weight:500;padding:0 16px;cursor:pointer;transition:.12s;letter-spacing:.1px}
.tab:hover{color:var(--txt-2)}
.tab.active{color:var(--txt);border-bottom-color:var(--accent);font-weight:600}
.tab-note{margin-left:auto;align-self:center;font-size:11.5px;color:var(--muted-2)}

/* view internals */
.statstrip{flex:none}
.grid{flex:1}
.statusbar{flex:none;min-height:26px}

/* ---- STAT STRIP ---- */
.statstrip{display:grid;grid-template-columns:repeat(6,1fr);background:var(--panel);border-bottom:1px solid var(--line)}
.stat{display:flex;flex-direction:column;justify-content:center;padding:12px 18px;border-right:1px solid var(--line)}
.stat:last-child{border-right:none}
.stat .lab{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin-bottom:5px;font-weight:600}
.stat .val{font-family:var(--mono);font-size:23px;font-weight:600;line-height:1;color:var(--txt);letter-spacing:-.5px}
.stat.buy .val{color:var(--green)} .stat.sell .val{color:var(--red)}
.stat.pend .val{color:var(--amber)} .stat.trap .val{color:var(--txt)}
.stat .sub{font-size:10px;color:var(--muted-2);margin-top:4px}

/* ================= PANELS ================= */
.grid{display:grid;grid-template-columns:1.85fr 1fr;min-height:0;overflow:hidden}
.panel{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--panel)}
.panel:last-child{border-right:none}
.panel-head{display:flex;align-items:center;gap:12px;height:38px;padding:0 16px;background:var(--head);border-bottom:1px solid var(--line)}
.ph-title{font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--txt-2);text-transform:uppercase}
.ph-meta{font-size:11px;color:var(--muted)}
.ph-actions{margin-left:auto;display:flex;gap:6px}
.tbtn{background:var(--raised);color:var(--txt-2);border:1px solid var(--line);border-radius:var(--r);
  padding:5px 10px;font-size:11px;font-weight:500;cursor:pointer;transition:.12s}
.tbtn:hover{border-color:var(--accent);color:var(--accent)}
.tbtn:active{background:var(--accent-soft)}
.tbtn:disabled{opacity:.45;cursor:default}

/* ---- DATA GRID ---- */
.tbl-wrap{overflow:auto;min-height:0}
table.dgrid{width:100%;border-collapse:collapse;font-size:12.5px}
.dgrid thead th{position:sticky;top:0;z-index:2;background:var(--panel-2);color:var(--muted);
  font-weight:600;text-align:left;padding:9px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.6px;
  border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none}
.dgrid thead th:hover{color:var(--txt-2)}
.dgrid th.r,.dgrid td.r{text-align:right}
.dgrid tbody td{padding:8px 16px;border-bottom:1px solid var(--line);white-space:nowrap;color:var(--txt-2)}
.dgrid tbody tr:nth-child(even){background:var(--row-alt)}
.dgrid tbody tr:hover{background:var(--raised)}
.sym{display:flex;align-items:center;gap:8px}
.sym .nm{font-weight:600;font-size:12.5px;color:var(--txt)}
.sym .ex{font-size:9.5px;color:var(--muted);border:1px solid var(--line-2);border-radius:3px;padding:1px 5px;font-weight:500}
.sym .liq{font-size:9px;color:var(--accent);border:1px solid var(--accent-dim);border-radius:3px;padding:1px 5px;font-weight:600;letter-spacing:.3px}
.last{color:var(--txt)}
.pos{font-weight:500} .pos.up{color:var(--green)} .pos.dn{color:var(--red)} .pos.flat{color:var(--muted)}
.vol{color:var(--txt-2)} .vol.hot{color:var(--amber)}

/* ---- range meter ---- */
.range-col{width:230px;min-width:210px}
.meter{display:flex;align-items:center;gap:9px}
.m-lo,.m-hi{font-size:10.5px;white-space:nowrap;width:56px;color:var(--muted)}
.m-lo{text-align:right} .m-hi{text-align:left}
.m-track{position:relative;flex:1;height:4px;border-radius:3px;background:var(--line-2)}
.m-mid{position:absolute;top:-4px;bottom:-4px;left:50%;width:1px;background:var(--muted-2);transform:translateX(-50%)}
.m-dot{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);
  background:var(--muted);border:2px solid var(--panel);z-index:2;transition:left .5s cubic-bezier(.4,0,.2,1)}
.m-dot.up{background:var(--green)} .m-dot.dn{background:var(--red)}

/* ---- status chips (neutral base, subtle semantic) ---- */
.chip{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:500;padding:3px 9px;border-radius:20px;
  border:1px solid var(--line-2);background:var(--raised);color:var(--txt-2);white-space:nowrap}
.chip .d{width:6px;height:6px;border-radius:50%;flex:none;background:var(--muted-2)}
.st-BUY_FIRED{color:var(--green);border-color:var(--green-soft)} .st-BUY_FIRED .d{background:var(--green)}
.st-SELL_FIRED{color:var(--red);border-color:var(--red-soft)} .st-SELL_FIRED .d{background:var(--red)}
.st-PENDING_UP,.st-PENDING_DN{color:var(--amber);border-color:var(--amber-soft)} .st-PENDING_UP .d,.st-PENDING_DN .d{background:var(--amber)}
.st-WAIT{color:var(--muted)} .st-WAIT .d{background:var(--muted-2)}
.st-NO_DATA{color:var(--muted-2)} .st-NO_DATA .d{background:var(--muted-2)}

/* ---- signal blotter ---- */
.blot-wrap{overflow:auto;min-height:0}
.blot-row{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:10px 16px;
  border-bottom:1px solid var(--line)}
.blot-row:hover{background:var(--raised)}
.bt{font-family:var(--mono);font-size:11px;color:var(--muted)}
.bmid{min-width:0}
.bmid .l1{display:flex;align-items:center;gap:8px}
.bmid .bs{font-weight:600;font-size:12.5px;color:var(--txt)}
.bmid .bk{font-size:9.5px;font-weight:600;letter-spacing:.4px;padding:2px 6px;border-radius:4px;color:var(--muted);background:var(--raised);border:1px solid var(--line-2)}
.blot-row.BUY .bk{color:var(--green);border-color:var(--green-soft)} .blot-row.SELL .bk{color:var(--red);border-color:var(--red-soft)}
.blot-row.TRAP_UP .bk,.blot-row.TRAP_DN .bk{color:var(--violet);border-color:var(--violet-soft)} .blot-row.WEAK .bk{color:var(--amber);border-color:var(--amber-soft)}
.bmid .l2{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis}
.bprice{text-align:right}
.bprice .pp{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--txt)}
.bprice .pv{font-family:var(--mono);font-size:9.5px;color:var(--muted);margin-top:3px}
.bprice .nd{color:var(--red)}
.empty{color:var(--muted-2);text-align:center;padding:48px 16px;font-size:12.5px;line-height:1.8}
.empty .big{font-size:24px;color:var(--muted-2);display:block;margin-bottom:10px;opacity:.6}

/* ---- status bar ---- */
.statusbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--head);
  border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.sb-left{display:flex;align-items:center;gap:9px}
.sb-dot{width:7px;height:7px;border-radius:50%;background:var(--muted-2)}
.sb-dot.ok{background:var(--green)} .sb-dot.warn{background:var(--amber)} .sb-dot.bad{background:var(--red)}
.sb-keys{color:var(--muted-2);font-size:10.5px}
.sb-keys b{color:var(--txt-2);background:var(--raised);border:1px solid var(--line);border-radius:3px;padding:1px 5px;margin:0 3px 0 9px;font-weight:600;font-family:var(--mono)}

/* ================= ANALYTICS ================= */
.a-scroll{flex:1;min-height:0;overflow:auto;padding:18px 22px 32px}
.a-hero{border:1px solid var(--line);border-radius:var(--r);background:var(--panel-2);padding:16px 20px;margin-bottom:14px}
.a-hero h1{margin:0 0 7px;font-size:15px;font-weight:650;letter-spacing:-.2px;color:var(--txt)}
.a-hero p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.65;max-width:1080px}
.a-hero b{color:var(--txt-2);font-weight:600}
.a-hero.psy{display:flex;gap:28px;align-items:center;justify-content:space-between}
.a-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.a-legend span{font-size:11px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);padding:5px 11px}
.a-legend b{color:var(--txt-2);font-weight:600}
.a-table{border:1px solid var(--line);border-radius:var(--r);overflow:auto;background:var(--panel)}
.a-table table{width:100%;border-collapse:collapse;font-size:12.5px}
.a-table thead th{position:sticky;top:0;z-index:2;background:var(--panel-2);color:var(--muted);font-weight:600;
  text-align:right;padding:10px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;
  border-bottom:1px solid var(--line);white-space:nowrap}
.a-table thead th:first-child{text-align:left}
.a-table tbody td{padding:9px 16px;border-bottom:1px solid var(--line);text-align:right;font-family:var(--mono);
  font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--txt-2)}
.a-table tbody td:first-child{text-align:left}
.a-table tbody tr:nth-child(even){background:var(--row-alt)}
.a-table tbody tr:hover{background:var(--raised)}
.a-sym{display:flex;align-items:center;gap:8px}
.a-sym .nm{font-family:var(--sans);font-weight:600;color:var(--txt);font-size:12.5px}
.a-sym .ex{font-family:var(--sans);font-size:9.5px;color:var(--muted);border:1px solid var(--line-2);border-radius:3px;padding:1px 5px}
.v-good{color:var(--green)} .v-bad{color:var(--red)} .v-warn{color:var(--amber)} .v-strong{color:var(--txt)}
.olink{color:var(--txt);font-weight:600;text-decoration:none;border-bottom:1px dashed var(--muted-2);white-space:nowrap}
.olink:hover{color:var(--accent);border-bottom-color:var(--accent)}
/* high-conviction toggle + bar */
.hiconv-btn.on{background:var(--amber-soft);border-color:var(--amber);color:var(--amber)}
.hcbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:var(--r);
  background:var(--panel-2);padding:11px 16px;margin-bottom:12px;font-size:12.5px;color:var(--txt-2)}
.hcbar.on{border-left-color:var(--green);background:var(--green-soft)}
.hcbar b{color:var(--txt)}
.hcbar .hc-cmp{font-family:var(--mono);font-size:12px}
.hcbar .big{font-family:var(--mono);font-size:15px;font-weight:600}
.tag{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2px;padding:2px 8px;border-radius:20px;border:1px solid var(--line-2);background:var(--raised);color:var(--txt-2)}
.tag.g{color:var(--green);border-color:var(--green-soft)}
.tag.r{color:var(--red);border-color:var(--red-soft)}
.tag.a{color:var(--amber);border-color:var(--amber-soft)}
.tag.b{color:var(--accent);border-color:var(--accent-dim)}
.tag.p{color:var(--violet);border-color:var(--violet-soft)}
.a-empty{padding:44px;text-align:center;color:var(--muted-2);font-size:12.5px;line-height:1.8}

/* EOD review — sub-tabs (segmented control) */
.rev-dot{width:9px;height:9px;border-radius:2px}
.rev-dot.dir{background:var(--accent)} .rev-dot.opt{background:var(--amber)} .rev-dot.hc{background:var(--green)}
.rev-strip{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px}
.subtabs{display:inline-flex;gap:4px;margin-bottom:16px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:4px}
.subtab{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--muted);
  font-family:var(--sans);font-size:12.5px;font-weight:600;padding:8px 18px;border-radius:6px;cursor:pointer;transition:.12s}
.subtab:hover{color:var(--txt-2)}
.subtab.active{background:var(--raised);color:var(--txt);box-shadow:var(--shadow-sm)}
.subview.hidden{display:none}
.hc-sec{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--txt-2);text-transform:uppercase;margin:20px 0 10px}
.hc-sec:first-child{margin-top:2px}

/* LEARN tab */
.learn-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.learn-card{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.lc-head{font-size:11px;font-weight:700;letter-spacing:.6px;color:var(--txt-2);text-transform:uppercase;margin-bottom:10px}
.lc-head.good{color:var(--green)} .lc-head.bad{color:var(--red)}
.learn-list{list-style:none;margin:0;padding:0}
.learn-list li{font-size:12.5px;color:var(--txt-2);padding:6px 0;border-bottom:1px solid var(--line);line-height:1.5}
.learn-list li:last-child{border-bottom:none}
.learn-list li b{color:var(--txt)}
.learn-list .none{color:var(--muted-2)}
.learn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
table.mini{width:100%;border-collapse:collapse;font-size:12px}
table.mini th{text-align:right;color:var(--muted);font-weight:600;font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;padding:6px 10px;border-bottom:1px solid var(--line-2)}
table.mini th:first-child{text-align:left}
table.mini td{text-align:right;padding:6px 10px;border-bottom:1px solid var(--line);font-family:var(--mono);color:var(--txt-2)}
table.mini td:first-child{text-align:left;font-family:var(--sans);color:var(--txt)}
table.mini tr:last-child td{border-bottom:none}
table.mini tr.worst td{background:rgba(229,83,75,.06)}

/* fear/greed gauge */
.gauge{min-width:300px;text-align:center}
.gauge-val{font-family:var(--mono);font-size:32px;font-weight:600;line-height:1;color:var(--txt)}
.gauge-bar{position:relative;height:6px;border-radius:4px;margin:10px 0 6px;
  background:linear-gradient(90deg,var(--red),var(--amber) 50%,var(--green))}
.gauge-mark{position:absolute;top:-4px;width:3px;height:14px;background:var(--txt);border-radius:2px;transform:translateX(-50%);transition:left .5s}
.gauge-lab{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
.gauge-lab b{color:var(--txt-2);font-weight:600;letter-spacing:.3px}

@media(max-width:1100px){.grid{grid-template-columns:1fr}.panel:first-child{border-right:none;border-bottom:1px solid var(--line)}
  .statstrip{grid-template-columns:repeat(3,1fr)}}

/* =========================================================
   PREMIUM POLISH — depth, crisp micro-interactions, refined states
   (appended: overrides win; layout untouched)
   ========================================================= */
.tab,.tbtn,.seg button,.stat,.at-fld input,.vbadge,.olink,.subtab{
  transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease}

/* command + tab bars: subtle vertical depth and a crisp seating shadow */
.cmdbar{background:linear-gradient(180deg,var(--raised),var(--head));box-shadow:0 1px 0 rgba(0,0,0,.22)}
.tabbar{background:linear-gradient(180deg,var(--head),var(--panel-2))}

/* tabs: quiet idle · confident active with a soft accent wash */
.tab:hover{background:rgba(127,127,127,.045)}
.tab.active{background:linear-gradient(180deg,transparent 55%,var(--accent-soft))}

/* stat cards: gentle hover, tighter numerals */
.statstrip .stat:hover{background:var(--row-alt)}
.stat .val{letter-spacing:-.6px}

/* buttons: soft elevation + tactile press */
.tbtn{box-shadow:var(--shadow-sm)}
.tbtn:hover{background:var(--accent-soft);box-shadow:0 2px 9px var(--accent-soft)}
.tbtn:active{transform:translateY(1px)}
.tbtn.big{border-radius:7px;box-shadow:var(--shadow-sm)}

/* content surfaces: layered elevation */
.a-hero{box-shadow:var(--shadow-sm)}
.a-hero h1{font-weight:680}
.a-scroll .a-table>table{box-shadow:var(--shadow-sm);border-radius:var(--r);overflow:hidden}
.hcbar{box-shadow:var(--shadow-sm)}

/* auto-trade control panel: premium surface + focus ring */
.at-panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));box-shadow:var(--shadow-sm)}
.seg{box-shadow:var(--shadow-sm)}
.seg button.on{box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.at-fld input:hover{border-color:var(--line-2)}
.at-fld input:focus{box-shadow:0 0 0 3px var(--accent-soft)}

/* refined row hover across data tables */
.a-scroll .a-table tbody tr:hover{background:var(--row-alt)}
.dgrid tbody tr:hover{background:var(--row-alt)}

/* ============================ TRADER AI · SIGNAL DESK ============================ */
/* institutional grade badges */
.grade{display:inline-block;min-width:26px;text-align:center;font-size:11px;font-weight:800;
  letter-spacing:.3px;padding:2px 7px;border-radius:5px;font-variant-numeric:tabular-nums;cursor:help}
.grade.g-ap{color:#0a0d11;background:linear-gradient(180deg,#7ee89a,var(--green));border:1px solid var(--green);
  box-shadow:0 1px 6px rgba(63,185,80,.35)}
.grade.g-a{color:var(--green);background:var(--green-soft);border:1px solid var(--green)}
.grade.g-b{color:var(--amber);background:var(--amber-soft);border:1px solid var(--amber)}
.grade.g-c{color:var(--muted);background:transparent;border:1px solid var(--line-2)}

/* multi-timeframe confluence chevrons (1m / 5m / 15m) */
.cfbox{display:inline-flex;gap:2px;align-items:center;cursor:help}
.cf{font-size:9px;line-height:1;opacity:.9}
.cf-up{color:var(--green)} .cf-dn{color:var(--red)} .cf-off{color:var(--line-2)}

/* edge / calibration panel */
.edge-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 14px}
@media(max-width:900px){.edge-grid{grid-template-columns:1fr}}
.edge-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.edge-h{font-size:11px;font-weight:800;letter-spacing:.6px;color:var(--txt-2);text-transform:uppercase;
  margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.edge-sub{font-size:10px;font-weight:600;letter-spacing:.2px;color:var(--muted);text-transform:none}
.calib{display:flex;flex-direction:column;gap:7px}
.calib-row{display:grid;grid-template-columns:34px 1fr 42px auto;align-items:center;gap:9px}
.calib-k{font-size:11px;font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums}
.calib-bar{height:8px;background:var(--raised);border-radius:5px;overflow:hidden;border:1px solid var(--line)}
.calib-fill{display:block;height:100%;border-radius:5px;transition:width .5s ease}
.calib-fill.cb-good{background:linear-gradient(90deg,var(--green),#7ee89a)}
.calib-fill.cb-mid{background:linear-gradient(90deg,var(--amber),#e6c169)}
.calib-fill.cb-bad{background:linear-gradient(90deg,var(--red),#f0837c)}
.calib-v{font-size:12px;font-weight:700;color:var(--txt);text-align:right;font-variant-numeric:tabular-nums}
.calib-n{font-size:10.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}

/* ============================ LIVE BUY BOARD ============================ */
.buyboard{margin:14px 0 6px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden}
.bb-hdr{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;
  background:linear-gradient(90deg,var(--head),var(--panel));border-bottom:1px solid var(--line)}
.bb-title{font-size:13px;font-weight:800;letter-spacing:.6px;color:var(--txt)}
.bb-win{font-size:10.5px;font-weight:700;letter-spacing:.4px;color:var(--muted);padding:3px 9px;
  border:1px solid var(--line-2);border-radius:20px}
.bb-win.on{color:var(--green);border-color:var(--green);background:var(--green-soft);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}
.bb-empty{padding:26px 16px;text-align:center;color:var(--muted);font-size:13px}
.bb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;padding:14px}
.buycard{border:1px solid var(--line-2);border-radius:8px;padding:12px 14px;cursor:pointer;
  background:var(--panel-2);transition:transform .12s ease,box-shadow .12s ease;position:relative}
.buycard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:8px 0 0 8px}
.buycard.up::before{background:var(--green)} .buycard.dn::before{background:var(--red)}
.buycard:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(0,0,0,.28)}
.bc-top{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.bc-act{font-size:12px;font-weight:800;letter-spacing:.3px}
.bc-opt{font-size:14px;font-weight:800;color:var(--txt);flex:1}
.bc-grade{font-size:10px;font-weight:800;color:#0a0d11;background:linear-gradient(180deg,#7ee89a,var(--green));
  border-radius:5px;padding:2px 7px}
.bc-levels{display:grid;grid-template-columns:repeat(5,auto);gap:14px;align-items:baseline}
.bc-l{display:flex;flex-direction:column;gap:2px}
.bc-l i{font-size:9px;font-weight:700;letter-spacing:.5px;color:var(--muted);font-style:normal}
.bc-l b{font-size:14px;font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums}
.bc-l.t b{color:var(--green)} .bc-l.s b{color:var(--red)}
.bc-foot{margin-top:10px;font-size:10.5px;color:var(--muted);letter-spacing:.2px}
@media(max-width:640px){.bc-levels{grid-template-columns:repeat(3,auto);gap:10px 14px}}

/* ============================ HIGH PROBABILITY ============================ */
.hp-banner{margin:4px 0 10px}
.hp-note{font-size:12px;color:var(--txt-2);padding:9px 13px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r)}
.hp-note b{color:var(--txt)}
#view-highprob .buycard.dn::before{background:var(--red)}
#view-highprob .buyboard{border-color:var(--green)}

/* ============================ SIDEBAR LAYOUT (v29) ============================ */
.app{display:flex;height:100vh;overflow:hidden;background:var(--bg)}
.sidebar{width:216px;flex:none;background:var(--panel);border-right:1px solid var(--line);
  display:flex;flex-direction:column;overflow-y:auto}
.side-brand{display:flex;align-items:center;gap:9px;padding:16px 16px 4px;font-weight:800}
.side-brand .bmark{color:var(--accent);font-size:18px}
.sb-name{font-size:15px;letter-spacing:.3px;color:var(--txt)} .sb-name b{color:var(--accent);font-weight:800}
.side-tag{font-size:9.5px;letter-spacing:.8px;color:var(--muted);padding:0 16px 14px;text-transform:uppercase}
.side-nav{flex:1;display:flex;flex-direction:column;padding:4px 10px;gap:1px}
.nav-grp{font-size:9.5px;font-weight:800;letter-spacing:1px;color:var(--muted-2);
  padding:14px 8px 5px;text-transform:uppercase}
.side-nav .tab{display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  background:transparent;border:none;border-radius:7px;padding:8px 10px;cursor:pointer;
  font-family:inherit;font-size:12.5px;font-weight:600;color:var(--txt-2);letter-spacing:.1px;transition:background .12s,color .12s}
.side-nav .tab .ni{width:16px;text-align:center;font-size:13px;color:var(--muted);flex:none}
.side-nav .tab:hover{background:var(--raised);color:var(--txt)}
.side-nav .tab.active{background:var(--accent-soft);color:var(--accent)}
.side-nav .tab.active .ni{color:var(--accent)}
.side-nav .tab.active{box-shadow:inset 2px 0 0 var(--accent)}
.nb{margin-left:auto;font-size:8.5px;font-weight:800;letter-spacing:.4px;padding:1px 6px;border-radius:10px;
  background:var(--line);color:var(--muted)}
.nb.live{background:var(--green-soft);color:var(--green)}
.side-foot{flex:none;display:flex;align-items:center;gap:7px;padding:11px 16px;border-top:1px solid var(--line);
  font-size:10.5px;color:var(--muted);font-family:var(--mono)}

.main{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh}
.topbar{flex:none;display:flex;align-items:center;gap:14px;padding:0 18px;height:52px;
  background:var(--head);border-bottom:1px solid var(--line)}
.topbar .cmd{flex:1;max-width:560px;display:flex;align-items:center;gap:8px;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;padding:7px 12px}
.topbar .cmd .prompt{color:var(--muted)} 
.topbar .cmd input{flex:1;background:transparent;border:none;outline:none;color:var(--txt);font-family:inherit;font-size:12.5px}
.top-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.askbtn{background:linear-gradient(180deg,#1a2230,#11161d);color:var(--txt);border:1px solid var(--line-2);
  border-radius:8px;padding:7px 13px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:.12s}
.askbtn:hover{border-color:var(--accent);color:var(--accent)}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:flex;
  align-items:center;justify-content:center;font-size:11px;font-weight:800;flex:none}
.content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}

/* ============================ AI ASK-AGENT ============================ */
.agent-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40}
.agent-panel{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:92vw;z-index:41;
  background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;
  box-shadow:-8px 0 40px rgba(0,0,0,.4)}
.ag-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.ag-title{font-weight:800;font-size:14px;color:var(--txt)}
.ag-close{background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer}
.ag-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.ag-msg{max-width:88%;padding:9px 12px;border-radius:10px;font-size:12.5px;line-height:1.55;white-space:pre-wrap}
.ag-msg.user{align-self:flex-end;background:var(--accent-soft);color:var(--txt);border:1px solid var(--accent-dim)}
.ag-msg.bot{align-self:flex-start;background:var(--panel-2);color:var(--txt-2);border:1px solid var(--line)}
.ag-msg.sys{align-self:center;color:var(--muted);font-size:11.5px;text-align:center}
.ag-input{flex:none;display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.ag-input input{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;color:var(--txt);font-family:inherit;font-size:12.5px;outline:none}
.ag-input button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:0 15px;
  font-weight:700;font-size:12px;cursor:pointer}
.agent-panel[hidden],.agent-scrim[hidden]{display:none}

/* ============================ PRO ICONS (v31) ============================ */
.ni svg{width:16px;height:16px;display:block}
.side-nav .tab .ni{display:flex;align-items:center;justify-content:center;width:18px;height:18px}
.side-brand .bmark{display:inline-flex;align-items:center;justify-content:center}
.side-brand .bmark svg{width:22px;height:22px;color:var(--accent)}
.topbar .cmd .prompt{display:inline-flex}
.topbar .cmd .prompt svg{width:15px;height:15px;color:var(--muted)}
.askbtn{display:inline-flex;align-items:center;gap:6px}
.askbtn .abi{display:inline-flex} .askbtn .abi svg{width:14px;height:14px}
.askbtn:hover .abi svg{color:var(--accent)}
/* tighten the enterprise sidebar feel */
.side-nav .tab{padding:8px 11px;border-radius:8px}
.side-nav .tab.active{background:linear-gradient(90deg,var(--accent-soft),transparent)}
.side-brand .bmark{background:var(--accent-soft);border-radius:7px;width:30px;height:30px}

/* ============================ VAJRA brand + panel adjust (v32) ============================ */
.sb-name{font-size:17px;font-weight:800;letter-spacing:2px;color:var(--txt)}
.side-tag{letter-spacing:1.2px}
/* topbar icon button */
.icon-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--txt-2);cursor:pointer;transition:.12s}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.icon-btn svg{width:16px;height:16px}
/* small inline icons on toolbar buttons */
.tbtn .mi{display:inline-flex;vertical-align:-2px;margin-right:4px}
.tbtn .mi svg{width:12px;height:12px}
/* sidebar hide (slide away) */
.sidebar{transition:width .18s ease}
.app.sidebar-hidden .sidebar{width:0;border-right:none;overflow:hidden}
/* blotter hide -> watchlist goes full width */
.grid{transition:grid-template-columns .18s ease}
.grid.blotter-hidden{grid-template-columns:1fr}
.grid.blotter-hidden > .panel:last-child{display:none}

/* ============================ tagline + drag-resize (v34) ============================ */
.side-tagline{font-size:11px;font-style:italic;color:var(--txt-2);padding:2px 16px 0;line-height:1.4}
.side-tag{padding-top:4px}
/* draggable column splitter between watchlist & signal blotter */
#view-terminal .grid{grid-template-columns:var(--wlw,1.85fr) 7px minmax(260px,1fr)}
.col-resizer{position:relative;cursor:col-resize;background:transparent;transition:background .12s}
.col-resizer:hover,.col-resizer.drag{background:var(--accent-soft)}
.col-resizer::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:3px;height:34px;background:var(--line-2);border-radius:3px;transition:background .12s}
.col-resizer:hover::after,.col-resizer.drag::after{background:var(--accent)}
#view-terminal .grid.blotter-hidden{grid-template-columns:1fr}
#view-terminal .grid.blotter-hidden > .col-resizer{display:none}

/* ============================ public read-only mode (v36) ============================ */
/* hide every trading/control affordance from public viewers */
.app.readonly #rescanBtn,
.app.readonly #testBtn,
.app.readonly #blotterBtn,
.app.readonly #askAgentBtn,
.app.readonly #at-controls,
.app.readonly #at-banner button,
.app.readonly .at-controls,
.app.readonly .seg,
.app.readonly [data-tab="autotrade"]{display:none !important}
.ro-badge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:800;letter-spacing:.4px;
  color:var(--amber);background:var(--amber-soft);border:1px solid var(--amber);border-radius:20px;padding:4px 10px}
