:root{
  --bg:#000;--panel:#050505;--bar:#1b1b1b;--line:#2b2b2b;
  --amber:#ff9f1a;--amber-dim:#a86400;--txt:#cfcfcf;--mute:#6d6d6d;
  --up:#2ecc71;--dn:#ff4d4d;--blue:#3aa0ff;
}
*{box-sizing:border-box;margin:0}
html,body{height:100%}
body{background:var(--bg);color:var(--txt);font:12px/1.35 "SF Mono",Menlo,Consolas,monospace;display:flex;flex-direction:column;overflow:hidden}
button{font:inherit;cursor:pointer}

/* ticker tape */
#tape{height:22px;background:#0a0a0a;border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;flex:none}
#tape-track{display:inline-block;padding-left:100%;animation:tape 60s linear infinite}
#tape span{margin-right:28px;color:var(--amber)}
#tape i{font-style:normal;color:var(--mute);margin-left:6px}
@keyframes tape{to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){#tape-track{animation:none;padding-left:8px}}

/* function keys */
#fkeys{display:flex;gap:2px;background:var(--bar);padding:3px 4px;flex:none;overflow:hidden}
#fkeys button{flex:1;min-width:0;background:#2a2a2a;border:0;color:#111;background:var(--amber);padding:3px 6px;font-weight:700;font-size:11px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#fkeys button.alt{background:#3a3a3a;color:var(--amber)}
#fkeys button:hover{filter:brightness(1.15)}

/* command bar */
#cmdbar{display:flex;align-items:center;gap:8px;padding:5px 8px;background:#0e0e0e;border-bottom:1px solid var(--line);flex:none}
.mkt-tag{background:var(--amber);color:#000;font-weight:700;padding:2px 6px}
#cmdwrap{flex:1;position:relative;display:flex;min-width:0}
#cmd{flex:1;min-width:0;background:#000;border:1px solid var(--amber-dim);color:var(--amber);padding:5px 8px;font:inherit;font-size:13px;text-transform:uppercase;outline:none}
#cmd:focus{border-color:var(--amber)}
#cmd::placeholder{color:#5a4320;text-transform:none}
#go{background:#1f7a3a;color:#fff;border:0;padding:5px 14px;font-weight:700}
#clock{color:var(--mute);min-width:70px;text-align:right}

/* page tabs */
#tabs{display:flex;background:var(--bar);flex:none;overflow-x:auto}
#tabs button{flex:none;white-space:nowrap;background:transparent;border:0;border-right:1px solid #000;color:var(--mute);padding:4px 14px}
#tabs button.on{background:#000;color:var(--amber);border-top:2px solid var(--amber)}

/* grid of panels */
#grid{flex:1;min-height:0;display:grid;gap:2px;background:var(--line);padding:2px;
  grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr))}
.panel{background:var(--panel);display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.ph{display:flex;align-items:center;gap:8px;background:var(--bar);padding:2px 6px;flex:none;border-bottom:1px solid #000}
.ph b{background:var(--amber);color:#000;padding:0 5px;font-size:11px}
.ph h2{font-size:11px;font-weight:700;color:var(--amber);letter-spacing:.5px;flex:1}
.ph span{color:var(--mute);font-size:10px}
.pb{flex:1;min-height:0;overflow:auto}

/* tables */
table{width:100%;border-collapse:collapse}
th{position:sticky;top:0;background:#101010;color:var(--mute);font-weight:400;text-align:right;padding:2px 6px;border-bottom:1px solid var(--line)}
th:first-child,td:first-child{text-align:left}
td{padding:2px 6px;text-align:right;border-bottom:1px solid #101010;color:#444}
td:first-child{color:var(--blue)}
tr:hover td{background:#0f0f0f}

/* placeholders */
.chart-area{position:relative;height:100%;background:
  linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 25%,
  linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/10% 100%;opacity:.55}
.chart-wrap{position:relative;height:100%}
.chart-wrap .empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--mute);letter-spacing:2px}
.news-line{display:flex;gap:8px;padding:3px 6px;border-bottom:1px solid #101010;color:#444}
.news-line i{font-style:normal;color:var(--amber-dim);flex:none}
.news-line b{font-weight:normal;color:var(--amber);flex:none}
.news-line a{color:var(--txt);text-decoration:none}
.news-line a:hover{text-decoration:underline}
.skel{height:8px;background:#161616;flex:1;align-self:center}

#statusbar{display:flex;gap:18px;padding:2px 8px;background:var(--bar);color:var(--mute);font-size:11px;flex:none}
#statusbar span:first-child{color:var(--amber);font-weight:700}
#statusbar #sbclock{margin-left:auto}

@media(max-width:1000px){#grid{display:block;overflow:auto}.panel{height:300px;margin-bottom:2px}
  #fkeys{overflow-x:auto}#fkeys button{flex:none}}
@media(max-width:600px){#clock{display:none}}

td.up,#tape i.up{color:var(--up)}td.dn,#tape i.dn,#sbdata.dn{color:var(--dn)}td.px{color:var(--txt)}
td{white-space:nowrap}

/* fundamentals (FA / DES) */
table.fa td{color:var(--txt)}
table.fa td:first-child{color:var(--blue)}
table.fa td.fa-txt{text-align:left}
table.fa tr.fa-sec td{color:var(--amber);font-weight:700;letter-spacing:.5px;border-bottom:1px solid var(--line);padding-top:6px}
table.fa td.fa-neg{color:var(--dn)}
table.fa a{color:var(--blue)}
.fa-src{color:var(--mute);font-size:10px;padding:4px 6px}

/* command autocomplete */
#ac{position:absolute;top:100%;left:0;right:0;z-index:40;background:#0a0a0a;border:1px solid var(--amber-dim);max-height:260px;overflow:auto}
.ac-i{display:flex;gap:12px;padding:3px 8px;cursor:pointer}
.ac-i b{color:var(--amber);min-width:90px;flex:none}
.ac-i span{color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-i.on,.ac-i:hover{background:#1b1b1b}

/* slim dark scrollbars */
*{scrollbar-width:thin;scrollbar-color:#3a3a3a #050505}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:#050505}
::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--amber-dim)}
::-webkit-scrollbar-corner{background:#050505}
