/* KEN TERMINAL — dark professional workstation, mockup palette */
:root{
  --bg:#0a0e14;--panel:#11161d;--panel2:#161c25;--hdr:#0d1219;
  --line:#232b36;--line2:#2c3644;--row:#151b24;
  --tx:#d7dde5;--mu:#8b95a5;--dim:#5c6778;
  --cyan:#3db9e8;--green:#3ecf8e;--red:#ef6b6b;--amber:#e8b339;--purple:#9b8afb;
  --mono:"JetBrains Mono","SF Mono","Consolas","Courier New",monospace;
  --sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --okbg:rgba(62,207,142,.12);--okbd:#2a6b4e;
  --badbg:rgba(239,107,107,.16);--badbd:#6b2a2a;
  --cybg:rgba(61,185,232,.12);--cybd:#2a5a70;
  --ambg:rgba(232,179,57,.12);
  --header-h:46px;--footer-h:28px;--mobile-h:0px;
}
html[data-theme="light"]{
  --bg:#eef1f5;--panel:#f7f8fa;--panel2:#eceff3;--hdr:#ffffff;
  --line:#d5dbe3;--line2:#c3cad3;--row:#e7ebf0;
  --tx:#1c2430;--mu:#4a5563;--dim:#6b7280;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--tx);font:12.5px/1.4 var(--sans);-webkit-font-smoothing:antialiased}
button,select,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:focus-visible,select:focus-visible,input:focus-visible{outline:1px solid var(--cyan)}
.app{height:100%;display:grid;grid-template-rows:var(--header-h) 1fr var(--footer-h);min-height:0}
header{display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--hdr);border-bottom:1px solid var(--line);min-width:0}
.brand{display:flex;align-items:center;gap:8px;min-width:168px;flex-shrink:0}
.mark{width:22px;height:22px;background:linear-gradient(135deg,#1a7a9c,#3db9e8);border-radius:3px;display:grid;place-items:center;font:700 11px var(--sans);color:#041018}
.brand h1{font:700 13px/1.1 var(--sans);letter-spacing:.02em}
.brand h1 b{color:var(--cyan);font-weight:700}
.brand small{display:block;color:var(--dim);font:500 9px var(--sans);letter-spacing:.04em;text-transform:uppercase}
.tabs{display:flex;background:#0a0e14;border:1px solid var(--line);border-radius:3px;overflow:hidden}
html[data-theme="light"] .tabs{background:#fff}
.tab{padding:6px 12px;font:600 10px var(--sans);color:var(--mu);border:0;background:transparent;border-right:1px solid var(--line);letter-spacing:.04em}
.tab:last-child{border-right:0}
.tab.on{background:#163447;color:var(--cyan)}
.modes{display:flex;background:#0a0e14;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.mode{padding:5px 10px;font:600 10px var(--sans);color:var(--mu);border:0;background:transparent;border-right:1px solid var(--line)}
.mode:last-child{border-right:0}
.mode.on{background:#163447;color:var(--cyan)}
.mode:disabled{opacity:.55;cursor:not-allowed}
.sp{flex:1}
.chip{display:flex;align-items:center;gap:5px;padding:4px 8px;background:var(--panel);border:1px solid var(--line);border-radius:2px;font:600 11px var(--mono);color:var(--tx);white-space:nowrap}
.chip .l{color:var(--dim);font:500 9px var(--sans);text-transform:uppercase}
.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 5px var(--green)}
.iconbtn{height:28px;padding:0 8px;background:var(--panel);border:1px solid var(--line);border-radius:2px;color:var(--mu);font:600 10px var(--sans)}
.iconbtn:hover{color:var(--tx);border-color:var(--cyan)}

/* views */
.view{display:none;min-height:0;height:100%;background:var(--bg)}
.view.on{display:grid}
#view-cc{grid-template-columns:220px 1fr 300px;gap:1px;background:var(--line)}
#view-lab{grid-template-columns:250px 1fr 320px;gap:1px;background:var(--line)}
#view-ops{grid-template-rows:auto 1fr;min-height:0}
#view-mtf{grid-template-rows:36px 1fr 140px;min-height:0}

.col{background:var(--bg);display:flex;flex-direction:column;min-height:0;min-width:0}
.ph{height:26px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;gap:8px}
.ph h2{font:700 10px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
.ph .badge{font:600 9px var(--mono);color:var(--cyan);background:var(--cybg);padding:1px 5px;border-radius:2px}

/* watchlist */
.wl-h,.wrow{display:grid;grid-template-columns:68px 1fr 56px 44px;padding:4px 10px;align-items:center}
.wl-h{color:var(--dim);font:600 9px var(--sans);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);flex-shrink:0}
.wl-rows{flex:1;overflow:auto;min-height:0}
.wrow{border-bottom:1px solid var(--row);cursor:pointer}
.wrow:hover{background:#121820}
.wrow.on{background:#15202b;border-left:2px solid var(--cyan);padding-left:8px}
.wrow .sym{font:700 11px var(--mono)}
.wrow .px{font:600 10px var(--mono);text-align:right}
.wrow .ch{font:600 9px var(--mono);text-align:right}
.wrow .ch.up{color:var(--green)}.wrow .ch.dn{color:var(--red)}
.sess{font:600 8px var(--sans);padding:1px 3px;border-radius:2px;text-align:center}
.sess.kz{background:var(--cybg);color:var(--cyan)}
.sess.ny{background:var(--ambg);color:var(--amber)}
.sess.as{background:rgba(155,138,251,.12);color:var(--purple)}
.sess.off{background:#1a2029;color:var(--dim)}
.delayed{font:600 8px var(--sans);color:var(--amber);letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-top:1px solid var(--line);background:var(--panel)}
.agents-mini{border-top:1px solid var(--line);padding:6px 8px;display:grid;gap:3px;background:var(--panel);flex-shrink:0}
.am{display:flex;align-items:center;gap:6px;font:600 10px var(--sans);color:var(--mu)}
.am i{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}
.am i.warn{background:var(--amber)}
.am span{margin-left:auto;font:500 9px var(--mono);color:var(--dim)}

/* chart */
.center{display:grid;grid-template-rows:1fr 168px;gap:1px;background:var(--line);min-height:0}
.chart-box{background:var(--bg);display:flex;flex-direction:column;min-height:0}
.chart-toolbar{height:28px;display:flex;align-items:center;gap:6px;padding:0 8px;border-bottom:1px solid var(--line);background:var(--panel);flex-shrink:0;overflow:auto}
.tb{font:600 10px var(--sans);color:var(--mu);padding:3px 7px;border:1px solid var(--line);border-radius:2px;background:#0d1219}
.tb.on{color:var(--cyan);border-color:#2a5a70;background:#132530}
.chart-area{flex:1;position:relative;min-height:0;overflow:hidden}
.chart-area .host{position:absolute;inset:0}
.bot-row{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);min-height:0}
.panel{background:var(--bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.cal-row{display:grid;grid-template-columns:54px 52px 1fr 44px;padding:5px 10px;border-bottom:1px solid var(--row);align-items:center}
.cal-row .t{font:600 10px var(--mono);color:var(--mu)}
.imp{font:700 9px var(--sans);padding:1px 5px;border-radius:2px;text-align:center}
.imp.high{background:var(--badbg);color:var(--red)}
.imp.medium{background:var(--ambg);color:var(--amber)}
.imp.low{background:#1a2029;color:var(--mu)}
.cal-row .ev{color:var(--tx);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-row .cur{font:600 10px var(--mono);color:var(--dim);text-align:right}
.log{padding:6px 10px;font:10.5px/1.55 var(--mono);color:var(--mu);overflow:auto}
.log .ln{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.log .ts{color:var(--dim)}.log .a{color:var(--cyan)}.log .ok{color:var(--green)}.log .no{color:var(--red)}.log .w{color:var(--amber)}

/* right / ticket */
.right{display:grid;grid-template-rows:auto 1fr auto;gap:1px;background:var(--line);min-height:0}
.ticket{padding:10px;display:flex;flex-direction:column;gap:7px}
.side-tog{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.side-tog button{padding:7px;border:1px solid var(--line);background:#0d1219;color:var(--mu);font:700 11px var(--sans);border-radius:2px}
.side-tog button.buy.on,.side-tog button.buy{background:var(--okbg);border-color:var(--okbd);color:var(--green)}
.side-tog button.sell.on,.side-tog button.sell{background:var(--badbg);border-color:var(--badbd);color:var(--red)}
.side-tog button.off{background:#0d1219;border-color:var(--line);color:var(--mu)}
.fld{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:6px}
.fld label{font:600 10px var(--sans);color:var(--dim);text-transform:uppercase}
.fld .inp,.fld input,.prow select,.prow input,select.inp,input.inp{
  background:#0d1219;border:1px solid var(--line);border-radius:2px;padding:5px 7px;font:600 11px var(--mono);color:var(--tx);width:100%
}
.btn-go{margin-top:4px;padding:8px;background:#1a6b4a;border:1px solid #2a8f64;color:#d8ffe9;font:700 11px var(--sans);border-radius:2px;text-align:center;letter-spacing:.04em}
.btn-go:disabled,.btn-muted{background:#0d1219;border-color:var(--line);color:var(--mu);cursor:default}
.hint{font:500 10px var(--sans);color:var(--dim)}
.risk-body{padding:10px;display:flex;flex-direction:column;gap:8px;overflow:auto}
.rstat{display:flex;justify-content:space-between;font:11px var(--sans)}
.rstat .k{color:var(--dim)}.rstat .v{font:700 11px var(--mono)}
.gauge-bar{height:8px;background:#0d1219;border:1px solid var(--line);border-radius:2px;overflow:hidden}
.gauge-bar i{display:block;height:100%;background:linear-gradient(90deg,#3ecf8e,#e8b339)}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rbox{background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:7px;text-align:center}
.rbox .n{font:700 14px var(--mono)}.rbox .l{font:600 9px var(--sans);color:var(--dim);margin-top:2px;text-transform:uppercase}
.flag{font:700 10px var(--sans);padding:4px 6px;border-radius:2px;text-align:center}
.flag.ok{background:var(--okbg);color:var(--green)}
.flag.bad{background:var(--badbg);color:var(--red)}

footer{display:flex;align-items:center;gap:14px;padding:0 12px;background:var(--hdr);border-top:1px solid var(--line);font:600 10px var(--mono);color:var(--mu);overflow:hidden;white-space:nowrap}
footer .sep{color:var(--line2)}
footer .g{color:var(--green)} footer .r{color:var(--red)} footer .c{color:var(--cyan)}
footer b{color:var(--tx);font-weight:700}

/* Strategy Lab */
.param{padding:8px 10px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line)}
.prow{display:grid;grid-template-columns:1fr 118px;align-items:center;gap:6px}
.prow label{font:600 10px var(--sans);color:var(--mu)}
.tog{display:flex;align-items:center;gap:6px;font:600 10px var(--sans);color:var(--tx);padding:2px 0;cursor:pointer}
.tog input{accent-color:var(--cyan)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px}
.scard{background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:8px;text-align:center}
.scard .t{font:700 9px var(--sans);color:var(--dim);text-transform:uppercase;letter-spacing:.05em}
.scard .n{font:800 15px var(--mono);margin-top:3px}
.scard .s{font:600 9px var(--sans);color:var(--mu);margin-top:2px}
.lab-center{display:grid;grid-template-rows:170px 150px minmax(0,1fr);gap:1px;background:var(--line);min-height:0}
.eq-host,.dd-host{flex:1;min-height:0;position:relative}
.eq-host > div,.dd-host > div{position:absolute;inset:0}
.heat{padding:8px 10px;overflow:auto}
.heat-row{display:grid;grid-template-columns:36px repeat(12,1fr);gap:3px;align-items:center;margin-bottom:3px}
.heat-row .m{font:600 9px var(--mono);color:var(--dim);text-align:right;padding-right:2px}
.heat-row .c{height:22px;border-radius:2px;display:grid;place-items:center;font:700 8px var(--mono);color:#0a0e14}
.heat-h{display:grid;grid-template-columns:36px repeat(12,1fr);gap:3px;margin-bottom:4px}
.heat-h span{font:600 8px var(--sans);color:var(--dim);text-align:center}
.subtabs{display:flex;gap:0;border-bottom:1px solid var(--line);background:var(--panel);flex-shrink:0}
.subtabs button{padding:6px 10px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--mu);font:700 10px var(--sans);letter-spacing:.04em}
.subtabs button.on{color:var(--cyan);border-bottom-color:var(--cyan)}
.tbl-wrap{overflow:auto;flex:1}
table{width:100%;border-collapse:collapse;font:11px var(--mono)}
th{text-align:left;padding:4px 6px;font:700 9px var(--sans);color:var(--dim);text-transform:uppercase;letter-spacing:.04em;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}
td{padding:4px 6px;border-bottom:1px solid var(--row);color:var(--tx);white-space:nowrap}
tr.sel td{background:#15202b}
tr{cursor:pointer}
.up{color:var(--green)}.dn{color:var(--red)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.stat{background:var(--bg);padding:9px}
.stat .l{font:700 9px var(--sans);color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
.stat .n{font:800 18px var(--mono);margin-top:3px}
.stat .sub{font:600 9px var(--sans);color:var(--mu);margin-top:2px}
.finding{padding:8px 10px;border-bottom:1px solid var(--row)}
.finding .tx{font:500 11px/1.45 var(--sans);color:var(--tx)}
.finding .meta{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap;align-items:center}
.pill{font:700 9px var(--sans);padding:2px 6px;border-radius:2px;border:1px solid var(--line)}
.pill.low{color:var(--amber)}.pill.mid{color:var(--cyan)}.pill.high{color:var(--green)}.pill.val{background:var(--okbg);color:var(--green);border-color:var(--okbd)}
.btn{padding:4px 8px;border:1px solid var(--line);background:#0d1219;border-radius:2px;font:700 9px var(--sans);color:var(--cyan)}
.btn:hover{border-color:var(--cyan)}

/* calendar journal */
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:8px}
.calgrid .hd{font:700 9px var(--sans);color:var(--dim);text-align:center}
.calday{min-height:48px;background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:4px;cursor:pointer}
.calday:hover{border-color:var(--cyan)}
.calday.on{border-color:var(--cyan);background:#132530}
.calday .d{font:700 10px var(--mono);color:var(--mu)}
.calday .v{font:700 10px var(--mono);margin-top:4px}
.calday.pos{background:rgba(62,207,142,.1)}
.calday.neg{background:rgba(239,107,107,.1)}
.calday.empty{opacity:.35;cursor:default}
.day-trades{display:flex;flex-direction:column;overflow:auto}
.dtr{display:grid;grid-template-columns:64px 48px 70px 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid var(--row);align-items:start}
.dtr .tags{display:flex;flex-wrap:wrap;gap:4px}
.tagx{font:700 8px var(--sans);padding:2px 5px;border-radius:2px;background:var(--panel);border:1px solid var(--line);color:var(--mu)}
.tagx.hot{border-color:#6b2a2a;color:var(--red)}
.tagx.lv{border-color:#2a5a70;color:var(--cyan)}
.mini{height:140px;border-top:1px solid var(--line);position:relative}
.mini .host{position:absolute;inset:0}
.note{width:100%;min-height:48px;background:#0d1219;border:1px solid var(--line);border-radius:2px;padding:6px;font:11px var(--sans);resize:vertical}

/* Agent Ops */
.pipe{background:var(--hdr);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;align-items:center;gap:0;overflow:auto}
.node{width:150px;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:10px;flex-shrink:0}
.node.hot{border-color:#2a5a70}
.node .nm{font:800 11px var(--sans);display:flex;align-items:center;gap:6px}
.node .nm i{width:7px;height:7px;border-radius:50%;background:var(--green)}
.node .role{font:600 9px var(--sans);color:var(--dim);margin-top:2px;text-transform:uppercase}
.node .metrics{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.node .m{background:#0a0e14;border:1px solid var(--line);border-radius:2px;padding:4px;text-align:center}
.node .m .n{font:700 12px var(--mono);color:var(--cyan)}.node .m .l{font:600 8px var(--sans);color:var(--dim)}
.arrow{width:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--cyan);font:700 14px var(--sans)}
.ops-body{display:grid;grid-template-columns:1fr 1fr 340px;gap:1px;background:var(--line);min-height:0}
.setup{padding:12px;display:flex;flex-direction:column;gap:10px;overflow:auto}
.why{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:3px;padding:10px 12px}
.why .t{font:700 10px var(--sans);color:var(--cyan);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.fac{display:grid;grid-template-columns:90px 1fr 32px;gap:6px;align-items:center}
.bar{height:6px;background:#0a0e14;border:1px solid var(--line);border-radius:2px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#1a7a9c,#3db9e8)}
.qitem{padding:10px 12px;border-bottom:1px solid var(--row)}
.qitem .title{font:700 12px var(--sans)}
.qitem .sub{font:500 10px var(--sans);color:var(--mu);margin-top:2px}
.actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.actions button{padding:9px;border-radius:3px;font:700 11px var(--sans);border:1px solid var(--line);background:#0d1219;color:var(--mu)}
.actions .approve{background:#1a6b4a;border-color:#2a8f64;color:#d8ffe9}
.hrow{display:grid;grid-template-columns:150px 1fr 36px;gap:8px;align-items:center;padding:4px 12px}
.hrow .b{height:14px;background:#0a0e14;border:1px solid var(--line);border-radius:2px;overflow:hidden}
.hrow .b i{display:block;height:100%;background:rgba(239,107,107,.55)}

/* MTF */
.bias{display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);overflow:auto}
.bias .lbl{font:700 9px var(--sans);color:var(--dim);letter-spacing:.08em;text-transform:uppercase}
.pill.long{background:var(--okbg);border-color:var(--okbd);color:var(--green)}
.pill.short{background:var(--badbg);border-color:var(--badbd);color:var(--red)}
.pill.kz{background:var(--cybg);border-color:var(--cybd);color:var(--cyan)}
.mtf-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background:var(--line);min-height:0}
.chart{background:var(--bg);display:flex;flex-direction:column;min-height:0}
.ch-h{height:24px;padding:0 8px;display:flex;align-items:center;gap:8px;background:var(--hdr);border-bottom:1px solid var(--line)}
.ch-h .tf{font:800 11px var(--sans);color:var(--cyan)}
.ch-b{flex:1;min-height:0;position:relative}
.ch-b .host{position:absolute;inset:0}
.foot{display:grid;grid-template-columns:1fr 380px;gap:1px;background:var(--line);min-height:0}
.checks{padding:8px 12px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:4px 12px;align-content:center;flex:1}
.chk{display:flex;align-items:center;gap:6px;font:600 11px var(--sans)}
.chk i{width:12px;height:12px;border-radius:2px;background:#1a6b4a;border:1px solid #2a8f64;display:grid;place-items:center;font:800 8px var(--sans);color:#d8ffe9;font-style:normal}
.chk.off{color:var(--dim)}.chk.off i{background:#0d1219;border-color:var(--line);color:transparent}

/* modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:50}
.modal.on{display:flex}
.modal .box{width:min(480px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:16px}
.modal h3{font:700 14px var(--sans);margin-bottom:8px}
.modal p{color:var(--mu);margin-bottom:8px}
.modal label{display:block;font:600 10px var(--sans);color:var(--dim);text-transform:uppercase;margin:8px 0 4px}
.stub{opacity:.7}

/* mobile */
.mobile-tabs{display:none;background:var(--hdr);border-top:1px solid var(--line)}
.mobile-tabs button{flex:1;padding:10px 4px 12px;background:transparent;border:0;color:var(--mu);font:700 10px var(--sans);letter-spacing:.04em}
.mobile-tabs button.on{color:var(--cyan)}
.mobile-only{display:none}

@media (max-width: 980px){
  :root{--footer-h:0px;--mobile-h:56px}
  .app{grid-template-rows:var(--header-h) 1fr var(--mobile-h)}
  header{gap:6px}
  .brand small,.modes,.chip.desk{display:none}
  .tabs{display:none}
  footer{display:none}
  .mobile-tabs{display:flex}
  .mobile-only{display:block}
  #view-cc,#view-lab,#view-ops,#view-mtf{display:none;overflow:auto}
  #view-cc.on,#view-lab.on,#view-ops.on,#view-mtf.on{display:flex;flex-direction:column}
  #view-cc .left-col{max-height:230px;flex:0 0 auto}
  #view-cc .left-col .ph:not(:first-child),
  #view-cc .agents-mini{display:none !important}
  #view-cc .center{flex:0 0 auto;height:300px;display:flex;flex-direction:column;grid-template-rows:none}
  #view-cc .center .bot-row{display:none}
  #view-cc .chart-box{flex:1;min-height:0}
  #view-cc .right{display:flex;flex-direction:column;height:auto;grid-template-rows:none;flex:0 0 auto}
  #view-lab .lab-left,#view-lab .lab-right{flex:0 0 auto;max-height:none}
  #view-lab .lab-center{display:flex;flex-direction:column;height:auto;grid-template-rows:none}
  #view-lab .lab-center .panel{min-height:180px}
  .ops-body{display:flex;flex-direction:column}
  .mtf-grid{display:flex;flex-direction:column}
  .mtf-grid .chart{min-height:180px}
  .foot{grid-template-columns:1fr}
  .checks{grid-template-columns:1fr 1fr}
  .pipe{padding:10px;flex-wrap:wrap}
}
