:root{color-scheme:dark;--bg: #0a0f1a;--bg-2: #0f1728;--panel: rgba(16, 24, 40, .78);--line: rgba(148, 163, 184, .24);--line-soft: rgba(148, 163, 184, .14);--text: #e5ecff;--muted: #9fb1cf;--brand: #4f9cf9;--brand-2: #22d3ee;--accent: var(--brand);--brand-solid: #2563eb;--brand-solid-hover: #1d4ed8;--danger-solid: #dc2626;--danger-solid-hover: #b91c1c;--ok: #34d399;--warn: #f59e0b;--err: #fb7185;--cached: #7c8aa5;--appbar-h: 48px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 18px;--device-cols: 28px minmax(118px, 1.25fr) minmax(70px, .75fr) minmax(70px, .75fr) minmax(112px, 1.25fr) minmax(64px, .7fr) 76px minmax(56px, .7fr)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--fs-md);line-height:1.45;background:radial-gradient(1200px 600px at 10% -20%,#142742 0%,transparent 60%),radial-gradient(1000px 800px at 110% 0%,#1b1d3a 0%,transparent 65%),var(--bg);color:var(--text);-webkit-text-size-adjust:100%}html{scroll-padding-top:calc(var(--appbar-h) + 8px);scrollbar-color:rgba(148,163,184,.35) transparent}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}input,textarea{caret-color:var(--brand)}input[type=checkbox]{accent-color:var(--brand)}::placeholder{color:var(--muted);opacity:.85}::selection{background:#4f9cf961;color:#fff}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.err-text{color:var(--err)}a{color:inherit;text-decoration:none}.page{display:block;min-height:100vh}.appbar{position:sticky;top:0;z-index:50;height:var(--appbar-h);border-bottom:1px solid var(--line);background:#0a0f1aeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.appbar-row{display:flex;align-items:center;gap:16px;height:100%;padding:0 20px}.brand{flex:0 0 auto;font-size:var(--fs-lg);font-weight:800;letter-spacing:.2px}.appnav{display:flex;align-items:center;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.appnav::-webkit-scrollbar{display:none}.appnav a{flex:0 0 auto;padding:6px 10px;border-radius:8px;color:var(--muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;transition:color .15s ease,background-color .15s ease}.appnav a:hover{color:var(--text);background:#ffffff0d}.appbar-signout{margin-left:auto;flex:0 0 auto}.content{padding:12px 20px 32px;min-width:0;overflow-x:hidden;overflow-x:clip}.status-strip{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0 2px 12px;color:var(--muted);font-size:var(--fs-sm)}.status-strip strong{color:var(--text);font-weight:600}.sections{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.section-shell{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;overflow:clip;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 32px #0003}.section-head{padding:10px 16px;border-bottom:1px solid var(--line)}.section-head h2{margin:0;font-size:var(--fs-xl);line-height:1.3}.section-head p{margin:4px 0 0;max-width:80ch;color:var(--muted);font-size:var(--fs-sm)}.section-body{padding:12px 16px 16px}.controls-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.devices-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.devices-toolbar .devices-search{flex:1 1 260px;min-width:0}.devices-toolbar .select{flex:0 1 auto;width:auto;min-width:0}.devices-toolbar-actions{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.id-picker{display:flex;align-items:center;gap:8px;margin-bottom:8px}.id-picker .id-select{flex:0 0 auto;width:auto;max-width:320px}.id-picker .id-chip-row{flex:1 1 auto;min-width:0;margin-bottom:0}.id-picker-note{font-size:var(--fs-sm);align-self:center}.ids-summary{display:flex;flex-wrap:wrap;gap:4px 18px;margin-bottom:6px;font-size:var(--fs-sm)}.ids-msg{margin:0 0 8px;font-size:var(--fs-sm)}.ids-table{margin-top:8px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.ids-table>.ids-msg{margin:0;padding:8px 10px}.ids-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(140px,1.2fr) minmax(170px,1.5fr) minmax(150px,1.4fr) 112px 84px;align-items:center;gap:8px;min-height:38px;padding:3px 10px;border-bottom:1px solid var(--line-soft);font-size:var(--fs-sm)}.ids-row:last-child{border-bottom:0}.ids-row:not(.ids-head):hover{background:#ffffff08}.ids-head{min-height:32px;background:#0c121ffa;color:var(--muted);font-size:var(--fs-xs);font-weight:700;border-bottom:1px solid var(--line)}.ids-row>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ids-id,.ids-status{display:flex;align-items:center;gap:2px}.ids-lock{margin-left:4px}.ids-row .ids-keep,.ids-row .ids-view{min-height:30px}.ids-keep{justify-self:start;min-height:28px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:var(--fs-xs);font-weight:700;white-space:nowrap;cursor:pointer}.ids-keep.on{border-color:#34d399b3;background:#34d39929;color:var(--ok)}.ids-keep:disabled,.ids-keep[aria-disabled=true],.ids-view:disabled{opacity:.5;cursor:not-allowed}.ids-unit{display:none}@media(max-width:960px){.ids-row{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;row-gap:2px;padding:7px 10px}.ids-row.ids-head{min-height:32px;padding:2px 10px;column-gap:16px}.ids-row.ids-head>span{display:none}.ids-row:after{content:"";order:4;flex:0 0 100%;height:0}.ids-row.ids-head:after{content:none}.ids-id{order:1;flex:0 0 auto}.ids-status{order:2;flex:0 0 auto;display:block}.ids-proxy{order:3;flex:1 1 0;text-align:right}.ids-machines{order:5;flex:1 1 0}.ids-keep{order:6;flex:0 0 auto}.ids-view{order:7;flex:0 0 auto}.ids-row .ids-keep,.ids-row .ids-view{min-height:36px}.ids-unit{display:inline}.ids-shared{display:none}}.id-context{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:2px 2px 10px;color:var(--muted);font-size:var(--fs-sm)}.id-context strong{color:var(--text)}.id-context-selected,.id-context-selected strong{color:var(--warn)}.controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label,.field{display:grid;gap:5px;color:var(--muted);font-size:var(--fs-sm)}.field-label{color:var(--muted)}.field-hint{color:var(--muted);font-size:var(--fs-xs)}.input,.select{width:100%;border-radius:8px;border:1px solid var(--line);padding:6px 10px;min-height:34px;background:#080d18d1;color:var(--text);font-size:var(--fs-md)}.input:hover,.select:hover{border-color:#94a3b866}.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.id-chip-row{flex-wrap:wrap;overflow-x:visible;padding-bottom:0;row-gap:6px}.id-chip-row .chip{flex:0 1 auto;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.id-chip-wrap{position:relative;display:inline-flex;max-width:100%}.id-chip-wrap .chip-error{border-color:#fb718573}.chip-keep{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:4px;border-radius:999px;background:var(--ok);color:#06281b;font-size:10px;font-weight:800;line-height:1;vertical-align:1px}.chip-proxy-dead,.chip-init-stuck{margin-left:6px;padding:1px 6px;border-radius:6px;background:var(--err);color:#1a0b10;font-size:11px;font-weight:700;letter-spacing:.02em}.proxy-alert{border:1px solid var(--err);border-radius:12px;padding:10px 12px;background:#fb71851f;color:var(--text);font-size:13px}.proxy-alert strong{color:var(--err)}.proxy-status{font-size:12px;font-weight:700;white-space:nowrap}.proxy-status.ok{color:var(--ok)}.proxy-status.dead{color:var(--err)}.proxy-status.unknown{color:var(--muted);font-weight:400}.proxy-status-detail{display:block;color:var(--muted);font-size:12px;font-weight:400}.door-panel{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#94a3b80f}.door-panel.on{border-color:#34d3998c;background:#34d39912}.door-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.door-title{margin:0;font-size:14px}.door-badge{padding:2px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.02em}.door-badge.on{border-color:#34d399b3;background:#34d39929;color:var(--ok)}.door-count{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.door-help,.door-msg{margin:0;font-size:13px;line-height:1.5}.door-help{max-width:96ch;color:var(--muted)}.door-nodes{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px}.door-proxy,.door-proxy-form{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}.door-proxy-label{font-weight:700}.door-proxy-value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.door-proxy-form .input{flex:1 1 260px;min-width:0;max-width:520px}.door-node.ok{color:var(--ok)}.door-node.bad{color:var(--err);font-weight:700}.door-hosts{display:flex;flex-wrap:wrap;gap:8px}.door-host{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 8px;border:1px solid var(--line);border-radius:10px;padding:5px 8px;font-size:12px}.door-host-name{overflow-wrap:anywhere}.door-host-count{color:var(--muted);font-variant-numeric:tabular-nums}.btn.small{border-radius:7px;padding:4px 10px;min-height:28px;font-size:var(--fs-xs)}.door-cell{display:inline-flex;align-items:center;gap:7px;min-height:28px;cursor:pointer}.door-cell input{width:17px;height:17px;margin:0;accent-color:var(--ok);cursor:pointer}.door-cell input:disabled{cursor:not-allowed}.door-state{color:var(--muted);font-size:12px}td .door-state{white-space:nowrap}.door-state.on{color:var(--ok);font-weight:700}.chip-delete-btn{position:absolute;top:50%;right:5px;width:14px;height:14px;border-radius:999px;border:1px solid rgba(248,113,113,.7);background:#7f1d1db8;color:#fecaca;font-size:13px;line-height:1;display:grid;place-items:center;cursor:pointer;z-index:2;transform:translateY(-50%);padding:0}.chip-delete-btn:hover{background:#ef4444f2;color:#fff}.chip-delete-btn:disabled{cursor:not-allowed;opacity:.65}.inline-check{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:#080d18d1;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}.inline-check input[type=checkbox]{width:14px;height:14px}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;min-height:28px;border:1px solid var(--line);background:#0c121fb3;color:var(--text);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.chip:hover{border-color:#94a3b880;background:#ffffff0d}.chip.active{border-color:#4f9cf9bf;background:#4f9cf933}.server-toggle-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.server-toggle{min-height:32px;border-radius:8px;border:1px solid var(--line);background:#0c121fb3;color:var(--text);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.server-toggle:hover,.server-toggle.active{border-color:#4f9cf9b3;background:#4f9cf92e}.server-toggle:disabled{cursor:not-allowed;opacity:.65}.dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex:0 0 auto;margin-right:7px}.dot.ok{background:var(--ok)}.dot.warn{background:var(--cached)}.dot.error{background:var(--err)}.toast{position:fixed;top:calc(var(--appbar-h) + 8px);right:16px;z-index:9999;min-width:220px;max-width:380px;border-radius:10px;padding:10px 14px;border:1px solid var(--line);box-shadow:0 10px 28px #00000059;font-size:var(--fs-md);text-align:left;cursor:pointer;animation:toast-in .16s ease-out}.toast-ok{background:#064e3beb;border-color:#10b98199;color:#d6ffef}.toast-warn{background:#78350ff0;border-color:#f59e0bb3;color:#fff3d6}.toast-error{background:#7f1d1df0;border-color:#fb7185bf;color:#ffe1e6}.global-busy-overlay{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:18px;background:#03071294;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:wait}.global-busy-card{display:flex;align-items:center;gap:14px;width:min(420px,100%);border:1px solid rgba(59,130,246,.45);border-radius:18px;padding:16px 18px;background:#0f172af0;box-shadow:0 22px 60px #00000073;color:var(--text)}.global-busy-card strong{display:block;margin-bottom:3px}.global-busy-card p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.global-busy-text{flex:1 1 auto;min-width:0}.busy-stop{flex:0 0 auto;cursor:pointer}.global-busy-spinner{width:30px;height:30px;flex:0 0 auto;border-radius:999px;border:3px solid rgba(148,163,184,.3);border-top-color:var(--brand-2);animation:busy-spin .8s linear infinite}@keyframes busy-spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.btn{border:1px solid transparent;background:var(--brand-solid);color:#fff;border-radius:8px;padding:7px 14px;min-height:34px;cursor:pointer;font-size:var(--fs-md);font-weight:700;transition:background-color .15s ease,border-color .15s ease}.btn:hover:not(:disabled){background:var(--brand-solid-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{background:transparent;border-color:var(--line);color:var(--text)}.btn.ghost:hover:not(:disabled){background:#ffffff0f;border-color:#94a3b873}.btn.danger{background:var(--danger-solid)}.btn.danger:hover:not(:disabled){background:var(--danger-solid-hover)}.btn.block{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions-row{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.action-submit-row{position:sticky;bottom:0;z-index:4;margin:0 -10px;padding:8px 10px;background:#0a0f1a;box-shadow:0 -10px 12px -6px #0a0f1af2}.device-table-wrap{border:1px solid var(--line);border-radius:10px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:min(780px,max(320px,calc(100vh - 260px)))}.vhead{position:sticky;top:0;z-index:3;background:#0c121ffa;color:var(--muted);font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;border-bottom:1px solid var(--line);padding:8px 10px;min-width:640px}.vhead>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.th-btn{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;padding:0;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-check{display:flex;align-items:center;justify-content:center}.row-check input[type=checkbox]{width:14px;height:14px}.vgrid-main{display:grid;grid-template-columns:var(--device-cols);gap:8px;align-items:center}.device-table,.simple-table{width:100%;border-collapse:collapse;min-width:940px}.logs-table{min-width:1740px}.logs-table td:nth-child(7){white-space:nowrap}.logs-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.logs-search{min-width:min(420px,100%);flex:1}.logs-toolbar .select{width:auto;flex:0 1 auto}.logs-count{color:var(--muted);font-size:12px}.log-status{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line);padding:3px 8px;font-size:12px;text-transform:capitalize}.log-status-success{color:#86efac;border-color:#86efac59;background:#16a34a1f}.log-status-failed{color:#fca5a5;border-color:#fca5a559;background:#dc26261f}.logs-error{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-button{border:0;background:transparent;color:var(--accent);cursor:pointer;padding:0;font:inherit}.log-detail-card{margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#0f172ab8}.log-detail-title{font-weight:700;margin-bottom:10px}.log-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.log-detail-item{display:grid;gap:3px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#02061759}.log-detail-item span{color:var(--muted);font-size:12px}.log-detail-item strong{overflow-wrap:anywhere;font-size:13px}.device-table th,.simple-table th,.simple-table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line)}.simple-table{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.simple-table th{color:var(--muted);font-size:var(--fs-xs);font-weight:700}.simple-table td .btn{min-height:28px;padding:3px 10px;font-size:var(--fs-xs);border-radius:7px}.device-table.head-only th{position:sticky;top:0;background:#0c121ffa;z-index:2}.vrow{position:absolute;top:0;left:0;width:100%;min-width:640px;display:grid;grid-template-columns:var(--device-cols);gap:8px;padding:0 10px;border-bottom:1px solid var(--line-soft);align-items:center;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.vrow>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.vrow.vrow-main{grid-template-columns:var(--device-cols)}.cell-vm{font-weight:600}.type-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:1px 6px;border-radius:5px;background:#475569;color:#0a0f1a;font-size:11px;font-weight:800;letter-spacing:.3px;line-height:1.45;vertical-align:middle}.type-uvip{background:#dd7642}.type-gvip{background:#d99341}.type-kvip{background:#6552de;color:#fff}.type-mvip{background:#30add0}.type-svip{background:#ff2e2e}.type-other{background:#94a3b840;color:var(--text)}.type-server{margin-left:2px}.android-badge{display:inline-flex;align-items:center;padding:0 5px;border:1px solid rgba(79,156,249,.55);border-radius:5px;color:var(--brand);font-size:11px;font-weight:700;line-height:1.4;white-space:nowrap;vertical-align:middle}.hold-badge{display:inline-flex;align-items:center;margin-right:5px;padding:0 5px;border:1px solid rgba(52,211,153,.6);border-radius:5px;color:var(--ok);font-size:11px;font-weight:700;line-height:1.4;white-space:nowrap;vertical-align:middle}.hold-badge.hold-c{border-color:#f59e0ba6;color:var(--warn)}.hold-late{margin-bottom:8px;padding:6px 10px;border:1px solid rgba(245,158,11,.55);border-radius:10px;color:var(--warn);font-size:var(--fs-sm)}.panel-hold{margin-top:4px;font-size:var(--fs-sm);overflow-wrap:anywhere}.hold-dialog-list{margin:0;padding-left:18px;display:grid;gap:4px;max-height:40vh;overflow:auto;font-size:var(--fs-sm);overflow-wrap:anywhere}.hold-reasons{display:flex;flex-wrap:wrap;gap:8px}.hold-dialog-foot{display:flex;justify-content:flex-end}.share-on{color:var(--ok);font-weight:600}.urgent-3d{color:var(--warn)}.urgent-1d{color:var(--err);font-weight:600}.mobile-card{position:absolute;top:0;left:6px;right:6px;width:auto;border:1px solid var(--line);border-radius:10px;background:#080d18a8;display:grid;align-content:center;gap:4px;padding:6px 10px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.mobile-line{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}.mobile-line>*{min-width:0;overflow:hidden;text-overflow:ellipsis}.mobile-line>:last-child{margin-left:auto}.mobile-line input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;margin:0}.mobile-meta{color:var(--muted);font-size:var(--fs-xs);gap:10px}.mobile-meta>*{flex:0 0 auto}.mobile-meta>.mobile-type{flex:0 1 auto}.mobile-meta>:last-child{margin-left:0}.copy-mini{border-color:#4f9cf98c;background:#4f9cf924}.pool-pill{display:inline-flex;align-items:center;justify-content:center;min-width:54px;border-radius:999px;border:1px solid var(--line);padding:1px 7px;font-size:11px;font-weight:700;letter-spacing:.2px}.pool-clean{background:#34d39924;border-color:#34d39973;color:#b7f6de}.pool-dirty{background:#f59e0b24;border-color:#f59e0b73;color:#ffe6b1}.pool-init-stuck{background:#fb718529;border-color:#fb718599;color:#ffd1da;white-space:nowrap}.init-stuck-alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;padding:8px 12px}.panel-init-stuck{border:1px solid rgba(251,113,133,.6);border-radius:8px;padding:6px 10px;background:#fb71851f;font-size:var(--fs-sm)}.panel-init-stuck strong{color:var(--err)}.vrow-click{background:#080d1873;border-top:0;border-left:0;border-right:0;color:var(--text);cursor:pointer;text-align:left}.vrow-click:hover{background:#4f9cf914}.vrow-click.selected{background:#4f9cf92e;outline:1px solid rgba(79,156,249,.55);outline-offset:-1px}.vrow-click:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.mobile-card.vrow-click{border:1px solid var(--line)}.row-actions{display:flex;gap:6px;flex-wrap:nowrap;justify-content:flex-end}.mini{border-radius:7px;border:1px solid var(--line);background:#0c121fe6;color:var(--text);padding:4px 9px;min-height:30px;font-size:var(--fs-sm);cursor:pointer;white-space:nowrap}.mini:hover:not(:disabled){border-color:#4f9cf999}.mini:disabled{opacity:.55;cursor:not-allowed}.ok-text{color:var(--ok);font-weight:600}.warn-text{color:var(--warn);font-weight:700}.simple-table-wrap,.state-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#0a0f1a73}.simple-table-wrap{padding:0}.simple-table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.skeleton-wrap{display:grid;gap:10px}.skeleton-line{height:14px;border-radius:8px;background:linear-gradient(90deg,#94a3b82e,#94a3b814,#94a3b82e);background-size:220% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-state{border-color:#fb718573}.action-msg{margin:0;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:#0a0f1a8c;font-size:var(--fs-sm);overflow-wrap:anywhere}.empty-state{border-style:dashed;color:var(--muted)}.pager{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:10px}.overlay{position:fixed;inset:0;background:#05080e9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:center;justify-content:center;padding:12px}.dialog{width:min(560px,100%);border:1px solid var(--line);border-radius:16px;background:#0c121ff2;padding:14px;display:grid;gap:10px}.dialog h3{margin:0}.dialog p{margin:0;color:var(--muted)}.ops-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,28vw,350px);gap:12px;align-items:start}.ops-main{min-width:0}.ops-side{display:grid;align-content:start;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#080d18b8;position:sticky;top:calc(var(--appbar-h) + 8px);max-height:calc(100vh - var(--appbar-h) - 16px);min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.ops-side h3{margin:0}.panel-head{display:grid;gap:3px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}.panel-vm{font-size:var(--fs-lg);font-weight:700;line-height:1.25;overflow-wrap:anywhere}.panel-sub,.panel-meta{color:var(--muted);font-size:var(--fs-xs);overflow-wrap:anywhere}.copy-field{appearance:none;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.copy-mark{display:inline-flex;align-items:center;flex:none;color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:0;text-transform:none;white-space:nowrap}.is-copied .copy-mark{color:var(--ok)}.is-copy-failed .copy-mark{color:var(--err)}.copy-ico{display:block}.panel-vm.copy-field{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin:0;padding:4px 8px;border:1px solid var(--line-soft);border-radius:8px;background:#ffffff08;color:var(--text);font-size:var(--fs-xl);font-weight:700;line-height:1.25}.panel-vm-text{min-width:0;overflow-wrap:anywhere}.panel-vm.copy-field:hover{border-color:#94a3b880;background:#ffffff0f}.panel-ids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0}.id-box{display:grid;align-content:start;gap:2px;min-width:0;margin:0;padding:7px 9px 8px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text)}.id-box-label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.id-box-value{font-size:20px;font-weight:800;line-height:1.2;overflow-wrap:anywhere}.id-box-foot{color:var(--muted);font-size:var(--fs-xs)}.id-owner{border-color:#4f9cf999;background:#4f9cf921}.id-owner .id-box-label,.id-owner .id-box-value{color:#a5cdff}button.id-owner:hover{background:#4f9cf938}.id-share{border-color:#34d39999;background:#34d3991c}.id-share .id-box-label,.id-share .id-box-value,.id-share-btn{color:#6ee7b7}button.id-share:hover{background:#34d39933}.id-share.is-empty{border-color:var(--line-soft);background:transparent}.id-share.is-empty .id-box-label,.id-share.is-empty .id-box-value{color:var(--muted)}.id-share.is-empty .id-box-value{font-size:var(--fs-md);font-weight:600}.id-share-btn{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;margin:0;padding:2px 4px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:var(--fs-xl);font-weight:800;line-height:1.25}.id-share-btn:hover{background:#34d39929}.copy-field.is-copied{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}.copy-field.is-copy-failed{border-color:var(--err)}.panel-facts{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;font-size:var(--fs-sm)}.panel-back{justify-self:start;font-size:var(--fs-sm)}.action-picker{display:flex;flex-wrap:wrap;gap:5px}.action-picker .action-choice{flex:1 1 auto;width:auto;min-height:30px;padding:4px 10px}.action-choice.is-danger{color:#fecaca}.action-choice.is-danger.active{border-color:#f87171cc;background:#dc262638;color:#fff}.action-picker .action-more-toggle{flex:0 0 auto;border-style:dashed;color:var(--muted)}.action-picker .action-break{flex-basis:100%;height:0}.local-copy-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.local-copy-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.panel-warn,.panel-target{margin:0;border:1px solid rgba(245,158,11,.55);border-radius:8px;padding:7px 9px;background:#f59e0b1a;color:#fde7b4;font-size:var(--fs-sm);line-height:1.4}.panel-warn strong,.panel-target strong{color:#fff3d6}.panel-more{border-top:1px solid var(--line-soft);padding-top:8px}.panel-more summary{color:var(--muted);font-size:var(--fs-sm);font-weight:600;cursor:pointer;list-style-position:inside}.panel-more summary:hover{color:var(--text)}.panel-more[open] summary{margin-bottom:8px}.mobile-action-bar{position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(79,156,249,.5);border-radius:12px;padding:8px 8px 8px 12px;background:#0c121ff7;box-shadow:0 6px 16px #0000008c;font-size:var(--fs-sm)}.mobile-action-bar span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-side .state-card p{margin:4px 0;color:var(--muted);overflow-wrap:anywhere;word-break:break-word}.ops-side .state-card,.ops-side .chip-row,.ops-side .actions-row{min-width:0}.ops-side .actions-row{justify-content:flex-start;flex-wrap:wrap}.action-section{min-width:0}.action-grid{display:grid;grid-template-columns:1fr;gap:6px;min-width:0}.action-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.action-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.action-grid.four-col{grid-template-columns:repeat(2,minmax(0,1fr))}.action-choice,.panel-tool-btn{min-height:32px;width:100%;border-radius:8px;border:1px solid var(--line);background:#0c121fb8;color:var(--text);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;white-space:nowrap}.action-choice:hover,.panel-tool-btn:hover{border-color:#94a3b880;background:#ffffff0d}.action-choice.active,.panel-tool-btn.active{border-color:#4f9cf9cc;background:#4f9cf938}.import-inline{display:grid;gap:8px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#080d186b}.panel-tool-btn:disabled,.action-choice:disabled{cursor:not-allowed;opacity:.65}.panel-tool-btn.danger{border-color:#f871718c;color:#fecaca}.panel-tool-btn.danger:hover{border-color:#f87171d9;background:#f8717129}.local-issue-card{border-color:#f871716b}.mini-title{margin:0 0 8px;font-size:var(--fs-sm)}.feed-row{display:grid;grid-template-columns:10px 64px 86px 1fr 1.4fr;gap:8px;align-items:center;font-size:var(--fs-xs);padding:5px 0;border-top:1px solid var(--line-soft)}.feed-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:1100px){.controls-grid,.ops-layout{grid-template-columns:1fr}.ops-side{position:static;max-height:none;overflow:visible}}@media(max-width:640px){:root{--appbar-h: 44px}.appbar-row{gap:8px;padding:0 8px 0 10px}.brand{font-size:var(--fs-md)}.appnav a{padding:8px}.appnav{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent);mask-image:linear-gradient(to right,#000 82%,transparent)}.content{padding:8px 8px 72px}html{scroll-padding-bottom:76px}.status-strip{gap:2px 12px;margin-bottom:8px;font-size:var(--fs-xs)}.sections{gap:10px}.section-shell{border-radius:12px}.section-head{padding:8px 10px}.section-head h2{font-size:var(--fs-lg)}.section-body{padding:10px}.input,.select{min-height:40px;font-size:16px}.inline-check{min-height:40px}.devices-toolbar .devices-search{flex-basis:100%}.devices-toolbar .select{flex:1 1 40%}.devices-toolbar-actions{width:100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.devices-toolbar-actions::-webkit-scrollbar{display:none}.controls-row{gap:8px;margin-bottom:8px}.id-picker{flex-wrap:wrap}.id-picker .id-select{flex:1 1 100%;max-width:none}.id-chip-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity;scrollbar-width:none}.id-chip-row::-webkit-scrollbar{display:none}.id-chip-row .chip,.id-chip-row .id-chip-wrap{flex:0 0 auto;scroll-snap-align:start}.chip{min-height:34px}.mini{min-height:36px}.id-context{font-size:var(--fs-xs)}.actions-row{gap:6px;margin-top:8px}.btn{min-height:40px}.btn.small{min-height:34px}.inline-check{width:100%;justify-content:flex-start;border-radius:8px;padding:0 9px;font-size:var(--fs-sm)}.ops-side{padding:10px;gap:8px}.state-card{padding:10px}.state-card p,.ops-side .state-card p{margin:2px 0;font-size:var(--fs-sm)}.device-table-wrap{max-height:58vh}.toast{top:calc(var(--appbar-h) + 6px);right:8px;left:8px;min-width:0;max-width:none;padding:9px 12px;font-size:var(--fs-sm)}.action-picker .action-choice{flex:1 1 30%;min-height:40px}.action-picker .action-more-toggle{flex:0 0 auto}.panel-tool-btn{white-space:normal;height:auto;min-height:40px;padding:6px 8px;line-height:1.25}.server-toggle{min-height:40px}.action-grid.three-col,.action-grid.four-col{grid-template-columns:repeat(2,minmax(0,1fr))}.feed-row{grid-template-columns:1fr;gap:2px}.feed-row>span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.chip{white-space:normal;overflow-wrap:anywhere;max-width:100%}.id-chip-row .chip{white-space:nowrap;max-width:none}.section-head p,.state-card p,.ops-side .state-card p,.action-msg,.logs-count{overflow-wrap:anywhere}.simple-table-wrap,.device-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}
