@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff")}:root{--bg: #000000;--bg-elevated: #111111;--bg-panel: #161616;--bg-row: #1a1a1a;--bg-row-hover: #222222;--header-bg: #0a0a0a;--header-fg: #f5f5f5;--text: #ffffff;--text-secondary: #a3a3a3;--border: #2a2a2a;--accent: #00c65e;--accent-strong: #00e676;--accent-muted: rgba(0, 198, 94, .16);--danger: #ff5c5c;--warn: #ffbf1f;--success: #00c65e;--muted: #737373;--overlay: rgba(0, 0, 0, .72);--radius: 8px;--font: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--header-height: 3.5rem;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--shadow-soft: 0 0 0 1px rgba(0, 198, 94, .08), 0 18px 48px rgba(0, 0, 0, .55)}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:#3f3f3f transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#3a3a3a;border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--accent, #00c65e) 40%,#555555);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}html,body,#root{min-height:100%;width:100%;margin:0;padding:0;font-family:var(--font);background:radial-gradient(900px 480px at 50% -20%,rgba(0,198,94,.09),transparent 55%),var(--bg);color:var(--text)}body{line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong);text-decoration:underline}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.mono{font-family:var(--mono);font-size:.86em}@media(display-mode:standalone){html,body,#root{overflow:hidden;height:100%;max-height:100dvh}body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;overscroll-behavior:none}.app-shell{height:100dvh;max-height:100dvh;overflow:hidden}.app-main{overflow:auto;overscroll-behavior:contain}}html.pwa-standalone,html.pwa-standalone body,html.pwa-standalone #root{overflow:hidden;height:100%;max-height:100dvh}html.pwa-standalone body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;overscroll-behavior:none}html.pwa-standalone .app-shell{height:100dvh;max-height:100dvh;overflow:hidden}html.pwa-standalone .app-main{overflow:auto;overscroll-behavior:contain}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.brand-mark{font-weight:700;letter-spacing:-.02em;font-size:1.1rem;color:var(--text)}.brand-logo{width:1.75rem;height:1.75rem;flex-shrink:0;object-fit:cover;border-radius:8px}.login-mark-wrap{position:relative;width:min(340px,72vw);aspect-ratio:1;display:grid;place-items:center}.login-mark-wrap-sm{width:min(120px,32vw)}.login-mark-wrap:after{content:"";position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;background:radial-gradient(circle,rgba(0,198,94,.18),transparent 70%);filter:blur(18px);z-index:0;pointer-events:none}.login-mark{position:relative;z-index:1;width:100%;height:auto;display:block;mix-blend-mode:screen;-webkit-mask-image:radial-gradient(closest-side,#000 52%,rgba(0,0,0,.85) 68%,rgba(0,0,0,.35) 82%,transparent 100%);mask-image:radial-gradient(closest-side,#000 52%,rgba(0,0,0,.85) 68%,rgba(0,0,0,.35) 82%,transparent 100%);filter:drop-shadow(0 0 36px rgba(0,198,94,.22))}.brand-sub{font-size:.72rem;font-weight:600;letter-spacing:.12em;color:var(--accent);text-transform:uppercase}.header-metrics{display:flex;flex-wrap:nowrap;gap:.65rem 1rem;font-size:.78rem;color:var(--text-secondary);white-space:nowrap}.header-metrics strong{color:var(--text);font-weight:600}.freshness.tone-ok strong{color:var(--ok, #3ecf8e)}.freshness.tone-warn strong{color:var(--warn, #e6b84d)}.freshness.tone-stale strong,.freshness.tone-missing strong{color:var(--danger, #e25c5c)}.muted{color:var(--text-secondary)}.pwa-update-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.25rem;padding-top:calc(1.25rem + var(--safe-top));padding-bottom:calc(1.25rem + var(--safe-bottom));background:#000000c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pwa-update-modal{width:min(100%,380px);padding:1.75rem 1.5rem 1.5rem;text-align:center;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 48px #0000008c}.pwa-update-modal__brand{display:flex;justify-content:center;margin-bottom:1rem}.pwa-update-modal__brand img{border-radius:12px;object-fit:cover}.pwa-update-modal__title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--text);letter-spacing:.04em}.pwa-update-modal__text{font-size:.92rem;line-height:1.5;margin:0 0 1.25rem}.pwa-update-modal__version,.pwa-update-modal__current{font-size:.86rem;margin:0 0 .75rem}.pwa-update-modal__version code,.pwa-update-modal__current code{font-family:var(--mono);font-size:.84em}.pwa-update-modal__progress{margin-bottom:1.25rem}.pwa-update-modal__progress-track{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.pwa-update-modal__progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#00a84f,var(--accent))}.pwa-update-modal__progress-track--busy{position:relative;overflow:hidden}.pwa-update-modal__progress-bar--busy{width:40%!important;animation:pwa-update-indeterminate 1.1s ease-in-out infinite}@keyframes pwa-update-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.pwa-update-modal__actions{display:flex;flex-direction:column;gap:.5rem}.settings-actions-stack{display:flex;flex-direction:column;gap:.5rem;margin-top:.65rem}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;max-width:1760px;margin-inline:auto;padding:.85rem clamp(1rem,2.2vw,1.75rem) 1.25rem;gap:.85rem}.breakglass-banner{background:linear-gradient(90deg,#7f1d1d,#991b1b);color:#fee2e2;text-align:center;font-size:.82rem;font-weight:600;padding:.4rem .75rem}.user-profile{position:relative;z-index:30}.user-chip{display:inline-flex;align-items:center;gap:.45rem;max-width:min(280px,42vw);padding:.2rem .45rem .2rem .55rem;border-radius:8px;border:1px solid var(--border);background:#ffffff08;font-size:.82rem;color:var(--text-secondary)}.user-chip-trigger{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;font:inherit;text-align:left;position:relative;z-index:1;pointer-events:auto;transition:border-color .15s ease,background .15s ease}.user-chip-trigger:hover,.user-profile.is-open .user-chip-trigger{border-color:var(--accent);background:#ffffff0f;color:var(--text)}.user-chip-caret{flex:0 0 auto;opacity:.7;transition:transform .15s ease}.user-profile.is-open .user-chip-caret{transform:rotate(180deg)}.user-avatar{flex:0 0 auto;display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:linear-gradient(145deg,var(--accent-muted),rgba(255,255,255,.06));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent);font-size:.62rem;font-weight:700;letter-spacing:.04em}.user-avatar-lg{width:2.6rem;height:2.6rem;font-size:.85rem}.user-chip-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.user-chip-name{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip-email{font-size:.68rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role,.user-source{flex:0 0 auto;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;padding:.12rem .4rem;border-radius:999px;background:var(--accent-muted);color:var(--accent)}.user-source{background:#ff5c5c29;color:#fecaca}.user-actions-armed{flex:0 0 auto;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;padding:.12rem .4rem;border-radius:999px;background:#ffbf1f2e;color:#ffd978}.user-profile-menu{position:absolute;top:calc(100% + .45rem);right:0;z-index:100;width:min(320px,calc(100vw - 1.5rem));padding:.85rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-soft);display:grid;gap:.85rem}.user-profile-head{display:flex;align-items:center;gap:.75rem}.user-profile-identity{display:grid;gap:.15rem;min-width:0}.user-profile-identity strong{color:var(--text);font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-profile-identity span{font-size:.78rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-profile-meta{display:grid;gap:.55rem;margin:0;padding:.65rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.user-profile-meta>div{display:grid;gap:.15rem}.user-profile-meta dt{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.user-profile-meta dd{margin:0;font-size:.85rem;color:var(--text);word-break:break-word}.user-profile-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem!important;color:var(--text-secondary)!important}.user-profile-warn{color:#fecaca!important}.user-profile-groups{display:grid;gap:.4rem}.user-profile-groups-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.user-profile-groups ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.user-profile-groups li{font-size:.72rem;padding:.18rem .45rem;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--text-secondary)}.user-profile-groups p,.user-profile-empty{margin:0;font-size:.8rem;color:var(--muted)}.user-profile-logout{width:100%;justify-content:center}.user-profile-actions-arm{display:grid;gap:.45rem;padding:.65rem 0;border-top:1px solid var(--border)}.user-profile-arm-toggle{display:flex;align-items:flex-start;gap:.65rem;cursor:pointer;color:var(--text)}.user-profile-arm-toggle input{margin-top:.2rem;flex:0 0 auto;width:1.05rem;height:1.05rem;accent-color:var(--accent)}.user-profile-arm-toggle span{display:grid;gap:.2rem;min-width:0}.user-profile-arm-toggle strong{font-size:.88rem}.user-profile-arm-toggle small{font-size:.75rem;color:var(--text-secondary);line-height:1.35}@media(max-width:720px){.user-chip-text,.user-role,.user-source,.user-actions-armed{display:none}.user-chip{max-width:none;padding:.2rem}.user-chip-caret{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);border-radius:8px;padding:.45rem .75rem;transition:background .15s ease,border-color .15s ease,transform .12s ease}.btn:hover:not(:disabled){background:var(--bg-row-hover);border-color:#3f3f3f}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn-sm{padding:.28rem .55rem;font-size:.82rem}.btn-primary{background:#fff;border-color:#fff;color:#0a0a0a;font-weight:600}.btn-primary:hover:not(:disabled){background:#e8e8e8;border-color:#e8e8e8;color:#000}.btn-danger{background:#7f1d1d;border-color:#991b1b;color:#fecaca}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:#94a3b81f;color:var(--text)}.btn-block{width:100%}.health-banners{display:flex;flex-direction:column;gap:.4rem}.health-banners:empty{display:none}.health-banner{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border-radius:var(--radius);font-size:.88rem;font-weight:500}.health-banner-danger{background:#f8717124;border:1px solid rgba(248,113,113,.35);color:#fecaca}.health-banner-warn{background:#fbbf241f;border:1px solid rgba(251,191,36,.3);color:#fde68a}.toolbar{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.search-box{display:flex;align-items:center;gap:.45rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:.35rem .55rem;min-width:min(320px,100%);flex:1}.search-box input{flex:1;border:none;background:transparent;outline:none;min-width:0}.search-box kbd{font-size:.68rem;color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;padding:.1rem .3rem;font-family:var(--mono)}.search-box .search-clear{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer}.search-box .search-clear:hover{background:var(--bg-panel);color:var(--text)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px}.btn-icon:hover{background:var(--bg-elevated);color:var(--text)}.chip-text{padding:.25rem .65rem;font-size:.78rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer}.toggle,.select-inline{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary)}.select-inline select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.25rem .4rem}.vlan-chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{border:1px solid transparent;background:transparent;padding:0;border-radius:999px}.chip.is-active{outline:2px solid var(--accent);outline-offset:1px}.vlan-badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:#f5f5f5;background:color-mix(in srgb,var(--vlan-color, #737373) 28%,#111111);border:1px solid color-mix(in srgb,var(--vlan-color, #737373) 55%,transparent)}.vlan-badge.size-md{font-size:.8rem;padding:.22rem .65rem}.vlan-unknown{color:var(--text-secondary);border-color:var(--border);background:#64748b26}.dashboard-layout{flex:1;min-height:420px;display:grid;grid-template-columns:1fr;gap:.75rem}.dashboard-layout.has-detail{grid-template-columns:minmax(0,1fr) minmax(380px,460px)}@media(min-width:1400px){.dashboard-layout.has-detail{grid-template-columns:minmax(0,1fr) minmax(420px,520px)}}.list-pane{min-height:360px;height:min(70vh,900px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.list-pane .empty-hint{padding:1.25rem}.vm-list{display:flex;flex-direction:column;gap:.35rem;padding:.5rem}.vm-list>.node-group-header{margin-top:.25rem}.vm-list>.node-group-header:first-child{margin-top:0}.vm-virtual-list{outline:none}.desktop-only{display:inline}.virt-row{box-sizing:border-box;height:100%;padding:.3rem .5rem;display:flex;align-items:stretch;overflow:hidden}.virt-row>.vm-row,.virt-row>.node-group-header{flex:1;width:100%;margin:0;min-height:0;height:100%;box-sizing:border-box}.app-header{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem .75rem;padding:calc(.55rem + var(--safe-top)) .75rem .55rem;background:var(--header-bg);color:var(--header-fg);border-bottom:1px solid var(--border);box-shadow:inset 0 -1px #00c65e38;position:sticky;top:0;z-index:20;min-height:var(--header-height)}.app-header-brand{display:flex;align-items:center;gap:.65rem;flex-wrap:nowrap;flex:1 1 auto;min-width:0;overflow:hidden}.brand-link{display:inline-flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none}.brand-link:hover{text-decoration:none;color:inherit}.app-nav{display:inline-flex;gap:.25rem;padding:.15rem;border-radius:8px;background:#ffffff0a;border:1px solid var(--border)}.nav-link{padding:.3rem .7rem;border-radius:6px;font-size:.82rem;font-weight:600;color:var(--text-secondary);text-decoration:none}.nav-link:hover{color:var(--text);text-decoration:none;background:#ffffff0d}.nav-link.is-active{color:#0a0a0a;background:var(--accent)}.app-header-center{display:flex;justify-content:center;flex:0 1 auto;min-width:0;overflow:hidden}.app-header-actions{display:flex;justify-content:flex-end;align-items:center;gap:.35rem;flex:0 0 auto;position:relative;z-index:30;min-width:0}.node-group-header{width:100%;display:flex;flex-wrap:nowrap;justify-content:space-between;gap:.5rem;align-items:center;text-align:left;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:.45rem .7rem;margin:0;overflow:hidden;min-height:0;height:100%;box-sizing:border-box}.node-group-header.is-unreachable{border-color:#f8717173}.node-group-title{display:inline-flex;align-items:center;gap:.45rem;flex-wrap:wrap;min-width:0}.node-count,.node-uptime{color:var(--text-secondary);font-size:.78rem}.node-gauges{display:flex;align-items:center;gap:.75rem;flex-wrap:nowrap;min-width:0}.node-gauges .gauge-bar-compact{width:min(118px,28vw);flex:0 1 auto}.vm-row{width:100%;display:grid;grid-template-columns:10px minmax(120px,1.35fr) 5.75rem 9.75rem 8.75rem 3.75rem minmax(140px,1.15fr);column-gap:.65rem;align-items:center;text-align:left;background:var(--bg-row);border:1px solid transparent;border-radius:8px;padding:.55rem .7rem;margin:0;transition:background .12s ease,border-color .12s ease}.vm-row:hover{background:var(--bg-row-hover)}.vm-row.is-selected{border-color:#00c65e8c;background:#00c65e1a}.vm-name{display:flex;flex-direction:column;gap:.1rem;min-width:0}.vm-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;line-height:1.2}.vm-meta,.vm-ip,.vm-uptime{font-size:.78rem;color:var(--text-secondary);line-height:1.2}.vm-ip{font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vm-uptime{justify-self:end;white-space:nowrap;font-variant-numeric:tabular-nums}.vm-gauges{display:flex;flex-direction:column;gap:.4rem;min-width:0;justify-content:center;padding-block:.1rem}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);justify-self:center}.status-chip{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .4rem;border-radius:999px;white-space:nowrap;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;text-align:center;box-sizing:border-box;min-width:0;width:100%}.vm-row .vlan-badge{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tone-green{color:var(--success)}.tone-yellow{color:var(--warn)}.tone-red{color:var(--danger)}.tone-blue{color:var(--accent)}.tone-muted,.tone-neutral{color:var(--muted)}.status-dot.tone-green,.gauge-fill.tone-green{background:var(--success)}.status-dot.tone-yellow,.gauge-fill.tone-yellow{background:var(--warn)}.status-dot.tone-red,.gauge-fill.tone-red{background:var(--danger)}.status-dot.tone-blue{background:var(--accent)}.status-dot.tone-muted,.status-dot.tone-neutral,.gauge-fill.tone-neutral{background:var(--muted)}.status-chip.tone-green{background:#4ade8024}.status-chip.tone-yellow{background:#fbbf2424}.status-chip.tone-red{background:#f8717124}.status-chip.tone-blue{background:#00c65e24}.status-chip.tone-muted,.status-chip.tone-neutral{background:#64748b2e}.gauge-bar{display:flex;align-items:center;gap:.45rem;font-size:.75rem;min-height:1.15rem;min-width:0;width:100%}.gauge-bar .gauge-label{flex:0 0 2.25rem}.gauge-bar .gauge-track{flex:1 1 auto;min-width:48px}.gauge-bar .gauge-value{flex:0 0 2.35rem}.gauge-bar-compact{gap:.5rem;min-height:1.1rem}.gauge-bar-compact .gauge-label{display:none}.gauge-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 16px;width:16px;height:16px;color:var(--text-secondary);transition:color .2s ease;position:relative;z-index:1}.gauge-icon.tone-green{color:var(--success)}.gauge-icon.tone-yellow{color:var(--warn)}.gauge-icon.tone-red{color:var(--danger)}.gauge-label{color:var(--text-secondary)}.gauge-track{position:relative;height:8px;border-radius:999px;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff14;overflow:hidden;min-width:0}.gauge-bar-compact .gauge-track{height:9px;background:#ffffff29}.gauge-track.tone-green{background:color-mix(in srgb,var(--success) 18%,rgba(255,255,255,.1))}.gauge-track.tone-yellow{background:color-mix(in srgb,var(--warn) 18%,rgba(255,255,255,.1))}.gauge-track.tone-red{background:color-mix(in srgb,var(--danger) 18%,rgba(255,255,255,.1))}.gauge-fill{height:100%;border-radius:inherit;min-width:0;transition:width .25s ease,background-color .2s ease,min-width .25s ease}.gauge-fill.is-nonzero{min-width:6px}.gauge-value{font-variant-numeric:tabular-nums;text-align:right;font-weight:650;line-height:1;letter-spacing:.01em}.detail-sheet{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;max-height:min(70vh,900px);box-shadow:var(--shadow-soft);animation:slide-in .18s ease;min-width:0;scrollbar-gutter:stable}@keyframes slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.detail-header{display:flex;justify-content:space-between;gap:.5rem;padding:.85rem .9rem .5rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-panel);z-index:1}.detail-header h2{margin:0;font-size:1.15rem;letter-spacing:-.02em}.detail-sub{margin:.15rem 0 0;color:var(--text-secondary);font-size:.82rem}.detail-body{padding:.75rem .9rem 1rem;display:flex;flex-direction:column;gap:.85rem}.detail-status-row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.detail-gauges{display:grid;gap:.65rem}.spark-row{display:flex;justify-content:space-between;align-items:center;color:var(--accent);font-size:.78rem;margin-bottom:.2rem}.detail-grid{display:grid;grid-template-columns:1fr;gap:.35rem;margin:0}.detail-item{display:grid;grid-template-columns:100px 1fr;gap:.4rem;padding:.35rem 0;border-bottom:1px solid rgba(42,42,42,.9);font-size:.84rem}.detail-item dt{color:var(--text-secondary);margin:0}.detail-item dd{margin:0;display:flex;justify-content:space-between;gap:.5rem;min-width:0;word-break:break-word}.field-meta{color:var(--muted);font-size:.7rem;white-space:nowrap}.action-bar{border-top:1px solid var(--border);padding-top:.75rem;display:flex;flex-direction:column;gap:.55rem}.action-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.action-hint{margin:0;font-size:.78rem;color:var(--text-secondary)}.action-confirm{display:flex;flex-direction:column;gap:.45rem;background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:8px;padding:.65rem}.action-confirm input{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem}.action-confirm-row{display:flex;gap:.4rem}.picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;justify-content:center;align-items:flex-start;padding:12vh 1rem 1rem;z-index:50;animation:fade-in .12s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.picker-panel{width:min(640px,100%);background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft);overflow:hidden}.picker-input-row{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-bottom:1px solid var(--border)}.picker-input-row input{flex:1;border:none;background:transparent;outline:none;font-size:1rem}.picker-list{max-height:50vh;overflow:auto;padding:.35rem}.picker-section{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);padding:.45rem .55rem .2rem}.picker-item{width:100%;display:grid;grid-template-columns:1fr auto auto auto;gap:.45rem;align-items:center;text-align:left;background:transparent;border:none;border-radius:8px;padding:.55rem}.picker-item:hover{background:var(--bg-row-hover)}.picker-name{font-weight:600}.picker-meta{color:var(--text-secondary);font-size:.8rem}.badge-unreachable{font-size:.68rem;color:var(--danger);border:1px solid rgba(248,113,113,.4);border-radius:999px;padding:.1rem .35rem}.picker-hint{padding:.45rem .75rem .65rem;font-size:.75rem;color:var(--muted);border-top:1px solid var(--border)}.login{min-height:100%;min-height:100vh;min-height:100dvh;height:100%;display:grid;place-items:center;padding:2rem 1rem 3rem;background:radial-gradient(720px 520px at 50% 36%,rgba(0,198,94,.12),transparent 68%),#000;position:relative;overflow:auto}.login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 12% 18%,rgba(0,230,118,.55),transparent),radial-gradient(1px 1px at 78% 22%,rgba(0,198,94,.4),transparent),radial-gradient(1px 1px at 64% 74%,rgba(0,198,94,.35),transparent),radial-gradient(1px 1px at 30% 60%,rgba(0,230,118,.3),transparent),radial-gradient(1.4px 1.4px at 88% 68%,rgba(0,198,94,.4),transparent);pointer-events:none;opacity:.85}.login-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.125rem;z-index:1;width:min(420px,100%)}.login h1{margin:0;font-weight:600;font-size:clamp(2rem,4vw,2.6rem);letter-spacing:.12em;color:var(--text)}.gate{display:block;width:72px;height:72px;padding:14px;border-radius:18px;border:1px solid rgba(0,198,94,.55);background:#0000008c;box-shadow:0 0 22px #00c65e3d;color:inherit;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.gate svg{width:100%;height:100%;display:block}.gate:hover{border-color:var(--accent-strong);box-shadow:0 0 28px #00e67661}.login-breakglass{margin-top:.25rem;border:none;background:transparent;color:var(--text-secondary);font:inherit;font-size:.82rem;letter-spacing:.04em;cursor:pointer;padding:.25rem .5rem}.login-breakglass:hover{color:var(--accent)}.login-local{display:flex;flex-direction:column;gap:.55rem;margin-top:.5rem;width:100%;padding:1rem;border-radius:12px;border:1px solid rgba(0,198,94,.18);background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-local label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--text-secondary)}.login-local input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .6rem;color:var(--text)}.breakglass-hint{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#fecaca;background:#7f1d1d59;border-radius:8px;padding:.45rem .55rem}.form-error{color:#fecaca;background:#f871711f;border:1px solid rgba(248,113,113,.3);border-radius:8px;padding:.45rem .55rem;font-size:.85rem}.login-lore-btn{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:20;width:48px;height:48px;padding:10px;border-radius:14px;border:1px solid rgba(0,198,94,.4);background:#000000b8;box-shadow:0 0 18px #00c65e38;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-lore-btn svg{width:100%;height:100%;display:block}.login-lore-btn:hover,.login-lore-btn:focus-visible{border-color:var(--accent-strong);box-shadow:0 0 24px #00e67659;outline:none}body.login-lore-open{overflow:hidden}.login-lore-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100060;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) 16px max(16px,env(safe-area-inset-bottom,0px));box-sizing:border-box}.login-lore-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.login-lore-card{position:relative;z-index:1;width:min(440px,100%);max-height:min(88dvh,720px);overflow:auto;-webkit-overflow-scrolling:touch;padding:28px 22px 24px;border-radius:20px;border:1px solid rgba(0,198,94,.28);background:radial-gradient(420px 220px at 50% 0%,rgba(0,198,94,.12),transparent 70%),linear-gradient(180deg,#161616fa,#000000fa);box-shadow:0 24px 64px #0000008c,0 0 40px #00c65e24;text-align:center;outline:none;color:var(--text)}.login-lore-close{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#ffffffb3;font-size:1.6rem;line-height:1;cursor:pointer}.login-lore-close:hover,.login-lore-close:focus-visible{color:var(--accent-strong);background:#00c65e1f;outline:none}.login-lore-heroes{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:4px 0 16px}.login-lore-hero{width:132px;margin:0;text-align:center}.login-lore-hero img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;display:block;border-radius:22px;box-shadow:0 0 28px #00c65e2e;border:1px solid rgba(0,198,94,.22);background:#000;padding:8px}.login-lore-hero figcaption{margin-top:8px;font-size:.72rem;letter-spacing:.04em;color:var(--muted)}.login-lore-title{margin:0;font-size:1.55rem;font-weight:650;letter-spacing:.1em;color:var(--accent-strong)}.login-lore-kicker{margin:6px 0 16px;font-size:.82rem;color:var(--muted);letter-spacing:.04em}.login-lore-body{text-align:left;font-size:.92rem;line-height:1.55;color:#ffffffd6}.login-lore-body p{margin:0 0 12px}.login-lore-body p:last-child{margin-bottom:0}.login-lore-body strong{color:var(--accent-strong);font-weight:650}.login-lore-body em{font-style:italic;color:#00e676eb}.boot-screen,.not-found,.panel-status,.empty-hint{display:grid;place-items:center;gap:.5rem;padding:2rem 1rem;color:var(--text-secondary);text-align:center}.not-found h1{margin:0;font-size:3rem;color:var(--text)}.dash-footer{font-size:.75rem;color:var(--muted);padding:.25rem 0 calc(.25rem + var(--safe-bottom))}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:960px){.desktop-only{display:none!important}.app-header-center{display:none}.brand-mark{font-size:1rem}.app-nav{padding:.1rem}.nav-link{padding:.28rem .55rem;font-size:.78rem}.toolbar{gap:.55rem;padding-bottom:.15rem}.toolbar .select-inline{flex:1 1 calc(50% - .4rem);min-width:0}.toolbar .select-inline select{width:100%}.search-box{flex:1 1 100%;min-width:0}.dashboard-layout{min-height:0;flex:1}.dashboard-layout.has-detail{grid-template-columns:1fr}.dashboard-layout.has-detail .list-pane{display:none}.list-pane{height:auto;flex:1;min-height:50vh}.detail-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;max-height:none;height:100%;height:100dvh;border-radius:0;border:none;animation:slide-up .2s ease;padding-top:max(var(--safe-top),2.75rem);padding-bottom:max(var(--safe-bottom),.5rem)}.detail-header{padding:.85rem .85rem .65rem;align-items:flex-start}.detail-header .btn{min-width:2.5rem;min-height:2.5rem;margin-top:-.15rem}.detail-body{padding:.85rem .95rem calc(1.1rem + var(--safe-bottom));gap:1rem}.detail-gauges{gap:.85rem}.detail-item{padding:.5rem 0;grid-template-columns:6.5rem 1fr}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.node-group-header{flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:center;gap:.45rem;padding:.55rem .7rem}.node-group-title{width:100%}.node-gauges{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:.4rem;width:100%}.node-gauges .gauge-bar-compact{width:100%;min-width:0}.node-gauges .node-uptime{align-self:flex-end;white-space:nowrap;font-size:.75rem}.vm-row{grid-template-columns:12px minmax(0,1fr) auto;grid-template-areas:"dot name status" "dot vlan uptime" "dot ip ip" "gauges gauges gauges";align-content:start;row-gap:.4rem;column-gap:.55rem;padding:.7rem .75rem;height:100%;box-sizing:border-box;overflow:hidden}.vm-row .status-dot{grid-area:dot;margin-top:.35rem}.vm-row .vm-name{grid-area:name}.vm-row .vm-name .vm-meta{display:none}.vm-row .status-chip{grid-area:status}.vm-row .vlan-badge{grid-area:vlan;justify-self:start;position:static}.vm-row .vm-ip{grid-area:ip}.vm-row .vm-uptime{grid-area:uptime;justify-self:end}.vm-row .vm-gauges{grid-area:gauges;gap:.45rem;padding-top:.15rem}}html.pwa-standalone .list-pane,body.pwa-standalone .list-pane{height:auto;flex:1;min-height:0}html.pwa-standalone .dashboard-layout,body.pwa-standalone .dashboard-layout{flex:1;min-height:0}.overview-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 1rem;align-items:flex-end;max-width:980px}.overview-heading{min-width:0}.overview-title{margin:0;font-size:clamp(1.25rem,1.1rem + .6vw,1.55rem);letter-spacing:-.02em}.overview-sub{margin:.2rem 0 0;color:var(--text-secondary);font-size:.88rem}.overview-actions-panel{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.overview-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.overview-action-btn.is-active{border-color:#00c65e8c;color:var(--accent, #00c65e);background:color-mix(in srgb,var(--accent, #00c65e) 12%,var(--bg-elevated))}@media(max-width:719px){.overview-toolbar{flex-direction:column;align-items:stretch;gap:.85rem}.overview-actions-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;width:100%;padding:.65rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft)}.overview-action-btn{width:100%;min-height:2.85rem;margin:0;padding:.55rem .45rem;font-size:.82rem;white-space:nowrap}.overview-action-btn span{overflow:hidden;text-overflow:ellipsis}.overview-action-reload{grid-column:1 / -1}}.overview-section-title{margin:1.35rem 0 .75rem;max-width:980px;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.cluster-dash{display:flex;flex-direction:column;gap:1rem;max-width:980px;width:100%}.cluster-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.cluster-kpi{display:flex;flex-direction:column;gap:.15rem;padding:.85rem .95rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;min-width:0}.cluster-kpi-k{font-size:.62rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);opacity:.8}.cluster-kpi-v{font-size:1.35rem;font-variant-numeric:tabular-nums;line-height:1.15}.cluster-kpi-s{font-size:.72rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cluster-capacity{display:flex;flex-direction:column;gap:.65rem;padding:.85rem 1rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px}.cluster-cap-head{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem;color:var(--text-secondary)}.cluster-cap-track{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#ffffff0f}.cluster-cap-seg{display:block;height:100%;min-width:2px}.cluster-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.cluster-chart-card{padding:.9rem 1rem 1rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;min-width:0}.cluster-chart-title{margin:0 0 .75rem;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary)}.cluster-compare-legend,.cluster-vm-legend{display:flex;gap:.85rem;margin-bottom:.55rem;font-size:.68rem;color:var(--text-secondary)}.cluster-compare-legend .leg:before,.cluster-vm-legend .leg:before{content:"";display:inline-block;width:.55rem;height:.55rem;border-radius:2px;margin-right:.3rem;vertical-align:middle}.cluster-compare-legend .leg.cpu:before{background:#38bdf8}.cluster-compare-legend .leg.ram:before{background:#e6b84d}.cluster-compare-legend .leg.disk:before{background:#94a3b8}.cluster-vm-legend .leg.run:before{background:var(--success, #3ecf8e)}.cluster-vm-legend .leg.other:before{background:#ffffff2e}.cluster-compare-rows{display:flex;flex-direction:column;gap:.45rem}.cluster-compare-row{display:grid;grid-template-columns:4.5rem 1fr;gap:.55rem;align-items:center;width:100%;padding:.25rem .15rem;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;border-radius:6px}.cluster-compare-row:hover{background:#ffffff0a}.cluster-compare-name{font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis}.cluster-compare-bars{display:flex;flex-direction:column;gap:.2rem;min-width:0}.cluster-metric-bar{position:relative;height:1.05rem;border-radius:4px;background:#ffffff0f;overflow:hidden}.cluster-metric-fill{display:block;height:100%;border-radius:4px}.cluster-metric-bar.kind-cpu .cluster-metric-fill{background:#38bdf8}.cluster-metric-bar.kind-ram .cluster-metric-fill{background:#e6b84d}.cluster-metric-bar.kind-disk .cluster-metric-fill{background:#94a3b8}.cluster-metric-label{position:absolute;inset:0 .35rem 0 auto;display:flex;align-items:center;font-size:.62rem;font-variant-numeric:tabular-nums;color:var(--text);text-shadow:0 0 4px rgba(0,0,0,.65)}.cluster-donut{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center}.cluster-donut-svg{flex-shrink:0}.cluster-donut-track{stroke:#ffffff14}.cluster-donut-arc{stroke-linecap:butt}.cluster-donut-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;min-width:8rem;flex:1}.cluster-legend-btn{display:flex;align-items:center;gap:.4rem;width:100%;padding:.2rem .15rem;border:none;background:transparent;color:inherit;font-size:.78rem;cursor:pointer;border-radius:4px}.cluster-legend-btn:hover{background:#ffffff0a}.cluster-legend-val{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.cluster-swatch{width:.65rem;height:.65rem;border-radius:2px;flex-shrink:0}.tone-a{background:#38bdf8;stroke:#38bdf8}.tone-b{background:#a78bfa;stroke:#a78bfa}.tone-c{background:#34d399;stroke:#34d399}.tone-d{background:#fb923c;stroke:#fb923c}.tone-e{background:#f472b6;stroke:#f472b6}.tone-f{background:#94a3b8;stroke:#94a3b8}.cluster-cap-seg.tone-a{background:#38bdf8}.cluster-cap-seg.tone-b{background:#a78bfa}.cluster-cap-seg.tone-c{background:#34d399}.cluster-cap-seg.tone-d{background:#fb923c}.cluster-cap-seg.tone-e{background:#f472b6}.cluster-cap-seg.tone-f{background:#94a3b8}.cluster-vm-stack{display:flex;flex-direction:column;gap:.45rem}.cluster-vm-row{display:grid;grid-template-columns:4.5rem 1fr 3.2rem;gap:.55rem;align-items:center;width:100%;padding:.2rem .1rem;border:none;background:transparent;color:inherit;cursor:pointer;border-radius:6px;text-align:left}.cluster-vm-row:hover{background:#ffffff0a}.cluster-vm-name{font-size:.8rem;font-weight:600}.cluster-vm-track{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#ffffff0f}.cluster-vm-run{background:var(--success, #3ecf8e);height:100%}.cluster-vm-other{background:#ffffff2e;height:100%}.cluster-vm-count{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--text-secondary);text-align:right}@media(max-width:719px){.cluster-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.cluster-charts{grid-template-columns:1fr}.cluster-compare-row{grid-template-columns:3.6rem 1fr}.cluster-vm-row{grid-template-columns:3.6rem 1fr 2.8rem}}.node-grid{display:grid;grid-template-columns:1fr;gap:1.15rem;align-items:start;width:100%;max-width:980px}@media(min-width:720px){.node-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}}.node-card{display:flex;flex-direction:column;gap:1.05rem;width:100%;min-width:0;text-align:left;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:1.25rem 1.35rem 1.1rem;box-shadow:var(--shadow-soft);transition:border-color .15s ease,transform .12s ease,background .15s ease}.node-card.is-interactive{cursor:pointer}.node-card.is-interactive:hover{border-color:#00c65e73;background:#1a1a1a;transform:translateY(-1px)}.node-card.is-interactive:focus-visible{outline:2px solid var(--accent, #00c65e);outline-offset:2px}.node-card.is-unreachable{border-color:#ff5c5c73}.node-card.is-placeholder{border-style:dashed;border-color:color-mix(in srgb,var(--border) 80%,#64748b);background:color-mix(in srgb,var(--bg-panel) 70%,transparent);box-shadow:none;cursor:default;opacity:.78}.node-card.is-placeholder:hover{transform:none;border-color:color-mix(in srgb,var(--border) 80%,#64748b);background:color-mix(in srgb,var(--bg-panel) 70%,transparent)}.node-status.tone-muted{color:var(--text-secondary)}.meta-metric.tone-green{color:var(--success, #3ecf8e)}.meta-metric.tone-yellow{color:var(--warn, #e6b84d)}.meta-metric.tone-red{color:var(--danger, #e25c5c)}.meta-metric.tone-muted,.meta-metric.tone-neutral{color:var(--text-secondary)}.node-card-gauges.is-placeholder-gauges{opacity:.45;filter:grayscale(.35)}.node-card-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-height:1.75rem;line-height:1}.node-card-head-end{display:inline-flex;align-items:center;align-self:center;gap:.65rem;line-height:1;height:1.25rem}.node-card-head .node-status{display:inline-flex;align-items:center;margin:0;padding:0;font-size:.84rem;font-weight:500;line-height:1;height:1.25rem}.node-card-open-hint{display:inline-flex;align-items:center;gap:.12rem;margin:0;padding:0;height:1.25rem;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;line-height:1;color:var(--text-secondary);opacity:.75}.node-card-open-hint svg{display:block;width:14px;height:14px;flex-shrink:0}.node-card.is-interactive:hover .node-card-open-hint{opacity:1;color:var(--accent, #00c65e)}.node-card-title{display:inline-flex;align-items:center;align-self:center;gap:.45rem;margin:0;padding:0;min-height:1.25rem;height:1.25rem;font-size:1.05rem;line-height:1}.node-card-title svg{display:block;width:18px;height:18px;flex-shrink:0}.node-card-title strong{display:block;margin:0;padding:0;font-weight:700;line-height:1;transform:none}.node-card-error{display:flex;align-items:center;gap:.35rem;margin:0;font-size:.8rem;color:#fecaca}.node-card-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;width:100%;padding:.2rem 0 .05rem;overflow:hidden}.node-card-footer{display:flex;flex-direction:column;gap:.45rem;border-top:1px solid var(--border);padding-top:.75rem}.node-card-ops,.node-card-alerts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem .65rem;align-items:start}.node-card-alerts{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:.15rem}.ops-item{display:flex;flex-direction:column;gap:.08rem;min-width:0;font-size:.82rem;color:var(--text-secondary)}.ops-k{font-size:.62rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);opacity:.75}.ops-v,.ops-item strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-item.meta-metric.tone-green .ops-v,.ops-item.meta-metric.tone-green strong{color:var(--success, #3ecf8e)}.ops-item.meta-metric.tone-yellow .ops-v,.ops-item.meta-metric.tone-yellow strong{color:var(--warn, #e6b84d)}.ops-item.meta-metric.tone-red .ops-v,.ops-item.meta-metric.tone-red strong{color:var(--danger, #e25c5c)}.node-card-build{font-size:.72rem;line-height:1.35;color:var(--text-secondary);opacity:.85;letter-spacing:.01em}@media(min-width:720px){.node-card-gauges .radial-gauge{--radial-size: 118px}}@media(max-width:719px){.node-card{padding:1rem .95rem .95rem}.node-card-gauges{gap:.4rem}.node-card-gauges .radial-gauge{--radial-size: 92px}.radial-gauge .radial-center{font-size:.92em}.radial-caption{font-size:.64rem}.radial-subcaption{font-size:.58rem}}@media(max-width:420px){.node-card-ops{grid-template-columns:repeat(2,minmax(0,1fr))}.node-card-gauges{gap:.3rem}.node-card-gauges .radial-gauge{--radial-size: 84px}}.radial-gauge{--radial-size: 96px;position:relative;display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:0;width:100%;max-width:140px;margin-inline:auto}.radial-ring{position:relative;width:min(100%,var(--radial-size));aspect-ratio:1;flex:0 0 auto}.radial-ring>svg{width:100%;height:100%;display:block}.radial-gauge .radial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;line-height:1.15}.radial-caption-block{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.1rem;width:100%;min-width:0;min-height:calc(.7rem * 1.25 + .1rem + .62rem * 1.2)}.radial-caption{font-size:.7rem;line-height:1.25;color:var(--text-secondary);text-align:center;max-width:100%;padding:0 .1rem;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radial-subcaption{font-size:.62rem;line-height:1.2;color:var(--text-secondary);opacity:.8;text-align:center;max-width:100%;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:.744rem}.radial-track{stroke:#ffffff1a}.radial-fill{transition:stroke-dashoffset .35s ease}.radial-fill.tone-green{stroke:var(--success)}.radial-fill.tone-yellow{stroke:var(--warn)}.radial-fill.tone-red{stroke:var(--danger)}.radial-fill.tone-neutral{stroke:var(--muted)}.radial-center strong{font-size:1.1rem;font-variant-numeric:tabular-nums}.radial-center span{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.radial-icon{display:inline-flex;color:var(--text-secondary);margin-bottom:.1rem}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#0000008c;display:flex;justify-content:flex-end;align-items:stretch}.settings-panel{width:min(400px,100%);height:100%;height:100dvh;background:var(--bg-panel);border-left:1px solid var(--border);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;animation:settings-slide .18s ease-out;padding-top:max(var(--safe-top),.75rem);padding-bottom:max(var(--safe-bottom),.5rem)}@media(max-width:719px){.settings-overlay{align-items:flex-end;justify-content:stretch}.settings-panel{width:100%;height:auto;max-height:min(92dvh,100%);border-left:none;border-radius:16px 16px 0 0;padding-top:.65rem;animation:settings-sheet .2s ease-out}}@keyframes settings-slide{0%{transform:translate(12px);opacity:.85}to{transform:translate(0);opacity:1}}@keyframes settings-sheet{0%{transform:translateY(18px);opacity:.88}to{transform:translateY(0);opacity:1}}.settings-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--border);flex-shrink:0}.settings-panel-head h2{display:inline-flex;align-items:center;gap:.45rem;margin:0;font-size:1.05rem;min-height:2.5rem}.settings-panel-head .settings-close{min-width:2.5rem;min-height:2.5rem;flex-shrink:0}.settings-panel-body{padding:1rem 1.1rem 1.25rem;overflow:auto;display:flex;flex-direction:column;gap:1.25rem;flex:1;min-height:0}.settings-panel-foot{display:flex;justify-content:flex-end;gap:.55rem;padding:.85rem 1.1rem;border-top:1px solid var(--border);flex-shrink:0}.settings-section{display:flex;flex-direction:column;gap:.85rem}.settings-section h3{margin:0;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);display:inline-flex;align-items:center;gap:.35rem}.settings-push-card{padding:.95rem 1rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent, #00c65e) 45%,var(--border));background:color-mix(in srgb,var(--accent, #00c65e) 10%,var(--bg-elevated))}.settings-reload-card{padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-elevated)}.settings-push-card h3{font-size:.86rem;letter-spacing:.04em;color:var(--text)}.settings-push-lead{margin:0;font-size:.88rem;color:var(--text-secondary);line-height:1.35}.settings-push-actions{display:flex;flex-direction:column;gap:.55rem}.settings-push-cta{width:100%;min-height:2.85rem;justify-content:center;font-size:.95rem}.settings-push-status{color:var(--accent, #00c65e)}.settings-push-status-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .75rem}.settings-push-status-grid>div{display:flex;flex-direction:column;gap:.15rem;padding:.45rem .55rem;border-radius:8px;background:#00000038;border:1px solid var(--border)}.settings-push-status-grid dt{margin:0;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary)}.settings-push-status-grid dd{margin:0;font-size:.92rem;font-weight:600;color:var(--text)}.settings-push-status-grid dd.is-ok{color:var(--accent, #00c65e)}.settings-push-status-grid dd.is-bad{color:var(--danger, #e25c5c)}.settings-checkbox{width:1.25rem;height:1.25rem;flex-shrink:0;accent-color:var(--accent, #00c65e)}.settings-row,.settings-field{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem}.settings-row span,.settings-field>span{display:flex;flex-direction:column;gap:.15rem;min-width:0}.settings-row strong,.settings-field strong{font-size:.92rem;color:var(--text)}.settings-row small,.settings-field small{font-size:.75rem;color:var(--text-secondary);line-height:1.35}.settings-input-suffix{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.settings-input-suffix input{width:4.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.35rem .45rem;color:var(--text);font-variant-numeric:tabular-nums}.settings-input-suffix span{font-size:.8rem;color:var(--text-secondary)}.settings-hint{margin:0;font-size:.78rem;line-height:1.45;color:var(--text-secondary)}.settings-panel-body--info{padding-top:.75rem}.info-panel-card{display:flex;flex-direction:column;gap:1rem}.info-panel-hero{display:flex;align-items:center;gap:12px;padding:.85rem 1rem;border:1px solid rgba(0,198,94,.22);border-radius:12px;background:linear-gradient(145deg,#00c65e24,#161616f2)}.info-panel-logo{border-radius:10px;flex-shrink:0}.info-panel-hero-text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.info-panel-hero-text strong{font-size:1.05rem;letter-spacing:.04em}.info-panel-release,.info-panel-row code,.pwa-update-modal__version code,.pwa-update-modal__current code{font-family:var(--mono);font-size:.78rem;color:var(--accent-strong)}.info-panel-section{padding:.85rem;border:1px solid var(--border);border-radius:12px;background:var(--bg-panel)}.info-panel-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.info-panel-section-title{margin:0;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.info-health-badge{font-size:.72rem;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:999px;border:1px solid var(--border)}.info-health-badge.ok{color:var(--success);border-color:#00c65e59;background:#00c65e1a}.info-health-badge.warn{color:var(--danger);border-color:#ff5c5c59;background:#ff5c5c14}.info-health-badge.unknown{color:var(--accent-strong);border-color:#00e67659;background:#00c65e14}.info-panel-grid{margin:0;display:flex;flex-direction:column;gap:.55rem}.info-panel-row{display:grid;grid-template-columns:minmax(72px,30%) 1fr;gap:.35rem .75rem;align-items:baseline}.info-panel-row dt{margin:0;font-size:.78rem;color:var(--muted)}.info-panel-row dd{margin:0;min-width:0}.info-panel-row dd code{display:block;word-break:break-all}.info-health-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.45rem}.info-health-row{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem .65rem;align-items:center;font-size:.82rem}.info-health-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.info-health-dot--ok{background:var(--success);box-shadow:0 0 8px var(--success)}.info-health-dot--bad{background:var(--danger);box-shadow:0 0 8px var(--danger)}.info-health-dot--unknown{background:var(--accent);box-shadow:0 0 8px var(--accent)}.info-health-label{color:var(--text)}.info-health-detail{color:var(--muted);font-size:.78rem;text-align:right}.info-panel-refresh{margin-top:.15rem}.settings-panel-body--profile{padding-top:.75rem}.profile-panel-card{display:flex;flex-direction:column;gap:1rem}.profile-panel-hero{display:flex;align-items:center;gap:12px;padding:.85rem 1rem;border:1px solid rgba(0,198,94,.22);border-radius:12px;background:linear-gradient(145deg,#00c65e24,#161616f2)}.profile-panel-hero-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.profile-panel-hero-text strong{font-size:1.05rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-panel-hero-text span{font-size:.82rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-panel-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.profile-panel-meta dt{display:inline-flex;align-items:center;gap:.35rem}.profile-panel-groups{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.profile-panel-groups li{font-size:.72rem;padding:.18rem .45rem;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--text-secondary)}.profile-panel-empty{margin:0;font-size:.8rem;color:var(--muted)}.profile-panel-warn{color:#fecaca!important}.user-profile-trigger{gap:.45rem;max-width:min(280px,42vw);padding-inline:.45rem}.settings-actions-stack .btn{gap:.45rem}
