:root{--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--bg: oklch(.16 .01 260);--bg-elev: oklch(.2 .012 260);--bg-elev2: oklch(.23 .014 260);--fg: oklch(.96 .005 260);--fg-dim: oklch(.78 .008 260);--muted: oklch(.62 .01 260);--border: oklch(.28 .014 260);--border-strong: oklch(.36 .016 260);--acc: oklch(.72 .18 250);--acc2: oklch(.74 .18 310);--pos: oklch(.78 .18 145);--neg: oklch(.68 .22 25);--warn: oklch(.82 .16 75);--mut: oklch(.55 .01 260)}[data-theme=terminal]{--bg: oklch(.13 .005 150);--bg-elev: oklch(.16 .008 150);--bg-elev2: oklch(.19 .01 150);--fg: oklch(.95 .04 145);--fg-dim: oklch(.78 .06 145);--muted: oklch(.6 .04 145);--border: oklch(.26 .01 150);--border-strong: oklch(.34 .012 150);--acc: oklch(.85 .16 145);--acc2: oklch(.78 .14 75);--pos: oklch(.85 .18 145);--neg: oklch(.72 .22 25);--warn: oklch(.85 .16 80);--mut: oklch(.5 .04 145);--sans: "JetBrains Mono", ui-monospace, monospace}[data-theme=light]{--bg: oklch(.985 .003 80);--bg-elev: oklch(1 0 0);--bg-elev2: oklch(.97 .005 80);--fg: oklch(.22 .01 260);--fg-dim: oklch(.42 .012 260);--muted: oklch(.54 .01 260);--border: oklch(.92 .005 80);--border-strong: oklch(.85 .008 80);--acc: oklch(.55 .18 250);--acc2: oklch(.55 .2 310);--pos: oklch(.58 .18 150);--neg: oklch(.58 .22 25);--warn: oklch(.68 .18 70);--mut: oklch(.65 .01 260)}[data-theme=neon]{--bg: oklch(.1 .02 290);--bg-elev: oklch(.15 .04 290);--bg-elev2: oklch(.19 .05 290);--fg: oklch(.97 .02 200);--fg-dim: oklch(.82 .04 200);--muted: oklch(.6 .06 290);--border: oklch(.3 .06 290);--border-strong: oklch(.42 .08 290);--acc: oklch(.82 .22 195);--acc2: oklch(.72 .3 320);--pos: oklch(.85 .24 145);--neg: oklch(.72 .28 15);--warn: oklch(.85 .22 75);--mut: oklch(.55 .05 290)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.pos{color:var(--pos)}.neg{color:var(--neg)}.acc{color:var(--acc)}.acc2{color:var(--acc2)}.warn{color:var(--warn)}.dim{color:var(--muted)}button{font-family:inherit}[data-density=compact]{font-size:12px}[data-density=compact] .card{--pad: 10px}[data-density=compact] .tbl td,[data-density=compact] .tbl th{padding:5px 8px}[data-density=compact] .kpi{padding:10px 12px}[data-density=compact] .bot-card{padding:8px 10px}[data-density=comfortable]{font-size:13.5px}[data-density=comfortable] .card{--pad: 18px}[data-density=comfortable] .tbl td,[data-density=comfortable] .tbl th{padding:11px 14px}[data-density=comfortable] .kpi{padding:16px 18px}[data-density=comfortable] .bot-card{padding:14px 16px}.app{display:grid;min-height:100vh;transition:grid-template-columns .2s}.app[data-layout=sidebar]{grid-template-columns:232px 1fr}.app[data-layout=topnav]{grid-template-columns:1fr}.app[data-layout=topnav] .sidebar{display:none}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--bg-elev);border-bottom:1px solid var(--border);height:56px;flex-shrink:0}.topbar-brand{display:flex;align-items:center;gap:10px;padding-right:24px;border-right:1px solid var(--border)}.topbar-brand .brand-name{font-weight:700;letter-spacing:-.01em;font-size:14px}.topbar-brand .brand-tag{font-family:var(--mono);font-size:10px;color:var(--muted);padding:2px 6px;background:var(--bg-elev2);border-radius:4px}.topnav{display:flex;gap:2px;flex:1}.topnav-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--fg-dim);padding:7px 12px;border-radius:7px;font-size:13px;font-weight:500;cursor:pointer}.topnav-item:hover,.topnav-item.active{color:var(--fg);background:var(--bg-elev2)}.topbar-search{display:flex;align-items:center;gap:8px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;min-width:240px;max-width:380px;flex:1;color:var(--muted)}.topbar-search input{flex:1;background:transparent;border:0;outline:none;color:var(--fg);font-family:inherit;font-size:12.5px;min-width:0}.topbar-search input::placeholder{color:var(--muted)}.topbar-search kbd{font-family:var(--mono);font-size:10px;padding:2px 5px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}.env-pill{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em}.env-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--pos)}.env-pill .dot.pulse{box-shadow:0 0 0 0 var(--pos);animation:pulse 2s infinite}.env-pill .dot.idle{background:var(--mut);animation:none;box-shadow:none}.env-sep{color:var(--muted)}@keyframes pulse{0%{box-shadow:0 0 oklch(from var(--pos) l c h / .5)}70%{box-shadow:0 0 0 6px oklch(from var(--pos) l c h / 0)}to{box-shadow:0 0 oklch(from var(--pos) l c h / 0)}}.icon-btn{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg-elev2);width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--fg-dim);display:flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--fg);border-color:var(--border-strong)}.icon-btn .badge{position:absolute;top:-4px;right:-4px;background:var(--neg);color:#fff;font-size:9px;font-weight:700;width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-elev)}.user-chip{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:999px}.avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.user-meta{display:flex;flex-direction:column;line-height:1.2}.user-name{font-size:12px;font-weight:600}.user-role{font-size:10px;color:var(--muted)}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;overflow-y:auto;grid-row:1 / -1}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;border-bottom:1px solid var(--border);margin-bottom:12px}.sidebar-brand .brand-name{font-weight:700;font-size:14px;letter-spacing:-.01em}.sidebar-brand .brand-tag{font-family:var(--mono);font-size:10px;color:var(--muted)}.sidenav{display:flex;flex-direction:column;gap:1px}.sidenav-item{display:flex;align-items:center;gap:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--fg-dim);padding:7px 10px;border-radius:7px;font-size:12.5px;font-weight:500;cursor:pointer;text-align:left;text-decoration:none}.sidenav-item:hover{color:var(--fg);background:var(--bg-elev2)}.sidenav-item.active{color:var(--fg);background:var(--bg-elev2);box-shadow:inset 2px 0 0 var(--acc)}.sidenav-item svg{color:var(--muted);flex-shrink:0}.sidenav-item.active svg{color:var(--acc)}.sidenav-section{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:18px 10px 8px}.bot-list{display:flex;flex-direction:column;gap:1px}.bot-list-item{display:flex;align-items:center;gap:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:6px 10px;border-radius:7px;cursor:pointer;color:var(--fg-dim);font-size:12px;text-align:left;width:100%}.bot-list-item:hover,.bot-list-item.active{background:var(--bg-elev2);color:var(--fg)}.bot-list-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bot-list-pnl{font-family:var(--mono);font-size:10.5px;font-weight:600}.bot-list-pnl.pos{color:var(--pos)}.bot-list-pnl.neg{color:var(--neg)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--muted)}.status-dot.running{background:var(--pos);box-shadow:0 0 6px oklch(from var(--pos) l c h / .6)}.status-dot.paused{background:var(--warn)}.status-dot.stopped{background:var(--mut)}.status-dot.fatal{background:var(--neg)}.sidebar-newbot{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px dashed var(--border-strong);background:transparent;color:var(--fg-dim);padding:10px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;text-decoration:none}.sidebar-newbot:hover{border-color:var(--acc);color:var(--acc);background:oklch(from var(--acc) l c h / .06)}.content{flex:1;overflow-y:auto;min-height:0;padding:16px 20px 24px}.page-hd{display:flex;align-items:flex-end;justify-content:space-between;padding:4px 0 16px;gap:16px}.page-hd-l h1{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 2px}.page-hd-l .breadcrumb{color:var(--muted);font-size:12px}.page-hd-l .breadcrumb b{color:var(--fg-dim);font-weight:500}.page-hd-r{display:flex;gap:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg-elev);padding:7px 12px;border-radius:8px;cursor:pointer;color:var(--fg);font-family:inherit;font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--bg-elev2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--acc);color:var(--bg);border-color:var(--acc)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{background:transparent;color:var(--neg);border-color:oklch(from var(--neg) l c h / .4)}.ghost-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--border);color:var(--fg-dim);padding:4px 9px;border-radius:6px;font-size:11.5px;font-weight:500;cursor:pointer;font-family:inherit}.ghost-btn:hover{color:var(--fg);border-color:var(--border-strong)}.ghost-btn:disabled{opacity:.45;cursor:not-allowed}.bot-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.bot-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:11px 13px;cursor:pointer;transition:border-color .15s,background .15s;display:flex;flex-direction:column;gap:6px}.bot-card:hover{border-color:var(--border-strong)}.bot-card.active{border-color:var(--acc);background:oklch(from var(--acc) l c h / .04)}.bot-card-top{display:flex;align-items:center;gap:6px}.bot-card-name{font-weight:600;font-size:12.5px}.bot-card-strat{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--muted);padding:1px 6px;background:var(--bg-elev2);border-radius:4px}.bot-card-mid{display:flex;align-items:center;justify-content:space-between}.bot-card-pair{font-family:var(--mono);font-size:11px;color:var(--muted)}.bot-card-pnl{font-family:var(--mono);font-size:13px;font-weight:700;display:flex;align-items:baseline;gap:6px}.bot-card-pnlpct{font-size:10.5px;font-weight:500}.bot-card-foot{display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid var(--border)}.bot-card-trades{font-family:var(--mono);font-size:10.5px;color:var(--muted)}.bot-card-controls{display:flex;gap:2px}.bot-ctrl{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--muted);width:20px;height:20px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.bot-ctrl:hover{background:var(--bg-elev2);color:var(--fg)}.bot-ctrl:disabled{opacity:.35;cursor:not-allowed}.bot-ctrl.on{background:var(--bg-elev2);color:var(--acc)}.bot-ctrl.run.on{color:var(--pos)}.bot-ctrl.stop.on{color:var(--neg)}.kpi-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:12px}.kpi{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.kpi-label{font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.02em;text-transform:uppercase}.kpi-delta{font-family:var(--mono);font-size:10px;font-weight:600;white-space:nowrap}.kpi-val{display:flex;align-items:baseline;gap:1px;font-family:var(--mono);font-weight:700}.kpi-num{font-size:19px;letter-spacing:-.02em}.kpi-prefix,.kpi-suffix{font-size:13px;color:var(--fg-dim);font-weight:500}.kpi-spark{margin-top:4px;opacity:.85}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;--pad: 14px}.card-hd{display:flex;align-items:center;justify-content:space-between;padding:12px var(--pad);border-bottom:1px solid var(--border);gap:12px;flex-shrink:0}.card-hd-l{display:flex;align-items:baseline;gap:10px;min-width:0}.card-hd h3{font-size:13px;font-weight:600;margin:0;letter-spacing:-.01em}.card-sub{font-size:11px;color:var(--muted)}.card-body{padding:var(--pad);flex:1;min-height:0}.card-body.no-pad{padding:0}.card-body.scroll{overflow-y:auto}.seg-tabs{display:flex;gap:1px;background:var(--bg-elev2);padding:2px;border-radius:6px}.seg-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;color:var(--muted);cursor:pointer;font-family:inherit}.seg-tabs button:hover{color:var(--fg)}.seg-tabs button.active{background:var(--bg-elev);color:var(--fg);box-shadow:0 1px 2px #0003}.equity-stat,.price-stat{display:flex;flex-wrap:wrap;gap:18px 28px;padding-bottom:12px}.equity-stat>div{display:flex;flex-direction:column}.equity-stat-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.equity-stat-val{font-size:16px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:baseline;gap:6px}.equity-stat-pct{font-size:11px;font-weight:500}.price-now{font-size:22px;font-weight:700;letter-spacing:-.02em}.price-ch{font-size:12px;font-weight:600;align-self:center}.price-legend{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--muted)}.price-legend .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.price-legend .dot.pos{background:var(--acc)}.price-legend .dot.acc2{background:var(--acc2)}.price-meta{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-left:auto;align-items:center}.price-meta b{color:var(--fg);font-weight:600}.tbl-wrap{overflow:auto}.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl thead th{position:sticky;top:0;z-index:1;text-align:left;padding:9px 12px;background:var(--bg-elev);border-bottom:1px solid var(--border);font-size:10.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.tbl thead th.num{text-align:right}.tbl tbody td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:hover{background:var(--bg-elev2)}.tbl td.num{text-align:right;font-variant-numeric:tabular-nums}.cell-sub{display:block;font-size:10px;font-weight:400;opacity:.7}.sym{font-family:var(--mono);font-weight:600;font-size:11.5px}.lev{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:4px}.pill{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.02em}.pill.pos{background:oklch(from var(--pos) l c h / .15);color:var(--pos)}.pill.neg{background:oklch(from var(--neg) l c h / .15);color:var(--neg)}.status-pill{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.02em}.status-pill.filled{background:oklch(from var(--pos) l c h / .12);color:var(--pos)}.status-pill.new{background:oklch(from var(--acc) l c h / .15);color:var(--acc)}.status-pill.partial{background:oklch(from var(--warn) l c h / .15);color:var(--warn)}.status-pill.canceled,.status-pill.cancel{background:oklch(from var(--mut) l c h / .2);color:var(--muted)}.bot-tag{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--fg-dim);padding:1px 7px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:4px}.row-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--border);color:var(--muted);font-size:10.5px;font-weight:500;padding:3px 8px;border-radius:5px;cursor:pointer;font-family:inherit}.row-btn:hover{color:var(--acc);border-color:var(--acc)}.alloc-row{display:flex;gap:18px;align-items:center}.donut-wrap{position:relative;flex-shrink:0}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.donut-val{font-size:14px;font-weight:700;letter-spacing:-.01em}.alloc-legend{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}.alloc-item{display:grid;grid-template-columns:10px 1fr auto auto;align-items:center;gap:8px;font-size:11.5px}.alloc-swatch{width:10px;height:10px;border-radius:2px}.alloc-sym{font-family:var(--mono);font-weight:600}.alloc-val{font-size:11px;font-weight:500;min-width:60px;text-align:right}.alloc-cell{display:flex;align-items:center;gap:8px;min-width:100px}.alloc-pct{font-family:var(--mono);font-size:11px;min-width:32px;text-align:right}.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;padding-bottom:14px}.risk-metric{display:flex;flex-direction:column;gap:5px}.risk-row{display:flex;justify-content:space-between;align-items:baseline}.risk-lbl{font-size:11px;color:var(--muted)}.risk-v{font-size:12px;font-weight:700}.activity-list{display:flex;flex-direction:column;padding:4px 0;max-height:380px;overflow-y:auto}.activity-item{display:flex;gap:10px;padding:8px 14px}.activity-dot-wrap{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:5px}.activity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;z-index:1}.activity-dot.pos{background:var(--pos)}.activity-dot.neg{background:var(--neg)}.activity-dot.acc{background:var(--acc)}.activity-dot.acc2{background:var(--acc2)}.activity-dot.warn{background:var(--warn)}.activity-dot.mut{background:var(--mut)}.activity-line{position:absolute;top:12px;bottom:-8px;width:1px;background:var(--border)}.activity-body{flex:1;min-width:0}.activity-head{display:flex;align-items:center;gap:6px;margin-bottom:2px;flex-wrap:wrap}.activity-time{margin-left:auto;font-size:10.5px}.activity-msg{font-size:12px;color:var(--fg-dim);line-height:1.4;overflow-wrap:anywhere}.type-tag{font-family:var(--mono);font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}.type-tag.pos{background:oklch(from var(--pos) l c h / .15);color:var(--pos)}.type-tag.neg{background:oklch(from var(--neg) l c h / .15);color:var(--neg)}.type-tag.acc{background:oklch(from var(--acc) l c h / .15);color:var(--acc)}.type-tag.acc2{background:oklch(from var(--acc2) l c h / .15);color:var(--acc2)}.type-tag.warn{background:oklch(from var(--warn) l c h / .15);color:var(--warn)}.type-tag.mut{background:oklch(from var(--mut) l c h / .2);color:var(--muted)}.alerts-list{display:flex;flex-direction:column}.alert{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);border-left:2px solid transparent}.alert:last-child{border-bottom:0}.alert-warn{border-left-color:var(--warn)}.alert-info{border-left-color:var(--acc)}.alert-pos{border-left-color:var(--pos)}.alert-neg{border-left-color:var(--neg)}.alert-icon{flex-shrink:0;padding-top:1px}.alert-warn .alert-icon{color:var(--warn)}.alert-info .alert-icon{color:var(--acc)}.alert-pos .alert-icon{color:var(--pos)}.alert-neg .alert-icon{color:var(--neg)}.alert-body{flex:1;min-width:0}.alert-msg{font-size:12px;color:var(--fg-dim);margin-bottom:2px;overflow-wrap:anywhere}.alert-time{font-size:10.5px}.dash-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.span-12{grid-column:span 12}@media(max-width:1280px){.span-8,.span-7,.span-5{grid-column:span 12}.span-4,.span-3{grid-column:span 6}.kpi-strip{grid-template-columns:repeat(4,1fr)}.bot-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.app[data-layout=sidebar]{grid-template-columns:1fr}.app[data-layout=sidebar] .sidebar{display:none}.kpi-strip{grid-template-columns:repeat(2,1fr)}.bot-strip{grid-template-columns:1fr}.span-4,.span-3,.span-6{grid-column:span 12}.topbar-search{display:none}.content{padding:12px}}.login-screen{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:var(--bg)}.dispatch-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-auto-rows:1fr;gap:1px;pointer-events:none}.dispatch-tile{position:relative;border:1px solid oklch(from var(--border) l c h / .45);border-radius:2px;opacity:0;transform:scale(.86);animation:tile-boot .9s cubic-bezier(.16,1,.3,1) forwards}.dispatch-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:1px;background:oklch(from var(--fg) l c h / .05);animation:tile-breathe 10s ease-in-out infinite alternate}.dispatch-tile.is-warm .dispatch-fill{background:oklch(from var(--fg-dim) l c h / .13)}.dispatch-tile.is-live{border-color:oklch(from var(--acc) l c h / .35)}.dispatch-tile.is-live .dispatch-fill{background:oklch(from var(--acc) l c h / .26)}@keyframes tile-boot{to{opacity:1;transform:scale(1)}}@keyframes tile-breathe{0%{opacity:.35}to{opacity:1}}@media(prefers-reduced-motion:reduce){.dispatch-tile{opacity:1;transform:none;animation:none}.dispatch-fill{animation:none;opacity:.75}}.login-panel{position:relative;z-index:1;width:100%;max-width:372px;background:var(--bg-elev);border:1px solid oklch(from var(--acc) l c h / .55);border-radius:6px;padding:34px 30px 30px;box-shadow:0 0 0 20px var(--bg),0 26px 60px -22px oklch(from var(--bg) .02 0 0 / .85)}.login-plate{position:absolute;top:12px;inset-inline-end:14px;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:6px}.login-name{margin:0;font-size:25px;font-weight:700;letter-spacing:-.035em;line-height:1}.login-sub{margin:0 0 26px;color:var(--fg-dim);font-size:12.5px;max-width:30ch}.login-form{display:flex;flex-direction:column;gap:13px}.login-langs{position:absolute;z-index:1;top:18px;inset-inline-end:20px;display:flex;gap:2px;padding:3px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px}.login-lang{min-width:30px;padding:4px 7px;background:none;border:0;border-radius:4px;color:var(--muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;cursor:pointer}.login-lang:hover{color:var(--fg);background:var(--bg-elev2)}.login-lang.is-active{color:var(--bg);background:var(--acc)}@media(max-width:480px){.login-panel{padding:28px 22px 24px;box-shadow:0 0 0 12px var(--bg),0 20px 40px -18px oklch(from var(--bg) .02 0 0 / .85)}.login-langs{top:10px;inset-inline-end:10px}}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.field input,.field select,.field textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--fg);font-family:inherit;font-size:13px;outline:none;width:100%}.field input:focus,.field select:focus{border-color:var(--acc)}.field .hint{font-size:10.5px;color:var(--muted)}.form-error{background:oklch(from var(--neg) l c h / .12);border:1px solid oklch(from var(--neg) l c h / .35);color:var(--neg);border-radius:8px;padding:8px 11px;font-size:12px}.form-ok{background:oklch(from var(--pos) l c h / .12);border:1px solid oklch(from var(--pos) l c h / .35);color:var(--pos);border-radius:8px;padding:8px 11px;font-size:12px}.btn.block{width:100%;justify-content:center;padding:10px}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:32px 16px;color:var(--muted);font-size:12px;text-align:center}.state.small{padding:16px}.skeleton{background:linear-gradient(90deg,var(--bg-elev2) 25%,var(--border) 50%,var(--bg-elev2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:1px solid oklch(from var(--warn) l c h / .35);background:oklch(from var(--warn) l c h / .1);color:var(--warn);font-size:12px;margin-bottom:12px}.tbl tbody tr.expandable{cursor:pointer}.tbl tbody tr.expanded{background:var(--bg-elev2)}.orders-row td{padding:0!important;background:var(--bg)}.orders-panel{padding:10px 14px 14px;display:flex;flex-direction:column;gap:8px}.orders-title{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.orders-grid{display:flex;flex-wrap:wrap;gap:8px}.order-chip{display:flex;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:8px;padding:8px 11px;background:var(--bg-elev);min-width:150px}.order-chip-top{display:flex;align-items:center;gap:6px}.order-chip-kind{font-family:var(--mono);font-size:10.5px;font-weight:700}.order-chip-kind.entry{color:var(--acc)}.order-chip-kind.sl{color:var(--neg)}.order-chip-kind.tp{color:var(--pos)}.order-chip-px{font-family:var(--mono);font-size:13px;font-weight:600}.order-chip-meta{font-size:10.5px;color:var(--muted)}.trigger-info{font-family:var(--mono);font-size:10.5px;color:var(--muted);overflow-wrap:anywhere}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.filters select,.filters input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:6px 10px;color:var(--fg);font-family:inherit;font-size:12px;outline:none}.filters select:focus,.filters input:focus{border-color:var(--acc)}.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:10px 14px}.pager span{font-size:11.5px;color:var(--muted)}.mode-pill{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;letter-spacing:.04em}.mode-pill.live{background:oklch(from var(--neg) l c h / .15);color:var(--neg)}.mode-pill.paper{background:oklch(from var(--acc) l c h / .15);color:var(--acc)}.stars{color:var(--warn);font-size:11px;letter-spacing:1px}.log-view{font-family:var(--mono);font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow-y:auto;background:var(--bg);border-radius:8px;padding:12px;color:var(--fg-dim)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.theme-swatches{display:flex;gap:8px;flex-wrap:wrap}.theme-swatch{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg-elev2);border-radius:8px;padding:8px 12px;cursor:pointer;color:var(--fg-dim);font-family:inherit;font-size:12px;font-weight:500}.theme-swatch.active{border-color:var(--acc);color:var(--fg)}.toast-stack{position:fixed;right:16px;bottom:16px;z-index:1000;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:10px;background:var(--bg-elev2);border:1px solid var(--border-strong);box-shadow:0 8px 28px #00000059;font-size:12.5px;color:var(--fg);animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-icon{font-weight:700;line-height:1.3;flex-shrink:0}.toast-text{flex:1;min-width:0;overflow-wrap:anywhere}.toast-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:11px;padding:0 2px;flex-shrink:0}.toast-close:hover{color:var(--fg)}.toast-success{border-color:oklch(from var(--pos) l c h / .45)}.toast-success .toast-icon{color:var(--pos)}.toast-error{border-color:oklch(from var(--neg) l c h / .45)}.toast-error .toast-icon{color:var(--neg)}.toast-warn{border-color:oklch(from var(--warn) l c h / .45)}.toast-warn .toast-icon{color:var(--warn)}.toast-info{border-color:oklch(from var(--acc) l c h / .45)}.toast-info .toast-icon{color:var(--acc)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px;animation:toast-in .15s ease-out}.modal{width:100%;max-width:440px;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:12px;padding:20px;box-shadow:0 20px 60px #00000080}.modal-title{margin:0 0 10px;font-size:15px;font-weight:700;letter-spacing:-.01em}.modal-body{font-size:12.5px;color:var(--fg-dim);line-height:1.5}.modal-body b{color:var(--fg)}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.spinner{display:inline-block;width:11px;height:11px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.refresh-control{display:flex;align-items:center;gap:4px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:2px 2px 2px 8px}.refresh-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--fg-dim);font-family:inherit;font-size:11.5px;padding:4px;outline:none;cursor:pointer}.refresh-control select option{background:var(--bg-elev);color:var(--fg)}.refresh-control .icon-btn{width:26px;height:26px;border-radius:6px}.refresh-control.live .refresh-dot{width:6px;height:6px;border-radius:50%;background:var(--pos);animation:pulse 2s infinite}.refresh-dot{width:6px;height:6px;border-radius:50%;background:var(--mut)}.inline-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elev2);border:1px solid var(--border);border-radius:6px;color:var(--fg);padding:3px 6px;font-family:inherit;font-size:11.5px;outline:none;cursor:pointer}.inline-select:hover{border-color:var(--border-strong)}.inline-select:disabled{opacity:.45;cursor:not-allowed}::selection{background:oklch(from var(--acc) l c h / .3);color:var(--fg)}input,textarea{caret-color:var(--acc)}:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:3px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline-offset:0;outline-width:1px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--bg);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}[dir=rtl] .mono,[dir=rtl] td.num,[dir=rtl] th.num,[dir=rtl] .log-view{direction:ltr}[dir=rtl] th.num,[dir=rtl] td.num{text-align:right}[dir=rtl] .log-view{text-align:left}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px 24px;padding-bottom:14px}.filter-block{display:flex;flex-direction:column;gap:7px;min-width:0}.filter-lbl{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.filter-lbl em{font-style:normal;text-transform:none;letter-spacing:0;opacity:.75}.seg-tabs.wrap{flex-wrap:wrap}.chip-row{display:flex;flex-wrap:wrap;gap:5px}.chip-row.scroll{max-height:108px;overflow-y:auto;padding-right:4px}.chip{display:inline-flex;align-items:baseline;gap:5px;padding:4px 8px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:6px;color:var(--fg-dim);font-family:var(--mono);font-size:10.5px;cursor:pointer}.chip:hover{border-color:var(--border-strong);color:var(--fg)}.chip.on{background:oklch(from var(--acc) l c h / .16);border-color:oklch(from var(--acc) l c h / .55);color:var(--fg)}.chip-sub{color:var(--muted);font-size:9.5px}.chip.on .chip-sub{color:var(--acc)}.chip-search{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elev2);border:1px solid var(--border);border-radius:6px;padding:5px 9px;color:var(--fg);font-family:inherit;font-size:12px;outline:none}.chip-search:focus{border-color:var(--acc)}.filter-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;border-top:1px solid var(--border)}.filter-actions input{flex:1 1 200px;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:7px 11px;color:var(--fg);font-family:inherit;font-size:13px;outline:none}.filter-actions input:focus{border-color:var(--acc)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--bg-elev2);color:var(--fg)}.btn.xs{padding:3px 8px;font-size:11px;border-radius:6px}a.btn.xs{text-decoration:none;display:inline-flex;align-items:center}.row-actions{display:flex;gap:5px;justify-content:flex-end;white-space:nowrap}.pill.mut{background:oklch(from var(--mut) l c h / .18);color:var(--fg-dim)}.topbar-scope{flex-shrink:0}.topbar-scope button{padding:4px 9px}.locale-control{display:flex;align-items:center;gap:4px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;padding:3px 4px 3px 8px;color:var(--muted);flex-shrink:0}.locale-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--fg-dim);font-family:inherit;font-size:11.5px;padding:3px 2px;outline:none;cursor:pointer;max-width:96px}.locale-control select option{background:var(--bg-elev);color:var(--fg)}@media(max-width:900px){.topbar-scope{display:none}}@media(max-width:560px){.locale-control svg{display:none}.locale-control select{max-width:64px}}.monitor-rule{margin:0 0 16px;max-width:78ch;color:var(--fg-dim);font-size:12.5px;line-height:1.6}.tbl-foot{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0;padding:10px 14px 12px;border-top:1px solid var(--border);font-size:11.5px;color:var(--muted)}.deposit-note{white-space:nowrap}.deposit-note.dim{white-space:normal;flex:1 1 100%}
