@font-face{font-family:"InterVariable";font-style:normal;font-weight:100 900;font-display:swap;src:url("InterVariable.woff2") format("woff2")}
:root{
  --bg:#080b10;--bg2:#0c1118;--panel:#0f151d;--panel2:#141b25;--panel3:#1a2230;--border:#1d2633;--border2:#273244;
  --text:#eef3f8;--muted:#a3afc0;--dim:#8b97aa;--accent:#22d3ee;--accent2:#6366f1;--green:#22c55e;--red:#f43f5e;--amber:#f5a524;
  --green-bg:rgba(34,197,94,.12);--red-bg:rgba(244,63,94,.12);--amber-bg:rgba(245,165,36,.12);
  --radius:12px;--radius-sm:8px;--shadow:0 10px 30px rgba(0,0,0,.35);
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:"InterVariable",Inter,system-ui,"Segoe UI Variable","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  --menu-h:44px;--status-h:26px;--side-w:212px;--pad:16px;--t:.22s cubic-bezier(.2,.7,.2,1);
}
[data-density="compact"]{--pad:11px}
[data-theme="graphite"]{--bg:#0d0d0f;--bg2:#121215;--panel:#16161a;--panel2:#1c1c21;--panel3:#24242a;--border:#26262d;--border2:#32323a}
[data-theme="ocean"]{--bg:#06101a;--bg2:#0a1622;--panel:#0d1b2a;--panel2:#11233a;--panel3:#162b45;--border:#173049;--border2:#1f3c5c}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font:14.5px/1.45 var(--sans);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;overflow:hidden}
a{color:var(--accent);text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#253042;border-radius:9px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}
.mono,.num{font-family:var(--sans);font-variant-numeric:tabular-nums;letter-spacing:0}
.tk{font-family:var(--sans);font-size:.92em;letter-spacing:-.01em}
.muted{color:var(--muted)}.dim{color:var(--dim)}.pos{color:var(--green)}.neg{color:var(--red)}.warn{color:var(--amber)}.acc{color:var(--accent)}
.hidden{display:none!important}

/* ---------- app shell ---------- */
#app{display:grid;grid-template-rows:var(--menu-h) 1fr var(--status-h);grid-template-columns:var(--side-w) 1fr;height:100vh;transition:grid-template-columns var(--t)}
#app.side-collapsed{grid-template-columns:62px 1fr}
.menubar{grid-column:1/3;display:flex;align-items:center;gap:6px;padding:0 12px;background:linear-gradient(180deg,#0d131b,#0a0f15);border-bottom:1px solid var(--border);position:relative;z-index:30;user-select:none}
.mob-break{display:none}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.2px;margin-right:12px;white-space:nowrap}
.brand img{width:22px;height:22px}.brand small{font-weight:500;color:var(--muted);font-size:12px;margin-left:2px}
.menu{position:relative}
.menu>button{background:none;border:0;padding:6px 10px;border-radius:7px;color:#c9d3e0;cursor:pointer;transition:background var(--t),color var(--t)}
.menu>button:hover,.menu.open>button{background:var(--panel3);color:#fff}
.dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:250px;background:rgba(17,23,32,.97);backdrop-filter:blur(14px);border:1px solid var(--border2);border-radius:10px;padding:6px;box-shadow:var(--shadow);opacity:0;transform:translateY(-4px) scale(.98);pointer-events:none;transition:opacity .16s,transform .16s}
.menu.open .dropdown{opacity:1;transform:none;pointer-events:auto}
.dropdown button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;padding:7px 10px;border-radius:7px;cursor:pointer;color:#d5dde8;text-align:left}
.dropdown button:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);color:#fff}
.dropdown kbd,.kbd{font:12px var(--sans);color:var(--muted);background:var(--panel3);border:1px solid var(--border2);border-bottom-width:2px;border-radius:5px;padding:1px 5px}
.dropdown hr{border:0;border-top:1px solid var(--border);margin:5px 4px}
.dropdown .sub{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);padding:6px 10px 3px}
.menubar .spacer{flex:1}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;padding:3px 9px;border-radius:99px;border:1px solid var(--border2);background:var(--panel2);white-space:nowrap}
.pill.paper{color:#a5b4fc;border-color:#3b3f7a;background:rgba(99,102,241,.12)}
.pill.live{color:#fff;border-color:var(--red);background:var(--red);box-shadow:0 0 14px rgba(244,63,94,.5)}
.pill.ok{color:var(--green);border-color:rgba(34,197,94,.35);background:var(--green-bg)}
.pill.bad{color:var(--red);border-color:rgba(244,63,94,.4);background:var(--red-bg)}
.pill.amber{color:var(--amber);border-color:rgba(245,165,36,.4);background:var(--amber-bg)}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.top-pnl{font:600 12.5px var(--sans);padding:0 8px}
.kill{display:flex;align-items:center;gap:8px;border:1px solid rgba(244,63,94,.55);background:linear-gradient(180deg,#3a0f1a,#260a12);color:#ffd5dc;font-weight:700;letter-spacing:.06em;padding:6px 14px;border-radius:9px;cursor:pointer;transition:all var(--t);font-size:12px}
.kill:hover{background:linear-gradient(180deg,#5a1424,#3a0e18);box-shadow:0 0 18px rgba(244,63,94,.45)}
.kill.on{background:var(--red);color:#fff;border-color:#ff8fa3;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(244,63,94,.6)}50%{box-shadow:0 0 0 7px rgba(244,63,94,0)}}
.iconbtn{background:none;border:1px solid transparent;border-radius:8px;padding:5px 7px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;transition:all var(--t)}
.iconbtn:hover{color:#fff;background:var(--panel3)}

/* ---------- sidebar ---------- */
.sidebar{background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px 10px;gap:2px;overflow:hidden}
.nav{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;color:#aab6c7;cursor:pointer;border:1px solid transparent;transition:all var(--t);white-space:nowrap;position:relative}
.nav svg{width:18px;height:18px;flex:none;opacity:.85}
.nav:hover{background:var(--panel2);color:#fff}
.nav.active{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent);color:#fff;border-color:color-mix(in srgb,var(--accent) 25%,transparent)}
.nav.active::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.nav .badge{margin-left:auto;font:600 12px var(--sans);background:var(--panel3);border-radius:99px;padding:1px 7px;color:var(--muted)}
.nav .badge.g{background:var(--green-bg);color:var(--green)}
.side-sec{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);padding:14px 11px 5px}
.side-collapsed .nav span,.side-collapsed .side-sec,.side-collapsed .nav .badge,.side-collapsed .side-foot{display:none}
.side-foot{margin-top:auto;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel);font-size:12px}
.side-foot .row{display:flex;justify-content:space-between;padding:2px 0}

/* ---------- main ---------- */
main{overflow:auto;padding:var(--pad);position:relative}
.view{display:none;animation:fade .28s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-h{display:flex;align-items:center;gap:12px;margin:2px 0 14px}
.page-h h1{font-size:19px;font-weight:650;margin:0;letter-spacing:-.01em}
.page-h .sub{color:var(--muted);font-size:12.5px}
.page-h .grow{flex:1}
.card{background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 80%,var(--bg)));border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 0 rgba(255,255,255,.02) inset;display:flex;flex-direction:column;min-width:0;transition:border-color .45s ease,box-shadow .45s ease}
.card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border)}
.card-h h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#b6c2d3;font-weight:650}
.card-h .grow{flex:1}
.card-b{padding:12px 14px;min-height:0}
.grid{display:grid;gap:var(--pad)}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--pad);margin-bottom:var(--pad)}
.kpi{padding:12px 14px}
.kpi .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}
.kpi .v{font:600 20px var(--sans);margin-top:3px;letter-spacing:-.02em}
.kpi .s{font-size:12px;color:var(--dim);margin-top:1px}
.dash3{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr);gap:var(--pad);height:calc(100vh - var(--menu-h) - var(--status-h) - var(--pad)*3 - 84px - var(--feed-h,30vh) - 10px);min-height:300px}
.dash3 .card-b{overflow:auto;flex:1}

/* Active panel glow */
.active-panel{transition:border-color .45s ease,box-shadow .45s ease}
.active-panel.armed{border-color:rgba(34,197,94,.75);box-shadow:0 0 0 1px rgba(34,197,94,.25),0 0 22px rgba(34,197,94,.22),inset 0 0 22px rgba(34,197,94,.05)}
.active-panel.disarmed{border-color:rgba(244,63,94,.7);box-shadow:0 0 0 1px rgba(244,63,94,.22),0 0 22px rgba(244,63,94,.2),inset 0 0 22px rgba(244,63,94,.05)}
.active-panel .card-h h3{transition:color .45s}
.active-panel.armed .card-h h3{color:#86efac}.active-panel.disarmed .card-h h3{color:#fda4af}
.arm-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);margin-bottom:8px;transition:border-color var(--t)}
.arm-item .nm{font-weight:600}.arm-item .meta{font-size:12px;color:var(--muted)}
.arm-item .st{margin-left:auto;text-align:right;font:12px var(--sans)}

/* market tiles */
.mkt-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.mtab{border:1px solid var(--border);background:var(--panel2);border-radius:9px;padding:6px 10px;cursor:pointer;min-width:92px;transition:all var(--t)}
.mtab:hover{border-color:var(--border2)}
.mtab.sel{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}
.mtab .a{font-weight:700;font-size:12px}.mtab .p{font:600 12px var(--sans)}
.mtab .cd{font:12px var(--sans);color:var(--muted)}
.chart-wrap{position:relative;height:calc(100% - 120px);min-height:170px}
.mkt-meta{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:8px}
.mm{background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:6px 9px}
.mm .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.mm .v{font:600 13px var(--sans)}
.countdown{font:700 22px var(--sans);letter-spacing:.02em}
.countdown.hot{color:var(--amber)}.countdown.crit{color:var(--red)}

/* tables */
table.t{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.t th{position:sticky;top:0;background:var(--panel2);color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.07em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);z-index:1;white-space:nowrap}
.t td{padding:8px 10px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);white-space:nowrap}
.t tr{transition:background .15s}.t tbody tr:hover{background:rgba(255,255,255,.025)}
.t td.r,.t th.r{text-align:right}
.t tr.sel td{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.tag{display:inline-block;font:600 12px var(--sans);letter-spacing:.06em;padding:2px 7px;border-radius:5px;text-transform:uppercase}
.tag.paper{background:rgba(99,102,241,.16);color:#a5b4fc}.tag.live{background:var(--red);color:#fff}
.tag.yes{background:var(--green-bg);color:var(--green)}.tag.no{background:var(--red-bg);color:var(--red)}
.tag.gray{background:var(--panel3);color:var(--muted)}.tag.amber{background:var(--amber-bg);color:var(--amber)}.tag.acc{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.empty{color:var(--dim);text-align:center;padding:26px 10px;font-size:12.5px}

/* buttons / forms */
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border2);background:var(--panel2);color:#dbe4ef;padding:7px 12px;border-radius:9px;cursor:pointer;font-weight:550;font-size:12.5px;transition:all var(--t);white-space:nowrap}
.btn:hover{background:var(--panel3);border-color:#34415a;color:#fff}
.btn.pri{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,#fff 8%),color-mix(in srgb,var(--accent) 80%,#000 20%));border-color:transparent;color:#041218}
.btn.pri:hover{filter:brightness(1.08);box-shadow:0 0 16px color-mix(in srgb,var(--accent) 45%,transparent)}
.btn.danger{border-color:rgba(244,63,94,.45);color:#fecdd3;background:rgba(244,63,94,.1)}.btn.danger:hover{background:rgba(244,63,94,.2)}
.btn.good{border-color:rgba(34,197,94,.45);color:#bbf7d0;background:rgba(34,197,94,.1)}
.btn.sm{padding:4px 9px;font-size:12px;border-radius:7px}
.btn.ghost{background:none;border-color:transparent;color:var(--muted)}.btn.ghost:hover{color:#fff;background:var(--panel3)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.in,select.in,textarea.in{background:var(--bg2);border:1px solid var(--border2);border-radius:8px;padding:7px 10px;outline:none;transition:border-color var(--t),box-shadow var(--t);min-width:0}
.in:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
textarea.in{font-family:var(--mono);font-size:12px;resize:vertical}
label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:550}
label.f .hint{font-weight:400;color:var(--dim)}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:12px}
.seg{display:inline-flex;background:var(--bg2);border:1px solid var(--border2);border-radius:9px;padding:3px;gap:2px}
.seg button{border:0;background:none;padding:5px 12px;border-radius:7px;color:var(--muted);cursor:pointer;font-weight:600;font-size:12px;transition:all var(--t)}
.seg button.on{background:var(--panel3);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.05) inset}
.seg.yesno button.on[data-v=yes],.seg.bs button.on[data-v=buy]{background:var(--green-bg);color:var(--green)}
.seg.yesno button.on[data-v=no],.seg.bs button.on[data-v=sell]{background:var(--red-bg);color:var(--red)}
.switch{position:relative;width:38px;height:22px;flex:none;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;background:#2a3446;border-radius:99px;transition:background var(--t);cursor:pointer}
.switch i::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#cfd8e3;transition:transform var(--t),background var(--t)}
.switch input:checked+i{background:var(--green)}
.switch input:checked+i::after{transform:translateX(16px);background:#fff}
.tgl{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--border)}
.tgl .t1{font-weight:550}.tgl .t2{font-size:12px;color:var(--muted)}

/* macros */
.macro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:var(--pad)}
.mcard{padding:0}
.mcard .top{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}
.mcard .nm{font-weight:650;font-size:14px}
.mcard .rule{padding:10px 14px;font-size:12.5px;color:#c3cedc;border-bottom:1px solid var(--border)}
.mcard .rule b{color:#fff}
.mcard .stat{padding:8px 14px}
.srow{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:5px 0;font-size:12px;border-bottom:1px dashed color-mix(in srgb,var(--border) 80%,transparent)}
.srow:last-child{border-bottom:0}
.srow .lbl{color:#b9c5d4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srow .v{font-family:var(--sans);text-align:right}
.okdot{width:8px;height:8px;border-radius:50%;background:var(--dim)}.okdot.y{background:var(--green);box-shadow:0 0 8px var(--green)}.okdot.n{background:#3a4558}
.dist{height:4px;background:var(--panel3);border-radius:4px;overflow:hidden;margin-top:3px}
.dist i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .5s}
.mcard .foot{display:flex;gap:6px;padding:10px 14px;flex-wrap:wrap;border-top:1px solid var(--border)}
.fire-badge{font:700 12px var(--sans);letter-spacing:.08em;padding:3px 8px;border-radius:6px}
.fire-badge.y{background:var(--green);color:#03140a}.fire-badge.n{background:var(--panel3);color:var(--muted)}.fire-badge.b{background:var(--amber-bg);color:var(--amber)}

/* modal */
.overlay{position:fixed;inset:0;background:rgba(3,6,10,.62);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:60;opacity:0;pointer-events:none;transition:opacity .2s}
.overlay.open{opacity:1;pointer-events:auto}
.modal{width:min(980px,94vw);max-height:90vh;background:var(--panel);border:1px solid var(--border2);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.6);display:flex;flex-direction:column;transform:translateY(10px) scale(.98);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.overlay.open .modal{transform:none}
.modal.sm{width:min(520px,94vw)}
.modal-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}
.modal-h h2{margin:0;font-size:16px;font-weight:650}
.modal-h .grow{flex:1}
.modal-b{padding:16px 18px;overflow:auto}
.modal-f{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--border);align-items:center}
.modal-f .grow{flex:1}
.tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--border);overflow-x:auto}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:11px 13px;color:var(--muted);cursor:pointer;font-weight:600;font-size:12.5px;white-space:nowrap;transition:all var(--t)}
.tabs button.on{color:#fff;border-bottom-color:var(--accent)}
.settings-layout{display:grid;grid-template-columns:190px 1fr;min-height:470px}
.vtabs{border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:2px}
.vtabs button{display:flex;align-items:center;gap:9px;background:none;border:0;padding:9px 11px;border-radius:8px;color:#aab6c7;cursor:pointer;text-align:left;font-weight:550;transition:all var(--t)}
.vtabs button.on{background:color-mix(in srgb,var(--accent) 14%,transparent);color:#fff}
.vtabs button svg{width:16px;height:16px}
.pane{display:none}.pane.on{display:block;animation:fade .2s}
.pane h4{margin:0 0 4px;font-size:14px}.pane p.d{margin:0 0 14px;color:var(--muted);font-size:12.5px}
.callout{border:1px solid var(--border2);background:var(--panel2);border-radius:10px;padding:10px 12px;font-size:12.5px;color:#c6d0dd;margin-bottom:12px}
.callout.red{border-color:rgba(244,63,94,.4);background:rgba(244,63,94,.07)}
.callout.green{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06)}

/* rule blocks */
.blocks{display:flex;flex-direction:column;gap:0}
.block{border:1px solid var(--border2);background:var(--panel2);border-radius:12px;padding:12px;display:flex;gap:10px;align-items:flex-start;position:relative;transition:border-color var(--t)}
.block:hover{border-color:#34415a}
.block .bi{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);flex:none;font-weight:700;font-size:12px}
.block .bf{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1}
.block .bf .w{font-size:12.5px;color:var(--muted)}
.block .in{padding:6px 9px}
.joiner{display:flex;justify-content:center;padding:6px 0;position:relative}
.joiner::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed var(--border2)}
.joiner .seg{position:relative;z-index:1}
.sect{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);margin:16px 0 8px;font-weight:650;display:flex;align-items:center;gap:8px}
.sect::after{content:"";flex:1;border-top:1px solid var(--border)}
.days{display:flex;gap:5px}.days button{width:34px;height:30px;border-radius:7px;border:1px solid var(--border2);background:var(--bg2);color:var(--muted);cursor:pointer;font-size:12px;font-weight:600}
.days button.on{background:color-mix(in srgb,var(--accent) 18%,transparent);color:#fff;border-color:var(--accent)}

/* drawer */
.drawer{position:fixed;top:var(--menu-h);right:0;bottom:var(--status-h);width:min(720px,96vw);background:var(--panel);border-left:1px solid var(--border2);box-shadow:-20px 0 60px rgba(0,0,0,.45);transform:translateX(102%);transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:50;display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer .db{overflow:auto;padding:14px 16px;flex:1}
.kv{display:grid;grid-template-columns:200px 1fr;gap:0;font-size:12.5px}
.kv div{padding:6px 8px;border-bottom:1px solid var(--border)}.kv div:nth-child(odd){color:var(--muted)}
.kv div:nth-child(even){font-family:var(--sans);word-break:break-word;white-space:pre-wrap}

/* order book */
.ob{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ladder .lr{display:grid;grid-template-columns:1fr 1fr;font:12px var(--sans);padding:3px 8px;position:relative}
.ladder .lr i{position:absolute;top:1px;bottom:1px;right:0;border-radius:3px;opacity:.18}
.ladder.yes .lr i{background:var(--green)}.ladder.no .lr i{background:var(--red)}
.ladder .lr span{position:relative}.ladder .lr span:last-child{text-align:right}
.ladder h5{margin:0 0 6px;font-size:12px;letter-spacing:.09em;text-transform:uppercase}

/* activity feed */
.feed{position:relative;margin-top:var(--pad);height:var(--feed-h,30vh);min-height:150px;display:flex;flex-direction:column}
.feed .grip{position:absolute;top:-9px;left:0;right:0;height:12px;cursor:ns-resize;z-index:3;display:flex;justify-content:center;align-items:center}
.feed .grip::after{content:"";width:46px;height:4px;border-radius:4px;background:#2b3648;transition:background var(--t)}
.feed .grip:hover::after{background:var(--accent)}
.nowline{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%);font-size:13.5px}
.nowline .lbl{font:700 12px var(--sans);letter-spacing:.12em;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);padding:3px 8px;border-radius:5px}
.nowline .txt{font-family:var(--sans);color:#e7eef8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nowline.kill{background:linear-gradient(90deg,rgba(244,63,94,.18),transparent 70%)}.nowline.kill .lbl{color:#fff;background:var(--red)}
.feed-list{flex:1;overflow:auto;padding:4px 0;font:12.5px var(--sans)}
.ev{display:grid;grid-template-columns:86px 70px 1fr;gap:10px;padding:4px 14px;border-left:2px solid transparent;animation:evin .35s ease}
@keyframes evin{from{background:color-mix(in srgb,var(--accent) 12%,transparent)}to{background:transparent}}
.ev .ts{color:var(--dim)}.ev .c{font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;align-self:center}
.ev.good{border-left-color:var(--green)}.ev.good .tx{color:#bdf5d0}
.ev.bad{border-left-color:var(--red)}.ev.bad .tx{color:#ffc2cd}
.ev.warn{border-left-color:var(--amber)}.ev.warn .tx{color:#fde3b3}
.ev.accent{border-left-color:var(--accent)}.ev.accent .tx{color:#c9f6ff}
.ev.muted .tx{color:#8a97aa}.ev.info .tx{color:#dbe4ef}
.c.trade{color:#86efac}.c.macro{color:#7dd3fc}.c.error{color:#fda4af}.c.system{color:#c4b5fd}
.chips{display:flex;gap:5px}
.chip{border:1px solid var(--border2);background:var(--bg2);border-radius:99px;padding:3px 11px;font-size:12px;color:var(--muted);cursor:pointer;font-weight:600;transition:all var(--t)}
.chip.on{color:#fff;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}

/* status bar */
.statusbar{grid-column:1/3;display:flex;align-items:center;gap:16px;padding:0 12px;background:#070a0e;border-top:1px solid var(--border);font:12px var(--sans);color:var(--muted);white-space:nowrap;overflow:hidden}
.statusbar .it{display:flex;align-items:center;gap:6px}
.statusbar .g{color:var(--green)}.statusbar .r{color:var(--red)}.statusbar .a{color:var(--amber)}
.statusbar .grow{flex:1}

/* toasts */
#toasts{position:fixed;top:calc(var(--menu-h) + 12px);right:14px;display:flex;flex-direction:column;gap:8px;z-index:80;pointer-events:none}
.toast{pointer-events:auto;min-width:300px;max-width:420px;background:rgba(18,25,35,.97);backdrop-filter:blur(10px);border:1px solid var(--border2);border-left:3px solid var(--accent);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow);font-size:12.5px;animation:tin .3s cubic-bezier(.2,.8,.2,1)}
.toast.good{border-left-color:var(--green)}.toast.bad{border-left-color:var(--red)}.toast.warn{border-left-color:var(--amber)}
.toast .tt{font-weight:650;margin-bottom:2px}
@keyframes tin{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
.toast.out{opacity:0;transform:translateX(20px);transition:all .3s}

.heat{display:grid;grid-template-columns:40px repeat(24,1fr);gap:3px;font:12px var(--sans);color:var(--dim)}
.heat .c{height:22px;border-radius:4px;background:var(--panel2);display:grid;place-items:center;color:transparent;transition:transform .15s}
.heat .c:hover{transform:scale(1.15);color:#fff;z-index:2}
.stat-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--pad);margin-bottom:var(--pad)}
.two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--pad)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--pad)}
.ticket-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
.ticket .row{display:flex;gap:8px;align-items:center;margin-bottom:9px;flex-wrap:wrap}
.fees{font:12px var(--sans);background:var(--bg2);border:1px solid var(--border);border-radius:9px;padding:9px 11px;line-height:1.7}
.fees div{display:flex;justify-content:space-between}
.spin{width:14px;height:14px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:sp 0.8s linear infinite;display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}

@media (max-width:1280px){.kpis,.stat-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.dash3{grid-template-columns:1fr 1fr;height:auto}.dash3>.card:first-child{grid-column:1/3;min-height:420px}.dash3>.card{max-height:520px}.mkt-meta{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){#app{grid-template-columns:0 1fr}.sidebar{display:none}.kpis,.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dash3,.two,.split{grid-template-columns:1fr}.dash3>.card:first-child{grid-column:auto}.menu>button{padding:6px 6px}.brand small,.top-pnl{display:none}.settings-layout{grid-template-columns:1fr}.vtabs{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--border)}}

/* login */
.login-body{display:grid;place-items:center;height:100vh;background:radial-gradient(1200px 600px at 20% -10%,rgba(34,211,238,.12),transparent 60%),radial-gradient(900px 500px at 110% 110%,rgba(99,102,241,.14),transparent 60%),var(--bg);overflow:auto}
.login-card{width:min(400px,92vw);padding:30px 28px;border-radius:18px;background:rgba(15,21,29,.86);border:1px solid var(--border2);box-shadow:0 30px 90px rgba(0,0,0,.55);backdrop-filter:blur(10px)}
.login-card h1{font-size:20px;margin:14px 0 4px}.login-card p{color:var(--muted);margin:0 0 20px;font-size:12.5px}
.login-card .in{width:100%;padding:10px 12px;margin-bottom:12px}
.login-card .btn{width:100%;justify-content:center;padding:10px}
.login-err{color:var(--red);font-size:12.5px;min-height:18px;margin-bottom:6px}

/* Shortcut Keys bindings: stacked rows, no horizontal scroll at the Settings modal width */
.hk-list{margin-top:10px;display:flex;flex-direction:column;gap:6px;min-width:0}
.hk-head,.hk-main{display:grid;grid-template-columns:40px minmax(96px,1.1fr) minmax(120px,1.4fr) minmax(90px,1fr) 30px;gap:8px;align-items:center}
.hk-head{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#8a96a8);padding:0 8px}
.hk-row{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:7px 8px;transition:opacity .2s,border-color .2s}
.hk-row:hover{border-color:rgba(255,255,255,.12)}
.hk-row.off{opacity:.55}
.hk-main .in,.hk-opts .in{width:100%;min-width:0;box-sizing:border-box}
.hk-main .rec{cursor:pointer}
.hk-main .rec:focus{border-color:var(--accent,#22d3ee);box-shadow:0 0 0 3px rgba(34,211,238,.18)}
.hk-opts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:7px 0 1px 48px;font-size:12px;color:var(--muted,#8a96a8)}
.hk-opts label{display:flex;align-items:center;gap:6px}
.hk-opts .in{width:78px}
@media (max-width:760px){.hk-head{display:none}.hk-main{grid-template-columns:40px 1fr}.hk-main>*:not(.switch){grid-column:2}.hk-main>[data-del]{justify-self:end}.hk-opts{margin-left:0}}
.hk-opts select.in{width:96px}
.hk-main>.tag{justify-self:start}
#dPositions{overflow:auto;min-height:0}

/* live coin view */
.modal.lv{width:min(1120px,96vw)}
.lv-h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border,#1f2937)}
.lv-coin{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:12px;background:linear-gradient(135deg,#f7931a,#f59e0b);color:#111}
.lv-kicker{font-size:12px;letter-spacing:.12em;color:var(--muted,#8a96a8)}
.lv-title{font-size:20px;font-weight:700;letter-spacing:-.01em}
.lv-src .tag{margin-left:4px}
.lv-body{display:grid;grid-template-columns:280px 1fr;gap:18px;padding:16px 18px 18px}
.lv-row{display:grid;grid-template-columns:1fr 70px 60px;align-items:center;padding:10px 4px;border-bottom:1px solid rgba(255,255,255,.05)}
.lv-hd{font-size:12px;color:var(--muted,#8a96a8);padding-top:0}
.lv-side{font-weight:600}.lv-side.up{color:#22c55e}.lv-side.dn{color:#ef4444}
.lv-odds{display:inline-block;text-align:center;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:4px 0;font-size:14px}
.lv-vol{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-size:12px;color:var(--muted,#8a96a8)}
.lv-prices{display:flex;gap:36px;margin-bottom:8px}
.lv-l{font-size:12px;letter-spacing:.12em;color:var(--muted,#8a96a8);display:flex;align-items:center;gap:6px}
.lv-big{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;border-radius:6px;padding:0 4px;margin-left:-4px}
.lv-big.pos{color:#22c55e}.lv-big.neg{color:#ef4444}
.lv-sub{font-size:12px;color:var(--muted,#8a96a8);font-variant-numeric:tabular-nums}
.lv-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:lvdot 1.6s infinite}
.lv-chart{position:relative;height:330px}
.lv-pulse{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;pointer-events:none;transition:left .25s linear,top .25s linear;display:none}
.lv-pulse.up{background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.7);animation:lvping 1.4s infinite}
.lv-pulse.dn{background:#f97316;box-shadow:0 0 0 0 rgba(249,115,22,.7);animation:lvpingo 1.4s infinite}
.lv-tag{position:absolute;transform:translate(-110%,-150%);font-size:12px;font-weight:700;pointer-events:none;transition:left .25s linear,top .25s linear;display:none}
.lv-tag.up{color:#22c55e}.lv-tag.dn{color:#f97316}
@keyframes lvping{0%{box-shadow:0 0 0 0 rgba(34,197,94,.7)}100%{box-shadow:0 0 0 14px rgba(34,197,94,0)}}
@keyframes lvpingo{0%{box-shadow:0 0 0 0 rgba(249,115,22,.7)}100%{box-shadow:0 0 0 14px rgba(249,115,22,0)}}
@keyframes lvdot{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}100%{box-shadow:0 0 0 8px rgba(34,197,94,0)}}
.fl-up{animation:flup .7s ease-out}.fl-dn{animation:fldn .7s ease-out}
@keyframes flup{0%{background:rgba(34,197,94,.35)}100%{background:transparent}}
@keyframes fldn{0%{background:rgba(239,68,68,.35)}100%{background:transparent}}
@media (max-width:820px){.lv-body{grid-template-columns:1fr}.lv-prices{gap:20px}.lv-big{font-size:24px}}

.bt-prog{display:flex;align-items:center;gap:10px;min-width:340px}.bt-track{width:160px;height:6px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.bt-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#22c55e,#4ade80);transition:width .25s ease}#btMsg{font-size:12px}

/* quick trade */
.qt{margin:10px 0 4px;display:flex;flex-direction:column;gap:10px}
.qt-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qt-b{display:flex;align-items:center;gap:10px;justify-content:center;padding:14px 12px;border-radius:12px;border:1px solid transparent;cursor:pointer;font:inherit;color:#fff;transition:transform .08s,filter .15s,box-shadow .15s}
.qt-b .qt-l{font-size:18px;font-weight:700}.qt-b .qt-p{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;padding:0 4px;border-radius:6px}.qt-b .qt-s{font-size:12px;opacity:.85}
.qt-b.up{background:linear-gradient(180deg,#16a34a,#15803d);box-shadow:0 0 0 1px #22c55e55 inset}.qt-b.dn{background:linear-gradient(180deg,#dc2626,#b91c1c);box-shadow:0 0 0 1px #ef444455 inset}
.qt-b:hover{filter:brightness(1.12)}.qt-b:active{transform:scale(.98)}.qt-b:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}
.qt-opts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.qt-f{display:flex;align-items:center;gap:6px;font-size:12px;color:#aab4c3}
.qt-sz{display:flex;gap:4px;align-items:center}.qt-sz .in{width:70px}.qt-lim .in{width:64px}.qt-quick{display:flex;gap:4px}
.qt-opts .seg button{padding:4px 9px;font-size:12px}
.qt.is-live .qt-b{box-shadow:0 0 0 2px #ef4444aa inset}
.qt-pos{display:flex;flex-direction:column;gap:6px}.qt-posrow{display:flex;gap:8px;align-items:center;padding:7px 10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.03);font-size:13px}
.qt-conf .qt-mode{padding:9px 12px;border-radius:8px;font-weight:700;margin-bottom:10px}.qt-mode.live{background:#7f1d1d;color:#fecaca;border:1px solid #ef4444}.qt-mode.paper{background:#14321f;color:#bbf7d0;border:1px solid #22c55e66}
.num{font-variant-numeric:tabular-nums}
.lv .qt{padding:0 2px}
#boxMarket .chart-wrap{height:auto;flex:1 1 180px;min-height:180px}
#boxMarket .qt{margin:8px 0 2px;gap:8px}#boxMarket .qt-b{padding:10px 12px}

/* typography pass: Inter + tabular numbers, AA-contrast grays, nothing under 12px */
.kpi .v,.countdown,.mm .v,.mtab .p,.top-pnl,.lv-big,.qt-p,table.t td{font-variant-numeric:tabular-nums}
.kpi .l,.mm .l,.card-h h3{color:var(--muted)}
table.t th{color:var(--muted)}

/* live price block: fills the empty space at the end of the coin-tile grid (wraps to its own row when there is none) */
.mprice{flex:1 1 230px;min-width:230px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 12px;border-radius:9px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),transparent)}
.mprice .mp-1{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.mprice .mp-a{font-weight:800;font-size:15px}.mprice .mp-l{color:var(--muted);font-size:12px}
.mprice .mp-s{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em;padding:0 3px;border-radius:5px}.mprice .mp-d{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.mprice .mp-2{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.mprice .mp-2 b{font-size:14px;padding:0 2px;border-radius:4px}
.dm-tag{position:absolute;z-index:2;padding:1px 6px;border-radius:5px;font-size:12px;font-weight:700;background:#f5a524;color:#111;pointer-events:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.dm-tag.pos{background:#22c55e}.dm-tag.neg{background:#f43f5e;color:#fff}

/* polish: cash warning banner, backtest empty state */
.cash-warn{margin:0 0 10px;padding:9px 13px;border-radius:9px;border:1px solid #f59e0b;background:rgba(245,158,11,.12);color:var(--text);font-size:13.5px;line-height:1.45}
.cash-warn b{color:#fbbf24}
.bt-empty{grid-column:1/-1;padding:14px;color:var(--muted)}
.bt-empty-eq{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px;pointer-events:none}

/* close position */
.cp-btn{margin-left:8px;flex:none;font-weight:700}
.cp-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:10px 0 8px}.cp-row .in{width:110px}

.kill-note{margin:0 0 10px;padding:9px 13px;border-radius:9px;border:1px solid #f43f5e;background:rgba(244,63,94,.12);font-size:13.5px}.kill-note b{color:#fb7185}
#acctPos{margin-bottom:12px}#acctPos .acct-h{font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:4px 0 6px}

/* layout fix: dashboard fits the viewport again (no page scroll); cards scroll inside; fixed chart height */
.dash3{grid-template-rows:minmax(0,1fr)}
.dash3>.card{min-height:0;overflow:hidden}
.dash3>.card>.card-b{min-height:0}
@media (min-width:1281px){.dash3{height:calc(100vh - var(--menu-h) - var(--status-h) - var(--pad)*3 - 84px - var(--feed-h,30vh) - 10px - var(--banner-h,0px))}}
#boxMarket .chart-wrap{flex:0 0 190px;height:190px;min-height:0;max-height:190px}
#boxMarket>.card-b{overflow-y:auto;overflow-x:hidden}
.cash-warn,.kill-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:5px 12px;font-size:13px;line-height:1.35;margin:0 0 8px}

/* backtest: simulated-trade labelling + period range */
.tag.sim{background:rgba(168,85,247,.18);color:#d8b4fe;border:1px solid rgba(168,85,247,.45);font-weight:700;letter-spacing:.04em}
.card-h .tag.sim{margin-left:8px}
.sim-row td{background:rgba(168,85,247,.035)}
.bt-range{font-size:13px;align-self:flex-end;padding-bottom:8px}
.bt-days{margin-top:12px}

/* live connection bar (header, top-middle) */
.connbar{display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:0;height:28px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.025)}
#cbCanvas{width:300px;height:22px;display:block;cursor:crosshair}
.cb-txt{font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.cb-txt.ok{color:#4ade80}.cb-txt.warn{color:#fbbf24}.cb-txt.down{color:#f87171}
.cb-tip{position:fixed;z-index:400;display:none;max-width:290px;padding:6px 9px;font-size:12px;line-height:1.4;border-radius:7px;background:#0b1118;border:1px solid var(--border);box-shadow:0 6px 20px rgba(0,0,0,.5);pointer-events:none}
.cb-tip .amber{color:#fbbf24}
@media (max-width:1600px){#cbCanvas{width:260px}}
@media (max-width:1440px){#cbCanvas{width:240px}.menubar .brand small{display:none}.connbar{gap:6px;padding:0 6px}}
@media (max-width:1366px){.menubar{gap:3px}.menubar .menu>button{padding-left:7px;padding-right:7px}.cb-txt{font-size:10.5px;letter-spacing:0;line-height:1.15;display:flex;flex-direction:column;align-items:flex-start}.cb-txt .cb-dot{display:none}}
@media (max-width:1300px){#cbCanvas{width:220px}}

/* Phone and narrow tablet: one column, header that fits, section bar along the bottom. */
@media (max-width:860px){
  :root{--pad:10px}
  html,body{overflow:hidden}
  #app{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;height:100dvh;width:100%}
  .menubar,.sidebar,main,.statusbar{grid-column:1}
  .menubar{grid-row:1;flex-wrap:wrap;align-items:center;height:auto;row-gap:2px;column-gap:6px;padding:6px 8px 4px;min-width:0}
  .menubar .spacer,.connbar,.brand small,#envPill,.top-pnl{display:none}
  .brand{order:1;margin-right:auto;min-width:0}
  #modePill{order:2}
  .kill{order:3}
  .menubar>.iconbtn{order:4}
  .mob-break{display:block;order:5;flex-basis:100%;height:0}
  .menubar .menu{order:6;flex:1 1 0;min-width:0}
  .menubar .menu>button{width:100%;min-height:36px;padding:6px 2px;font-size:13px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dropdown{max-width:calc(100vw - 16px);max-height:min(70dvh,520px);overflow:auto}
  .menu[data-menu="view"] .dropdown,.menu[data-menu="help"] .dropdown{left:auto;right:0}
  .pill{padding:4px 8px}
  .kill{padding:8px 10px;min-height:36px}
  .kill span{display:none}
  .iconbtn{min-width:36px;min-height:36px;justify-content:center}
  main{grid-row:2;min-width:0;width:100%;padding:10px;overflow:auto}
  .sidebar{grid-row:3;display:flex;flex-direction:row;align-items:stretch;gap:2px;overflow-x:auto;overflow-y:hidden;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .side-sec,.side-foot{display:none}
  .nav{flex:1 0 72px;flex-direction:column;justify-content:center;gap:2px;min-height:52px;padding:6px 4px;font-size:11px;text-align:center;scroll-snap-align:start;white-space:normal}
  .nav span{line-height:1.15}
  .nav.active::before{display:none}
  .nav .badge{position:absolute;top:2px;right:4px;margin:0;padding:0 5px;font-size:10px}
  .statusbar{grid-row:4;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;height:30px;min-height:30px;gap:12px;padding:0 10px;scrollbar-width:none}
  .page-h{flex-wrap:wrap;align-items:flex-start;gap:8px}
  .page-h h1{font-size:18px}
  .page-h .sub{flex:1 1 100%;order:5}
  .page-h .btn,.page-h .seg,.page-h .in{min-height:36px}
  .kpis,.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kpi{padding:10px}
  .kpi .v{font-size:18px}
  .dash3,.two,.split,.ticket-grid,.macro-grid{grid-template-columns:minmax(0,1fr);height:auto;grid-template-rows:auto}
  .dash3>.card:first-child{grid-column:auto;min-height:0}
  .dash3>.card{max-height:none;min-height:0;overflow:visible}
  .dash3 .card-b{overflow:visible}
  #boxMarket>.card-b{overflow:visible}
  #boxMarket .chart-wrap{flex:0 0 220px;height:220px;max-height:220px}
  .mkt-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mprice{min-width:0;flex-basis:100%}
  .feed{height:auto;min-height:220px;max-height:46vh}
  .card-h{flex-wrap:wrap;gap:6px 8px}
  .card-h h3{min-width:0}
  .cash-warn,.kill-note{white-space:normal;overflow:visible;text-overflow:unset}
  .card-b{max-width:100%}
  table.t{min-width:560px}
  .ev{grid-template-columns:58px 52px minmax(0,1fr);gap:6px;padding:4px 10px}
  .nowline .txt{white-space:normal}
  .chips{flex-wrap:wrap}
  .settings-layout{grid-template-columns:1fr;min-height:0}
  .vtabs{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--border);padding:8px}
  .vtabs button{white-space:nowrap}
  .modal,.modal.sm,.modal.lv{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0}
  .overlay{align-items:stretch;padding:0}
  .modal-b,.settings-layout .modal-b{max-height:none!important}
  .modal-h,.modal-f{flex-wrap:wrap}
  .modal-f .btn{min-height:40px}
  .drawer{top:0;bottom:0;width:100%}
  .kv{grid-template-columns:1fr}
  .kv div:nth-child(odd){padding-bottom:0;border-bottom:0}
  .bt-prog{min-width:0;flex-wrap:wrap}
  .bt-range{flex:1 1 100%}
  .heat{min-width:640px}
  .card-b:has(.heat){overflow-x:auto}
  #toasts{left:8px;right:8px;top:auto;bottom:calc(78px + env(safe-area-inset-bottom))}
  .toast{min-width:0;max-width:none}
  .countdown{font-size:18px}
}
