.all-hosts-view{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:var(--bg)}.all-hosts-grid-container{flex:1;overflow-y:auto;padding:16px}.all-hosts-layout-grid{display:flex!important;gap:24px;flex-wrap:nowrap!important;align-items:flex-start;width:auto}.all-hosts-cluster{flex:1;min-width:520px}.all-hosts-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px;font-family:inherit;color:var(--text);table-layout:fixed;border-radius:6px;overflow:hidden;border:1px solid var(--bg);background:var(--bg-card)}.all-hosts-table thead th{text-align:center;background:#1e253a!important;padding:8px 6px;border-bottom:3px solid var(--bg);border-right:1px solid var(--bg);font-weight:900;color:#a5b4fc;text-transform:uppercase;letter-spacing:.05em;font-size:10px}.all-hosts-table thead th.col-host{text-align:left;padding-left:10px}:root[data-theme=white] .all-hosts-table thead th{background:#e2e8f0!important;color:#1e293b;border-bottom:3px solid #cbd5e1}.all-hosts-table tbody td{padding:2px 8px;border-bottom:1px solid var(--bg)!important;border-right:1px solid var(--bg)!important;background:var(--bg-card)!important;height:28px;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:root[data-theme=white] .all-hosts-table tbody td:not(.has-val){background:#fff!important;border-bottom:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.all-hosts-table tr:hover td:not(.has-val){background:var(--bg-card-h)!important}.all-hosts-table tr:hover td.has-val{filter:brightness(1.2)}.state-badge{display:inline-block;padding:1px 6px;font-weight:800;font-size:10px;color:#fff;width:100%;text-align:center;border-radius:4px}.state-badge.up{background:#10b981!important}.state-badge.down{background:#ef4444!important}.state-badge.unkn{background:#64748b!important}.state-badge.shel{background:#f59e0b!important}.state-badge.term{background:#475569!important}.col-ok,.col-wa,.col-un,.col-cr,.col-pd{width:44px;text-align:center;background:var(--bg)!important;font-weight:800;color:var(--text)!important;font-size:12px!important}.col-ok.has-val{background:#10b981!important;color:#fff!important}.col-wa.has-val{background:#f59e0b!important;color:#fff!important}.col-cr.has-val{background:#ef4444!important;color:#fff!important}.col-un.has-val{background:#64748b!important;color:#fff!important}.col-pd.has-val{background:#3b82f6!important;color:#fff!important}.col-state{width:50px}.col-host{width:140px}.col-icons{width:32px;text-align:center;color:var(--accent);font-size:16px;cursor:help}.host-name-wrap{display:flex;align-items:center}.host-name{font-weight:700;color:var(--text);cursor:pointer}.host-name:hover{text-decoration:underline;color:var(--accent)}:root{--bg: #080c18;--bg-card: #0f1424;--bg-card-h: #141929;--border: #1c2236;--border-light: #252c44;--accent: #4f8ef7;--accent-dim: rgba(79, 142, 247, .12);--green: #00d68f;--green-dim: rgba(0, 214, 143, .12);--red: #ff4757;--red-dim: rgba(255, 71, 87, .12);--yellow: #ffa502;--yellow-dim: rgba(255, 165, 2, .12);--text: #e8eaf6;--text-2: #9ba3c4;--text-3: #6b7394;--font: "Inter", system-ui, sans-serif;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .5);--transition: .2s ease;--header-h: 64px;--nav-w: 72px;--bg-sidebar: #0a0e1a;--bg-header: #080c18;--bg-header-glass: rgba(8, 12, 24, .8)}:root[data-theme=dark]{--bg: #000000;--bg-card: #0a0a0a;--bg-card-h: #111111;--border: #1a1a1a;--border-light: #2a2a2a;--accent: #3b82f6;--text: #f3f4f6;--text-2: #9ca3af;--text-3: #6b7280;--bg-sidebar: #050505;--bg-header: #0a0a0a;--bg-header-glass: rgba(10, 10, 10, .85)}:root[data-theme=white]{--bg: #f8fafc;--bg-card: #ffffff;--bg-card-h: #f1f5f9;--border: #e2e8f0;--border-light: #cbd5e1;--accent: #2563eb;--accent-dim: rgba(37, 99, 235, .12);--green: #10b981;--green-dim: rgba(16, 185, 129, .12);--red: #ef4444;--red-dim: rgba(239, 68, 68, .12);--yellow: #f59e0b;--yellow-dim: rgba(245, 158, 11, .12);--text: #0f172a;--text-2: #334155;--text-3: #64748b;--shadow: 0 4px 20px rgba(0, 0, 0, .05);--bg-sidebar: #ffffff;--bg-header: #f8fafc;--bg-header-glass: rgba(248, 250, 252, .85)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}*{scrollbar-width:thin;scrollbar-color:var(--border-light) var(--bg)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);margin:0;font-size:.875rem;line-height:1.6;-webkit-font-smoothing:antialiased;height:100vh;display:flex;flex-direction:column;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-layout{padding-bottom:3rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;animation:empty-state-in .5s cubic-bezier(.16,1,.3,1)}@keyframes empty-state-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.user-profile-pill{display:flex;align-items:center;gap:.65rem;padding:.25rem .75rem .25rem .35rem;background:var(--bg);border-radius:20px;border:1px solid var(--border);margin-left:.5rem;cursor:pointer;transition:all .2s}.user-profile-pill:hover{background:var(--bg-card);border-color:var(--accent)}.user-avatar-wrap{width:24px;height:24px;border-radius:50%;overflow:hidden;border:1.5px solid var(--accent);background:var(--bg-card-h)}.user-avatar{width:100%;height:100%;object-fit:cover}.user-info-text{display:flex;flex-direction:column;line-height:normal}.user-name{font-size:.75rem;font-weight:700;color:var(--text)}.user-role{font-size:.6rem;color:var(--text-3);text-transform:uppercase;font-weight:800;letter-spacing:.05em;margin-top:-1px}.header{position:sticky;top:0;z-index:1000;display:flex;flex-shrink:0;align-items:center;padding:0 1.5rem;height:var(--header-h);background:var(--bg-header-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:all .3s ease}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:1.5rem;margin-left:auto;min-width:0}.header-stats-wrapper{display:none;align-items:center;gap:1.25rem;min-width:0;overflow:hidden}body.logged-in .header-stats-wrapper{display:flex}.stats-group{display:flex;align-items:center;gap:.5rem;padding-right:1.25rem;border-right:1px solid var(--border)}.stats-group:last-child{border-right:none}.header-actions{display:flex;align-items:center;gap:.75rem;padding-left:1rem;margin-left:auto}.action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text-2);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.action-btn:hover{background:var(--bg-card-h);color:var(--text);border-color:var(--accent);transform:translateY(-1px)}.action-btn svg{width:18px;height:18px}.theme-toggle-wrap{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:3px;gap:3px}.theme-toggle-wrap .action-btn{width:32px;height:32px;border:none;border-radius:8px;background:transparent}.theme-toggle-wrap .action-btn:hover{background:#ffffff0d;transform:none}.theme-toggle-wrap .action-btn.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px #3b82f64d}.utc-clock{display:flex;align-items:center;gap:.6rem;padding:.3rem .8rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--text-2);font-family:JetBrains Mono,Monaco,Consolas,monospace;font-size:.8rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:default;-webkit-user-select:none;user-select:none;min-width:195px;height:36px}.utc-clock:hover{border-color:var(--accent);color:var(--text);background:var(--bg-card-h);transform:translateY(-1px)}.utc-clock .clock-icon{font-size:.9rem;color:var(--accent);filter:drop-shadow(0 0 4px var(--accent-dim))}#clock-time{letter-spacing:.02em}.app-shell{display:flex;flex:1;overflow:hidden;position:relative;padding-left:var(--nav-w);padding-bottom:32px}.global-nav{width:var(--nav-w);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;padding:1rem 0;z-index:1001;position:absolute;left:0;top:0;bottom:0}.global-nav:hover{box-shadow:10px 0 30px #0000004d}.nav-links{display:flex;flex-direction:column;gap:.5rem;padding:0 .25rem}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:64px;padding:6px 4px;border:none;border-radius:12px;background:transparent;color:var(--text-3);cursor:pointer;transition:all .2s;overflow:hidden;gap:2px}.nav-item svg{flex-shrink:0;width:34px;height:34px;padding:5px;border-radius:12px;transition:all .2s cubic-bezier(.4,0,.2,1)}.nav-label{font-size:.65rem;font-weight:600;opacity:1;transform:none;transition:none;text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-item:hover{background:#ffffff0a;color:var(--text)}.nav-item.active{background:transparent;color:var(--text-2);font-weight:600;box-shadow:none}.nav-item.active svg{background:#4f8ef726;color:var(--accent);filter:drop-shadow(0 0 8px var(--accent))}.nav-divider{height:1px;background:#ffffff40;margin:.1rem 1rem}@media(max-width:1400px){.resource-stats{display:none}}@media(max-width:1200px){.alert-stats{display:none}}@media(max-width:1000px){.health-stats .stat-pill span{display:none}.health-stats .stat-pill{padding:.3rem .5rem}}@media(max-width:800px){.header-right{margin-left:1rem}.header-stats-wrapper{display:none}}.nav-footer{display:flex;justify-content:center;padding:1.5rem 0;border-top:1px solid rgba(255,255,255,.05)}.nav-status-dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.nav-status-dot.pulse{box-shadow:0 0 #00d68f66;animation:status-pulse 2s infinite}@keyframes status-pulse{0%{transform:scale(.95);box-shadow:0 0 #00d68fb3}70%{transform:scale(1);box-shadow:0 0 0 6px #00d68f00}to{transform:scale(.95);box-shadow:0 0 #00d68f00}}.role-badge-dropdown{padding:1rem 1.25rem .5rem;display:flex;flex-direction:row;align-items:center;gap:.5rem}.role-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:1rem;text-transform:uppercase;letter-spacing:.02em}.role-badge.admin{background:#22c55e33;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.role-badge.viewer{background:#f59e0b33;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.username-label{font-size:.85rem;color:var(--text-2);font-weight:500}.pl-masked{color:var(--text-3);font-style:italic;font-size:.8rem;display:inline-flex;align-items:center;gap:.3rem;-webkit-user-select:none;user-select:none;opacity:.7}.user-mgmt-modal{margin:auto;padding:0;border:none;background:#0f1424e6;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);color:var(--text);border-radius:1.25rem;box-shadow:0 32px 64px #0009,0 0 0 1px #ffffff0d;max-width:850px;width:95%;border:1px solid rgba(255,255,255,.1);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity .3s cubic-bezier(.34,1.56,.64,1),transform .3s cubic-bezier(.34,1.56,.64,1)}.user-mgmt-modal[open]{opacity:1;transform:scale(1)}.user-mgmt-modal::backdrop{background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.user-modal-container{display:flex;flex-direction:column}.modal-header{padding:1.25rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h2,.modal-header h3{margin:0;font-size:1.25rem;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-3);font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1}.modal-close:hover{color:var(--text);background:#ffffff0d;border-radius:50%}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,#3b82f6 100%);color:#fff;border:none;padding:.6rem 1.25rem;border-radius:.75rem;font-weight:600;font-size:.85rem;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #3b82f64d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #3b82f666;filter:brightness(1.1)}.btn-primary:active{transform:translateY(0)}.modal-body{padding:1.25rem;color:var(--text)}.user-action-bar{margin-bottom:1.25rem;display:flex;justify-content:flex-end}.users-table-wrapper{overflow-x:auto;border-radius:.5rem;border:1px solid var(--border)}.users-table{width:100%;border-collapse:collapse;font-size:.9rem}.users-table th{background:#ffffff08;text-align:left;padding:1rem 1.25rem;color:var(--text-2);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.users-table tr{transition:background .2s ease}.users-table tr:hover{background:#ffffff05}.users-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);color:var(--text)}.users-table tr:last-child td{border-bottom:none}.status-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;border-radius:2rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.status-active{background:#00d68f1a;color:var(--green);border-color:#00d68f33}.status-active:hover{background:#00d68f33}.status-inactive{background:#ff47571a;color:var(--red);border-color:#ff475733}.status-inactive:hover{background:#ff475733}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.4rem;color:var(--text-2);font-size:.9rem}.form-group input[type=text],.form-group input[type=password],.form-group select{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text);padding:.75rem 1rem;border-radius:.75rem;font-family:var(--font);font-size:.9rem;transition:all .2s ease;outline:none}.form-group input:focus,.form-group select:focus{background:#ffffff14;border-color:var(--accent);box-shadow:0 0 0 3px #4f8ef726}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-group input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.3rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem}.perm-grid{margin:0 0 1rem}.perm-grid legend{padding:0 .3rem;color:var(--text-2);font-size:.9rem}.perm-grid label{display:flex;align-items:center;gap:.45rem;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.perm-grid input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.perm-badge{display:inline-block;font-size:.7rem;padding:.1rem .4rem;margin:.1rem;border-radius:4px;background:var(--accent-dim);color:var(--accent)}.hint-text{font-size:.75rem;color:var(--text-3);font-weight:400}.modal-footer{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.btn-icon{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-2);cursor:pointer;padding:.5rem;border-radius:.6rem;display:inline-flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-icon:hover{background:#ffffff1a;color:var(--text);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.btn-icon.delete:hover{background:#ef444426;color:var(--red);border-color:#ef44444d}.sub-modal{margin:auto;padding:0;max-width:450px;border:1px solid rgba(255,255,255,.15)!important;box-shadow:0 40px 80px #000c!important}.sub-modal .modal-header{background:#ffffff05}.header-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1rem;letter-spacing:.02em;color:var(--text)}.header-brand img{object-fit:contain;flex-shrink:0}.header-version{font-size:.68rem;font-weight:600;letter-spacing:.04em;color:var(--text-3);background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;margin-left:-.15rem;align-self:center;white-space:nowrap}.header-stats{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:var(--text-2)}.stat-pill+.stat-pill:before{content:"";display:block;width:1px;height:16px;background:var(--border);margin-right:.2rem;flex-shrink:0}.stat-pill{display:flex;align-items:center;gap:.45rem;padding:.3rem .75rem;border-radius:20px;background:var(--bg-card);border:1px solid var(--border);font-weight:500;transition:border-color .3s,background .3s;font-size:.75rem;white-space:nowrap}.stat-pill span[id^=stat-]{display:inline-block;min-width:1.25em;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.stat-pill{min-width:60px;justify-content:center}.resource-stats .stat-pill{min-width:100px}.stat-pill .dot{width:7px;height:7px;border-radius:50%}.stat-pill.alerts-pill{border-color:var(--border);color:var(--text-2);transition:all .3s ease}.stat-pill.alerts-pill.has-alerts{border-color:var(--red);color:var(--red);background:#ff475714;animation:alert-pulse 2s ease-in-out infinite}@keyframes alert-pulse{0%,to{border-color:var(--red);box-shadow:0 0 #ff475700}50%{border-color:var(--red);box-shadow:0 0 8px #ff47574d}}.stat-pill.alerts-pill.no-alerts{border-color:#00d68f33;color:var(--green)}.stat-pill.alerts-pill .dot{background:currentColor}.stat-pill.servers-pill .dot{background:var(--green)}.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:.75rem;background:#0f1424e6;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.1);border-radius:1rem;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d;min-width:200px;z-index:1000;display:none;overflow:hidden;transform-origin:top right}.dropdown-menu.show{display:block;animation:dropdown-in .25s cubic-bezier(.16,1,.3,1)}@keyframes dropdown-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.dropdown-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;background:none;border:none;color:var(--text);font-family:var(--font);font-size:.85rem;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease;text-decoration:none}.dropdown-item:hover{background:#ffffff0d;color:var(--accent)}.dropdown-item svg{opacity:.7;transition:opacity .2s}.dropdown-item:hover svg{opacity:1}.dropdown-item.logout-red{color:#ff4757}.dropdown-item.logout-red:hover{background:#ff47571a;color:#ff6b81}.view-toggle{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.view-btn{display:flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border:none;border-radius:6px;background:transparent;color:var(--text-3);font-size:.78rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s,transform .15s;font-family:inherit;position:relative}.view-btn svg{width:15px;height:15px;transition:color .2s}.view-btn:hover{background:var(--hover-bg);color:var(--text)}.view-btn.active{background:#5d8aff2e;color:var(--accent, #5d8aff);font-weight:600;border:1px solid rgba(93,138,255,.35)}.view-btn.active svg{color:var(--accent);filter:drop-shadow(0 0 3px rgba(93,138,255,.4))}.view-btn[title],.theme-btn[title],.dropdown-toggle[title]{position:relative}.theme-btn[title]:hover:after,.dropdown-toggle[title]:hover:after{content:attr(title);position:absolute;bottom:-30px;left:50%;transform:translate(-50%);padding:.25rem .5rem;background:#000000d9;color:var(--text);font-size:.7rem;font-weight:500;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:200;animation:tooltip-in .15s ease}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.grid-container{flex:1;width:100%;min-height:0}.ag-theme-alpine,.ag-theme-alpine-dark{--ag-font-family: var(--font) !important;--ag-font-size: 13px !important;--ag-border-color: var(--border) !important;--ag-wrapper-border-radius: 8px !important;--ag-header-height: 40px !important;--ag-row-hover-color: var(--accent-dim) !important;--ag-selected-row-background-color: var(--accent-dim) !important}.ag-theme-alpine-dark{--ag-background-color: var(--bg-card) !important;--ag-header-background-color: rgba(255, 255, 255, .03) !important;--ag-foreground-color: var(--text) !important;--ag-secondary-foreground-color: var(--text-2) !important;--ag-header-foreground-color: var(--text-2) !important;--ag-control-panel-background-color: var(--bg-card) !important;--ag-odd-row-background-color: rgba(255, 255, 255, .02) !important}.ag-theme-alpine{--ag-background-color: var(--bg) !important;--ag-header-background-color: var(--bg-card) !important;--ag-odd-row-background-color: var(--bg-card-h) !important;--ag-foreground-color: var(--text) !important;--ag-secondary-foreground-color: var(--text-2) !important;--ag-header-foreground-color: var(--text-2) !important;--ag-control-panel-background-color: var(--bg-card) !important}.ag-theme-alpine .ag-root-wrapper,.ag-theme-alpine-dark .ag-root-wrapper{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.ag-theme-alpine .ag-header,.ag-theme-alpine-dark .ag-header{border-bottom:1px solid var(--border)}.ag-theme-alpine .ag-row,.ag-theme-alpine-dark .ag-row{border-bottom:1px solid var(--border)!important}.ag-theme-alpine .ag-body-horizontal-scroll-viewport::-webkit-scrollbar,.ag-theme-alpine-dark .ag-body-horizontal-scroll-viewport::-webkit-scrollbar,.ag-theme-alpine .ag-body-viewport::-webkit-scrollbar,.ag-theme-alpine-dark .ag-body-viewport::-webkit-scrollbar{width:8px;height:8px}.ag-theme-alpine .ag-body-horizontal-scroll-viewport::-webkit-scrollbar-track,.ag-theme-alpine-dark .ag-body-horizontal-scroll-viewport::-webkit-scrollbar-track,.ag-theme-alpine .ag-body-viewport::-webkit-scrollbar-track,.ag-theme-alpine-dark .ag-body-viewport::-webkit-scrollbar-track{background:var(--bg)}.ag-theme-alpine .ag-body-horizontal-scroll-viewport::-webkit-scrollbar-thumb,.ag-theme-alpine-dark .ag-body-horizontal-scroll-viewport::-webkit-scrollbar-thumb,.ag-theme-alpine .ag-body-viewport::-webkit-scrollbar-thumb,.ag-theme-alpine-dark .ag-body-viewport::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--radius-sm)}.ag-theme-alpine .row-active-alert,.ag-theme-alpine-dark .row-active-alert{background-color:#ef44440d!important}.cell-positive{color:var(--green)!important}.cell-negative{color:var(--red)!important}.cell-ok{color:var(--green)!important}.cell-warn{color:var(--yellow)!important}.cell-critical{color:var(--red)!important}.cell-dim{color:var(--text-3)!important}.cell-shield{color:#7bceff}.tbl-dot{font-size:1rem;line-height:1}.tbl-dot.status-active,.tbl-dot.status-ok{color:var(--green)}.tbl-dot.status-warn{color:var(--yellow)}.tbl-dot.status-stale{color:var(--red)}.tbl-dot.status-inactive{color:var(--text-3);opacity:.7}.tbl-dot.status-unknown{color:var(--text-3)}.alert-banner{display:none;align-items:center;flex-shrink:0;gap:.8rem;padding:.7rem 2rem;background:linear-gradient(90deg,#ff475726,#ff47570d);border-bottom:1px solid rgba(255,71,87,.3);font-size:.85rem;font-weight:500;color:var(--red)}.alert-banner.visible{display:flex}.alert-banner .alert-icon{font-size:1rem}.alert-banner .alert-list{display:flex;gap:1rem;flex-wrap:wrap}.alert-banner .alert-item{display:inline-flex;align-items:center;gap:.5rem;padding:.2rem .6rem;border-radius:6px;background:#ff47571f;border:1px solid rgba(255,71,87,.25)}.alert-banner .alert-item.acked{opacity:.5;filter:grayscale(.6)}.alert-banner .alert-item-name:hover{text-decoration:underline}.alert-banner .btn-ack{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;cursor:pointer;transition:all .2s;font-family:inherit}.alert-banner .btn-ack:hover{background:#ffffff4d}.alert-banner .ack-badge{font-size:.65rem;background:#00d68f33;color:var(--green);border:1px solid rgba(0,214,143,.4);padding:.1rem .4rem;border-radius:3px;font-weight:700}.alert-banner .alert-group{display:inline-flex;align-items:center;gap:.6rem}.alert-banner .alert-group-critical{font-weight:700;color:#ff4757}.alert-banner .alert-item-critical{background:#ff475740;border:1px solid rgba(255,71,87,.6);font-weight:700;animation:dupAlertPulse 1.6s ease-in-out infinite}.alert-banner .alert-item-meta{font-weight:600;opacity:.85}@keyframes dupAlertPulse{0%,to{box-shadow:0 0 #ff475700}50%{box-shadow:0 0 0 3px #ff475759}}#app-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg);overflow:hidden}#main-topbar{flex-shrink:0;z-index:100;background:var(--bg-card);border-bottom:1px solid var(--border);min-height:52px;display:flex;align-items:center}#main-content{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.main{padding:0;flex:1;min-height:0;display:flex;flex-direction:column}.cards-view{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:1rem;gap:1rem}.filter-group{margin-bottom:1.25rem}.options-group{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}.filter-label{display:block;font-size:.7rem;font-weight:600;color:var(--text-2);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.filter-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem;color:var(--text);font-family:var(--font);font-size:.8rem;transition:border-color .2s}.filter-input:focus{outline:none;border-color:var(--accent)}.filter-input::placeholder{color:var(--text-3)}.filter-checkboxes{display:flex;flex-direction:column;gap:.5rem}.filter-checkbox-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text);cursor:pointer}.filter-checkbox-item input[type=checkbox]{display:none}.custom-checkbox{width:16px;height:16px;border:1px solid var(--border-light);border-radius:4px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s}.filter-checkbox-item input[type=checkbox]:checked+.custom-checkbox{background:var(--accent);border-color:var(--accent)}.filter-checkbox-item input[type=checkbox]:checked+.custom-checkbox:after{content:"";width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.cards-content{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column}.cards-toolbar{margin-bottom:1.25rem;display:flex}.btn-secondary{background:var(--border);color:var(--text);border:1px solid var(--border-light);display:flex;align-items:center;gap:.4rem}.btn-secondary:hover{background:var(--border-light);box-shadow:none}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.card-ps-badge{font-size:1.15rem;opacity:.85;cursor:default}.conn-banner{display:none;align-items:center;gap:.6rem;padding:.5rem 1.25rem;font-size:.75rem;font-weight:600;position:fixed;bottom:0;left:0;right:0;z-index:10000;border-top:1px solid rgba(255,255,255,.05);box-shadow:0 -2px 10px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-transform:uppercase;letter-spacing:.02em;transition:all .3s ease}.conn-banner.visible{display:flex}.conn-banner.connecting{background:var(--yellow-dim);color:var(--yellow);border:1px solid rgba(255,165,2,.2)}.conn-banner.disconnected{background:var(--red-dim);color:var(--red);border:1px solid rgba(255,71,87,.2)}.conn-banner.reconnecting{background:#ff8c001a;color:#ff8c00;border:1px solid rgba(255,140,0,.25)}.conn-banner.connected{background:#00d68f1a;color:var(--green);border:1px solid rgba(0,214,143,.25)}.app-layout{display:flex;height:100%;width:100%;overflow:hidden}.sidebar{width:230px;min-width:200px;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;transition:width .3s cubic-bezier(.2,.8,.2,1),min-width .3s cubic-bezier(.2,.8,.2,1)}.sidebar.collapsed{width:56px;min-width:56px;overflow:hidden}.sidebar.collapsed .sidebar-header{justify-content:center;padding:.9rem 0}.sidebar.collapsed .sidebar-header-title,.sidebar.collapsed .filter-content,.sidebar.collapsed .sidebar-list,.sidebar.collapsed .sidebar-empty{display:none}.icon-btn{background:transparent;border:none;color:var(--text-3);cursor:pointer;padding:.4rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.icon-btn:hover{color:var(--text);background:var(--hover-bg)}#toggle-filter-btn .collapse-icon{transition:transform .3s ease}.sidebar.collapsed #toggle-filter-btn .collapse-icon{transform:rotate(180deg)}.sidebar-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem .6rem;border-bottom:1px solid var(--border);min-height:48px}.sidebar-header-title{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);transition:opacity .2s}.sidebar-search-container{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:flex-end;background:var(--bg-sidebar);border-radius:var(--radius-sm)}.sidebar-search-btn{background:transparent;border:none;color:var(--text-3);cursor:pointer;padding:.4rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;z-index:2}.sidebar-search-btn:hover{color:var(--text);background:var(--hover-bg)}.sidebar-search-input{width:0;opacity:0;background:var(--hover-bg);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.8rem;padding:.35rem 0;transition:width .3s cubic-bezier(.2,.8,.2,1),opacity .3s,padding .3s,border-color .2s;pointer-events:none}.sidebar-search-input:focus{outline:none;border-color:var(--accent);background:#0003}.sidebar-search-container.active{width:calc(100% - 1rem);left:.5rem}.sidebar-search-container.active .sidebar-search-input{width:100%;opacity:1;padding:.35rem .6rem .35rem 2rem;pointer-events:auto;border-color:var(--border-light)}.sidebar-search-container.active .sidebar-search-btn{position:absolute;left:.2rem;padding:.2rem;color:var(--text-2)}.search-clear-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-3);cursor:pointer;padding:.2rem;display:none;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;transition:color .15s,transform .15s;z-index:3}.search-clear-btn:hover{color:var(--text);transform:translateY(-50%) scale(1.1)}.search-clear-btn.visible{display:flex}.sidebar-search-container .search-clear-btn{right:.4rem}.filter-group{position:relative}.filter-group .search-clear-btn{right:.6rem;top:calc(50% + .6rem)}.ip-groups-filter-item{position:relative}.ip-groups-filter-item .search-clear-btn{right:.4rem}.sidebar-header.search-active .sidebar-header-title{opacity:0;pointer-events:none}.sidebar-count{background:var(--hover-bg-strong);border-radius:10px;padding:.1rem .45rem;font-size:.68rem;font-weight:600;color:var(--text-2)}.sidebar-list{list-style:none;padding:.4rem 0;margin:0;flex:1}.sidebar-item{display:flex;align-items:center;gap:.65rem;padding:.65rem 1rem;cursor:pointer;border-left:2px solid transparent;transition:background .15s,border-color .15s;position:relative}.sidebar-item:hover{background:var(--hover-bg)}.sidebar-item.active{background:#5d8aff1a;border-left-color:var(--accent, #5d8aff)}.sidebar-item.stale{border-left-color:var(--red)}.nav-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--text-3)}.nav-dot.status-ok{background:var(--green);box-shadow:0 0 6px #00d68f66}.nav-dot.status-warn{background:var(--yellow);box-shadow:0 0 6px #ffa50266}.nav-dot.status-stale{background:var(--red);box-shadow:0 0 6px #ff475780;animation:pulse-red 2s infinite}.nav-info{flex:1;min-width:0}.nav-name{display:block;font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-meta{display:block;font-size:.7rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-ps-badge{font-size:.62rem;font-weight:700;color:#7bceff;background:#7bceff1f;border:1px solid rgba(123,206,255,.25);border-radius:4px;padding:.1rem .3rem;flex-shrink:0}.sidebar-empty{display:none;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:var(--text-3);font-size:.8rem;opacity:.5}.detail-panel{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.detail-view{display:flex;flex-direction:column;gap:1.25rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.detail-header{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.4rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.detail-status-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.35rem}.detail-instance{font-size:1.15rem;font-weight:700;color:var(--text);margin:0}.detail-meta{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-3);margin-bottom:.5rem}.meta-sep{opacity:.4}.detail-freshness{display:flex;flex-direction:column;gap:.3rem;align-items:flex-end;flex-shrink:0}.propshield-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;color:#7bceff;background:#7bceff1a;border:1px solid rgba(123,206,255,.3);border-radius:6px;padding:.2rem .55rem}.propshield-transport{font-size:.62rem;font-weight:700;letter-spacing:.03em;line-height:1;border-radius:4px;padding:.12rem .32rem;cursor:default}.propshield-transport.ps-zmq{color:#8be9a8;background:#8be9a824;border:1px solid rgba(139,233,168,.35)}.propshield-transport.ps-kdb{color:#ffce7b;background:#ffce7b24;border:1px solid rgba(255,206,123,.35)}.detail-cards{display:grid;grid-template-columns:repeat(5,1fr)!important;gap:1rem}.detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem 1.1rem}.detail-card-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--hover-bg)}.pf-row{display:flex;justify-content:space-between;align-items:center;padding:.32rem 0;border-bottom:1px solid rgba(28,34,54,.5);font-size:.82rem}.pf-row:last-child{border-bottom:none}.pf-row.net-pl .pf-label{font-weight:600;color:var(--text)}.pf-row.net-pl .pf-value{font-size:.92rem}.pf-label{color:var(--text-2)}.pf-value{font-weight:600;font-variant-numeric:tabular-nums}.pf-value.positive{color:var(--green)}.pf-value.negative{color:var(--red)}.pf-value.neutral{color:var(--text)}.no-data{color:var(--text-3);font-size:.8rem;padding:.5rem 0}.empty-state{display:none;flex-direction:column;align-items:center;justify-content:center;gap:1rem;flex:1;padding:5rem 2rem;text-align:center;color:var(--text-3)}.empty-state.visible{display:flex}.empty-state svg{opacity:.3}.empty-state p{font-size:.9rem}.server-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);position:relative;display:flex;flex-direction:column;min-height:400px}.server-card:hover{transform:translateY(-2px);border-color:var(--border-light);box-shadow:var(--shadow)}.card-main-content{flex:1;display:flex;flex-direction:column}.server-card.stale{border-color:#ff475766;box-shadow:0 0 0 1px #ff475733,0 4px 24px #ff47571a;animation:pulse-red 2s ease-in-out infinite}.server-card.warn{border-color:#ffa50266}.server-card.redis-stale{border-color:#ffa50280;box-shadow:0 0 0 1px #ffa50233,0 4px 20px #ffa5021a}@keyframes pulse-red{0%,to{box-shadow:0 0 0 1px #ff475733,0 4px 24px #ff47571a}50%{box-shadow:0 0 0 2px #ff475759,0 4px 32px #ff475733}}.server-card.flash-update{animation:flash-green .5s ease-out}@keyframes flash-green{0%{background:#00d68f14}to{background:var(--bg-card)}}.card-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.1rem 1.2rem .7rem;gap:.5rem}.card-identity{flex:1;min-width:0}.card-instance{font-size:.95rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.card-meta{display:flex;flex-direction:row;align-items:center;gap:.35rem;margin-top:.2rem;flex-wrap:nowrap}.card-meta span{font-size:.73rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instance-type-tag{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:20px;background:#66bb6a1f;color:#66bb6a;border:1px solid rgba(102,187,106,.2);margin-left:.4rem;vertical-align:middle;display:inline-block;transition:all .2s ease}.instance-type-tag.tag-live,.filter-cb-label.tag-live{background:#66bb6a1f;color:#66bb6a;border-color:#66bb6a33}.instance-type-tag.tag-back,.filter-cb-label.tag-back{background:#ffa7261f;color:#ffa726;border-color:#ffa72633}.instance-type-tag.tag-main,.filter-cb-label.tag-main{background:#ab47bc1f;color:#ab47bc;border-color:#ab47bc33}.instance-type-tag.tag-docs,.filter-cb-label.tag-docs{background:#5d8aff1f;color:#5d8aff;border-color:#5d8aff33}.instance-type-tag.tag-mkt,.filter-cb-label.tag-mkt{background:#26c6da1f;color:#26c6da;border-color:#26c6da33}.instance-type-tag.tag-prop,.filter-cb-label.tag-prop{background:#5c6bc01f;color:#5c6bc0;border-color:#5c6bc033}.instance-type-tag.tag-demo,.filter-cb-label.tag-demo{background:#7986cb1f;color:#7986cb;border-color:#7986cb33}.instance-type-tag.tag-test,.filter-cb-label.tag-test{background:#9e9e9e1f;color:#9e9e9e;border-color:#9e9e9e33}.instance-type-tag.tag-dev,.filter-cb-label.tag-dev{background:#ff70431f;color:#ff7043;border-color:#ff704333}.filter-cb-label{padding:.15rem .5rem;border-radius:12px;border:1px solid transparent;font-size:.8rem;font-weight:600;transition:all .2s}.card-meta span b{color:var(--text-2);font-weight:500}.card-status-dots{display:flex;flex-direction:column;gap:4px;align-items:center;padding-top:2px}.card-status-indicator{width:8px;height:8px;border-radius:50%;cursor:help;transition:transform .2s}.card-status-indicator:hover{transform:scale(1.4)}.card-status-indicator.status-ok{background:var(--green);box-shadow:0 0 4px #00d68f66}.card-status-indicator.status-warn{background:var(--yellow);box-shadow:0 0 4px #ffab0066}.card-status-indicator.status-stale{background:var(--red);box-shadow:0 0 4px #ff475766;animation:dot-pulse 1.5s ease-in-out infinite}.card-status-indicator.status-unknown{background:var(--text-3);opacity:.5}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.pl-trend-arrow{font-size:.7rem;margin-left:2px;font-weight:700}.pl-trend-arrow.up{color:var(--green)}.pl-trend-arrow.down{color:var(--red)}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px;transition:background var(--transition)}.status-dot.status-ok{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.status-warn{background:var(--yellow);box-shadow:0 0 6px var(--yellow)}.status-dot.status-stale{background:var(--red);box-shadow:0 0 8px var(--red);animation:blink 1s ease-in-out infinite}.status-dot.status-unknown{background:var(--text-3)}.status-dot.status-inactive,.nav-dot.status-inactive,.freshness-dot.status-inactive,.card-status-indicator.status-inactive,.status-dot.inactive{background:var(--text-3);box-shadow:none;animation:none;opacity:.55}.freshness-label.status-inactive{color:var(--text-3)}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.platforms{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 1.2rem .8rem}.platform-chip{font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.18rem .6rem;border-radius:4px;background:linear-gradient(135deg,#2d3748cc,#4a556866 45%,#1a202c99 55%,#2d3748cc);color:#cbd5e1;border:1px solid rgba(148,163,184,.2);box-shadow:0 1px 2px #0003,inset 0 1px #ffffff0d;position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:1}.platform-chip:hover{transform:translateY(-1px);background:linear-gradient(135deg,#4a5568cc,#2d374899);border-color:#94a3b866;color:#f1f5f9}.platform-chip[data-env=demo]{background:linear-gradient(135deg,#92400e33,#78350f1a 45%,#fbbf2433 55%,#78350f1a);color:#fcd34d;border-color:#fbbf2433}.platform-chip[data-env=internal]{background:linear-gradient(135deg,#16653433,#14532d1a 45%,#4ade8033 55%,#14532d1a);color:#86efac;border-color:#4ade8033}.card-divider{height:1px;background:var(--border);margin:0 1.2rem}.resources-panel{padding:.6rem 1.2rem .8rem;display:flex;flex-direction:column;gap:.65rem;flex:1}.health-panel{padding:.6rem 1.2rem .8rem;display:flex;flex-direction:column;gap:.6rem;flex:1}.detail-card .health-panel{padding:0!important}.health-table{width:100%;border-collapse:collapse;font-size:.75rem;color:var(--text-2)}.health-table th{text-align:left;padding:6px .5rem;color:var(--text-3);text-transform:uppercase;font-size:.65rem;border-bottom:1px solid var(--border-light)}.health-table td{padding:6px .5rem;border-bottom:1px solid rgba(255,255,255,.03)}.health-table th:first-child,.health-table td:first-child{padding-left:0}.health-table th:last-child,.health-table td:last-child{padding-right:0}.health-table tr:last-child td{border-bottom:none}.res-row{display:flex;flex-direction:column;gap:.3rem}.res-label-row{display:flex;justify-content:space-between;align-items:baseline}.username-label{font-size:.9rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{font-size:.65rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.15rem .4rem;border-radius:4px;background:var(--accent-dim);color:var(--accent);border:1px solid rgba(79,142,247,.2);margin-top:.2rem;align-self:flex-start}.res-label{font-size:.75rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;text-align:left}.res-value{font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums}.res-value.gauge-ok{color:var(--green)}.res-value.gauge-warn{color:var(--yellow)}.res-value.gauge-critical{color:var(--red)}.res-sub{font-size:.7rem;font-weight:400;color:var(--text-3);margin-left:.3rem}.gauge-track{height:8px;border-radius:4px;background:#ffffff0d;overflow:hidden;-webkit-mask-image:repeating-linear-gradient(to right,black 0,black 3px,transparent 3px,transparent 4px);mask-image:repeating-linear-gradient(to right,black 0,black 3px,transparent 3px,transparent 4px);box-shadow:inset 0 1px 3px #00000080}.gauge-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.2,.8,.2,1);background-size:200% 100%}.gauge-fill.gauge-ok{background:linear-gradient(90deg,#00b09b,var(--green));box-shadow:0 0 8px #00d68f99}.gauge-fill.gauge-warn{background:linear-gradient(90deg,#f5af19,var(--yellow));box-shadow:0 0 10px #ffa50299}.gauge-fill.gauge-critical{background:linear-gradient(90deg,#e33e5c,var(--red));box-shadow:0 0 12px #ff4757cc;animation:gauge-pulse-red 1.2s infinite alternate}@keyframes gauge-pulse-red{0%{opacity:.85;filter:drop-shadow(0 0 4px var(--red))}to{opacity:1;filter:drop-shadow(0 0 15px var(--red))}}.status-chip{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;border:1px solid transparent}.status-chip.resolved{background:#66bb6a26;color:#66bb6a;border-color:#66bb6a4d}.status-chip.acked{background:#ffa72626;color:#ffa726;border-color:#ffa7264d}.status-chip.active{background:#ff475726;color:#ff4757;border-color:#ff47574d;animation:status-chip-pulse 2s infinite}@keyframes status-chip-pulse{0%,to{box-shadow:0 0 #ff475700}50%{box-shadow:0 0 0 4px #ff475733}}.res-info-row{display:flex;justify-content:space-between;align-items:center;padding-top:.2rem;border-top:1px solid rgba(28,34,54,.6)}.c24-info-panel{gap:10px!important;padding:0!important}.c24-info-panel .res-info-row{flex-direction:column;align-items:stretch;gap:0;padding-top:.15rem;padding-bottom:0;margin:0}.c24-info-panel .res-label{font-size:.68rem;line-height:1.1}.c24-info-panel .res-info-val{font-size:.78rem;line-height:1.1}.res-info-val{font-size:.8rem;font-weight:400;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.tab-bar{display:flex;gap:.25rem;padding:.5rem 0rem;background:#ffffff04;border-radius:6px;margin:0 .8rem}.tab-btn{flex:1;padding:.35rem .5rem;border:none;background:none;color:var(--text-3);font-size:.72rem;font-weight:600;letter-spacing:.06em;cursor:pointer;border-radius:5px;transition:background .2s,color .2s}.tab-btn:hover{background:#ffffff0a;color:var(--text-2)}.tab-btn.active{background:#5d8aff26;color:var(--accent);border:1px solid rgba(93,138,255,.25)}.portfolio{padding:.5rem 1.2rem .8rem;flex:1}.portfolio-row,.portfolio-header-row{display:grid;grid-template-columns:1fr auto auto;gap:0 .6rem;align-items:center;padding:.33rem 0;border-bottom:1px solid rgba(28,34,54,.5);font-size:.82rem}.portfolio-row:last-child{border-bottom:none}.portfolio-header-row{border-bottom:1px solid var(--hover-bg);padding-bottom:.3rem;margin-bottom:.1rem}.col-head{font-size:.7rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;text-align:right;min-width:4.5rem}.portfolio-row .label{color:var(--text-2)}.portfolio-row .value{font-weight:400;font-variant-numeric:tabular-nums;text-align:right;min-width:4.5rem}.portfolio-row .mtd-value{opacity:.82}.portfolio-row.net-pl .label{color:var(--text);font-weight:600}.portfolio-row.net-pl .value{font-weight:600}.value.positive{color:var(--green)}.value.negative{color:var(--red)}.value.neutral{color:var(--text)}.card-footer{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.2rem .7rem;border-top:1px solid var(--border);margin-top:auto}.footer-freshness-col{display:flex;flex-direction:column;gap:.25rem}.redis-freshness{font-size:.68rem;opacity:.75}.freshness{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--text-3)}.freshness-dot{width:7px;height:7px;border-radius:50%}.freshness-dot.status-ok{background:var(--green)}.freshness-dot.status-warn{background:var(--yellow)}.freshness-dot.status-stale{background:var(--red)}.freshness-dot.status-unknown{background:var(--text-3)}.freshness-label{font-size:.7rem;font-weight:600;letter-spacing:.05em}.freshness-label.status-ok{color:var(--green)}.freshness-label.status-warn{color:var(--yellow)}.freshness-label.status-stale{color:var(--red)}.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--border-light) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:1rem;background:radial-gradient(ellipse at 30% 20%,#141c34,#0a0e1a,#060810);animation:fade-in .4s ease;overflow:hidden}.login-overlay.visible{display:flex}html.has-jwt .login-overlay{display:none!important}html:not(.has-jwt) #app-sidebar,html:not(.has-jwt) .header-stats-wrapper,html:not(.has-jwt) #settings-toggle,html:not(.has-jwt) #show-shortcuts-btn{display:none!important}.login-particles{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}@keyframes fade-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.login-card{position:relative;z-index:1;width:100%;max-width:400px;padding:3rem 2.5rem;background:#0f1424cc;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.1);border-radius:24px;box-shadow:0 32px 64px #00000080,0 0 0 1px #ffffff0d;animation:slide-up .5s cubic-bezier(.16,1,.3,1);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.login-card:hover{transform:translateY(-4px);box-shadow:0 40px 80px #0009,0 0 20px #4f8ef71a;border-color:#4f8ef74d}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.login-logo-pulse{display:flex;align-items:center;justify-content:center;position:relative}.login-logo-pulse img{filter:drop-shadow(0 0 6px rgba(79,142,247,.5));animation:logo-pulse 2.5s ease-in-out infinite;object-fit:contain}@keyframes logo-pulse{0%,to{filter:drop-shadow(0 0 4px rgba(79,142,247,.3));transform:scale(1)}50%{filter:drop-shadow(0 0 12px rgba(79,142,247,.7)) drop-shadow(0 0 24px rgba(79,142,247,.3));transform:scale(1.06)}}.login-logo-pulse:after{content:"";position:absolute;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,rgba(79,142,247,.15) 0%,transparent 70%);animation:logo-ring 2.5s ease-in-out infinite;pointer-events:none}@keyframes logo-ring{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.6);opacity:0}}.login-brand{display:flex;align-items:center;gap:.7rem;color:var(--accent);font-weight:700;font-size:.95rem;margin-bottom:1.5rem}.login-title{font-size:1.5rem;font-weight:700;color:var(--text);margin-bottom:.35rem}.login-subtitle{font-size:.82rem;color:var(--text-2);margin-bottom:1.75rem}.login-field{margin-bottom:1rem}.login-field label{display:block;font-size:.78rem;font-weight:600;color:var(--text-2);margin-bottom:.4rem;letter-spacing:.04em;text-transform:uppercase}.login-pw-wrap{position:relative}.login-field input{width:100%;padding:.65rem .85rem;background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.9rem;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f8ef733}.login-pw-wrap input{padding-right:2.5rem}.pw-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;line-height:1;padding:.2rem;display:flex;align-items:center;justify-content:center;color:var(--text-3);transition:color var(--transition),transform .15s ease}.pw-toggle:hover{color:var(--accent)}.pw-toggle .eye-icon{display:block}.login-remember{display:flex;align-items:center;gap:.55rem;font-size:.82rem;color:var(--text-2);cursor:pointer;margin-bottom:1.25rem;-webkit-user-select:none;user-select:none}.login-remember input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.login-error{display:none;align-items:center;gap:.5rem;font-size:.8rem;color:var(--red);background:#ff475714;border:1px solid rgba(255,71,87,.3);border-left:3px solid var(--red);border-radius:var(--radius-sm);padding:.6rem .85rem;margin-bottom:1rem;animation:shake .4s ease}.login-error.visible{display:flex}.login-error-icon{flex-shrink:0;color:var(--red)}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(5px)}45%{transform:translate(-4px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}}.login-btn{width:100%;padding:.75rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;transition:background var(--transition),opacity var(--transition),transform var(--transition);letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:.5rem;position:relative}.login-btn .login-spinner{display:none;animation:spin .8s linear infinite}.login-btn.loading .login-spinner{display:block}.login-btn.loading .login-btn-text{opacity:.8}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-btn:hover:not(:disabled){background:#6ba4fa;transform:translateY(-1px)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.logout-btn{display:flex;align-items:center;gap:.4rem;padding:.25rem .7rem;border-radius:20px;background:none;border:1px solid var(--border);color:var(--text-3);font-family:var(--font);font-size:.76rem;font-weight:500;cursor:pointer;transition:color var(--transition),border-color var(--transition)}.logout-btn:hover{color:var(--red);border-color:#ff475766}@media(max-width:640px){.header{padding:0 1rem}.main{padding:1rem 1rem 3rem}.grid{grid-template-columns:1fr}.header-stats .stat-pill:first-child{display:none}.login-card{margin:1rem;border-radius:var(--radius)}}dialog.modal{margin:auto;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);color:var(--text);box-shadow:0 32px 64px #000c,0 0 0 1px #ffffff0d;max-width:420px;width:90%;background:#0f1424d9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);opacity:0;transform:scale(.95);transition:opacity .2s ease-out,transform .2s ease-out}dialog.modal[open]{opacity:1;transform:scale(1)}dialog.modal::backdrop{background:#080c18b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-content{padding:1.5rem 1.5rem 1.25rem;display:flex;flex-direction:column}.modal-content h3{margin-top:0;margin-bottom:.5rem;font-size:1.25rem;display:flex;align-items:center;gap:.5rem;color:var(--text)}.modal-content h3 svg{color:var(--red)}.modal-text{color:var(--text-2);font-size:.95rem;line-height:1.5;margin-bottom:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.modal-actions .btn{padding:.5rem 1rem;font-size:.875rem;border-radius:6px;font-weight:500}.modal-actions .btn-cancel{background:transparent;color:var(--text-2);border:1px solid var(--border-light)}.modal-actions .btn-cancel:hover{background:var(--bg-card-h);border-color:var(--text-3);color:var(--text)}.ip-groups-view{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.ip-groups-filters-row{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.5rem;box-shadow:0 4px 12px #0003;margin-bottom:.5rem}.ip-groups-filter-item{display:flex;align-items:center;gap:.5rem}.ip-groups-filter-item label{font-size:.8rem;font-weight:500;color:var(--text-2);letter-spacing:.02em}.custom-dropdown-container{position:relative;display:flex;align-items:center;gap:.5rem}.custom-dropdown-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:.4rem .75rem;border-radius:var(--radius-sm);font-family:var(--font);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:140px;transition:border-color var(--transition),box-shadow var(--transition)}.custom-dropdown-btn:hover{border-color:var(--border-light)}.custom-dropdown-btn.active{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.custom-dropdown-btn .arrow{font-size:.7rem;color:var(--text-3);transition:transform var(--transition)}.custom-dropdown-btn.active .arrow{transform:rotate(180deg)}.custom-dropdown-content{position:absolute;top:calc(100% + 4px);left:0;width:220px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:.5rem;display:none;flex-direction:column;gap:.2rem;z-index:1100;max-height:250px;overflow-y:auto}.custom-dropdown-content.show{display:flex}.custom-dropdown-content label{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:4px;cursor:pointer;transition:background var(--transition);font-size:.85rem;color:var(--text)}.custom-dropdown-content label:hover{background:var(--bg-card-h)}.custom-dropdown-content input[type=checkbox]{display:none}.custom-dropdown-content .custom-checkbox{width:16px;height:16px;border:1px solid var(--text-3);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition);background:var(--bg);flex-shrink:0}.custom-dropdown-content input[type=checkbox]:checked+.custom-checkbox{background:var(--accent);border-color:var(--accent)}.custom-dropdown-content input[type=checkbox]:checked+.custom-checkbox:after{content:"";width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.ip-groups-group{display:flex;flex-direction:column;gap:.5rem}.ip-groups-group-header{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;padding-bottom:.25rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.ip-groups-count{margin-left:auto;font-size:.75rem;font-weight:600;background:var(--bg-card);padding:.1rem .4rem;border-radius:var(--radius-sm);border:1px solid var(--border)}.ip-groups-list{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.ip-groups-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.5fr) minmax(95px,.8fr);gap:1rem;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}.ip-groups-row:hover{border-color:var(--border-light);background:var(--bg-card-h);transform:translateY(-1px);box-shadow:0 4px 12px #0003}.ip-groups-row.warn{border-color:#ffa50266}.ip-groups-row.stale{border-color:#ff475766;opacity:.8}.ip-groups-row.redis-stale{border-color:#ff475766}.ip-groups-col{display:flex;flex-direction:column;gap:.25rem}.ip-groups-col-id{flex-direction:row;align-items:center;gap:.75rem}.ip-groups-names{display:flex;flex-direction:column}.ip-groups-instance{font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:.4rem;margin-bottom:.1rem}.ip-groups-tags-line{display:flex;align-items:center;gap:.4rem;margin-bottom:.1rem}.ip-groups-tags-line .instance-type-tag{margin-left:0}.ip-groups-host{font-size:.75rem;color:var(--text-3);margin-top:.1rem}.ip-groups-data-line{display:flex;align-items:center;font-size:.8rem;gap:.35rem}.ip-groups-label{color:var(--text-2);font-weight:500}.ip-groups-data-line .value{font-family:Inter,monospace;font-weight:600}.ip-groups-res-text{font-size:.8rem;color:var(--text)}.ip-groups-age{font-size:.75rem;color:var(--text-3)}@media(max-width:1700px){.ip-groups-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:1200px){.ip-groups-list{grid-template-columns:1fr}}@media(max-width:1100px){.ip-groups-row{grid-template-columns:1fr;gap:.75rem}}.trend-chart-container{width:100%;height:100px;position:relative;margin-top:15px;padding-top:10px;border-top:1px solid var(--border)}.trend-chart-container canvas{width:100%!important;height:100%!important}.summary-view{flex:1;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.view-toolbar{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 1.5rem;background:transparent;border:none;margin:0;position:relative;z-index:10;flex-shrink:0;gap:1rem}.view-toolbar .toolbar-left{display:flex;align-items:center;gap:.75rem}.view-toolbar .toolbar-center{display:flex;align-items:center;justify-content:center;flex:1}.view-toolbar .toolbar-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:flex-end}.view-toolbar .toolbar-title{font-size:.9rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.toolbar-search-input{background:var(--bg);border:1px solid var(--border-light);color:var(--text);padding:.4rem .85rem;border-radius:8px;font-size:.85rem;width:200px;transition:all .2s ease}.toolbar-search-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-dim)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:1.5rem;width:100%;max-width:1800px}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:0 4px 16px #0003}.summary-card.animate-in{animation:card-in .5s cubic-bezier(.16,1,.3,1) both}@keyframes card-in{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.summary-card.animate-in:nth-child(1){animation-delay:.05s}.summary-card.animate-in:nth-child(2){animation-delay:.1s}.summary-card.animate-in:nth-child(3){animation-delay:.15s}.summary-card.animate-in:nth-child(4){animation-delay:.2s}.summary-card.animate-in:nth-child(5){animation-delay:.25s}.summary-card.animate-in:nth-child(6){animation-delay:.3s}.summary-card.animate-in:nth-child(7){animation-delay:.35s}.summary-card.animate-in:nth-child(8){animation-delay:.4s}.summary-card-header{font-size:.95rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding-bottom:.5rem}.summary-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 0;text-align:center}.summary-stat.gauges{flex-direction:row;justify-content:space-around;padding:1rem 0}.summary-val{font-size:3.5rem;font-weight:700;line-height:1.1;letter-spacing:-.02em}.summary-val.positive{color:var(--green)}.summary-val.negative{color:var(--red)}.summary-val.neutral{color:var(--text)}.summary-label{font-size:1rem;color:var(--text-3);font-weight:500;margin-top:.25rem}.perf-container{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.perf-section{flex:1;background:linear-gradient(135deg,#ffffff05,#ffffff01);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.6rem;position:relative;overflow:hidden}.perf-section.top{border-left:3px solid var(--green)}.perf-section.worst{border-left:3px solid var(--red)}.perf-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.perf-section-header .dot{width:8px;height:8px;border-radius:50%}.perf-section-header .dot.positive{background:var(--green);box-shadow:0 0 8px var(--green)}.perf-section-header .dot.negative{background:var(--red);box-shadow:0 0 8px var(--red)}.perf-section-header .label{font-size:.75rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.perf-list{display:flex;flex-direction:column;gap:.3rem}.perf-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem;padding:.4rem .6rem;background:linear-gradient(90deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.perf-row:hover{background:linear-gradient(90deg,#ffffff14,#ffffff08);border-color:#ffffff26;transform:translate(4px);box-shadow:0 4px 12px #00000026}.perf-name{color:var(--text-2);font-size:.85rem;font-weight:600;white-space:normal;word-break:break-all}.perf-data{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;min-width:85px}.perf-trend{font-size:.7rem;width:14px;text-align:center}.perf-val{font-family:Inter,monospace;font-weight:700;font-size:.9rem;text-align:right;min-width:70px}.perf-val.neutral{color:var(--text-3)}.summary-sub-stats{display:flex;justify-content:space-between;background:#ffffff05;border-radius:var(--radius-sm);padding:.8rem 1rem;font-size:.85rem}.sub-stat{color:var(--text-2)}.sub-stat b{color:var(--text);font-weight:600}.summary-books{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-top:auto}.book-stat{display:flex;flex-direction:column;align-items:center;background:#ffffff08;padding:.75rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-3);font-weight:600}.book-stat span{color:var(--text);font-size:.95rem;margin-top:.25rem}.summary-gauge{display:flex;flex-direction:column;align-items:center;position:relative}.summary-gauge .gauge-label{font-size:.8rem;color:var(--text-3);font-weight:600;margin-bottom:.5rem}.summary-gauge .gauge-val{font-size:2rem;font-weight:700}.summary-gauge.ok .gauge-val{color:var(--green)}.summary-gauge.warn .gauge-val{color:var(--yellow)}.summary-gauge.critical .gauge-val{color:var(--red)}.summary-donut-container{position:relative;display:flex;align-items:center;justify-content:center}.donut-live-arc{transition:stroke-dasharray .6s ease}.view-entering .donut-live-arc{animation:donut-draw 1.2s cubic-bezier(.16,1,.3,1) forwards}@keyframes donut-draw{0%{stroke-dasharray:0 283}}.donut-center-label{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-total{font-size:2rem;font-weight:700;color:var(--text);line-height:1}.donut-sub{font-size:.7rem;color:var(--text-3);font-weight:500;text-transform:uppercase;letter-spacing:.08em}.donut-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.summary-card-updated{float:right;font-size:.7rem;font-weight:500;color:var(--text-3);text-transform:none;letter-spacing:0;opacity:.7;font-style:italic}.perf-section{border-radius:var(--radius-sm);padding:.5rem}.perf-section-top{border-left:3px solid var(--green)}.perf-section-worst{border-left:3px solid var(--red)}.perf-header-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.4rem;vertical-align:middle}.perf-header-dot.positive{background:var(--green)}.perf-header-dot.negative{background:var(--red)}.resource-warn-item{position:relative;overflow:hidden}.resource-heatmap-bar{position:absolute;top:0;left:0;bottom:0;border-radius:inherit;transition:width .5s ease;pointer-events:none}.resource-heatmap-bar.warn{background:#ffab0014}.resource-heatmap-bar.critical{background:#ff47571a}.sys-status-list{display:flex;flex-direction:column;gap:.6rem;padding:1rem .5rem}.sys-status-item{display:flex;align-items:center;gap:.65rem;padding:.6rem .85rem;border-radius:var(--radius-sm);font-size:.85rem;transition:background .2s}.sys-status-item.ok{background:#00d68f0a;border:1px solid rgba(0,214,143,.1)}.sys-status-item.err{background:#ff47570f;border:1px solid rgba(255,71,87,.15)}.sys-status-item svg{flex-shrink:0}.sys-status-label{font-weight:600;color:var(--text)}.sys-status-detail{margin-left:auto;font-size:.78rem;color:var(--text-3);font-weight:500}.card-divider{border:0;border-top:1px solid var(--border);margin:.5rem 0;width:100%;opacity:.5}.resource-summary-mini{display:flex;flex-direction:column;gap:.75rem;padding:0 .5rem}.mini-res-item{display:flex;align-items:center;gap:1rem}.mini-res-label{font-size:.75rem;font-weight:700;color:var(--text-2);width:35px}.mini-res-track{flex:1;height:6px;background:var(--border);border-radius:10px;overflow:hidden;display:flex}.mini-res-bar{height:100%}.view-entering .mini-res-bar{animation:bar-grow 1s cubic-bezier(.16,1,.3,1) forwards}@keyframes bar-grow{0%{width:0;opacity:0}to{opacity:1}}.mini-res-stats{font-size:.75rem;font-weight:800;min-width:50px;text-align:right;font-family:Inter,monospace}.perf-list{display:flex;flex-direction:column;gap:.5rem}.perf-list-header{font-size:.8rem;font-weight:700;color:var(--text-3);text-transform:uppercase;margin-bottom:.2rem}.perf-item{display:flex;justify-content:space-between;font-size:.85rem;background:#ffffff05;padding:.5rem .75rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.perf-item:hover{background:var(--hover-bg)}.perf-name{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.perf-val{font-family:Inter,monospace;font-weight:700}.perf-val.positive{color:var(--green)}.perf-val.negative{color:var(--red)}.perf-trend{font-size:.7rem;opacity:.8}.perf-trend.positive{color:var(--green)}.perf-trend.negative{color:var(--red)}.perf-val.neutral{color:var(--text)}.resource-warn-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;max-height:400px;overflow-y:auto;padding-right:.25rem}.resource-warn-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .8rem;border-radius:var(--radius-sm);font-size:.85rem;transition:transform .2s;cursor:pointer;flex-shrink:0}.resource-warn-item:hover{transform:translateY(-1px)}.resource-warn-item.warn{background:#ffab001a;border:1px solid rgba(255,171,0,.2)}.resource-warn-item.critical{background:#ff47571a;border:1px solid rgba(255,71,87,.2)}.resource-warn-val{font-weight:700;font-family:Inter,monospace}.resource-warn-val.warn{color:var(--yellow)}.resource-warn-val.critical{color:var(--red)}.warn-ip{font-weight:400;margin-left:.5rem;color:var(--text-3);font-size:.8rem;opacity:.8}.warn-ip-container{display:inline-flex;align-items:center;gap:.3rem}.copy-ip-btn{background:none;border:none;color:var(--text-3);cursor:pointer;padding:2px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;opacity:.5}.copy-ip-btn:hover{background:#ffffff1a;color:var(--accent);opacity:1;transform:scale(1.1)}.copy-ip-btn :active{transform:scale(.95)}.login-activity-row{transition:background .15s ease;border-bottom:1px solid var(--border)}.login-activity-row:last-child{border-bottom:none}.login-activity-row:hover{background:rgba(var(--accent-rgb, 59, 130, 246),.06)}.login-activity-row td{padding:.45rem .75rem;vertical-align:middle}.type-stat-row{margin-bottom:1.25rem}.type-stat-row:last-child{margin-bottom:.5rem}.type-stat-info{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.type-stat-label{color:var(--text-2);font-size:.85rem;font-weight:500}.type-stat-value{color:var(--text);font-weight:700;font-size:1rem}.type-stat-value small{font-weight:500;color:var(--text-3);margin-left:.25rem;font-size:.75rem}.type-stat-track{width:100%;height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden}.type-stat-bar{height:100%;border-radius:4px;transition:width 1s cubic-bezier(.16,1,.3,1);box-shadow:0 0 10px #0003}.view-entering .type-stat-bar{animation:bar-grow 1s cubic-bezier(.16,1,.3,1) forwards}.history-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.history-label{font-size:.78rem;color:var(--text-2);font-weight:500;white-space:nowrap}.history-datetime-input{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.78rem;padding:.3rem .65rem;cursor:pointer;transition:border-color .2s,box-shadow .2s;outline:none}.history-datetime-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f8ef71f}.history-datetime-input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.history-view .view-toolbar .custom-dropdown-btn{padding:.25rem .6rem;font-size:.75rem;min-width:auto}.history-view .view-toolbar .ip-groups-filter-item label{font-size:.75rem}.history-view .view-toolbar .view-btn{font-size:.75rem;gap:.4rem}#history-filter-search:focus{border-color:var(--accent)!important;outline:none;box-shadow:0 0 0 2px #3b82f61a}.history-status-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem 2rem;background:#4f8ef714;border-bottom:1px solid rgba(79,142,247,.18);font-size:.78rem;font-weight:500;color:var(--accent);flex-shrink:0}.history-grid-wrapper{flex:1;overflow-y:auto;padding:1rem}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.history-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem .9rem;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.history-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--accent);opacity:.6;border-radius:2px 0 0 2px}.history-card:hover{border-color:var(--border-light);box-shadow:0 4px 18px #00000040}.history-card.no-snap:before{background:var(--text-3)}.history-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.7rem}.history-card-name{font-weight:700;font-size:.88rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.history-card-time{font-size:.68rem;color:var(--text-3);background:var(--bg);padding:.15rem .45rem;border-radius:4px;border:1px solid var(--border);white-space:nowrap}.history-card-type{font-size:.65rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}.history-port-table{width:100%;border-collapse:collapse;font-size:.78rem}.history-port-table th{text-align:right;color:var(--text-3);font-weight:600;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;padding:0 0 .35rem}.history-port-table th:first-child{text-align:left}.history-port-table td{padding:.22rem 0;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text-2);text-align:right}.history-port-table td:first-child{text-align:left;color:var(--text-3);font-weight:500}.history-port-table tr:last-child td{border-bottom:none;padding-top:.35rem;font-weight:700;color:var(--text)}.history-port-table .val-positive{color:var(--green)}.history-port-table .val-negative{color:var(--red)}.history-port-table .val-neutral{color:var(--text-2)}.history-no-snap{color:var(--text-3);font-size:.78rem;padding:.5rem 0 .2rem;font-style:italic}.compare-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.compare-period-toggle,.compare-metric-toggle{display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.compare-period-btn,.compare-metric-btn{background:transparent;border:none;border-radius:6px;color:var(--text-3);font-size:.75rem;font-weight:500;padding:.22rem .7rem;cursor:pointer;transition:background .15s,color .15s;font-family:var(--font);white-space:nowrap}.compare-period-btn:hover,.compare-metric-btn:hover{background:var(--border);color:var(--text)}.compare-period-btn.active,.compare-metric-btn.active{background:#5d8aff2e;color:var(--accent, #5d8aff)}.compare-content{flex:1;overflow-y:auto;padding:1rem}.compare-table-wrapper{max-width:100%;margin:0 auto}.compare-tbl{width:100%;border-collapse:collapse;font-size:.82rem;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}.compare-tbl thead th{background:var(--bg-card-h);padding:.7rem 1rem;text-align:left;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);border-bottom:1px solid var(--border);white-space:nowrap}.compare-tbl thead th.metric-col{text-align:right}.compare-tbl tbody tr{border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}.compare-tbl tbody tr:hover{background:var(--bg-card-h);transform:translateY(-1px);box-shadow:0 2px 8px #00000026;position:relative;z-index:1}.compare-tbl tbody tr:last-child{border-bottom:none}.compare-tbl td{padding:.65rem 1rem;color:var(--text);vertical-align:middle}.compare-tbl td.metric-col{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-family:Inter,monospace}.compare-tbl td.metric-col.positive{color:var(--green)}.compare-tbl td.metric-col.negative{color:var(--red)}.compare-tbl td.metric-col.neutral{color:var(--text-2)}.compare-instance-cell{display:flex;align-items:center;gap:.5rem}.compare-badge{font-size:.62rem;font-weight:700;padding:.1rem .35rem;border-radius:4px;background:var(--accent-dim);color:var(--accent);border:1px solid rgba(79,142,247,.2);white-space:nowrap}.sparkbar-cell{width:90px;min-width:90px;padding:.65rem 1rem}.sparkbar-track{height:6px;background:var(--border);border-radius:6px;overflow:hidden;position:relative}.sparkbar-fill{height:100%;border-radius:6px;min-width:2px;transition:width .4s ease}.sparkbar-fill.positive{background:var(--green)}.sparkbar-fill.negative{background:var(--red)}.sparkbar-fill.neutral{background:var(--text-3)}.rank-1{color:gold}.rank-2{color:silver}.rank-3{color:#cd7f32}.compare-empty{text-align:center;padding:5rem 2rem;color:var(--text-3);font-size:.85rem}:root[data-theme=white] .history-datetime-input::-webkit-calendar-picker-indicator{filter:none;opacity:.6}:root[data-theme=white] .history-card:before{opacity:.8}:root[data-theme=white] .compare-tbl tbody tr{border-bottom:1px solid var(--border)}.table-view{display:flex;flex-direction:column;height:100%;padding:1rem}.table-view-container{flex:1;position:relative;overflow:hidden}.ag-theme-alpine-dark{--ag-background-color: var(--bg) !important;--ag-header-background-color: var(--bg-card) !important;--ag-odd-row-background-color: var(--bg-card-h) !important;--ag-border-color: var(--border) !important;--ag-row-hover-color: var(--accent-dim) !important;--ag-selected-row-background-color: rgba(0, 153, 255, .15) !important;--ag-font-family: "Inter", sans-serif !important;--ag-font-size: 13px !important;--ag-foreground-color: var(--text) !important;--ag-header-foreground-color: var(--text-2) !important;--ag-secondary-foreground-color: var(--text-3) !important}.ag-theme-alpine-dark .ag-floating-filter{background:var(--bg-card)!important;border-top:1px solid var(--border)!important;min-height:42px!important}.ag-theme-alpine-dark .ag-floating-filter-input,.ag-theme-alpine-dark .ag-floating-filter-body,.ag-theme-alpine-dark .ag-floating-filter-input-wrapper,.ag-theme-alpine-dark .ag-text-field-input-wrapper{background:transparent!important}.ag-theme-alpine-dark .ag-floating-filter-input input{background:var(--bg)!important;border:1px solid var(--border-light)!important;border-radius:4px!important;color:var(--text)!important;padding:4px 8px!important}.ag-theme-alpine-dark .ag-floating-filter-button-button{color:var(--text-2)!important}.ag-theme-alpine-dark .ag-header-cell-sortable:hover .ag-sort-indicator{opacity:.8!important}.ag-theme-alpine-dark .ag-sort-ascending-icon,.ag-theme-alpine-dark .ag-sort-descending-icon{color:var(--accent)!important}.tbl-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:8px;vertical-align:middle;box-shadow:0 0 5px #0000004d}.tbl-dot.active{background:var(--green);box-shadow:0 0 8px var(--green-dim)}.tbl-dot.stale{background:var(--red);box-shadow:0 0 8px var(--red-dim)}.tbl-dot.warn{background:var(--yellow);box-shadow:0 0 8px var(--yellow-dim)}.tbl-dot.unknown{background:var(--text-3)}.cell-val{font-weight:600;font-family:Inter,monospace}.cell-ok{color:var(--green)}.cell-warn{color:var(--yellow)}.cell-critical{color:var(--red);font-weight:700}.cell-dim{color:var(--text-3);font-style:italic}.table-status-pill{padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.ag-row{transition:background-color .2s ease}.ag-cell{display:flex!important;align-items:center!important}.ag-row-pinned-bottom{background-color:var(--bg-card)!important;border-top:2px solid var(--border)!important;font-weight:800!important;color:var(--accent)!important;z-index:10;box-shadow:0 -4px 12px #0003}.ag-row-pinned-bottom .ag-cell{background-color:var(--bg-card)!important}.ag-row-pinned-bottom .ag-cell-value{letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;display:flex;align-items:center;gap:8px}.ag-row-pinned-bottom .ag-cell-value:before{content:"∑";font-size:1.1rem;opacity:.8;color:var(--text-3)}#table-btn-columns,#table-btn-reset{color:var(--text-2);opacity:1;font-weight:500;gap:.4rem;padding:.4rem .8rem;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1);background:transparent;border:1px solid transparent}#table-btn-columns.active{background:#4f8ef726;color:var(--accent)!important;border-color:#4f8ef74d;box-shadow:0 0 10px #4f8ef71a}#table-btn-reset:hover{color:var(--red);background:var(--red-dim);border-color:var(--red);transform:translateY(-1px)}#table-btn-reset:active{transform:translateY(0)}#table-btn-reset.active{background:transparent;color:var(--text-2);border-color:transparent}#table-btn-reset svg{transition:transform .5s cubic-bezier(.34,1.56,.64,1)}#table-btn-reset:hover svg{transform:rotate(-180deg)}.instance-link:hover{color:var(--accent)!important;text-decoration:underline!important}.ag-theme-alpine-dark .ag-side-bar{background:var(--bg-card)!important;border-left:1px solid var(--border)!important}.alerts-summary-bar{display:flex!important;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;background:var(--bg-card);border-bottom:1px solid var(--border);animation:slideDown .3s ease-out}.summary-stat-item{display:flex;align-items:center;gap:.5rem}.summary-stat-label{font-size:.75rem;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.summary-stat-val{font-size:.9rem;font-weight:700;color:var(--text)}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.history-mode-badge{padding:2px 8px;background:var(--red);color:#fff;font-size:10px;font-weight:800;border-radius:4px;margin-left:10px;letter-spacing:.05em;box-shadow:0 0 10px #ff00004d;transition:all .3s ease}.history-mode-badge.snapshot{background:var(--accent);box-shadow:0 0 10px #0099ff4d}.history-playback-wrap{display:flex;align-items:center;gap:1rem;background:var(--bg);padding:4px 12px;border-radius:20px;border:1px solid var(--border)}.playback-controls{display:flex;align-items:center;gap:.5rem}.play-btn{background:transparent;border:none;color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:50%;transition:all .2s}.play-btn:hover{background:#ffffff1a;color:var(--text)}.play-btn.main-play{background:var(--accent);color:#fff;width:28px;height:28px}.play-btn.main-play:hover{transform:scale(1.1);background:var(--accent-light)}.history-speed-select{background:transparent;border:none;color:var(--text-3);font-size:11px;font-weight:600;cursor:pointer;outline:none}.history-grid.snapshot-mode{filter:sepia(.25) contrast(1.1) brightness(.9)}.history-card{transition:filter .3s ease}.history-grid.snapshot-mode .history-card{border-color:var(--accent-dim)}.compare-period-toggle{display:flex;background:var(--bg);padding:3px;border-radius:8px;border:1px solid var(--border)}.compare-period-btn{padding:4px 12px;font-size:11px;font-weight:600;color:var(--text-3);background:transparent;border:none;cursor:pointer;border-radius:6px;transition:all .2s}.compare-period-btn.active{background:var(--bg-card);color:var(--text);box-shadow:0 2px 6px #0003}.sparkbar-cell{position:relative;min-width:120px}.sparkbar-track{height:10px;background:#ffffff08;border-radius:2px;overflow:hidden;position:relative;display:flex;align-items:center}.sparkbar-zero-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:#ffffff26;z-index:2}.sparkbar-fill.proportional{height:100%;position:absolute;transition:width .4s ease;z-index:1}.rank-worst{color:var(--red);font-weight:700}.toast-container{position:fixed;top:calc(var(--header-h) + 1rem);right:1rem;z-index:10000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);font-size:.85rem;min-width:280px;max-width:420px;animation:toast-in .3s ease forwards}.toast.toast-error{border-color:var(--red);background:var(--red-dim)}.toast.toast-success{border-color:var(--green);background:var(--green-dim)}.toast.toast-warning{border-color:var(--yellow);background:var(--yellow-dim)}.toast.removing{animation:toast-out .3s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.btn-delete:hover{opacity:1!important}.allocation-view{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.server-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:1.5rem;padding:1rem;animation:fade-in .4s ease-out}.server-alloc-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,border-color .2s,box-shadow .2s;box-shadow:var(--shadow);max-height:480px}.server-alloc-footer{padding:.4rem 1rem;background:#00000026;border-top:1px solid var(--border);display:flex;align-items:center;gap:.75rem;font-size:.7rem;color:var(--text-2)}.total-label{font-weight:700;font-size:.65rem;color:var(--text-3);letter-spacing:.05em;margin-right:.25rem}.total-val{font-family:var(--font-mono);font-weight:600;color:var(--accent)}.total-sep{opacity:.3}.server-alloc-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 40px #0009}.server-alloc-header{padding:1rem 1.25rem;background:#ffffff08;border-bottom:1px solid var(--border)}.server-alloc-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.server-host-name{font-weight:700;font-size:1.15rem;color:var(--text);letter-spacing:-.01em}.server-host-ip{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-3);background:#0003;padding:2px 6px;border-radius:4px}.server-host-summary{display:flex;gap:.75rem;font-size:.7rem;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.server-host-spec-item{display:flex;align-items:center;gap:.3rem}.server-host-spec-item b{color:var(--accent)}.server-host-model{margin-top:.4rem;font-size:.7rem;color:var(--text-3);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-vm-table-container{flex:1;overflow-x:auto;overflow-y:auto}.server-vm-table-container::-webkit-scrollbar{width:6px;height:6px}.server-vm-table-container::-webkit-scrollbar-track{background:#0003}.server-vm-table-container::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:3px}.server-vm-table-container::-webkit-scrollbar-thumb:hover{background:var(--accent)}.server-vm-table{width:100%;border-collapse:collapse;font-size:.82rem}.server-vm-table th{text-align:left;padding:.6rem .75rem;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);font-size:.65rem;background:#00000040;position:sticky;top:0;z-index:10;box-shadow:0 1px 0 var(--border)}.vm-row td{padding:.25rem .5rem;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-2);vertical-align:middle}.vm-row:last-child td{border-bottom:none}.vm-row:hover{background:#ffffff08;cursor:pointer}.vm-row.stale{background:#ff47570a}.vm-row.stale td{color:var(--text-3)}.vm-status-pill{padding:.2rem .45rem;border-radius:4px;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.vm-status-active{background:var(--green-dim);color:var(--green)}.vm-status-stale{background:var(--red-dim);color:var(--red)}.vm-status-warn{background:var(--yellow-dim);color:var(--yellow)}.vm-id-cell{font-family:JetBrains Mono,monospace;color:var(--accent);font-weight:600;opacity:.9}.vm-name-cell{font-weight:600;color:var(--text)}.vm-res-cell{min-width:50px;max-width:60px}.vm-res-val{display:flex;justify-content:space-between;font-size:.7rem;font-weight:700;margin-bottom:3px}.vm-progress-mini{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.vm-progress-fill{height:100%;border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}.progress-ok{background:var(--green)}.progress-warn{background:var(--yellow)}.progress-critical{background:var(--red)}.status-text-ok{color:var(--green)}.status-text-warn{color:var(--yellow)}.status-text-critical{color:var(--red)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.status-dot.ok{background:var(--green);box-shadow:0 0 8px var(--green-dim)}.status-dot.stale{background:var(--red);box-shadow:0 0 8px var(--red-dim)}.status-dot.warn{background:var(--yellow);box-shadow:0 0 8px var(--yellow-dim)}@media(max-width:900px){.server-grid{grid-template-columns:1fr}}.statusbar{position:fixed;bottom:0;left:0;right:0;height:32px;background:var(--bg-header);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1rem;font-size:.75rem;color:var(--text-3);z-index:1100;flex-shrink:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.statusbar-left,.statusbar-center,.statusbar-right{display:flex;align-items:center;gap:1.25rem;flex:1}.statusbar-center{justify-content:center}.statusbar-right{justify-content:flex-end}.status-indicator{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-2)}.utc-clock-footer{font-family:JetBrains Mono,Monaco,Consolas,monospace;font-weight:500;color:var(--text-2);display:flex;align-items:center;gap:.5rem;background:#0003;padding:2px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.03)}.footer-link-btn{background:none;border:none;color:var(--text-3);display:flex;align-items:center;gap:.4rem;cursor:pointer;transition:var(--transition);padding:3px 8px;border-radius:6px;font-family:inherit;font-size:.72rem;font-weight:500}.footer-link-btn:hover{color:var(--accent);background:var(--accent-dim);transform:translateY(-1px)}.footer-link-btn svg{opacity:.7}.footer-link-btn:hover svg{opacity:1}.conn-banner{display:none!important}.db-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.25rem}.db-stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem}.db-stat-label{font-size:.72rem;text-transform:uppercase;color:var(--text-3);letter-spacing:.04em}.db-stat-value{font-size:1.35rem;font-weight:700;margin-top:.25rem}.db-section{background:var(--bg-1);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1.25rem}.db-section-title{font-weight:600;margin-bottom:.75rem}.db-chart-wrap{height:160px}.db-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media(max-width:900px){.db-two-col{grid-template-columns:1fr}}.db-table{width:100%}.db-filter{margin-left:.75rem;background:var(--bg-2);color:var(--text-1);border:1px solid var(--border);border-radius:6px;padding:.25rem .5rem}.db-top-block{margin-bottom:1rem}.db-top-title{font-size:.78rem;text-transform:uppercase;color:var(--text-3);margin-bottom:.4rem}.db-top-row{display:flex;justify-content:space-between;padding:.25rem 0;border-bottom:1px solid var(--border)}.db-rej-count{margin-left:.75rem;font-size:.78rem;font-weight:400;color:var(--text-3)}.db-meta{font-size:.75rem;color:var(--text-3);margin:-.5rem 0 1rem}.db-error{background:#ef44441f;border:1px solid rgba(239,68,68,.45);color:#fca5a5;border-radius:8px;padding:.6rem .85rem;margin-bottom:1.25rem;font-size:.85rem}.logs-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.5rem .25rem .85rem;border-bottom:1px solid var(--border);margin-bottom:.75rem}.logs-toolbar-title{font-weight:700;color:var(--text-1);margin-right:auto}.logs-toolbar .toolbar-search-input{background:var(--bg-2);color:var(--text-1);border:1px solid var(--border);border-radius:6px;padding:.25rem .6rem;min-width:220px}.logs-count{font-size:.78rem;color:var(--text-3)}.logs-list{display:flex;flex-direction:column;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.log-row{display:grid;grid-template-columns:168px 160px 52px 1fr;gap:.75rem;align-items:baseline;padding:.35rem .5rem;border-bottom:1px solid var(--border)}.log-row:hover{background:#ffffff08}.log-time{color:var(--text-3);white-space:nowrap}.log-instance{color:var(--accent);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-source{font-size:.65rem;font-weight:700;text-align:center;border-radius:4px;padding:.05rem .3rem;align-self:center}.log-source-php{color:#8be9a8;background:#8be9a824;border:1px solid rgba(139,233,168,.35)}.log-source-kdb{color:#ffce7b;background:#ffce7b24;border:1px solid rgba(255,206,123,.35)}.log-line{color:var(--text-1);white-space:pre-wrap;word-break:break-word}.logs-empty{color:var(--text-3);padding:2rem .5rem;text-align:center}.bd-header{margin-bottom:1rem}.bd-title{font-weight:700;font-size:1rem;color:var(--text-1)}.bd-legend{font-size:.78rem;color:var(--text-3);margin-top:.25rem}.bd-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1rem}.bd-card{background:var(--bg-1);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem}.bd-card-diverged{border-color:#ff475799;box-shadow:0 0 0 1px #ff475759}.bd-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.bd-client{font-weight:700;font-size:.95rem;color:var(--text-1)}.bd-flag{font-size:.68rem;font-weight:700;color:#ff4757;background:#ff475724;border:1px solid rgba(255,71,87,.4);border-radius:4px;padding:.1rem .4rem}.bd-instances{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.74rem;color:var(--text-2);margin-bottom:.6rem}.bd-inst-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}.bd-vs{color:var(--text-3);font-style:italic}.bd-periods{display:flex;flex-direction:column;gap:.75rem}.bd-period-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2);margin-bottom:.2rem}.bd-period-flag{color:#ff4757}.bd-table{width:100%;border-collapse:collapse;font-size:.82rem}.bd-table th{text-align:right;font-weight:600;color:var(--text-3);font-size:.72rem;text-transform:uppercase;padding:.2rem .4rem;border-bottom:1px solid var(--border)}.bd-table th:first-child{text-align:left}.bd-metric{text-align:left;color:var(--text-2);padding:.25rem .4rem}.bd-num{text-align:right;padding:.25rem .4rem;font-variant-numeric:tabular-nums}.bd-pct{color:var(--text-3)}.bd-row-over{background:#ff47571f}.bd-row-over .bd-metric,.bd-row-over .bd-pct,.bd-row-over .bd-delta{color:#ff6b78;font-weight:700}.bd-empty{color:var(--text-3);padding:2rem .5rem;text-align:center}.ops-view{display:flex;flex-direction:column;height:calc(100vh - var(--header-h))}.ops-tabs{display:flex;gap:.25rem;padding:.5rem 1rem 0;border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.ops-tab{background:none;border:0;color:var(--text-2);padding:.5rem .75rem;cursor:pointer;white-space:nowrap}.ops-tab.active{color:var(--text);border-bottom:2px solid var(--accent)}.ops-pane{flex:1;min-height:0;overflow:auto;padding:1rem}.ops-pane.console-mode{padding:0;overflow:hidden}.ops-frame-host{height:100%}#ops-frame{width:100%;height:100%;border:0;display:block}.ops-groups{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.ops-group{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;background:var(--bg-card);display:flex;flex-direction:column;gap:.5rem}.ops-group-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ops-group-actions,.ops-editor-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.ops-editor-actions{margin-top:.5rem}.ops-editor{border-top:1px solid var(--border);padding-top:.5rem}.ops-chips{display:flex;gap:.25rem;flex-wrap:wrap}.ops-chip{background:var(--accent-dim);color:var(--text);border-radius:999px;padding:.1rem .55rem;font-size:.8rem}.ops-chip.ineligible{background:none;border:1px dashed var(--border);color:var(--text-3)}.ops-badge{border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 .4rem;font-size:.75rem;color:var(--text-2)}.ops-badge.ok{border-color:var(--accent);color:var(--accent)}.ops-create{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}.ops-create input:not([type=checkbox]),.ops-input,.ops-editor select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .5rem}.ops-input[type=number]{width:6rem}.ops-check{display:flex;align-items:center;gap:.35rem;color:var(--text-2)}.ops-field-error{flex-basis:100%;color:#ef4444;font-size:.85rem}.ops-member-grid{display:grid;gap:.25rem .75rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.ops-table-wrap{overflow-x:auto}.ops-table{width:100%;border-collapse:collapse}.ops-table th,.ops-table td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border);white-space:nowrap}.ops-table th{color:var(--text-2);font-weight:500}.ops-audit .ops-audit-details{white-space:normal;word-break:break-all;font-family:var(--font-mono, monospace);font-size:.78rem;color:var(--text-2);min-width:16rem}.ops-audit .ops-audit-at{color:var(--text-2)}.ops-hint{margin:0 0 .75rem}.ops-inventory{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;overflow:auto;white-space:pre}.ops-loading,.ops-placeholder{color:var(--text-2);padding:1rem}.ops-error{color:#ef4444;padding:1rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.ops-danger{color:#ef4444}.ops-app-console{padding:1rem;display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}#step-up-dialog .modal-body{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem}#step-up-dialog .modal-actions{display:flex;justify-content:flex-end;gap:.5rem}#step-up-dialog .modal-actions button{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .9rem;cursor:pointer;background:var(--bg);color:var(--text)}#step-up-dialog .modal-actions button[type=submit]{background:var(--accent);border-color:var(--accent);color:#fff}.ops-group-actions button,.ops-editor-actions button,.ops-table button,.ops-error button{padding:.3rem .65rem;font-size:.8rem;border-radius:var(--radius-sm);cursor:pointer}#step-up-dialog input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem}@media(max-width:640px){.ops-groups{grid-template-columns:1fr}.ops-pane{padding:.5rem}.ops-pane.console-mode{padding:0}}
