:root{--font-display: "Archivo", "Arial Narrow", sans-serif;--font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--radius: 10px;--radius-sm: 6px;--bg: #0A0B0A;--bg-secondary: #0D0F0E;--card: #111312;--panel: #111312;--panel-sunk: #0D0F0E;--hover: #151817;--selected: #1A1E1D;--text: #F1EFE9;--text-secondary: #B9BCB6;--muted: #8C918D;--faint: #6E746F;--accent: #3DD62A;--accent-hover: #5CE34B;--accent-contrast: #0A0B0A;--border: #23282B;--border-soft: #1A1E1F;--border-strong: #3A4248;--granite: #3A4248;--input: #0D0F0E;--danger: #FF5A4E;--danger-hover: #FF7A70;--success: #3DD62A;--warning: #F2B33D;--info: #B9BCB6;--ok-fg: #6EE05C;--ok-bg: #0D1A0A;--ok-line: #1F4A17;--bad-fg: #FF8A7E;--bad-bg: #1E0D0B;--bad-line: #5A2520;--warn-fg: #F2B33D;--warn-bg: #1E1708;--warn-line: #5C4719;--idle-fg: #B9BCB6;--idle-bg: #151817;--idle-line: #2A3034;--tier-staff-fg: #F1EFE9;--tier-staff-bg: #3A4248;--tier-tech-fg: #F1EFE9;--tier-tech-line: #8C918D;--tier-admin-fg: #0A0B0A;--tier-admin-bg: #F1EFE9;--halftone: #39FF14;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow: 0 1px 3px rgba(0,0,0,.35);--shadow-md: 0 4px 10px rgba(0,0,0,.35);--shadow-lg: 0 12px 24px rgba(0,0,0,.45);--shadow-xl: 0 20px 40px rgba(0,0,0,.5);color-scheme:dark}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #F7F7F5;--bg-secondary: #F0F0ED;--card: #FFFFFF;--panel: #FFFFFF;--panel-sunk: #F7F7F5;--hover: #F0F0ED;--selected: #E9E9E5;--text: #0A0B0A;--text-secondary: #3A4248;--muted: #5C625E;--faint: #7A807B;--accent: #2FA815;--accent-hover: #258A10;--accent-contrast: #0A0B0A;--border: #E2E2DE;--border-soft: #ECECE8;--border-strong: #3A4248;--granite: #3A4248;--input: #FFFFFF;--danger: #C9362B;--danger-hover: #A82B22;--success: #2FA815;--warning: #A86F00;--info: #3A4248;--ok-fg: #1E7A0B;--ok-bg: #E4F2DD;--ok-line: #A9D69A;--bad-fg: #A82B22;--bad-bg: #F8E2DF;--bad-line: #E6ABA4;--warn-fg: #8A5B00;--warn-bg: #F7EBD0;--warn-line: #E3C784;--idle-fg: #3A4248;--idle-bg: #F0F0ED;--idle-line: #E2E2DE;--tier-staff-fg: #F1EFE9;--tier-staff-bg: #3A4248;--tier-tech-fg: #0A0B0A;--tier-tech-line: #3A4248;--tier-admin-fg: #F1EFE9;--tier-admin-bg: #0A0B0A;--halftone: #2FA815;--shadow-sm: 0 1px 2px rgba(10,11,10,.06);--shadow: 0 1px 3px rgba(10,11,10,.08);--shadow-md: 0 4px 10px rgba(10,11,10,.08);--shadow-lg: 0 12px 24px rgba(10,11,10,.1);--shadow-xl: 0 20px 40px rgba(10,11,10,.12);color-scheme:light}}:root[data-theme=light]{--bg: #F7F7F5;--bg-secondary: #F0F0ED;--card: #FFFFFF;--panel: #FFFFFF;--panel-sunk: #F7F7F5;--hover: #F0F0ED;--selected: #E9E9E5;--text: #0A0B0A;--text-secondary: #3A4248;--muted: #5C625E;--faint: #7A807B;--accent: #2FA815;--accent-hover: #258A10;--accent-contrast: #0A0B0A;--border: #E2E2DE;--border-soft: #ECECE8;--border-strong: #3A4248;--granite: #3A4248;--input: #FFFFFF;--danger: #C9362B;--danger-hover: #A82B22;--success: #2FA815;--warning: #A86F00;--info: #3A4248;--ok-fg: #1E7A0B;--ok-bg: #E4F2DD;--ok-line: #A9D69A;--bad-fg: #A82B22;--bad-bg: #F8E2DF;--bad-line: #E6ABA4;--warn-fg: #8A5B00;--warn-bg: #F7EBD0;--warn-line: #E3C784;--idle-fg: #3A4248;--idle-bg: #F0F0ED;--idle-line: #E2E2DE;--tier-staff-fg: #F1EFE9;--tier-staff-bg: #3A4248;--tier-tech-fg: #0A0B0A;--tier-tech-line: #3A4248;--tier-admin-fg: #F1EFE9;--tier-admin-bg: #0A0B0A;--halftone: #2FA815;--shadow-sm: 0 1px 2px rgba(10,11,10,.06);--shadow: 0 1px 3px rgba(10,11,10,.08);--shadow-md: 0 4px 10px rgba(10,11,10,.08);--shadow-lg: 0 12px 24px rgba(10,11,10,.1);--shadow-xl: 0 20px 40px rgba(10,11,10,.12);color-scheme:light}:root[data-theme=dark]{--bg: #0A0B0A;--bg-secondary: #0D0F0E;--card: #111312;--panel: #111312;--panel-sunk: #0D0F0E;--hover: #151817;--selected: #1A1E1D;--text: #F1EFE9;--text-secondary: #B9BCB6;--muted: #8C918D;--faint: #6E746F;--accent: #3DD62A;--accent-hover: #5CE34B;--accent-contrast: #0A0B0A;--border: #23282B;--border-soft: #1A1E1F;--border-strong: #3A4248;--granite: #3A4248;--input: #0D0F0E;--danger: #FF5A4E;--danger-hover: #FF7A70;--success: #3DD62A;--warning: #F2B33D;--info: #B9BCB6;--ok-fg: #6EE05C;--ok-bg: #0D1A0A;--ok-line: #1F4A17;--bad-fg: #FF8A7E;--bad-bg: #1E0D0B;--bad-line: #5A2520;--warn-fg: #F2B33D;--warn-bg: #1E1708;--warn-line: #5C4719;--idle-fg: #B9BCB6;--idle-bg: #151817;--idle-line: #2A3034;--tier-staff-fg: #F1EFE9;--tier-staff-bg: #3A4248;--tier-tech-fg: #F1EFE9;--tier-tech-line: #8C918D;--tier-admin-fg: #0A0B0A;--tier-admin-bg: #F1EFE9;--halftone: #39FF14;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow: 0 1px 3px rgba(0,0,0,.35);--shadow-md: 0 4px 10px rgba(0,0,0,.35);--shadow-lg: 0 12px 24px rgba(0,0,0,.45);--shadow-xl: 0 20px 40px rgba(0,0,0,.5);color-scheme:dark}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5}.nav{display:flex;gap:12px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.nav-header,.nav-links{display:flex;align-items:center;gap:12px}.nav a{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:8px;border:1px solid transparent;transition:all .2s ease;font-weight:500}.nav a:hover{color:var(--text);background:#ffffff0d}.nav a.active{color:var(--text);border-color:var(--border);background:#ffffff14;box-shadow:var(--shadow-sm)}.nav-logo{max-height:28px!important;max-width:auto!important;height:auto;width:auto;object-fit:contain;margin-right:14px;display:inline-block}.nav .nav-status{color:var(--muted)!important}.container{max-width:1600px;margin:32px auto;padding:0 20px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:var(--shadow);transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;background:var(--card);border:none;border-radius:0;overflow:hidden}th,td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left}thead th{background:#ffffff0a}.btn{background:var(--accent);color:var(--accent-contrast);border:1px solid transparent;border-radius:8px;padding:8px 16px;cursor:pointer;text-decoration:none;display:inline-block;font-size:.9rem;font-family:inherit;text-align:center;line-height:1.5;font-weight:600;transition:all .2s ease;box-shadow:var(--shadow-sm)}.btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn.red{background:var(--danger);color:#fff}.btn.red:hover:not(:disabled){background:var(--danger-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:.85rem}.input,input,select,textarea{max-width:100%;box-sizing:border-box;background:var(--input);color:var(--text);border:2px solid var(--border);border-radius:8px;padding:10px 14px;outline:none;transition:all .2s ease;font-family:inherit}.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #37ff1426}.login-wrap{display:grid;place-items:center;min-height:calc(50vh - 60px)}.login-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;box-sizing:border-box;box-shadow:var(--shadow-lg)}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.login-logo{width:64px;height:64px;margin-bottom:16px}.login-title{margin-bottom:24px;font-size:1.5rem;color:var(--text)}.theme-toggle{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:6px 10px;cursor:pointer}.icon-toggle{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:9999px;background:transparent;color:var(--muted);cursor:pointer;transition:all .2s ease}.icon-toggle:hover{background:#ffffff14;color:var(--text);border-color:var(--accent);box-shadow:var(--shadow-sm)}.icon-toggle svg{width:18px;height:18px;display:block;transition:transform .2s ease}.icon-toggle:hover svg{transform:rotate(20deg)}.status-indicator:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--accent)!important}.status-indicator:active{transform:translateY(0)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding-right:24px;transition:background .2s ease}th.sortable:hover{background:var(--bg-secondary)}th.sortable:after{content:"⇅";position:absolute;right:8px;opacity:.3;font-size:.9em}th.sortable.sort-asc:after{content:"↑";opacity:1;color:var(--accent)}th.sortable.sort-desc:after{content:"↓";opacity:1;color:var(--accent)}.empty-state{text-align:center;padding:48px 24px;color:var(--muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-title{font-size:1.25em;font-weight:600;color:var(--text);margin-bottom:8px}.empty-state-description{font-size:.95em;line-height:1.6;max-width:400px;margin:0 auto 24px}.empty-state-action{margin-top:16px}.status{display:inline-flex;align-items:center;gap:6px}.status-dot{width:10px;height:10px;border-radius:9999px;border:1px solid var(--border)}.status-online{background:#22c55e}.status-offline{background:#ef4444}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.8rem;font-weight:600;box-shadow:var(--shadow-sm);transition:all .2s ease}.badge.online{background:#10b981;color:#fff}.badge.offline{background:#64748b;color:#fff}.badge:hover{box-shadow:var(--shadow)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:var(--card);border:1px solid var(--border);padding:32px;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow:auto;box-shadow:var(--shadow-xl)}body{font-size:16px;line-height:1.6}h1{font-size:1.75rem;line-height:1.3}h2{font-size:1.4rem;line-height:1.35}h3{font-size:1.15rem;line-height:1.4}h4{font-size:1rem;line-height:1.4}small{font-size:.875rem}code{font-size:.9em}.nav-spacer{flex:1}.grid{display:grid;gap:20px}.mobile-menu-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;padding:0;transition:all .2s ease}.mobile-menu-toggle:hover{background:#ffffff0d;border-color:var(--accent)}.mobile-menu-toggle svg{width:24px;height:24px}.mobile-only{display:none}.desktop-only{display:initial}.mobile-card-item{background:var(--input);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.mobile-card-item-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:8px;gap:8px}.mobile-card-item-title{font-weight:700;font-size:1rem;color:var(--text)}.mobile-card-item-row{font-size:.9rem;color:var(--muted);margin-bottom:4px}.mobile-card-item-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.config-panel{font-size:inherit}.config-grid{display:grid;gap:8px;font-size:inherit}.config-row{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:start}.config-row strong{color:var(--muted);font-weight:600}.config-row span{color:var(--text)}.config-row code{padding:2px 6px;background:var(--bg);border-radius:4px}.vlan-mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.vlan-mode-selector{font-size:1rem;padding:16px}.vlan-mode-card{padding:16px}.vlan-mode-title{font-size:1.05rem}.vlan-mode-description{font-size:.9rem}.vlan-mode-note{font-size:.85rem}@media (max-width: 768px){.container{padding:0 12px;margin:16px auto}body{font-size:14px}h1{font-size:1.4rem}h2{font-size:1.2rem}h3{font-size:1rem}h4{font-size:.95rem}.node-config-panel{font-size:12px!important;max-width:100%!important;overflow-x:hidden!important}.node-config-panel h3{font-size:14px!important}.node-config-panel h4{font-size:13px!important}.node-config-panel h5{font-size:12px!important}.node-config-panel .btn{font-size:11px!important;padding:6px 10px!important}.node-config-panel .badge,.node-config-panel code{font-size:10px!important}.node-config-panel .config-panel{padding:10px!important;font-size:inherit!important}.node-config-panel .config-grid,.node-config-panel .config-row,.node-config-panel .config-row strong,.node-config-panel .config-row span,.node-config-panel .config-row code{font-size:inherit!important}.node-config-panel .vlan-mode-selector{padding:8px!important}.node-config-panel .vlan-mode-grid{grid-template-columns:1fr!important;gap:8px!important}.node-config-panel .vlan-mode-card{padding:10px!important;max-width:100%!important;min-width:0!important;width:100%!important;box-sizing:border-box!important;font-size:inherit!important}.node-config-panel .vlan-mode-card *{font-size:inherit!important}.node-config-panel .vlan-mode-selector{max-width:100%!important;width:100%!important;box-sizing:border-box!important;overflow:hidden!important;font-size:inherit!important}.node-config-panel .vlan-mode-selector *{font-size:inherit!important}.nav{flex-wrap:wrap;padding:10px 12px;position:relative}.mobile-menu-toggle{display:inline-flex}.mobile-only{display:initial}.desktop-only{display:none!important}.nav-links{display:none;width:100%;flex-direction:column;gap:4px;margin-top:8px}.nav-links.open{display:flex}.nav a,.nav button.btn{padding:12px;font-size:.95rem;width:100%;text-align:left}.nav-header{display:flex;align-items:center;gap:12px;width:100%}.nav-logo{max-height:24px!important}.hide-mobile{display:none!important}.card{padding:12px;border-radius:10px}.table-wrapper{margin:-12px;width:calc(100% + 24px);border-radius:0;border-left:none;border-right:none}.card:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:600px;font-size:.9rem}th,td{padding:8px 6px;white-space:nowrap;font-size:.9rem}td:has(.node-config-panel){white-space:normal!important;overflow:visible!important;max-width:100vw!important;padding:8px!important}table .btn{padding:6px 10px;font-size:.85rem}input,select,textarea{font-size:16px;max-width:100%;box-sizing:border-box}.card>div:has(input,select),.card>div>div:has(input,select){flex-wrap:wrap}.card input[type=text],.card input[type=number],.card select,.card textarea{min-width:0}.card>div>div:has(button),td>div:has(button){display:flex;flex-wrap:wrap;gap:6px}.btn{padding:8px 14px}.container>div:first-child:has(.card){grid-template-columns:1fr!important}.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0;padding:12px;font-size:.8rem!important}.modal-content h3{font-size:1rem!important;margin-bottom:12px!important}.modal-content input[type=text],.modal-content input[type=number],.modal-content textarea,.modal-content select{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.modal-content>div{margin-bottom:12px}.modal-content h3{font-size:1.2em}@media (max-width: 640px){th:last-child,td:last-child{padding:6px 4px}}}@media (max-width: 480px){body{font-size:13px}.node-config-panel{font-size:10px!important;max-width:100%!important;overflow-x:hidden!important}.node-config-panel *{font-size:inherit!important}.node-config-panel h3{font-size:12px!important;margin-bottom:8px!important}.node-config-panel h4{font-size:11px!important;margin-bottom:6px!important}.node-config-panel h5{font-size:10px!important;margin:0 0 4px!important}.node-config-panel .badge{font-size:8px!important;padding:2px 4px!important}.node-config-panel .btn{font-size:9px!important;padding:4px 8px!important}.node-config-panel code{font-size:8px!important;padding:1px 3px!important}.node-config-panel strong{font-size:9px!important}.node-config-panel label{font-size:10px!important}.node-config-panel p{font-size:9px!important;margin:4px 0!important}.node-config-panel span,.node-config-panel div{font-size:9px!important}.node-config-panel .config-panel{padding:6px!important;margin-bottom:8px!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important;font-size:inherit!important}.node-config-panel .config-grid,.node-config-panel .config-row,.node-config-panel .config-row strong,.node-config-panel .config-row span,.node-config-panel .config-row code{font-size:inherit!important}.node-config-panel .vlan-mode-selector{padding:5px!important;margin-bottom:8px!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important;overflow:hidden!important;font-size:inherit!important}.node-config-panel .vlan-mode-selector *{font-size:inherit!important}.node-config-panel .vlan-mode-grid{grid-template-columns:1fr!important;gap:6px!important;max-width:100%!important;width:100%!important}.node-config-panel .vlan-mode-card{padding:6px!important;max-width:100%!important;min-width:0!important;width:100%!important;box-sizing:border-box!important;font-size:inherit!important}.node-config-panel .vlan-mode-card *{font-size:inherit!important}.node-config-panel input[type=text],.node-config-panel input[type=number],.node-config-panel select{font-size:10px!important;padding:5px 6px!important}.node-config-panel .vlan-mode-title{font-size:10px!important}.node-config-panel .vlan-mode-description{font-size:9px!important}.node-config-panel .vlan-mode-note{font-size:8px!important}h1{font-size:1.4rem}h2{font-size:1.1rem}h3{font-size:.95rem}h4{font-size:.9rem}h5{font-size:.85rem}*{max-font-size:1.4rem!important}.nav{font-size:.9rem}.nav a{padding:5px 7px;font-size:.85rem!important}.btn{padding:7px 12px;font-size:.85rem!important}table{font-size:.8rem}th,td{padding:6px 4px;font-size:.8rem!important}.modal-content>div:has(input),.modal-content>div:has(select),.modal-content>div:has(textarea){margin-bottom:12px!important}.modal-content input,.modal-content select,.modal-content textarea{width:100%!important;box-sizing:border-box}.modal-content{font-size:.75rem!important}.modal-content *{font-size:inherit!important}.modal-content label{font-size:.8rem!important}.modal-content h3{font-size:.95rem!important}.modal-content h4{font-size:.85rem!important}.modal-content h5{font-size:.8rem!important}.modal-content p,.modal-content div,.modal-content span,.modal-content strong{font-size:.75rem!important}.modal-content small,.modal-content code{font-size:.7rem!important}.modal-content>div:has(button){display:flex!important;flex-direction:column!important;gap:8px!important}.modal-content .btn{width:100%;font-size:.85rem!important}.badge{font-size:.7rem!important;padding:3px 8px}p[style*=fontSize],div[style*=fontSize],span[style*=fontSize],strong[style*=fontSize]{font-size:.8rem!important}h4[style*=fontSize],h5[style*=fontSize]{font-size:.85rem!important}code[style*=fontSize]{font-size:.75rem!important}.config-row{grid-template-columns:1fr;gap:4px;padding:6px 0;border-bottom:1px solid var(--border)}.config-row:last-child{border-bottom:none}.config-row strong{font-size:.75rem!important;text-transform:uppercase;letter-spacing:.3px}.config-row span{font-size:.8rem!important}.config-row code{font-size:.7rem!important}.config-panel{padding:10px!important;font-size:.8rem!important}.config-panel h4{font-size:.9rem!important;margin-bottom:8px!important}.config-panel h5{font-size:.85rem!important;margin:0 0 6px!important}.config-panel strong,.config-panel span,.config-panel div{font-size:.75rem!important}.config-panel code{font-size:.7rem!important}.config-panel .badge{font-size:.65rem!important;padding:2px 6px}.vlan-mode-grid{grid-template-columns:1fr;gap:8px}.vlan-mode-selector{padding:8px}.vlan-mode-card{padding:10px}.vlan-mode-title{font-size:.85rem}.vlan-mode-description{font-size:.75rem}.vlan-mode-note{font-size:.7rem}}.toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:var(--shadow-lg);pointer-events:all;animation:slideIn .3s ease-out;min-width:300px}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toast-icon svg{width:100%;height:100%}.toast-message{flex:1;font-size:.95rem;line-height:1.4;color:var(--text)}.toast-close{flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.toast-close:hover{color:var(--text)}.toast-close svg{width:16px;height:16px}.toast-success{border-left:4px solid var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-error .toast-icon{color:var(--danger)}.toast-warning{border-left:4px solid var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left:4px solid var(--info)}.toast-info .toast-icon{color:var(--info)}@media (max-width: 768px){.toast-container{right:16px;left:16px;max-width:none}.toast{min-width:0}}.confirm-modal{max-width:500px}.confirm-modal-header{padding:20px 24px;border-bottom:1px solid var(--border);border-top-left-radius:16px;border-top-right-radius:16px;margin:-32px -32px 0}.confirm-modal-danger{background:#ef44441a;border-left:4px solid var(--danger)}.confirm-modal-warning{background:#f59e0b1a;border-left:4px solid var(--warning)}.confirm-modal-info{background:#3b82f61a;border-left:4px solid var(--info)}.confirm-modal-body{padding:24px 0}.confirm-modal-footer{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border)}@media (max-width: 768px){.confirm-modal{max-width:100%}.confirm-modal-footer{flex-direction:column-reverse}.confirm-modal-footer .btn{width:100%}}.display{font-family:var(--font-display);font-stretch:125%;font-weight:800;text-transform:uppercase;letter-spacing:.005em}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}h1,h2,h3,h4{font-family:var(--font-body);font-weight:600;letter-spacing:0;text-wrap:balance}h2{font-size:1.25rem}h3{font-size:1rem}code{font-family:var(--font-mono);font-size:.9em}a{color:var(--accent)}.shell{display:flex;min-height:100vh;background:var(--bg)}.sidebar{width:240px;flex:none;box-sizing:border-box;padding:20px 14px;display:flex;flex-direction:column;gap:2px;background:var(--bg-secondary);border-right:1px solid var(--border-soft);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 10px 16px;color:var(--text);text-decoration:none}.sidebar-brand img{width:26px;height:26px}.sidebar-brand .display{font-size:17px}.sidebar-brand .mono{margin-left:auto;font-size:11px;color:var(--faint)}.side-group{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);padding:20px 10px 6px}.side-link{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;text-decoration:none}.side-link svg{width:16px;height:16px;flex:none}.side-link:hover{background:var(--hover);color:var(--text)}.side-link.active{background:var(--selected);color:var(--text)}.side-link.active svg{color:var(--accent)}.side-link .count{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--faint)}.side-link .pill{margin-left:auto;padding:0 7px}.side-status{margin-top:auto;padding:14px 10px 2px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:9px;font-size:12px;color:var(--text-secondary)}.side-status div{display:flex;align-items:center;gap:8px}.shell-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-x:clip}.topbar{display:flex;align-items:center;gap:12px;padding:12px 32px;border-bottom:1px solid var(--border-soft);background:var(--bg);position:sticky;top:0;z-index:50}.topbar .spacer{flex:1}.topbar .who{line-height:1.25;text-align:right}.topbar .who div:first-child{font-size:14px}.topbar .who div:last-child{font-size:12px;color:var(--muted)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--granite);color:#f1efe9;display:grid;place-items:center;font-size:12px;font-weight:600;flex:none}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn svg{width:16px;height:16px}.menu-toggle,.sidebar-backdrop{display:none}.container{max-width:1240px;width:100%;box-sizing:border-box;margin:0;padding:0 32px 56px}.app-footer{padding:18px 32px;border-top:1px solid var(--border-soft);color:var(--faint);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;display:flex;gap:16px;flex-wrap:wrap}.app-footer a{color:var(--text-secondary);text-decoration:none}@media (max-width: 900px){.sidebar{position:fixed;left:0;top:0;z-index:200;transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-xl)}.sidebar.open{transform:none}.sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#00000080}.menu-toggle{display:inline-grid}.topbar{padding:10px 16px}.topbar .who{display:none}.container{padding:0 16px 40px}.app-footer{padding:16px}}.page-header{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;padding:32px 0 28px}.page-header .halftone{position:absolute;top:0;bottom:0;right:-32px;width:46%;opacity:.45;pointer-events:none}.page-header>div{position:relative}.page-header-text{flex:1 1 420px;min-width:0}.page-header h1{font-family:var(--font-display);font-stretch:125%;font-weight:800;text-transform:uppercase;font-size:clamp(28px,4vw,40px);line-height:1;margin:10px 0 0}.page-header .rule{width:64px;height:4px;background:var(--accent);margin-top:14px}.page-header p{margin:16px 0 0;color:var(--text-secondary);font-size:15px;max-width:64ch}.page-header-actions{display:flex;flex-wrap:wrap;gap:10px}.halftone{background-image:radial-gradient(circle,var(--halftone) 1.1px,transparent 1.5px);background-size:7px 7px;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 40%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 40%,#000 100%)}.section{margin-top:32px}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px}.section-head h2{margin:0;font-size:16px}.section-head .label{font-size:11px}.section-head .actions{margin-left:auto;display:flex;gap:8px;align-items:center}.panel,.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none;padding:0}.card{padding:20px}.card:hover{box-shadow:none}.panel-pad{padding:16px 18px}.panel-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat{padding:20px 22px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:8px;min-width:0}.stat:last-child{border-right:0}.stat .value{font-family:var(--font-display);font-stretch:125%;font-weight:800;font-size:34px;line-height:1;font-variant-numeric:tabular-nums}.stat .unit{font-family:var(--font-mono);font-size:13px;color:var(--muted);margin-left:6px}.stat .note{font-size:13px;color:var(--text-secondary)}.stat.good .value{color:var(--accent)}.stat.bad .value{color:var(--danger)}@media (max-width: 700px){.stat{border-right:0;border-bottom:1px solid var(--border)}.stat:last-child{border-bottom:0}}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid;white-space:nowrap;line-height:1.4}.pill-ok{color:var(--ok-fg);background:var(--ok-bg);border-color:var(--ok-line)}.pill-bad{color:var(--bad-fg);background:var(--bad-bg);border-color:var(--bad-line)}.pill-warn{color:var(--warn-fg);background:var(--warn-bg);border-color:var(--warn-line)}.pill-idle{color:var(--idle-fg);background:var(--idle-bg);border-color:var(--idle-line)}.dot{width:7px;height:7px;border-radius:50%;flex:none;background:currentColor;display:inline-block}.tag{display:inline-block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:4px;white-space:nowrap;border:1px solid transparent}.tag-staff{color:var(--tier-staff-fg);background:var(--tier-staff-bg)}.tag-tech{color:var(--tier-tech-fg);border-color:var(--tier-tech-line)}.tag-admin{color:var(--tier-admin-fg);background:var(--tier-admin-bg)}.tag-waiting{color:#0a0b0a;background:#f2b33d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);color:var(--text);font:500 14px var(--font-body);box-shadow:none;text-decoration:none;cursor:pointer}.btn:hover:not(:disabled){background:var(--hover);transform:none;box-shadow:none}.btn-primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.btn-primary:hover:not(:disabled),.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.red,.btn-danger{background:transparent;color:var(--danger);border-color:var(--bad-line)}.btn.red:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:var(--bad-bg)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{min-height:30px;padding:0 10px;font-size:13px}.btn:focus-visible,.side-link:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input,input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--input);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:14px var(--font-body);padding:8px 10px;box-shadow:none}.input:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}label{color:var(--text)}.table-wrapper{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:none}table{width:100%;border-collapse:collapse}thead th,th{text-align:left;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400;padding:11px 16px;border-bottom:1px solid var(--border);background:transparent;white-space:nowrap}td{padding:12px 16px;border-bottom:1px solid var(--border-soft);font-size:14px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:color-mix(in srgb,var(--hover) 60%,transparent)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid var(--idle-line);color:var(--idle-fg);background:var(--idle-bg)}.badge.online{color:var(--ok-fg);background:var(--ok-bg);border-color:var(--ok-line)}.badge.offline{color:var(--bad-fg);background:var(--bad-bg);border-color:var(--bad-line)}.modal-overlay{background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);color:var(--text)}.empty-state{padding:40px 20px;text-align:center}.empty-state-title{font-family:var(--font-display);font-stretch:125%;font-weight:800;text-transform:uppercase;font-size:18px}.empty-state-description{color:var(--text-secondary);max-width:52ch;margin:8px auto 0}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.table-wrapper{position:relative}.display,.page-header h1,.stat .value,.empty-state-title,.signin-brand h1,.seg-count .n{font-family:var(--font-body);font-stretch:normal;text-transform:none;letter-spacing:-.01em;font-weight:600}.halftone,.page-header .halftone,.signin .halftone{display:none}.label{font-family:var(--font-body);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted)}.kicker{font-family:var(--font-body);font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted)}.page-header{padding:28px 0 20px;align-items:flex-end}.page-header h1{font-size:24px;line-height:1.2;margin:4px 0 0}.page-header .rule{display:none}.page-header p{margin-top:6px;font-size:14px;color:var(--muted)}.sidebar-brand .display{font-size:16px;letter-spacing:-.01em}.side-group{font-family:var(--font-body);font-size:12px;letter-spacing:0;text-transform:none;color:var(--faint);font-weight:500;padding:18px 10px 4px}.app-footer{font-family:var(--font-body);font-size:12px;letter-spacing:0;text-transform:none}.stat{padding:16px 20px;gap:4px}.stat .value{font-size:26px;line-height:1.2}.stat .unit{font-family:var(--font-body);font-size:14px}thead th,th{font-family:var(--font-body);font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--muted)}.tag{font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;padding:2px 8px;border-radius:999px}.empty-state-title,.section-head h2{font-size:15px}.activity-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.activity-row{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-soft)}.activity-dot{transform:translateY(-1px)}.activity-dot.tone-ok{color:var(--accent)}.activity-dot.tone-bad{color:var(--danger)}.activity-dot.tone-warn{color:var(--warning)}.activity-dot.tone-info{color:var(--text-secondary)}.activity-dot.tone-idle{color:var(--faint)}.activity-text{flex:1;min-width:0;font-size:14px;overflow-wrap:anywhere}.activity-user{color:var(--muted)}.activity-time{flex:none;font-size:12px;color:var(--muted);white-space:nowrap}.activity-empty{margin:0;padding:12px 0;border-top:1px solid var(--border);color:var(--text-secondary);font-size:14px}.overview .stat-grid{margin-top:0}.ov-split{display:flex;flex-wrap:wrap;gap:0 28px;align-items:flex-start}.ov-split>.ov-attention{flex:3 1 440px;min-width:0}.ov-split>.ov-activity{flex:2 1 300px;min-width:0}.ov-alerts{display:flex;flex-direction:column;gap:10px}.ov-alert{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;padding:14px 16px}.ov-alert-body{flex:1 1 220px;min-width:0}.ov-alert-title{font-size:14px;font-weight:500}.ov-alert-detail{font-size:13px;color:var(--text-secondary);margin-top:3px;overflow-wrap:anywhere}.ov-alert .btn{flex:none}.ov-sev{width:9px;height:9px;border-radius:2px;flex:none;margin-top:5px;display:inline-block}.ov-sev-bad{background:var(--danger)}.ov-sev-warn{background:var(--warning)}.ov-sev-ok{background:var(--accent)}.ov-calm{display:flex;gap:12px;align-items:center;color:var(--text-secondary);font-size:14px}.ov-calm .ov-sev{margin-top:0}.ov-error{display:flex;gap:14px;align-items:flex-start;margin-bottom:24px;border-color:var(--bad-line);background:var(--bad-bg)}.ov-nodes{min-width:760px}.ov-node-name{font-weight:500}.ov-sub{font-size:12px;color:var(--muted);margin-top:1px}.ov-seen{margin-top:5px}.ov-dim{color:var(--text-secondary)}.ov-nodes td.mono{font-size:13px}.ov-outdated{color:var(--warn-fg)}.ov-latency{display:flex;align-items:center;gap:12px;white-space:nowrap}.ov-latency .mono{font-size:13px}.ov-spark{display:inline-block;width:96px;height:24px;flex:none}.ov-spark polyline{stroke:var(--faint)}.ov-spark.is-live polyline{stroke:var(--accent)}.ov-link{font-size:13px;text-decoration:none}.ov-link:hover{text-decoration:underline}.ov-clients{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.ov-client{display:flex;align-items:center;gap:12px;padding:12px 14px;min-width:0}.ov-avatar{width:34px;height:34px;border-radius:50%;background:var(--selected);color:var(--text);display:grid;place-items:center;font-size:13px;font-weight:600;flex:none}.ov-client-body{flex:1;min-width:0}.ov-client-name,.ov-client-body .ov-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ov-client-name{font-size:14px}@media (max-width: 480px){.ov-clients{grid-template-columns:1fr}}.sl-toast-stack{position:fixed;top:68px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}.sl-toast{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:12px 12px 12px 14px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);pointer-events:auto;animation:sl-toast-in .18s ease-out}.sl-toast-icon{width:18px;height:18px;margin-top:1px;display:grid;place-items:center}.sl-toast-icon svg{width:18px;height:18px}.sl-toast-text{min-width:0}.sl-toast-kind{font-size:12px;font-weight:500;color:var(--muted)}.sl-toast-message{margin-top:2px;font-size:14px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}.sl-toast-close{display:grid;place-items:center;width:26px;height:26px;margin:-3px -3px 0 0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.sl-toast-close:hover{background:var(--hover);color:var(--text)}.sl-toast-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sl-toast-close svg{width:14px;height:14px}.sl-toast-success{border-color:var(--ok-line)}.sl-toast-success .sl-toast-icon,.sl-toast-success .sl-toast-kind{color:var(--ok-fg)}.sl-toast-error{border-color:var(--bad-line)}.sl-toast-error .sl-toast-icon,.sl-toast-error .sl-toast-kind{color:var(--bad-fg)}.sl-toast-warning{border-color:var(--warn-line)}.sl-toast-warning .sl-toast-icon,.sl-toast-warning .sl-toast-kind{color:var(--warn-fg)}.sl-toast-info .sl-toast-icon{color:var(--text-secondary)}@keyframes sl-toast-in{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}@media (max-width: 600px){.sl-toast-stack{top:auto;bottom:16px;left:16px;right:16px;width:auto}}.sl-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sl-dialog{width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);animation:sl-dialog-in .16s ease-out}.sl-dialog-head{padding:20px 22px 0}.sl-dialog-head .label{display:flex;align-items:center;gap:8px}.sl-dialog-head h2{margin:10px 0 0;font-size:18px;line-height:1.3}.sl-dialog-head h2:first-child{margin-top:0}.sl-dialog-danger .sl-dialog-head .label{color:var(--bad-fg)}.sl-dialog-warning .sl-dialog-head .label{color:var(--warn-fg)}.sl-dialog-body{padding:12px 22px 20px}.sl-dialog-message{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}.sl-dialog-field{display:flex;flex-direction:column;gap:6px;margin-top:16px}.sl-dialog-field .label code{font-family:var(--font-mono);letter-spacing:.04em;text-transform:none;color:var(--text);background:var(--panel-sunk);border:1px solid var(--border);border-radius:4px;padding:1px 6px}.sl-dialog-field input{width:100%;box-sizing:border-box;font-size:15px;padding:9px 11px}.sl-dialog-field input.mono{font-family:var(--font-mono)}.sl-dialog-field input.is-valid{border-color:var(--ok-line)}.sl-dialog-foot{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:14px 22px;border-top:1px solid var(--border-soft);background:var(--panel-sunk);border-radius:0 0 var(--radius) var(--radius)}@keyframes sl-dialog-in{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}@media (max-width: 480px){.sl-dialog-overlay{align-items:flex-end;padding:12px}.sl-dialog-foot{flex-direction:column-reverse}.sl-dialog-foot .btn{width:100%}}@media (prefers-reduced-motion: reduce){.sl-toast,.sl-dialog{animation:none}}.net-page .table-wrapper{margin:0;width:auto;border-radius:var(--radius);border:1px solid var(--border)}.net-page td,.net-page th{font-size:14px}.net-page th{font-size:10.5px}.net-page p,.net-page small{font-size:14px}.net-page .muted{color:var(--muted)}.net-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.net-page .sub{display:block;font-size:12px;color:var(--muted);margin-top:2px}.net-page .mono{font-size:13px}.net-page .nowrap{white-space:nowrap}.net-page .num{font-variant-numeric:tabular-nums}.net-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.net-page td.actions-cell{text-align:right;width:1%;white-space:nowrap}.net-stack{display:flex;flex-direction:column;gap:12px}.net-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:14px 16px;margin:0}.net-add .field{display:flex;flex-direction:column;gap:6px;flex:1 1 200px;min-width:0}.net-add .field.narrow{flex:0 1 120px}.net-add .field input{width:100%;box-sizing:border-box}.net-add .btn{flex:none}.net-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-sunk);color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:12px}.net-note.warn{border-color:var(--warn-line);background:var(--warn-bg);color:var(--warn-fg)}.net-note>span,.net-note>div{font-size:14px}.net-note a{color:inherit;text-decoration:underline}.net-note .pill{flex:none}.net-page .cell-input{width:100%;min-width:160px;box-sizing:border-box;padding:6px 10px;background:transparent;border-color:transparent}.net-page .cell-input:hover{border-color:var(--border)}.net-page .cell-input:focus{background:var(--input)}.modal-content.net-modal{max-width:640px;padding:0;font-size:14px!important}.net-modal-head{padding:18px 22px;border-bottom:1px solid var(--border)}.net-modal-head h3{margin:6px 0 0;font-size:18px}.net-modal-body{padding:18px 22px;display:flex;flex-direction:column;gap:16px}.net-modal-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.net-field{display:flex;flex-direction:column;gap:6px}.net-field>span.label{font-size:11px}.net-field input,.net-field textarea{width:100%;box-sizing:border-box}.net-field textarea{font-family:var(--font-mono);font-size:13px;resize:vertical}.net-field .hint{font-size:12px;color:var(--muted)}.net-check{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.net-check span{font-size:14px}.net-fields-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.net-modal-group{border-top:1px solid var(--border-soft);padding-top:16px;display:flex;flex-direction:column;gap:12px}.net-modal-group h4{margin:0;font-size:14px}.net-modal-group .row-end{display:flex;justify-content:flex-end}.member-name{display:flex;flex-direction:column;min-width:140px}.member-name strong{font-weight:500;font-size:14px}.ip-list{display:flex;flex-direction:column;gap:2px}.ip-list span{font-size:13px}.matrix-wrap{overflow-x:auto}.matrix{min-width:0;border-collapse:separate;border-spacing:0}.matrix th,.matrix td{border-bottom:1px solid var(--border-soft)}.matrix thead th{text-align:center;white-space:normal;min-width:92px;vertical-align:bottom}.matrix thead th:first-child{text-align:left}.matrix th.site-col{text-transform:none;letter-spacing:0;font-family:var(--font-body);font-size:13px;color:var(--text);font-weight:500}.matrix .vlan-head{position:sticky;left:0;background:var(--panel);z-index:1;min-width:150px;white-space:nowrap}.matrix .vlan-head .mono{font-size:14px}.matrix .vlan-head .sub{max-width:220px;overflow:hidden;text-overflow:ellipsis}.matrix td.cell{text-align:center;padding:6px 8px}.matrix tbody th.vlan-head{text-transform:none;letter-spacing:0;font-family:var(--font-body);font-size:14px;color:var(--text);font-weight:500;border-bottom:1px solid var(--border-soft)}.matrix tbody tr:hover th.vlan-head{background:var(--hover)}.matrix tbody tr:last-child th{border-bottom:0}.matrix-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:64px;min-height:30px;padding:0 10px;border-radius:999px;cursor:pointer;font:500 12px var(--font-body);border:1px dashed var(--border-strong);background:transparent;color:var(--faint)}.matrix-toggle:hover{color:var(--text);background:var(--hover)}.matrix-toggle.on{border-style:solid;border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok-fg)}.matrix-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.matrix-toggle .dot{width:7px;height:7px}.matrix-toggle.changed{box-shadow:0 0 0 2px color-mix(in srgb,var(--warn-fg) 45%,transparent)}.matrix-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:10px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.matrix-legend span{font-size:12px}@media (max-width: 768px){.net-page td,.net-page th{padding:10px}.net-add .btn{flex:1 1 100%}.net-modal-head,.net-modal-body,.net-modal-foot{padding-left:16px;padding-right:16px}.net-modal-foot .btn{flex:1 1 auto}.matrix .vlan-head{min-width:110px}.matrix thead th{min-width:76px}}.nodes-page{font-size:14px}:where(.nodes-page) div,:where(.nodes-page) span,:where(.nodes-page) p{font-size:inherit}.nodes-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.nodes-page .stat-grid{margin-bottom:4px}.nodes-page .section-intro{margin:-4px 0 12px;color:var(--text-secondary);max-width:70ch}.nd-dim{color:var(--muted)}.cell-dim{color:var(--text-secondary)}.offline-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin-bottom:12px;border-color:var(--warn-line);background:var(--warn-bg);color:var(--text);line-height:1.5}.offline-note .dot{color:var(--warning);margin-top:7px}.pending-panel{border-color:var(--accent);overflow:hidden}.pending-intro{margin:0;padding:14px 18px;color:var(--text-secondary);border-bottom:1px solid var(--border);line-height:1.5}.pending-list{list-style:none;margin:0;padding:0}.pending-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:14px 18px;border-bottom:1px solid var(--border-soft)}.pending-row:last-child{border-bottom:0}.pending-who{flex:1 1 240px;min-width:0}.pending-site{display:flex;align-items:center;gap:10px;flex:0 1 240px;min-width:0}.pending-site select{flex:1;min-width:0;width:100%}.pending-actions{display:flex;flex-wrap:wrap;gap:8px}.pending-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--border);color:var(--text-secondary)}.node-name{font-weight:500;color:var(--text);overflow-wrap:anywhere}.node-sub{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:2px;color:var(--muted);font-size:12px}.node-sub .mono{font-size:12px}.show-sm{display:none}.nodes-page table{min-width:0}.nodes-page th,.nodes-page td{white-space:normal}.nodes-table td,.unlinked-table td{padding:12px 14px}.nodes-table th,.unlinked-table th{padding:11px 14px;white-space:nowrap}.nodes-table .mono{font-size:13px}.col-check{width:36px;padding-right:0!important}.col-actions{width:1%;white-space:nowrap;text-align:right}.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.th-sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.th-sort:hover{color:var(--text)}.th-sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.th-sort-mark{display:inline-block;width:1ch;color:var(--accent)}.table-select{padding:5px 8px;font-size:13px;max-width:180px}.zt-cell.is-ok>.mono:first-child{color:var(--ok-fg)}.node-row.is-offline .node-name{color:var(--text-secondary)}.node-row.is-open td{background:var(--selected);border-bottom-color:transparent}tbody tr.nd-row:hover td{background:var(--panel-sunk)}.nd-row>td{padding:0!important;background:var(--panel-sunk);border-bottom:1px solid var(--border);white-space:normal}.bulk-panel{padding:14px 18px;margin-bottom:12px;border-color:var(--border-strong);display:flex;flex-direction:column;gap:12px}.bulk-head{display:flex;align-items:center;gap:10px}.bulk-head .btn{margin-left:auto}.bulk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.bulk-grid .nd-field{margin:0}.bulk-check{display:flex;align-items:center;gap:8px}.node-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;padding:16px;align-items:start;min-width:0;overflow-wrap:anywhere}.nd-col{display:flex;flex-direction:column;gap:16px;min-width:0}.nd-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0}.nd-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:12px}.nd-card .nd-card-head h3{margin:0;font-size:15px;font-weight:600}.nd-head-action{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.nd-card h4{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--text-secondary);display:flex;align-items:baseline;gap:8px}.nd-sub{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-soft)}.nd-sub-first{margin-top:0;padding-top:0;border-top:0}.nd-sub h4:not(:first-child){margin-top:14px}.nd-empty{margin:0;color:var(--text-secondary);line-height:1.5}.nd-note{margin:-4px 0 10px;font-size:13px;color:var(--warn-fg)}.nd-strong{font-weight:600}.nd-kv{margin:0;display:grid;gap:6px}.nd-kv-row{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:12px;align-items:baseline}.nd-kv dt{color:var(--muted);font-size:13px}.nd-kv dd{margin:0;min-width:0}.nd-pills{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.nd-kv .nd-pills{margin-bottom:0}.nd-peers{list-style:none;margin:8px 0 0;padding:0 0 0 12px;border-left:2px solid var(--border);display:grid;gap:6px}.nd-peers li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}.nd-alert{margin:12px 0 0;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid;line-height:1.5;font-size:13px}.nd-alert-warn{color:var(--warn-fg);background:var(--warn-bg);border-color:var(--warn-line)}.nd-alert-bad{color:var(--bad-fg);background:var(--bad-bg);border-color:var(--bad-line)}.nd-alert ul{margin:6px 0 0;padding-left:18px}.nd-field{display:flex;flex-direction:column;gap:6px;margin:0 0 16px;min-width:0;border:0;padding:0}.nd-field>label,.nd-field>legend{font-size:13px;font-weight:600;color:var(--text);padding:0}.nd-field>legend{margin-bottom:6px}.nd-field select,.nd-field input{width:100%;box-sizing:border-box;min-width:0}.nd-field small,.nodes-page small{font-size:12px;color:var(--muted);line-height:1.45}.nd-field-inset{margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-sunk)}.nd-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:8px}.nd-mode{display:flex;flex-direction:column;gap:6px;padding:12px;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-sunk)}.nd-mode:hover{border-color:var(--border-strong)}.nd-mode.is-active{border-color:var(--accent);background:var(--selected);box-shadow:inset 0 0 0 1px var(--accent)}.nd-mode:focus-within{outline:2px solid var(--accent);outline-offset:2px}.nd-mode-title{display:flex;align-items:center;gap:8px;font-weight:600}.nd-mode-title input{margin:0}.nd-mode-body{font-size:13px;color:var(--text-secondary);line-height:1.45}.nd-mode-best{font-size:12px;color:var(--muted)}.nd-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:12px}.nd-sync{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;font-size:13px}.nd-sync .btn{margin-left:auto}.nd-checks{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.nd-checks label{display:flex;align-items:flex-start;gap:8px;line-height:1.4}.nd-checks input{margin-top:3px}.nd-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.nd-danger h4{color:var(--danger)}.btn.nd-hard{background:var(--danger);border-color:var(--danger);color:var(--bg)}.btn.nd-hard:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.nd-logs{list-style:none;margin:0;padding:0;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--panel-sunk)}.nd-logs li{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:baseline;padding:6px 10px;border-bottom:1px solid var(--border-soft)}.nd-logs li:last-child{border-bottom:0}.nd-logs .mono{font-size:12px}.nd-log-time{color:var(--muted)}.nd-log-level{color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.nd-log-msg{color:var(--text-secondary);overflow-wrap:anywhere;min-width:0}.nd-logs li.is-warn .nd-log-level{color:var(--warn-fg)}.nd-logs li.is-bad .nd-log-level,.nd-logs li.is-bad .nd-log-msg{color:var(--bad-fg)}.add-node{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 18px;margin-top:12px}.add-node .nd-field{margin:0;flex:1 1 200px}@media (max-width: 1100px){.nodes-table .col-lg{display:none}}@media (max-width: 760px){.nodes-table .col-md,.unlinked-table .col-md{display:none}.nodes-table .show-sm{display:inline}.nodes-table td,.nodes-table th,.unlinked-table td,.unlinked-table th{padding:10px 8px}.node-detail{padding:10px;gap:10px}.nd-col{gap:10px}.nd-card{padding:14px}.nd-kv-row{grid-template-columns:1fr;gap:2px}.nd-logs li{grid-template-columns:auto 1fr}.nd-log-msg{grid-column:1 / -1}.pending-row,.pending-intro,.pending-foot{padding-left:14px;padding-right:14px}.pending-site,.pending-actions{flex-basis:100%}.bulk-head .btn{margin-left:auto}}.acc-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:16px;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.acc-dialog{width:100%;max-width:640px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);box-sizing:border-box}.acc-dialog-sm{max-width:480px}.acc-dialog-head{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:12px}.acc-dialog-head>div{flex:1;min-width:0}.acc-dialog-head h2{margin:6px 0 0;font-size:18px;overflow-wrap:anywhere}.acc-dialog-head .sub{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.acc-dialog-body{padding:18px 20px;overflow-y:auto;flex:1}.acc-dialog-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.acc-dialog-foot .grow{flex:1}.acc-dialog-foot .left{display:flex;flex-wrap:wrap;gap:8px}@media (max-width: 600px){.acc-backdrop{padding:0;align-items:flex-end}.acc-dialog{max-height:94vh;border-radius:var(--radius) var(--radius) 0 0}.acc-dialog-head,.acc-dialog-body,.acc-dialog-foot{padding-left:16px;padding-right:16px}.acc-dialog-foot .grow{display:none}.acc-dialog-foot .btn{flex:1 1 auto}.acc-dialog-foot .left{width:100%}}.acc-field{margin-bottom:18px}.acc-field:last-child{margin-bottom:0}.acc-field>.acc-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text)}.acc-field input:not([type=checkbox]):not([type=radio]),.acc-field select{width:100%;box-sizing:border-box}.acc-field input.mono{font-family:var(--font-mono)}.acc-hint{display:block;margin-top:6px;font-size:12.5px;color:var(--muted);line-height:1.45}.acc-hint.warn{color:var(--warn-fg)}.acc-check{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.acc-check+.acc-check{margin-top:8px}.acc-check input{margin:0;flex:none}.acc-box{padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-sunk)}.acc-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px}.acc-pair .acc-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600}.acc-pair input{width:100%;box-sizing:border-box}.acc-gap-top{margin-top:8px}.acc-note{margin:0 0 14px;color:var(--text-secondary);font-size:14px}.acc-muted{color:var(--muted)}.acc-small{font-size:13px}.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}.tier-panel{overflow:hidden}.tier-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tier-head .who{font-size:13px;color:var(--text-secondary)}.tier-head .count{margin-left:auto;font-size:12px;color:var(--muted)}.tier-body{padding:12px;display:flex;flex-direction:column;gap:8px}.tier-inherits{font-size:12px;color:var(--muted);padding:0 4px 2px}.tier-empty{font-size:13px;color:var(--faint);padding:10px 4px}.seg-row{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;text-align:left;padding:11px 12px;border-radius:var(--radius-sm);background:var(--panel-sunk);border:1px solid var(--border-soft);color:var(--text);font:inherit;cursor:pointer}.seg-row:hover{border-color:var(--border-strong);background:var(--hover)}.seg-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.seg-row .dot.ok{color:var(--ok-fg)}.seg-row .dot.bad{color:var(--bad-fg)}.seg-row .dot.warn{color:var(--warn-fg)}.seg-row .dot.idle{color:var(--idle-fg)}.seg-main{flex:1;min-width:0}.seg-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}.seg-name{font-size:14px;font-weight:500;overflow-wrap:anywhere}.seg-title .pill{padding:1px 8px;font-size:11px}.seg-meta{font-size:12px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.seg-problem{font-size:12px;margin-top:3px;overflow-wrap:anywhere}.seg-problem.bad{color:var(--bad-fg)}.seg-problem.warn{color:var(--warn-fg)}.seg-count{text-align:right;line-height:1.3;flex:none}.seg-count .n{font-family:var(--font-display);font-stretch:125%;font-weight:800;font-size:16px;font-variant-numeric:tabular-nums}.seg-count .n.zero{color:var(--faint)}.seg-count .label{font-size:9.5px;letter-spacing:.14em}.acc-list{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:320px;overflow-y:auto}.acc-list label{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border-soft);cursor:pointer;font-size:14px}.acc-list label:last-child{border-bottom:0}.acc-list label:hover{background:var(--hover)}.acc-list .name{overflow-wrap:anywhere;min-width:0}.acc-list .tag,.acc-list .pill{margin-left:auto;flex:none}.filter-group{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}.filter-btn{border:0;border-radius:5px;padding:6px 12px;background:transparent;color:var(--text-secondary);font:500 13px var(--font-body);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.filter-btn:hover{color:var(--text);background:var(--hover)}.filter-btn[aria-pressed=true]{background:var(--selected);color:var(--text)}.filter-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filter-btn .n{font-family:var(--font-mono);font-size:11.5px;color:var(--muted)}.filter-btn.waiting .n{color:var(--warn-fg)}.sort-btn{background:none;border:0;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;gap:4px;align-items:center}.sort-btn:hover{color:var(--text)}.sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.people-table td{white-space:nowrap}.people-table tr.waiting td{background:var(--warn-bg)}.people-table .actions-col{text-align:right}.person{display:flex;align-items:center;gap:12px;min-width:0}.person .avatar{background:var(--panel-sunk);color:var(--text);border:1px solid var(--border)}.person-name{font-weight:500;overflow-wrap:anywhere;white-space:normal}.person-sub{font-size:12px;color:var(--muted)}.extra-cell{font-size:13px;color:var(--text-secondary);white-space:normal!important;min-width:120px}.on-now{display:flex;align-items:center;gap:8px;font-size:12px}.on-now .dot.ok{color:var(--ok-fg)}.on-now .dot.idle{color:var(--idle-fg)}.on-now .off{color:var(--muted)}.row-actions{display:inline-flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}@media (max-width: 720px){.people-table thead{display:none}.people-table,.people-table tbody{display:block}.people-table tr{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:14px 16px;border-bottom:1px solid var(--border-soft)}.people-table tr:last-child{border-bottom:0}.people-table tr.waiting{background:var(--warn-bg)}.people-table td{display:block;padding:0;border:0;white-space:normal;background:transparent!important;font-size:14px!important}.people-table td.c-person{grid-column:1 / 2}.people-table td.c-role{grid-column:2 / 3;grid-row:1;text-align:right}.people-table td.c-extra,.people-table td.c-on,.people-table td.actions-col{grid-column:1 / -1}.people-table td.c-extra:empty{display:none}.people-table td.actions-col{text-align:left}.people-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:12px;color:var(--muted)}.extra-cell{min-width:0}.row-actions{justify-content:flex-start}}.seg-meta,.seg-problem,.seg-count .n,.seg-count .label{display:block}.acc-fieldset{border:0;padding:0;margin:0 0 18px;min-width:0}.acc-fieldset legend.acc-label{padding:0;margin-bottom:6px;font-size:13px;font-weight:600}.acc-box>.acc-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600}.acc-full{width:100%;box-sizing:border-box}.acc-loading{margin:0;color:var(--muted)}.sys-muted{color:var(--text-secondary)}.sys-note{font-size:13px;color:var(--muted)}.sys-list{margin:8px 0 0;padding-left:18px;color:var(--text-secondary);font-size:14px;line-height:1.6}.sys-list li+li{margin-top:2px}.sys-bad{color:var(--bad-fg)}.sys-code{display:flex;align-items:flex-start;gap:10px;background:var(--panel-sunk);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 10px 10px 14px}.sys-code pre,.sys-code code.block{flex:1;min-width:0;margin:0;padding:4px 0;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;background:none}.sys-code .btn{flex:none}.sys-callout{border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;color:var(--text-secondary);background:var(--panel-sunk)}.sys-callout strong{color:var(--text);font-weight:600}.sys-callout-warn{border-color:var(--warn-line);border-left-color:var(--warn-fg);background:var(--warn-bg)}.sys-callout-bad{border-color:var(--bad-line);border-left-color:var(--bad-fg);background:var(--bad-bg);color:var(--bad-fg)}.deploy-steps{list-style:none;margin:0;padding:0;counter-reset:step}.deploy-step{position:relative;counter-increment:step;display:grid;grid-template-columns:44px 1fr;gap:0 16px;padding-bottom:28px}.deploy-step:last-child{padding-bottom:0}.deploy-step:before{content:counter(step,decimal-leading-zero);grid-row:1 / span 2;width:44px;height:44px;box-sizing:border-box;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border-strong);background:var(--panel);font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;color:var(--text)}.deploy-step:after{content:"";position:absolute;left:21.5px;top:50px;bottom:6px;width:1px;background:var(--border)}.deploy-step:last-child:after{display:none}.deploy-step.is-done:before{border-color:var(--accent);color:var(--accent)}.deploy-step-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:44px}.deploy-step-head h2{margin:0;font-size:16px}.deploy-step-body{min-width:0;display:flex;flex-direction:column;gap:12px;padding-top:4px}.deploy-step-body>p{margin:0;color:var(--text-secondary);font-size:14px;max-width:70ch}.iso-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:14px 16px}.iso-status-text{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:6px}.iso-status-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--muted)}.iso-progress{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);overflow-wrap:anywhere}.iso-actions{display:flex;flex-wrap:wrap;gap:8px}.alt-install{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.alt-install h3{margin:0;font-size:14px}.token-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px}.token-value{flex:1 1 240px;min-width:0;padding:8px 12px;border-radius:var(--radius-sm);background:var(--panel-sunk);border:1px solid var(--border);font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere;color:var(--text)}.token-value.masked{color:var(--faint);letter-spacing:.2em}.token-value .plain{letter-spacing:0;font-family:var(--font-body)}.token-callout{margin-top:12px}.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.resource-grid .panel{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.resource-grid h3{margin:0;font-size:14px}.resource-grid .sys-list{margin-top:0}.resource-grid p{margin:0;font-size:14px;color:var(--text-secondary)}.sys-btn-row{display:flex;flex-wrap:wrap;gap:8px}@media (max-width: 520px){.deploy-step{grid-template-columns:32px 1fr;gap:0 12px}.deploy-step:before{width:32px;height:32px;font-size:11px}.deploy-step:after{left:15.5px;top:38px}.deploy-step-head{min-height:32px}}.log-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:14px 16px}.sys-field{display:flex;flex-direction:column;gap:6px;min-width:0}.sys-field select{min-width:180px;max-width:100%}.sys-field-grow{flex:1 1 200px}.sys-field-grow select{width:100%}.sys-check{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:14px;cursor:pointer}.log-filters .spacer{flex:1}.log-list{list-style:none;margin:0;padding:0}.log-line{display:grid;grid-template-columns:170px minmax(90px,160px) 86px 1fr;gap:4px 16px;align-items:baseline;padding:9px 16px;border-bottom:1px solid var(--border-soft);font-size:13px}.log-line:last-child{border-bottom:0}.log-line:hover{background:color-mix(in srgb,var(--hover) 60%,transparent)}.log-time{font-family:var(--font-mono);font-size:12px;color:var(--muted);white-space:nowrap}.log-node{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.log-level .pill{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;padding:1px 8px}.log-msg{min-width:0;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.log-line.lvl-error .log-msg{color:var(--bad-fg)}.log-head{display:grid;grid-template-columns:170px minmax(90px,160px) 86px 1fr;gap:16px;padding:11px 16px;border-bottom:1px solid var(--border)}.log-head span{font-size:12px;font-weight:500;color:var(--muted)}@media (max-width: 760px){.log-head{display:none}.log-line{grid-template-columns:auto minmax(0,1fr) auto;padding:10px 14px}.log-time{grid-column:1;grid-row:1}.log-node{grid-column:2;grid-row:1}.log-level{grid-column:3;grid-row:1;justify-self:end}.log-msg{grid-column:1 / -1;grid-row:2;margin-top:2px}.sys-field select{min-width:0;width:100%}.sys-field{flex:1 1 160px}}.api-search{position:relative;max-width:420px}.api-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.api-search input{width:100%;box-sizing:border-box;padding-left:34px}.auth-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--border-soft);overflow:hidden}.auth-legend>div{padding:14px 18px;background:var(--panel);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.auth-legend p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}.api-list{overflow:hidden}.api-item+.api-item{border-top:1px solid var(--border-soft)}.api-row{width:100%;display:grid;grid-template-columns:64px minmax(0,1fr) auto 16px;gap:4px 14px;align-items:center;padding:12px 16px;background:transparent;border:0;color:var(--text);text-align:left;font:inherit;cursor:pointer}.api-row:disabled{cursor:default}.api-row:hover:not(:disabled){background:var(--hover)}.api-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.api-row[aria-expanded=true]{background:var(--selected)}.api-main{min-width:0;display:flex;flex-direction:column;gap:3px}.api-path{font-family:var(--font-mono);font-size:13.5px;overflow-wrap:anywhere}.api-desc{font-size:13px;color:var(--text-secondary);line-height:1.45}.api-chevron{color:var(--muted);transition:transform .15s ease}.api-row[aria-expanded=true] .api-chevron{transform:rotate(180deg)}.method{display:inline-block;text-align:center;box-sizing:border-box;width:64px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;padding:3px 0;border-radius:4px;border:1px solid}.method-get{color:var(--idle-fg);background:var(--idle-bg);border-color:var(--idle-line)}.method-post,.method-put,.method-patch{color:var(--text);background:transparent;border-color:var(--border-strong)}.method-delete{color:var(--bad-fg);background:var(--bad-bg);border-color:var(--bad-line)}.auth-tag{font-family:var(--font-mono)}.auth-none{color:var(--idle-fg);background:transparent;border-color:var(--idle-line)}.auth-client{color:var(--text);background:var(--idle-bg);border-color:var(--border-strong)}.api-detail{padding:4px 16px 16px 94px;display:flex;flex-direction:column;gap:12px;background:var(--selected)}.api-detail .label{display:block;margin-bottom:6px}.api-detail pre{margin:0;padding:12px 14px;overflow:auto;max-height:420px;background:var(--panel-sunk);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12.5px;line-height:1.55;color:var(--text)}@media (max-width: 640px){.api-row{grid-template-columns:auto minmax(0,1fr) 16px;padding:12px 14px}.api-row .method{grid-column:1;grid-row:1}.api-row .auth-tag{grid-column:2;grid-row:1;justify-self:start}.api-row .api-chevron{grid-column:3;grid-row:1}.api-row .api-main{grid-column:1 / -1;grid-row:2;margin-top:6px}.api-detail{padding:4px 14px 14px}}.signin{position:relative;min-height:100vh;box-sizing:border-box;overflow:hidden;display:grid;place-items:center;padding:32px 16px;background:var(--bg);color:var(--text)}.signin .halftone{position:absolute;inset:0 0 0 auto;width:60%;opacity:.35;pointer-events:none}.signin-panel{position:relative;width:100%;max-width:400px;box-sizing:border-box;padding:32px 28px 28px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl)}.signin-brand{display:flex;align-items:center;gap:14px}.signin-brand img{width:44px;height:44px;flex:none}.signin-brand h1{margin:6px 0 0;font-family:var(--font-display);font-stretch:125%;font-weight:800;text-transform:uppercase;font-size:28px;line-height:1;letter-spacing:.005em}.signin-panel .rule{width:48px;height:4px;background:var(--accent);margin:18px 0 0}.signin-intro{margin:14px 0 0;color:var(--text-secondary);font-size:14px}.signin-form{display:flex;flex-direction:column;gap:14px;margin-top:24px}.signin-form input{width:100%;box-sizing:border-box;padding:10px 12px;font-size:15px}.signin-form .btn{width:100%;min-height:42px}.signin-error{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;line-height:1.45;color:var(--bad-fg);background:var(--bad-bg);border:1px solid var(--bad-line);overflow-wrap:anywhere}.signin-error .dot{margin-top:6px}.signin-or{display:flex;align-items:center;gap:12px;margin:22px 0}.signin-or:before,.signin-or:after{content:"";flex:1;height:1px;background:var(--border)}.signin-sso{width:100%;min-height:42px}.signin-sso svg{flex:none}.signin-foot{margin-top:20px;text-align:center}@media (max-width: 420px){.signin-panel{padding:26px 20px 22px}.signin .halftone{width:100%;opacity:.2}}
