:root{
  --bg:#0a0e13; --bg2:#0f141b; --card:#131a23; --card2:#18212c; --line:#223040; --line2:#2c3d51;
  --ink:#e8eef5; --ink2:#a9b6c6; --mute:#6f8196; --accent:#1fb6e0; --accent2:#0e8fb3;
  --up:#1fc37e; --up-bg:rgba(31,195,126,.12); --dn:#f0506e; --dn-bg:rgba(240,80,110,.12);
  --warn:#f5b041; --warn-bg:rgba(245,176,65,.12);
  --indigo:#818cf8; --emerald:#34d399; --rose:#fb7185; --amber:#fbbf24;
  --r:12px; --r-sm:8px;
  --gap:clamp(10px,1.6vw,18px); --gap-sm:clamp(6px,1vw,10px);
  --pad-page:clamp(12px,2.4vw,28px); --card-pad:clamp(12px,1.8vw,20px);
  --lift:0 10px 28px rgba(0,0,0,.45); --t:.18s ease;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--sans);-webkit-text-size-adjust:100%}
a{color:var(--accent);text-decoration:none}
button,input,select{font:inherit;color:inherit}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--up)} .dn{color:var(--dn)} .mute{color:var(--mute)} .ink2{color:var(--ink2)} .warn{color:var(--warn)}
.alt{display:block;font-size:.78em;color:var(--mute);font-weight:400}
/* hidden scrollbars on every scroller */
.scroll,.table-wrap,.chips,main{scrollbar-width:none}
.scroll::-webkit-scrollbar,.table-wrap::-webkit-scrollbar,.chips::-webkit-scrollbar,main::-webkit-scrollbar{display:none}

/* ---------- shell */
.shell{display:grid;grid-template-columns:1fr;min-height:100dvh}
.side{display:none}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--gap-sm);flex-wrap:wrap;
  padding:10px var(--pad-page);background:rgba(10,14,19,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.2px;margin-right:auto}
.brand img{width:26px;height:26px}
.brand small{font-weight:500;color:var(--mute)}
.status{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;order:3;width:100%;overflow-x:auto;scrollbar-width:none}
.status::-webkit-scrollbar{display:none}
#ccy{order:2}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;font-size:12px;
  background:var(--card2);border:1px solid var(--line);color:var(--ink2);white-space:nowrap}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--mute);flex-shrink:0}
