/* ═══ MINTY AI TERMINAL — display layer ═══════════════════════════════ */
:root{
  --bg:#000000;
  --panel:#080a0b;
  --panel-2:#0c1012;
  --line:#1b2529;
  --line-hi:#2c3b41;
  --txt:#c8d2d6;
  --dim:#6d8189;
  --dimmer:#42545b;
  --amber:#ffa300;
  --amber-d:#8a5c05;
  --up:#26d97f;
  --dn:#ff4d4d;
  --cyan:#3ad9ff;
  --violet:#b18cff;
  --white:#f2f7f8;
  --row:18px;
  --f:11px;
  --mono:ui-monospace,"SF Mono","Menlo","DejaVu Sans Mono","Consolas",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg);color:var(--txt);
  font:var(--f)/1.45 var(--mono);
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
  text-transform:uppercase;
  font-variant-numeric:tabular-nums;
}
::selection{background:var(--amber);color:#000}
.r{text-align:right}
.up{color:var(--up)}
.dn{color:var(--dn)}
.flat{color:var(--dim)}

/* ─ scrollbars ─ */
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:#000}
::-webkit-scrollbar-thumb{background:#233036;border:1px solid #000}
::-webkit-scrollbar-thumb:hover{background:#3a5058}

/* ─ boot ─ */
#boot{position:fixed;inset:0;background:#000;z-index:99;padding:24px 26px;overflow:hidden}
#bootlog{font:12px/1.7 var(--mono);color:var(--amber);white-space:pre-wrap;text-shadow:0 0 8px rgba(255,163,0,.35)}

/* ═══ SHELL ═══ */
.app{
  display:grid;
  grid-template-rows:32px 22px minmax(0,1fr) 168px 20px;
  height:100vh;gap:1px;background:var(--line);
}
.app[hidden]{display:none}

/* ═══ HEADER ═══ */
.hdr{
  background:linear-gradient(180deg,#12181b,#070a0b);
  display:flex;align-items:center;gap:14px;padding:0 10px;
  border-bottom:1px solid var(--line-hi);
}
.hdr-brand{display:flex;align-items:baseline;gap:6px;flex:0 0 auto}
.logo{color:#000;background:var(--amber);padding:1px 6px;font-weight:700;letter-spacing:.16em;font-size:12px}
.logo-sub{color:var(--amber);letter-spacing:.22em;font-size:11px}
.build{color:var(--dimmer);font-size:9.5px;letter-spacing:.1em}
.cmdwrap{
  flex:1;display:flex;align-items:center;gap:7px;
  background:#000;border:1px solid var(--amber-d);height:22px;padding:0 8px;
  max-width:640px;
}
.cmdwrap:focus-within{border-color:var(--amber);box-shadow:0 0 0 1px rgba(255,163,0,.28),0 0 14px rgba(255,163,0,.14) inset}
.cmd-caret{color:var(--amber);font-weight:700}
#cmd{
  flex:1;background:transparent;border:0;outline:0;color:var(--amber);
  font:12px var(--mono);letter-spacing:.13em;text-transform:uppercase;
}
#cmd::placeholder{color:#5b4711;letter-spacing:.1em}
.cmd-go{color:var(--amber-d);font-size:10px;letter-spacing:.1em}
.hdr-right{display:flex;align-items:center;gap:12px;flex:0 0 auto;font-size:10.5px;letter-spacing:.09em}
.sess{color:var(--up)}
.sess.closed{color:var(--dn)}
.clock{color:var(--white);font-size:12px;letter-spacing:.06em}
.speed,.pause{color:var(--dim);cursor:pointer;border:1px solid var(--line-hi);padding:1px 6px}
.speed:hover,.pause:hover{color:var(--amber);border-color:var(--amber-d)}
.pause.paused{color:#000;background:var(--dn);border-color:var(--dn)}

/* ═══ TAPE ═══ */
.tape{display:flex;align-items:center;background:#05070a;overflow:hidden;position:relative}
.tape-label{
  flex:0 0 auto;background:var(--amber);color:#000;font-weight:700;
  padding:0 8px;height:100%;display:flex;align-items:center;letter-spacing:.14em;font-size:10px;z-index:2
}
.tape-track{white-space:nowrap;will-change:transform;display:flex;animation:tapeRoll 70s linear infinite}
.tape-half{display:flex;flex:0 0 auto}
.tape:hover .tape-track{animation-play-state:paused}
@keyframes tapeRoll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tp{display:inline-block;padding:0 13px;font-size:10.5px;letter-spacing:.06em;cursor:pointer}
.tp b{color:var(--white);font-weight:400}
.tp:hover b{color:var(--amber)}

/* ═══ LAYOUT ═══ */
.main{display:grid;grid-template-columns:322px minmax(0,1fr) 300px;gap:1px;min-height:0}
.col{display:grid;gap:1px;min-height:0;min-width:0}
.col-left{grid-template-rows:minmax(0,1fr) 222px}
.col-mid{grid-template-rows:56px minmax(0,1fr) 132px}
.col-right{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
.bottom{display:grid;grid-template-columns:minmax(0,1fr) 372px 234px;gap:1px;min-height:0}

.panel{background:var(--panel);display:flex;flex-direction:column;min-height:0;min-width:0;position:relative}
.ph{
  flex:0 0 auto;height:19px;display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(180deg,#171d20,#0b0f11);border-bottom:1px solid var(--line);padding:0 7px;
}
.ph-t{color:var(--amber);font-size:10px;letter-spacing:.15em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ph-x{color:var(--dim);font-size:9.5px;letter-spacing:.08em;white-space:nowrap;padding-left:8px}
.ph-btns{display:flex;align-items:center;gap:3px}
.ph-div{width:1px;height:11px;background:var(--line-hi);margin:0 4px}
.tb{
  background:#0d1214;border:1px solid var(--line-hi);color:var(--dim);
  font:9.5px var(--mono);letter-spacing:.08em;padding:1px 6px;cursor:pointer;text-transform:uppercase
}
.tb:hover{color:var(--white);border-color:var(--dim)}
.tb.on{background:var(--amber);border-color:var(--amber);color:#000}

/* ═══ MONITOR GRID ═══ */
.grid-head,.book-head,.prints-head,.blot-head{
  display:grid;flex:0 0 auto;font-size:9.5px;color:var(--dimmer);letter-spacing:.1em;
  border-bottom:1px solid var(--line);padding:2px 7px;background:#060809;
}
.grid-head{grid-template-columns:66px 1fr 58px 54px 46px}
.grid-head span{cursor:pointer}
.grid-head span:hover{color:var(--amber)}
.grid-body{overflow-y:auto;overflow-x:hidden;flex:1}
.sec-hdr{
  display:flex;justify-content:space-between;padding:1px 7px;background:#0e1315;
  color:var(--cyan);font-size:9px;letter-spacing:.16em;border-top:1px solid var(--line);
  border-bottom:1px solid #0a0d0e;position:sticky;top:0;z-index:1;
}
.sec-hdr i{font-style:normal}
.row{
  transition:background .45s ease-out;
  display:grid;grid-template-columns:66px 1fr 58px 54px 46px;align-items:center;
  height:var(--row);padding:0 7px;cursor:pointer;border-bottom:1px solid #0b0e0f;font-size:11px;
}
.row:hover{background:#141b1e}
.row.sel{background:#20303a;box-shadow:inset 2px 0 0 var(--amber)}
.row .tk{color:var(--white);letter-spacing:.05em}
.row.sel .tk{color:var(--amber)}
.row .px{text-align:right;color:var(--txt);transition:background .5s ease-out;padding-right:2px}
.row .cg,.row .pc{text-align:right}
.row canvas{width:44px;height:13px;justify-self:end;display:block}
@keyframes flashUp{0%{background:rgba(38,217,127,.42)}100%{background:transparent}}
@keyframes flashDn{0%{background:rgba(255,77,77,.42)}100%{background:transparent}}
.fu{animation:flashUp .55s ease-out}
.fd{animation:flashDn .55s ease-out}

/* ═══ HEATMAP ═══ */
.panel-heat canvas{flex:1;width:100%;min-height:0;display:block;cursor:crosshair}

/* ═══ QUOTE ═══ */
.panel-quote{background:linear-gradient(180deg,#0d1215,#080a0b);justify-content:center;padding:0 10px}
.q-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.q-id{display:flex;align-items:baseline;gap:9px;min-width:0}
.q-tkr{color:var(--amber);font-size:19px;font-weight:700;letter-spacing:.09em}
.q-name{color:var(--white);font-size:11px;letter-spacing:.09em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-sec{color:#000;background:var(--dim);font-size:8.5px;padding:1px 5px;letter-spacing:.13em;flex:0 0 auto}
.q-px{display:flex;align-items:baseline;gap:11px;flex:0 0 auto}
.q-last{font-size:22px;font-weight:700;letter-spacing:.03em;color:var(--white)}
.q-chg{font-size:13px}
.q-pct{font-size:13px;padding:0 5px}
.q-pct.up{background:rgba(38,217,127,.16)}
.q-pct.dn{background:rgba(255,77,77,.16)}
.q-stats{display:flex;gap:15px;font-size:10px;color:var(--dim);letter-spacing:.05em;margin-top:3px;white-space:nowrap;overflow:hidden}
.q-stats b{color:var(--txt);font-weight:400}

/* ═══ CHART ═══ */
.panel-chart{overflow:hidden}
.panel-chart canvas{flex:1;width:100%;min-height:0;display:block;cursor:crosshair}
.xhair{
  position:absolute;pointer-events:none;background:#000;border:1px solid var(--line-hi);
  padding:3px 6px;font-size:9.5px;line-height:1.6;color:var(--txt);display:none;z-index:5;white-space:nowrap
}
.xhair span{color:var(--dim)}

/* ═══ ECON TILES ═══ */
.econ-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:1fr;gap:1px;background:var(--line);flex:1;overflow:hidden}
.et{background:#080b0c;padding:3px 7px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.et-l{color:var(--dim);font-size:8.5px;letter-spacing:.11em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.et-v{color:var(--white);font-size:14px;letter-spacing:.02em;line-height:1.25}
.et-v small{font-size:9px;color:var(--dim);letter-spacing:.05em}
.et-d{font-size:9.5px}
.et-bar{height:2px;background:#182124;margin-top:3px;position:relative;overflow:hidden}
.et-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--amber);transition:width .4s ease}

/* ═══ BOOK ═══ */
.book-head{grid-template-columns:1fr 1fr 1fr 1fr}
.book-body{flex:1;overflow:hidden;display:flex;flex-direction:column}
.bk{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;font-size:10.5px;height:15px;align-items:center;padding:0 7px;position:relative}
.bk span{position:relative;z-index:2}
.bk .bd{position:absolute;top:1px;bottom:1px;z-index:1}
.bk .bd-b{right:50%;background:rgba(38,217,127,.13)}
.bk .bd-a{left:50%;background:rgba(255,77,77,.13)}
.bk .bp{color:var(--up);text-align:right;padding-right:6px}
.bk .ap{color:var(--dn);text-align:right}
.bk .bs,.bk .as{color:var(--dim);text-align:right}
.bk.top .bp,.bk.top .ap{font-weight:700}
.book-imb{flex:0 0 auto;padding:3px 7px;border-top:1px solid var(--line);display:flex;align-items:center;gap:7px}
.imb-bar{flex:1;height:5px;display:flex;background:#12181a}
.imb-bar i{display:block;height:100%}
#imbBid{background:var(--up)}
#imbAsk{background:var(--dn)}
#imbTxt{font-size:9px;color:var(--dim);letter-spacing:.08em;flex:0 0 auto}

/* ═══ PRINTS ═══ */
.prints-head{grid-template-columns:64px 1fr 62px 42px}
.prints-body{flex:1;overflow:hidden}
.pr{display:grid;grid-template-columns:64px 1fr 62px 42px;font-size:10.5px;height:15px;align-items:center;padding:0 7px}
.pr .t{color:var(--dimmer)}
.pr .p{text-align:right}
.pr .s{text-align:right;color:var(--txt)}
.pr .m{text-align:right;color:var(--dimmer);font-size:9px}
.pr.big .s{color:var(--amber);font-weight:700}
.pr:nth-child(odd){background:#0a0d0e}

/* ═══ NEWS ═══ */
.news-body{flex:1;overflow-y:auto}
.nw{display:grid;grid-template-columns:60px 74px 1fr auto;gap:9px;align-items:baseline;padding:2px 8px;border-bottom:1px solid #0b0e0f;cursor:pointer}
.nw:hover{background:#141b1e}
.nw .nt{color:var(--dimmer);font-size:9.5px}
.nw .ntag{font-size:8.5px;letter-spacing:.1em;padding:0 4px;color:#000;background:var(--dim);text-align:center;white-space:nowrap;overflow:hidden}
.nw .nh{color:var(--txt);font-size:11px;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nw.hot .nh{color:var(--white)}
.nw .nx{font-size:9.5px;white-space:nowrap;letter-spacing:.05em}
.nw.fresh{animation:newsIn .8s ease-out}
@keyframes newsIn{0%{background:rgba(255,163,0,.28)}100%{background:transparent}}
.tag-BULL{background:var(--up)}
.tag-BEAR{background:var(--dn)}
.tag-REG{background:var(--violet)}
.tag-TECH{background:var(--cyan)}
.tag-MACRO{background:var(--amber)}
.tag-CORP{background:#8fa3ab}

/* ═══ BLOTTER ═══ */
.blot-head{grid-template-columns:62px 56px 62px 62px 1fr 56px}
.blot-body{flex:1;overflow-y:auto}
.bl{display:grid;grid-template-columns:62px 56px 62px 62px 1fr 56px;font-size:10.5px;height:16px;align-items:center;padding:0 7px;cursor:pointer}
.bl:hover{background:#141b1e}
.bl .k{color:var(--white)}
.bl span:not(.k){text-align:right}

/* ═══ INTERNALS ═══ */
.int-body{flex:1;overflow:hidden;padding:3px 7px;display:flex;flex-direction:column;gap:2px}
.ir{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.05em}
.ir span:first-child{color:var(--dim)}
.breadth{height:7px;display:flex;background:#12181a;margin-top:2px}
.breadth i{height:100%}
.breadth .b-u{background:var(--up)}
.breadth .b-f{background:#2a373c}
.breadth .b-d{background:var(--dn)}

/* ═══ STATUS ═══ */
.status{display:flex;align-items:center;gap:1px;background:var(--line);font-size:9.5px;letter-spacing:.08em}
.fk{background:#0d1214;color:var(--dim);padding:0 8px;height:100%;display:flex;align-items:center;cursor:pointer;white-space:nowrap}
.fk:hover{background:var(--amber);color:#000}
.st-msg{flex:1;background:#0d1214;color:var(--dimmer);padding:0 10px;height:100%;display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.st-msg.alert{color:#000;background:var(--amber);font-weight:700}
.st-lat{background:#0d1214;color:var(--dim);padding:0 8px;height:100%;display:flex;align-items:center}

/* ═══ MODAL ═══ */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;z-index:50}
.modal[hidden]{display:none}
.modal-box{width:min(760px,92vw);max-height:80vh;background:var(--panel);border:1px solid var(--amber-d);display:flex;flex-direction:column;box-shadow:0 0 44px rgba(0,0,0,.9)}
.mclose{cursor:pointer}
.mclose:hover{color:var(--amber)}
.modal-body{overflow-y:auto;padding:10px 13px;font-size:11px;line-height:1.75}
.modal-body h4{color:var(--amber);font-size:10.5px;letter-spacing:.14em;margin:11px 0 4px;font-weight:400}
.modal-body h4:first-child{margin-top:0}
.modal-body table{width:100%;border-collapse:collapse}
.modal-body td{padding:1px 8px 1px 0;vertical-align:top}
.modal-body td.k{color:var(--white);white-space:nowrap;width:1%}
.modal-body td.v{color:var(--dim)}
.modal-body p{color:var(--dim);text-transform:none;letter-spacing:.01em}
.modal-body .rk td{border-bottom:1px solid #0e1314}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1400px){
  .et-l{font-size:8px;letter-spacing:.05em}
  .et-v{font-size:13px}
}
@media(max-width:1240px){
  .econ-grid{grid-template-columns:repeat(4,1fr)}
  .col-mid{grid-template-rows:56px minmax(0,1fr) 176px}
  .main{grid-template-columns:270px minmax(0,1fr) 250px}
  .bottom{grid-template-columns:minmax(0,1fr) 300px 200px}
}
@media(max-width:980px){
  body{overflow-x:hidden;overflow-y:auto}
  .hdr{flex-wrap:wrap;gap:8px}
  .hdr-brand{order:1}
  .hdr-right{order:2;margin-left:auto}
  .cmdwrap{order:3;max-width:none;flex:1 0 100%;margin-bottom:5px}
  .main,.bottom,.col,.panel{min-width:0}
  .app{height:auto;grid-template-rows:none}
  .main,.bottom{grid-template-columns:1fr}
  .col{grid-template-rows:none}
  .panel-list{height:340px}.panel-heat{height:200px}.panel-chart{height:320px}
  .panel-book,.panel-prints,.panel-news{height:250px}.panel-blotter{height:200px}
  .panel-econ{height:auto}.econ-grid{overflow:visible;grid-template-columns:repeat(2,1fr)}.et{padding:5px 7px}
  .hdr{height:auto;padding:5px 8px}
  .status{position:sticky;bottom:0;overflow-x:auto}
}
