:root{--void: #0d0f12;--surface: #191d23;--surface-2: #21262e;--surface-3: #2a313b;--edge: #2f3741;--edge-strong: #46505d;--lit: rgba(255, 255, 255, .06);--ink: #f2f5f9;--ink-2: #b3bdc9;--ink-3: #7e8896;--ink-4: #5d6673;--steel: #5195e8;--steel-hi: #6eaaff;--steel-dim: rgba(81, 149, 232, .15);--up: #34d17f;--up-dim: rgba(52, 209, 127, .14);--hold: #f0b03c;--hold-dim: rgba(240, 176, 60, .14);--down: #f2685c;--down-dim: rgba(242, 104, 92, .14);--r-xs: 2px;--r-sm: 3px;--r-md: 4px;--r-pill: 999px;--mono: "Berkeley Mono", ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--dur: .13s;--ease: cubic-bezier(.4, 0, .2, 1);--dur-fast: 90ms;--dur-view: .18s;--dur-enter: .14s;--ease-std: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--enter-rise: 4px;--lift: 0 1px 0 var(--lit) inset, 0 8px 20px rgba(0, 0, 0, .4)}:root[data-theme=light]{--void: #eceef1;--surface: #ffffff;--surface-2: #f5f7f9;--surface-3: #e8ecf1;--edge: #d7dde5;--edge-strong: #b4bfcc;--lit: rgba(255, 255, 255, .9);--ink: #10151c;--ink-2: #46525f;--ink-3: #6f7b89;--ink-4: #8c97a4;--steel: #1a6cc4;--steel-hi: #0f5aa9;--steel-dim: rgba(26, 108, 196, .12);--up: #12854e;--up-dim: rgba(18, 133, 78, .12);--hold: #96690f;--hold-dim: rgba(150, 105, 15, .12);--down: #bb3427;--down-dim: rgba(187, 52, 39, .12);--lift: 0 1px 0 var(--lit) inset, 0 6px 16px rgba(16, 21, 28, .09)}*{box-sizing:border-box}body{margin:0;background:var(--void);color:var(--ink);font:13.5px/1.55 var(--sans);font-feature-settings:"tnum" 1,"cv05" 1;-webkit-font-smoothing:antialiased}::selection{background:var(--steel-dim)}::placeholder{color:var(--ink-3)}button{background:var(--surface-2);border:1px solid var(--edge);border-radius:var(--r-sm);padding:7px 13px;color:var(--ink-2);font:inherit;font-weight:500;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur-fast) var(--ease-std)}button:hover:not(:disabled){background:var(--surface-3);border-color:var(--edge-strong);color:var(--ink)}button:active:not(:disabled){background:var(--edge);transform:translateY(1px)}button:focus-visible{outline:2px solid var(--steel);outline-offset:1px}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--steel);border-color:var(--steel);color:#08131d;font-weight:600}button.primary:hover:not(:disabled){background:#5fabec;border-color:#5fabec;color:#08131d}button.ghost{background:transparent;border-color:transparent;color:var(--ink-3)}button.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--edge);color:var(--ink)}button.danger{background:transparent;border-color:var(--edge);color:var(--down)}button.danger:hover:not(:disabled){background:var(--down-dim);border-color:var(--down);color:var(--down)}button.link{background:none;border:none;padding:0;color:var(--ink);font-weight:600;font-size:13.5px;text-align:left}button.link:hover{color:var(--steel);background:none}input,select,textarea{background:var(--void);border:1px solid var(--edge);border-radius:var(--r-xs);padding:7px 10px;color:var(--ink);font:inherit;transition:border-color var(--dur) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--steel)}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:15px;height:15px;padding:0;border:1px solid var(--edge-strong);border-radius:var(--r-xs);background:var(--void);cursor:pointer;position:relative;flex:0 0 15px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}input[type=checkbox]:hover{border-color:var(--steel)}input[type=checkbox]:checked{background:var(--steel);border-color:var(--steel)}input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #08131d;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus-visible{outline:2px solid var(--steel);outline-offset:1px}select{cursor:pointer}a{color:var(--steel);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);font-size:12px;background:var(--void);border:1px solid var(--edge);border-radius:var(--r-xs);padding:1px 5px}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh;transition:grid-template-columns var(--dur-view) var(--ease-std)}.shell.collapsed{grid-template-columns:60px minmax(0,1fr)}.sidebar{background:var(--surface);border-right:1px solid var(--edge);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;min-width:0;overflow:hidden}.side-brand{display:flex;align-items:center;gap:11px;padding:16px 15px;border-bottom:1px solid var(--edge);cursor:pointer;-webkit-user-select:none;user-select:none}.side-brand img,.side-brand svg{width:30px;height:auto;flex:0 0 30px}.brand-text{font-weight:600;font-size:13.5px;white-space:nowrap;letter-spacing:-.005em}.side-nav{list-style:none;margin:0;padding:8px 0;flex:1;overflow-y:auto;scrollbar-width:thin}.side-nav button{width:100%;display:flex;align-items:center;gap:11px;background:transparent;border:none;border-left:2px solid transparent;border-radius:0;padding:8px 14px;color:var(--ink-3);text-align:left;font-weight:500}.side-nav button:hover{background:var(--surface-2);border-color:transparent;border-left-color:var(--edge-strong);color:var(--ink)}.side-nav button.active{background:var(--surface-2);border-left-color:var(--steel);color:var(--ink);font-weight:600}.ico,.tab-ico,.card-ico{width:16px;display:inline-grid;place-items:center;font-size:12px;opacity:.8}.side-nav .arrow{margin-left:auto;opacity:.5;font-size:9px}.sub-nav{list-style:none;margin:0 0 4px;padding:0}.sub-nav button{padding:6px 14px 6px 30px;font-size:13px}.sub-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sub-empty{padding:6px 14px 6px 30px;color:var(--ink-3);font-size:12px}.dot{width:6px;height:6px;flex:0 0 6px;background:var(--ink-3);opacity:.9}.dot.online{background:var(--up)}.dot.connecting,.dot.reconnecting{background:var(--hold)}.dot.error{background:var(--down)}.side-foot{border-top:1px solid var(--edge);padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}.side-foot button.small{padding:4px 8px;font-size:12px}.logout{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;max-width:100%}.logout-icon,.shell.collapsed .logout-label{display:none}.topbar{display:flex;align-items:center;gap:13px;padding:13px 22px;border-bottom:1px solid var(--edge);background:var(--surface);position:sticky;top:0;z-index:5}.topbar h1{font-size:14.5px;font-weight:600;margin:0;letter-spacing:-.01em}.icon-btn{padding:5px 9px;font-size:14px;background:transparent;border-color:transparent;color:var(--ink-3);display:inline-flex;align-items:center}.icon-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--edge);color:var(--ink)}.live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:4px 9px;border:1px solid var(--edge);border-radius:var(--r-xs)}.live:before{content:"";width:6px;height:6px;border-radius:var(--r-pill);background:var(--ink-3)}.live.on{color:var(--up);border-color:var(--up-dim)}.live.on:before{background:var(--up)}.page{padding:18px 22px 56px;display:flex;flex-direction:column;gap:14px}.card{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-md);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 15px;background:var(--surface-2);border-bottom:1px solid var(--edge)}.card-head h3{font-size:12px;font-weight:600;margin:0;display:flex;align-items:center;gap:8px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2)}.card-actions{display:flex;align-items:center;gap:7px}.card-body{padding:15px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.stat-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--edge)}.stat-line:last-child{border-bottom:none}.stat-label{color:var(--ink-3);font-size:12px}.stat-value{text-align:right;font-family:var(--mono);font-size:13px;font-weight:500;display:flex;align-items:baseline;gap:7px}.stat-line.prose .stat-value{font-family:var(--sans);font-weight:400;color:var(--ink-2);font-size:12.5px}.stat-value .text{font-family:var(--sans);font-weight:400;font-size:12.5px;color:var(--ink-2)}.stat-sub{color:var(--ink-3);font-family:var(--sans);font-weight:400;font-size:11.5px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 22px}.tone-ok{color:var(--up)}.tone-warn{color:var(--hold)}.tone-err{color:var(--down)}.status{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:3px 7px;border-radius:var(--r-xs);border:1px solid var(--edge);color:var(--ink-3);white-space:nowrap}.status.online{color:var(--up);border-color:var(--up-dim);background:var(--up-dim)}.status.connecting,.status.reconnecting{color:var(--hold);border-color:var(--hold-dim);background:var(--hold-dim)}.status.error{color:var(--down);border-color:var(--down-dim);background:var(--down-dim)}.bot-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:10px}.bot-card{background:var(--surface-2);border:1px solid var(--edge);border-radius:var(--r-sm);padding:12px;display:flex;flex-direction:column;gap:9px;transition:border-color var(--dur) var(--ease)}.bot-card:hover{border-color:var(--edge-strong)}.bot-card-head{display:flex;align-items:center;gap:9px}.bot-card-head .status{margin-left:auto}.bot-card-body{display:flex;flex-direction:column;gap:3px;min-height:20px;font-family:var(--mono);font-size:11.5px}.bot-card-foot{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.bot-card-foot button{padding:5px 10px;font-size:12.5px}.hotkey-section{margin:18px 0;padding:14px 0;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}.hotkey-section h3{margin:0 0 5px;font-size:12px;font-weight:600;color:var(--ink-2)}.hotkey-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.hotkey-item{display:inline-flex;gap:3px}.hotkey-form{margin-top:12px}.hotkey-form input:first-child{flex:0 1 170px;min-width:140px}.mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:9px}.mini{background:var(--surface-2);border:1px solid var(--edge);border-radius:var(--r-sm);padding:10px;display:flex;flex-direction:column;gap:7px;transition:border-color var(--dur) var(--ease)}.mini:hover{border-color:var(--steel)}.mini-head{display:flex;align-items:center;gap:8px;font-size:13px}.tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--edge);scrollbar-width:none}.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;padding:9px 14px;color:var(--ink-3);display:flex;align-items:center;gap:7px;white-space:nowrap;font-weight:500;margin-bottom:-1px}.tabs button:hover{background:transparent;color:var(--ink)}.tabs button.active{color:var(--ink);border-bottom-color:var(--steel);font-weight:600}.log-list{max-height:320px;overflow-y:auto;background:var(--void);border:1px solid var(--edge);border-radius:var(--r-xs);padding:9px 11px;font-family:var(--mono);font-size:12px;line-height:1.65;margin-top:10px;scrollbar-width:thin}.log-list.tall{max-height:54vh}.log-list.compact{margin-top:0;border:none;background:transparent;padding:0}.log{display:grid;grid-template-columns:72px 52px 1fr;gap:10px}.log .time{color:var(--ink-3);opacity:.75}.log .lvl{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding-top:2px}.log .lvl.error{color:var(--down)}.log .lvl.warn,.log .lvl.auth{color:var(--hold)}.log .lvl.chat{color:var(--steel)}.log .text{word-break:break-word;color:var(--ink)}.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.row input,.row select{min-height:40px}.row input{flex:1;min-width:170px}.add-row{padding-bottom:15px;border-bottom:1px solid var(--edge);margin-bottom:15px}.filter-row input{max-width:220px;flex:0 1 220px}.row input.port{flex:0 0 92px;min-width:92px;font-family:var(--mono)}.form-col{display:flex;flex-direction:column;gap:13px;max-width:430px}.form-col label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-3)}.plain-list{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:7px;color:var(--ink-2)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:7px 10px;border-bottom:1px solid var(--edge);background:var(--surface-2)}td{padding:10px;border-bottom:1px solid var(--edge);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}td.actions{text-align:right;white-space:nowrap}td.actions button{margin-left:6px;padding:5px 10px;font-size:12.5px}.bar{height:5px;background:var(--void);border:1px solid var(--edge);border-radius:var(--r-xs);overflow:hidden;min-width:90px}.bar>span{display:block;height:100%;background:var(--steel)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:12px}.metric-cell{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--edge);border-radius:var(--r-sm);background:var(--surface-2)}.metric-head{display:flex;align-items:center;gap:8px}.metric-nums{display:grid;grid-template-columns:repeat(2,1fr);gap:5px 14px;font-family:var(--mono);font-size:11.5px}.metric-nums>div{display:flex;justify-content:space-between;gap:8px}.metric-nums .k{color:var(--ink-3);font-family:var(--sans)}.switch{position:relative;display:inline-block;width:34px;height:18px;flex:0 0 34px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-pill);background:var(--void);border:1px solid var(--edge);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.switch span:before{content:"";position:absolute;width:12px;height:12px;left:2px;top:2px;border-radius:var(--r-pill);background:var(--ink-3);transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}.switch input:checked+span{background:var(--up-dim);border-color:var(--up)}.switch input:checked+span:before{transform:translate(16px);background:var(--up)}.banner{margin:16px 26px 0;background:var(--down-dim);border:1px solid var(--down);border-radius:var(--r-sm);padding:12px 16px;color:var(--ink);cursor:pointer}.toasts{position:fixed;top:16px;right:20px;z-index:60;display:flex;flex-direction:column;gap:9px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:220px;max-width:400px;padding:11px 14px;border-radius:var(--r-sm);border:1px solid var(--edge-strong);background:var(--surface-2);color:var(--ink);box-shadow:0 8px 24px #00000073;cursor:pointer;animation:toast-in var(--dur-enter) var(--ease-out)}.toast.out{animation:toast-out .14s var(--ease-std) forwards;pointer-events:none}.toast.ok{border-color:var(--up)}.toast.err{border-color:var(--down)}.toast-mark{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border-radius:var(--r-pill);font-size:11px;font-weight:700}.toast.ok .toast-mark{background:var(--up-dim);color:var(--up);border:1px solid var(--up)}.toast.err .toast-mark{background:var(--down-dim);color:var(--down);border:1px solid var(--down)}.toast-text{font-size:13.5px;line-height:1.45}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}@keyframes toast-out{to{opacity:0;transform:translateY(-4px)}}@keyframes enter{0%{opacity:0;transform:translateY(var(--enter-rise))}}.view-enter{animation:enter var(--dur-enter) var(--ease-out) both}.stagger{animation:enter var(--dur-enter) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 22ms)}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.banner.auth{background:var(--hold-dim);border-color:var(--hold);cursor:default}.auth-stack{display:flex;flex-direction:column;gap:9px}.auth-lead{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.auth-codes{display:flex;flex-wrap:wrap;gap:7px}.auth-code{display:inline-flex;align-items:center;gap:7px;padding:4px 9px;border:1px solid var(--edge-strong);border-radius:var(--r-xs);background:var(--void)}.banner code{border-color:var(--edge-strong);font-size:13px;letter-spacing:.05em}.muted{color:var(--ink-3)}.small{font-size:11.5px}.error{color:var(--down)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{padding:6px 0}.empty-state{display:flex;flex-direction:column;gap:5px;padding:22px 2px;max-width:460px}.empty-title{margin:0;font-size:13.5px;font-weight:600;color:var(--ink-2)}.empty-state p{margin:0}.empty-hint{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);margin-top:5px!important}.empty-state button{align-self:flex-start;margin-top:9px}.skeleton{display:flex;flex-direction:column;gap:11px;padding:7px 0}.sk-line{display:block;border-radius:var(--r-xs);background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:sk-sweep 1.4s linear infinite}.sk-nav{padding:14px 16px;gap:15px}@keyframes sk-sweep{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.sk-line{animation:none}}.spin{display:inline-block;width:11px;height:11px;margin-right:7px;vertical-align:-1px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:var(--r-pill);animation:spin .62s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}button.busy{opacity:.75;cursor:progress}@media(prefers-reduced-motion:reduce){.spin{animation-duration:1.6s}}.back{align-self:flex-start;padding:5px 10px;font-size:12.5px;background:var(--surface);border:1px solid var(--edge);color:var(--ink-2)}.back:hover:not(:disabled){border-color:var(--edge-strong);color:var(--ink)}.center{display:flex;align-items:center;justify-content:center;min-height:100vh}.chipRow{display:flex;flex-wrap:wrap;gap:5px}.chip{font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;padding:3px 8px;border-radius:var(--r-xs);border:1px solid var(--edge);background:transparent;color:var(--ink-3)}.chip.on{color:var(--steel);border-color:var(--steel);background:var(--steel-dim)}.login{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-md);padding:30px;width:340px;display:flex;flex-direction:column;gap:14px}.login h1{font-size:17px;margin:0 0 2px;letter-spacing:-.015em}.login .brandline{display:flex;align-items:center;gap:10px;margin-bottom:6px}.login .brandline img{width:30px;height:auto}:root[data-theme=light] .login .brandline img,:root[data-theme=light] .side-brand img{filter:none}.login label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-3)}*{scrollbar-color:var(--edge-strong) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:var(--edge-strong);border-radius:var(--r-pill)}*::-webkit-scrollbar-track{background:transparent}@media(max-width:860px){.shell,.shell.collapsed{grid-template-columns:56px minmax(0,1fr)}.side-brand{padding:14px 0;justify-content:center}.side-brand img{width:26px;flex-basis:26px}.side-nav .arrow{display:none}.side-nav button{justify-content:center;padding:10px 0;gap:0}.side-nav button .ico{font-size:14px}.sub-nav button{padding:9px 0}.sub-name,.sub.empty,.sub-empty{display:none}.side-foot{flex-direction:column;gap:6px;padding:10px 4px;align-items:stretch}.side-foot .ellipsis,.logout-label{display:none}.logout-icon{display:inline-flex}.page,.topbar{padding-left:13px;padding-right:13px}.banner{margin-left:13px;margin-right:13px}.toasts{left:13px;right:13px;top:12px}.toast{min-width:0;max-width:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.skeleton,.spinner{animation:sk-sweep 2.4s linear infinite!important}.spinner{animation:spin 1.6s linear infinite!important}}:root{--void: #100d16;--surface: #1a1522;--surface-2: #211a2c;--surface-3: #2b2238;--edge: #352b43;--edge-strong: #59472f;--lit: rgba(255, 255, 255, .035);--ink: #f5f1f8;--ink-2: #c5bacf;--ink-3: #93869f;--ink-4: #71647c;--steel: #d5a52f;--steel-hi: #f0c44e;--steel-dim: rgba(213, 165, 47, .14);--up: #64c78a;--up-dim: rgba(100, 199, 138, .14);--hold: #e7bd55;--hold-dim: rgba(231, 189, 85, .14);--down: #ed716d;--down-dim: rgba(237, 113, 109, .14);--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--lift: 0 1px 0 var(--lit) inset, 0 8px 22px rgba(0, 0, 0, .28)}:root[data-theme=light]{--void: #f1edf5;--surface: #fbf9fd;--surface-2: #f3eef8;--surface-3: #eae2f1;--edge: #ded4e8;--edge-strong: #b7974e;--lit: rgba(255, 255, 255, .9);--ink: #21182a;--ink-2: #50445a;--ink-3: #776b81;--ink-4: #94899d;--steel: #aa7b13;--steel-hi: #805a06;--steel-dim: rgba(170, 123, 19, .12);--up: #12854e;--up-dim: rgba(18, 133, 78, .12);--hold: #96690f;--hold-dim: rgba(150, 105, 15, .12);--down: #bb3427;--down-dim: rgba(187, 52, 39, .12);--lift: 0 1px 0 var(--lit) inset, 0 6px 16px rgba(31, 20, 40, .09)}body{min-height:100vh;background:radial-gradient(ellipse at 50% 0,rgba(91,60,115,.2),transparent 55%),var(--void)}.shell,.shell.collapsed{display:flex;flex-direction:column;width:min(100%,1040px);min-height:100vh;margin:0 auto;background:var(--void);border-inline:1px solid var(--edge);transition:none}.sidebar{position:relative;z-index:8;top:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;width:100%;height:auto;overflow:visible;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:0;border-bottom:1px solid var(--steel);box-shadow:0 1px #d5a52f1f}.side-brand{grid-column:1;grid-row:1;min-height:48px;padding:9px 16px;border:0}.side-brand img,.side-brand svg{width:25px;flex-basis:25px}.brand-text{color:var(--ink);font-weight:700;letter-spacing:.035em;text-transform:uppercase}.side-nav{grid-column:1 / -1;grid-row:2;display:flex;flex:none;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;overflow:visible;padding:2px 12px 11px}.side-nav>li{position:relative;flex:0 0 auto}.side-nav button{width:auto;min-height:31px;justify-content:center;gap:6px;padding:5px 10px;border:1px solid var(--edge-strong);border-left:1px solid var(--edge-strong);border-radius:var(--r-xs);color:var(--steel-hi);font-size:10px;font-weight:700;letter-spacing:.045em;text-align:center;text-transform:uppercase}.side-nav button:hover,.side-nav button.active{background:var(--steel-dim);border-color:var(--steel);color:var(--ink)}.side-nav button.active{box-shadow:0 0 0 1px #d5a52f21 inset}.side-nav .arrow{margin-left:1px}.side-nav .ico{width:auto}.sub-nav{position:absolute;top:calc(100% + 5px);left:0;z-index:12;min-width:190px;max-height:55vh;overflow-y:auto;padding:5px;background:var(--surface);border:1px solid var(--steel);border-radius:var(--r-sm);box-shadow:var(--lift)}.sub-nav button{width:100%;justify-content:flex-start;border-color:transparent;color:var(--ink-2);letter-spacing:0;text-align:left;text-transform:none}.sub-empty{padding:8px 10px}.side-foot{grid-column:2;grid-row:1;align-self:center;border:0;padding:6px 12px}.side-foot .ellipsis{text-align:right}.content{flex:1}.topbar{position:relative;top:auto;min-height:49px;padding:8px 18px;background:var(--surface);border-bottom:1px solid var(--edge)}.topbar h1{flex:1;color:var(--ink);font-size:13px;font-weight:750;letter-spacing:.055em;text-align:center;text-transform:uppercase}.icon-btn{color:var(--steel-hi)}.page{width:min(100%,960px);margin:0 auto;padding:20px clamp(13px,3vw,28px) 56px;gap:16px}.card{background:linear-gradient(145deg,var(--surface),rgba(16,13,22,.72));border-color:var(--edge);border-radius:var(--r-sm);box-shadow:0 5px 16px #00000029}.card-head{justify-content:center;min-height:39px;padding:9px 13px;background:transparent;border-bottom-color:var(--steel)}.card-head h3{color:var(--ink);font-size:11.5px;font-weight:750;letter-spacing:.05em}.card-head:has(.card-actions){justify-content:space-between}.card-body{padding:clamp(12px,2.5vw,18px)}.bot-card,.mini,.metric-cell{background:linear-gradient(145deg,var(--surface-2),var(--surface));border-color:var(--edge);border-radius:var(--r-sm)}.bot-card{border-left:2px solid var(--steel)}.mini:hover,.bot-card:hover{border-color:var(--steel)}button,input,select,textarea{border-radius:var(--r-xs)}button{border-color:var(--edge-strong)}button.primary{background:var(--steel);border-color:var(--steel);color:#211600}button.primary:hover:not(:disabled){background:var(--steel-hi);border-color:var(--steel-hi);color:#211600}button.link:hover{color:var(--steel-hi)}input:focus,select:focus,textarea:focus,input[type=checkbox]:focus-visible,button:focus-visible{outline-color:var(--steel-hi)}a{color:var(--steel-hi)}th{background:var(--surface-2)}td,th{border-bottom-color:var(--edge)}.log-list{background:#0c0911b8}.login{background:linear-gradient(145deg,var(--surface-2),var(--surface));border-color:var(--steel);border-radius:var(--r-md);box-shadow:var(--lift)}.banner.auth{border-color:var(--hold)}@media(max-width:640px){.shell,.shell.collapsed{width:100%;border-inline:0}.sidebar{grid-template-columns:minmax(0,1fr) auto}.side-nav{justify-content:flex-start;gap:5px;padding-inline:9px}.side-nav button{min-height:29px;padding:4px 7px;font-size:9px}.shell.collapsed .side-nav .arrow{display:none}.shell.collapsed .side-nav button{width:31px;padding:5px}.side-foot{padding-inline:7px}.page{padding-top:14px}.card-head:has(.card-actions){align-items:flex-start;flex-wrap:wrap}.card-actions{flex-wrap:wrap;justify-content:center}.log{grid-template-columns:58px 42px minmax(0,1fr);gap:6px}}.shell,.shell.collapsed{display:grid;grid-template-columns:272px minmax(0,1fr);width:100%;max-width:none;min-height:100vh;margin:0;background:var(--void);border:0;border-inline:0;transition:grid-template-columns var(--dur-view) var(--ease-std)}.shell.collapsed{grid-template-columns:68px minmax(0,1fr)}.sidebar{position:sticky;top:0;z-index:40;display:flex;flex-direction:column;grid-template-columns:none;grid-template-rows:none;width:100%;height:100vh;min-width:0;overflow:hidden;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:0;border-right:1px solid var(--steel);box-shadow:none}.side-head{display:flex;align-items:center;flex:0 0 auto;border-bottom:1px solid var(--edge)}.side-brand{flex:1 1 auto;min-width:0;min-height:58px;padding:11px 14px;border:0;gap:10px}.side-brand img,.side-brand svg{width:26px;flex:0 0 26px}.side-close{display:none;margin:0 10px 0 0;padding:6px 10px;background:transparent;border-color:transparent;color:var(--ink-3);font-size:14px;line-height:1}.side-close:hover:not(:disabled){background:var(--surface-3);border-color:var(--edge);color:var(--ink)}.side-nav{display:flex;flex-direction:column;flex:0 0 auto;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;gap:2px;grid-column:auto;grid-row:auto;overflow:visible;padding:10px}.side-nav>li{position:static;flex:none}.side-nav button{width:100%;min-height:42px;justify-content:flex-start;gap:11px;padding:9px 11px;border:1px solid transparent;border-left:2px solid transparent;border-radius:var(--r-xs);color:var(--ink-2);font-size:13px;font-weight:600;letter-spacing:0;text-align:left;text-transform:none}.side-nav button:hover{background:var(--surface-3);border-color:transparent;color:var(--ink)}.side-nav button.active{background:var(--steel-dim);border-color:transparent;border-left-color:var(--steel);color:var(--ink);box-shadow:none}.side-nav .ico{width:18px;flex:0 0 18px;font-size:14px;opacity:.9}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-bots{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:8px 10px;border-top:1px solid var(--edge);overflow:hidden}.side-bots-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 9px;color:var(--ink-3);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.side-bots-count{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:0;color:var(--ink-3)}.bot-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;overflow-y:auto;scrollbar-width:thin}.bot-nav button{width:100%;min-height:40px;display:flex;align-items:center;gap:11px;padding:9px 11px;background:transparent;border:1px solid transparent;border-left:2px solid transparent;border-radius:var(--r-xs);color:var(--ink-2);font-weight:500;text-align:left}.bot-nav button:hover{background:var(--surface-3);border-color:transparent;color:var(--ink)}.bot-nav button.active{background:var(--surface-3);border-left-color:var(--steel);color:var(--ink);font-weight:600}.bot-nav .dot{width:8px;height:8px;flex:0 0 8px;border-radius:var(--r-pill)}.bot-nav li{display:flex;align-items:stretch;gap:2px}.bot-nav li>button{flex:1 1 auto;min-width:0}.bot-nav .drag-handle{flex:0 0 24px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-xs);color:var(--ink-3);font-size:13px;line-height:1;cursor:grab;opacity:.5;touch-action:none;user-select:none;-webkit-user-select:none}.bot-nav .drag-handle:hover,.bot-nav .drag-handle:focus-visible{background:var(--surface-3);color:var(--ink-2);opacity:1;outline:none}.bot-nav li.dragging{opacity:.65}.bot-nav li.dragging .drag-handle{cursor:grabbing}.shell.collapsed .bot-nav .drag-handle{display:none}.side-bots .sub-empty{padding:6px 8px}.side-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-start;align-self:stretch;grid-column:auto;grid-row:auto;padding:10px 12px;border-top:1px solid var(--edge)}.side-foot button.small{color:var(--steel-hi)}.shell.collapsed .brand-text,.shell.collapsed .nav-label,.shell.collapsed .sub-name,.shell.collapsed .logout-label,.shell.collapsed .side-bots-head{display:none}.shell.collapsed .side-brand{justify-content:center;padding:11px 0}.shell.collapsed .side-nav,.shell.collapsed .side-bots{padding:10px 8px}.shell.collapsed .side-nav button,.shell.collapsed .bot-nav button{justify-content:center;gap:0;padding:9px 0}.shell.collapsed .side-foot{justify-content:center;padding:10px 0}.shell.collapsed .logout-icon{display:inline-flex}.content{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;min-height:56px;padding:9px 16px;gap:12px;background:var(--surface);border-bottom:1px solid var(--edge)}.topbar h1{flex:1;text-align:left;font-size:14px;font-weight:750;letter-spacing:.02em;text-transform:none}.page{width:100%;max-width:1120px;margin:0 auto;padding:18px clamp(13px,2.4vw,26px) 72px;gap:16px}.backdrop{display:none}@media(max-width:860px){.shell,.shell.collapsed{display:block;width:100%;min-height:100vh;transition:none}.sidebar{position:fixed;top:0;left:0;z-index:60;width:min(84vw,300px);height:100vh;height:100dvh;transform:translate(-104%);transition:transform var(--dur-view) var(--ease-std);border-right:1px solid var(--steel);box-shadow:0 16px 40px #00000080}.sidebar.open{transform:translate(0)}.side-close{display:inline-flex}.sidebar.open .brand-text,.sidebar.open .nav-label,.sidebar.open .sub-name,.sidebar.open .logout-label{display:inline}.sidebar.open .sub-empty{display:block}.sidebar.open .side-nav button,.sidebar.open .bot-nav button{justify-content:flex-start;gap:11px;padding:10px 12px}.sidebar.open .bot-nav .drag-handle{flex-basis:34px;font-size:15px;opacity:.7}.backdrop.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#08050c94}.topbar{min-height:52px;padding:8px 12px;gap:8px}.topbar h1{font-size:13.5px}.page{padding:14px 13px 80px}.banner{margin-inline:13px}}@media(max-width:640px){.tiles,.bot-cards,.metric-grid,.mini-grid,.stat-grid{grid-template-columns:1fr}.card-head{flex-wrap:wrap}.card-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.card-actions button{flex:1 1 auto}.bot-card-foot button{flex:1 1 auto;min-height:40px}input,select,textarea{min-height:42px;font-size:16px}button{min-height:38px}.row input,.row select{flex:1 1 100%;min-width:0}.row input.port{flex:1 1 130px}.form-col{max-width:none}.card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.login{width:calc(100vw - 32px);max-width:360px;padding:24px}.center{padding:16px}.tabs button{padding:11px 12px}.toasts{top:10px}}