.pill.ok i{background:var(--up)} .pill.bad i{background:var(--dn)} .pill.warn i{background:var(--warn)}
.pill.armed{background:var(--dn-bg);border-color:var(--dn);color:#ffd0da;font-weight:600}
main{padding:var(--pad-page);padding-bottom:calc(84px + env(safe-area-inset-bottom));min-width:0}
.bottom{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(6,1fr);
  background:rgba(15,20,27,.97);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.bottom a,.side a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;color:var(--mute);font-size:11px}
.bottom a svg,.side a svg{width:21px;height:21px}
.bottom a.on,.side a.on{color:var(--accent)}
@media (min-width:980px){
  .shell{grid-template-columns:218px 1fr}
  .side{display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100dvh;padding:18px 12px;
    background:var(--bg2);border-right:1px solid var(--line)}
  .side .brand{margin:0 6px 18px}
  .side a{flex-direction:row;gap:12px;padding:10px 12px;border-radius:var(--r-sm);font-size:14px;color:var(--ink2)}
  .side a.on{background:var(--card2);color:var(--ink)}
  .side .foot{margin-top:auto;font-size:12px;color:var(--mute);padding:0 8px}
  .bottom,.top .brand{display:none}
  .top .status{margin-left:auto;order:1;width:auto}
  main{padding-bottom:var(--pad-page)}
}

/* ---------- layout primitives */
h1{font-size:clamp(18px,2.2vw,22px);margin:0 0 var(--gap)}
h2{font-size:15px;margin:0 0 10px;font-weight:650}
h3{font-size:13px;margin:0 0 8px;color:var(--ink2);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.kpis{display:grid;gap:var(--gap-sm);grid-template-columns:repeat(auto-fit,minmax(min(150px,46%),1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--card-pad);min-width:0}
.card.tight{padding:12px}
.row{display:flex;gap:var(--gap-sm);align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:var(--gap-sm)}
.spacer{flex:1}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}
.kpi .l{font-size:12px;color:var(--mute)}
.kpi .v{font:600 clamp(16px,2vw,20px)/1.25 var(--mono);margin-top:4px;overflow-wrap:anywhere}
.section{margin-top:var(--gap)}
.muted-box{background:var(--bg2);border:1px dashed var(--line2);border-radius:var(--r-sm);padding:12px;color:var(--ink2)}
.note{font-size:12px;color:var(--mute)}
.banner{border-radius:var(--r-sm);padding:10px 12px;margin-bottom:var(--gap);border:1px solid}
.banner.warn{background:var(--warn-bg);border-color:rgba(245,176,65,.4);color:#ffe3b0}
.banner.bad{background:var(--dn-bg);border-color:rgba(240,80,110,.45);color:#ffd0da}
.banner.ok{background:var(--up-bg);border-color:rgba(31,195,126,.4);color:#c8f7e1}

/* ---------- controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 14px;
  border-radius:var(--r-sm);border:1px solid var(--line2);background:var(--card2);cursor:pointer;
  font-weight:600;white-space:nowrap;transition:transform var(--t),box-shadow var(--t),background var(--t)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.primary{background:var(--accent2);border-color:var(--accent);color:#fff}
.btn.buy{background:var(--up);border-color:var(--up);color:#032516}
.btn.sell{background:var(--dn);border-color:var(--dn);color:#2b0610}
.btn.danger{background:transparent;border-color:var(--dn);color:var(--dn)}
.btn.ghost{background:transparent}
.btn.sm{min-height:30px;padding:4px 10px;font-size:12.5px}
.btn.big{min-height:50px;font-size:16px;flex:1}
input.in,select.in{width:100%;min-height:38px;padding:7px 10px;border-radius:var(--r-sm);border:1px solid var(--line2);
  background:var(--bg2);outline:none}
input.in:focus,select.in:focus{border-color:var(--accent)}
label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--ink2);min-width:0}
.fields{display:grid;gap:var(--gap-sm);grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))}
.seg{display:inline-flex;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);padding:3px;gap:3px}
.seg button{border:0;background:transparent;padding:6px 12px;border-radius:6px;cursor:pointer;color:var(--ink2);font-weight:600}
.seg button.on{background:var(--card2);color:var(--ink);box-shadow:0 1px 0 var(--line2)}
.seg.side2{display:grid;grid-template-columns:1fr 1fr;width:100%}
.seg.side2 button{padding:10px}
.seg.side2 button.on.b{background:var(--up);color:#032516}
.seg.side2 button.on.s{background:var(--dn);color:#2b0610}
.stepper{display:grid;grid-template-columns:44px 1fr 44px;border:1px solid var(--line2);border-radius:var(--r-sm);overflow:hidden}
.stepper button{background:var(--card2);border:0;font-size:20px;cursor:pointer}
.stepper input{border:0;background:var(--bg2);text-align:center;font:600 18px var(--mono);min-width:0;outline:none}
.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.chips>*{flex-shrink:0}
.chips.wrap{flex-wrap:wrap;overflow:visible}
.chip{padding:6px 12px;border-radius:99px;border:1px solid var(--line2);background:var(--card2);cursor:pointer;font-weight:600;font-size:13px}
.chip.on{border-color:var(--accent);color:var(--accent);background:rgba(31,182,224,.1)}
.toggle{position:relative;width:42px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.toggle span{position:absolute;inset:0;border-radius:99px;background:var(--line2);transition:var(--t);cursor:pointer}
.toggle span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:var(--t)}
.toggle input:checked+span{background:var(--up)}
.toggle input:checked+span:before{transform:translateX(18px)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:var(--gap);overflow-x:auto;scrollbar-width:none}
.tabs button{background:none;border:0;padding:10px 14px;color:var(--mute);cursor:pointer;font-weight:600;border-bottom:2px solid transparent;flex-shrink:0}
.tabs button.on{color:var(--ink);border-color:var(--accent)}
.badge{display:inline-block;padding:1px 7px;border-radius:5px;font-size:11px;font-weight:700;letter-spacing:.3px}
.badge.long{background:var(--up-bg);color:var(--up)} .badge.short{background:var(--dn-bg);color:var(--dn)}
.badge.gray{background:var(--card2);color:var(--ink2)}

/* ---------- tables */
.table-wrap{overflow-x:auto;margin:0 calc(var(--card-pad)*-1);padding:0 var(--card-pad);
  -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent)}
@media (min-width:980px){.table-wrap{-webkit-mask-image:none}}
table{width:100%;border-collapse:collapse;font-size:13px}
th{font-weight:600;color:var(--mute);text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
td.r,th.r{text-align:right}
tbody tr{transition:box-shadow var(--t)}
tbody tr:last-child td{border-bottom:0}
.empty{padding:22px;text-align:center;color:var(--mute)}

/* ---------- instrument cards */
.inst{cursor:pointer;display:flex;flex-direction:column;gap:6px}
.inst .px{font:600 clamp(20px,2.6vw,26px)/1.1 var(--mono)}
.inst .meta{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;font-size:12px;color:var(--ink2)}
.inst .meta b{font-family:var(--mono);font-weight:500;color:var(--ink)}
.flash-up{animation:fu .5s} .flash-dn{animation:fd .5s}
@keyframes fu{from{color:var(--up)}} @keyframes fd{from{color:var(--dn)}}

/* ---------- ticket */
.ticket{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr);grid-template-areas:"q" "t" "s";align-items:start}
.ticket .a-q{grid-area:q} .ticket .a-t{grid-area:t} .ticket .a-s{grid-area:s}
@media (min-width:1100px){.ticket{grid-template-columns:minmax(0,1fr) 400px;grid-template-areas:"q t" "s t"}}
.sum{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:13px}
.sum .v{text-align:right;font-family:var(--mono);min-width:0;overflow-wrap:anywhere}
.sum .k{color:var(--ink2);min-width:0}
.sum .sep{grid-column:1/-1;border-top:1px solid var(--line);margin:4px 0}
.probs{margin:0;padding-left:18px;color:var(--warn);font-size:13px}
.lvl{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}
.lvl .tag{font-weight:700;font-size:12px;width:28px}

/* ---------- position cards (phone) */
.pos{display:flex;flex-direction:column;gap:8px}
.pos .l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pos .kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;font-size:12px}
.pos .kv div span{display:block;color:var(--mute);font-size:11px}
.pos .kv div b{font:500 13px var(--mono)}
.pos .pnl{margin-left:auto;text-align:right;font:600 16px var(--mono)}

/* ---------- modal & toast */
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center}
@media (min-width:640px){.modal{align-items:center}}
.modal .box{background:var(--card);border:1px solid var(--line2);border-radius:16px 16px 0 0;width:100%;max-width:520px;
  max-height:92dvh;overflow:auto;padding:var(--card-pad);scrollbar-width:none}
@media (min-width:640px){.modal .box{border-radius:16px}}
.toasts{position:fixed;z-index:60;left:50%;transform:translateX(-50%);bottom:calc(90px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;width:min(92vw,440px)}
@media (min-width:980px){.toasts{bottom:24px}}
.toast{padding:10px 14px;border-radius:10px;background:var(--card2);border:1px solid var(--line2);box-shadow:var(--lift);font-size:13.5px}
.toast.ok{border-color:var(--up)} .toast.bad{border-color:var(--dn)}

/* ---------- charts */
.chart{position:relative;width:100%}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart .tip{position:absolute;pointer-events:none;background:var(--card2);border:1px solid var(--line2);border-radius:8px;
  padding:6px 9px;font-size:12px;white-space:nowrap;box-shadow:var(--lift);display:none;z-index:2}
.axis{fill:var(--mute);font-size:10.5px;font-family:var(--mono)}

/* hover lift only where hover is real */
@media (hover:hover) and (pointer:fine){
  .card.lift:hover,.kpi:hover{transform:translateY(-2px);box-shadow:var(--lift);border-color:var(--line2)}
  .card.lift,.kpi{transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
  .btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.35)}
  tbody tr:hover{box-shadow:inset 3px 0 0 var(--accent)}
  .chip:hover{border-color:var(--accent)}
}
.only-wide{display:none} @media (min-width:900px){.only-wide{display:block}.only-narrow{display:none}}

/* ---------- performance hub */
.hub-kpis{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))}
.hub-k .v{font-size:clamp(18px,2.4vw,24px)}
.hub-k .alt{margin-top:4px;line-height:1.5}
.hub-rose{color:var(--rose)} .hub-amber{color:var(--amber)} .hub-em{color:var(--emerald)}
input.in.hub-date{display:inline-block;width:auto;min-height:28px;padding:2px 6px}
.linkbtn{background:none;border:0;color:var(--indigo);cursor:pointer;font-size:12px;padding:0 0 0 4px;text-decoration:underline}
.hub-badge{display:inline-block;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:700;margin-left:4px}
.hub-badge.ok{background:rgba(52,211,153,.15);color:var(--emerald)} .hub-badge.warn{background:rgba(251,191,36,.15);color:var(--amber)}
.hub-audit{border:1px solid var(--line);border-left:4px solid var(--mute);border-radius:var(--r);padding:12px 14px;background:var(--bg2);min-width:0}
.hub-audit .l{font-size:12px;color:var(--mute)} .hub-audit .v{font:600 20px/1.3 var(--mono);margin:4px 0}
.hub-audit.big .v{font-size:clamp(20px,2.6vw,28px)}
.hub-audit.rose{border-left-color:var(--rose)} .hub-audit.rose .v{color:var(--rose)}
.hub-audit.indigo{border-left-color:var(--indigo)}
.hub-audit.amber{border-left-color:var(--amber)} .hub-audit.amber .v{color:var(--amber)}
.hub-audit.emerald{border-left-color:var(--emerald)} .hub-audit.emerald .v{color:var(--emerald)}
.hub-bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin:6px 0}
.hub-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--amber),var(--emerald));border-radius:99px}
.hub-chart{margin-top:10px}
.hub-grid{stroke:var(--line);stroke-width:1}
.hub-badge-t{font:600 11px var(--mono)}
.hub-hud{line-height:1.55}
.hub-legend{gap:14px;margin-top:6px}
.hub-legend span{display:inline-flex;align-items:center;gap:6px}
.hub-legend i{display:inline-block;width:18px;height:3px;border-radius:2px}
.hub-legend i.dash{height:0;border-top:2px dashed}
.hub-story{line-height:1.65;color:var(--ink2);margin:0}
.seg.sm button{padding:4px 9px;font-size:12px}
.badge.amber{background:rgba(251,191,36,.14);color:var(--amber)}
