:root{--bg:#eef1f4;--surface:#fff;--surface-2:#f5f7f9;--line:#dde3e9;--line-strong:#c9d2db;--ink:#15212d;--ink-2:#4d5b69;--ink-3:#8593a1;--head:#0f1c29;--head-2:#1a2b3c;--head-ink:#c9d6e2;--accent:#0e8a7e;--accent-ink:#fff;--accent-soft:#dff3f0;--good:#18865a;--good-soft:#e1f4ea;--warn:#a86400;--warn-soft:#fdf0d9;--bad:#c42b3a;--bad-soft:#fbe4e6;--info:#2b62b8;--info-soft:#e3ecfa;--r:10px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--bg:#0b131b;--surface:#121c26;--surface-2:#17232f;--line:#233241;--line-strong:#2e4052;--ink:#e4ebf2;--ink-2:#a3b1bf;--ink-3:#6f7f8f;--head:#070d13;--head-2:#142231;--accent:#2bb5a6;--accent-ink:#04211e;--accent-soft:#0f2f2c;--good:#46c487;--good-soft:#10291d;--warn:#e2a640;--warn-soft:#2e230e;--bad:#f0707b;--bad-soft:#351619;--info:#74a3f0;--info-soft:#152338}}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}h1,h2{margin:0}h1{letter-spacing:-.015em;font-size:24px;font-weight:600}h2{font-size:13px;font-weight:600}button,input,select,textarea{font:inherit;color:inherit}.topbar{background:var(--head);color:var(--head-ink);z-index:40;position:sticky;top:0;box-shadow:0 1px #00000040}.topbar-inner{align-items:center;gap:28px;max-width:1480px;height:56px;margin:0 auto;padding:0 24px;display:flex}.logo{color:#fff;align-items:center;gap:10px;display:flex}.logo:hover{color:#fff}.logo-mark{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.logo-text{letter-spacing:.08em;flex-direction:column;font-weight:700;line-height:1.05;display:flex}.logo-text small{letter-spacing:.02em;color:var(--head-ink);opacity:.75;font-size:11px;font-weight:400}.topnav{scrollbar-width:none;flex:1;align-items:stretch;gap:2px;min-width:0;height:100%;display:flex;overflow-x:auto}.topnav-link{height:100%;color:var(--head-ink);cursor:pointer;white-space:nowrap;background:0 0;border:3px solid #0000;border-left:0;border-right:0;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.topnav-link:hover{color:#fff;background:var(--head-2)}.topnav-link.active{color:#fff;border-bottom-color:var(--accent)}.topnav .dropdown{height:100%;display:flex}.pill{border-radius:999px;padding:0 7px;font-size:11px;font-weight:700;line-height:18px}.pill-bad{background:var(--bad);color:#fff}.pill-warn{color:#241700;background:#e2a640}.pill-accent{background:var(--accent);color:#fff}.pill-neutral{background:var(--head-2);color:#fff;border:1px solid #34495e}.topbar-tools{align-items:center;gap:4px;display:flex}.tool-btn{width:36px;height:36px;color:var(--head-ink);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.tool-btn:hover,.tool-btn.active{background:var(--head-2);color:#fff}.user-chip{place-items:center;display:grid}.user-initial{color:#fff;background:#2a3e52;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:grid}.dropdown{position:relative}.menu{background:var(--surface);min-width:200px;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);z-index:60;padding:6px;position:fixed;box-shadow:0 12px 32px #0a141e2e}.menu-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.menu-item:hover{background:var(--surface-2);color:var(--ink)}.menu-item.active{color:var(--accent);font-weight:600}.menu-head{border-bottom:1px solid var(--line);color:var(--ink-2);flex-direction:column;gap:2px;margin-bottom:4px;padding:8px 10px 10px;font-size:12px;display:flex}.menu-head strong{color:var(--ink);font-size:14px}.page{max-width:1480px;margin:0 auto;padding:28px 24px 56px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-header p{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0;display:flex}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.eyebrow{color:var(--ink-3);align-items:center;gap:4px;margin-bottom:4px;font-size:12px;display:inline-flex}.back-link{color:var(--ink-2);align-items:center;gap:4px;margin-bottom:10px;font-size:13px;display:inline-flex}.muted{color:var(--ink-2)}.small{font-size:12px}.strong{font-weight:600}.mono{font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:12.5px}.right{text-align:right}.nowrap{white-space:nowrap}.spacer{flex:1}.link{color:var(--accent);font-size:13px;font-weight:500}.grow{flex:1}.stack{flex-direction:column;gap:18px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin-bottom:18px;display:grid}.grid-3-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:18px;margin-bottom:18px;display:grid}@media (width<=1100px){.grid-2,.grid-3-1{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:18px;overflow:hidden}.grid-2>.card,.grid-3-1>.card,.stack>.card{margin-bottom:0}.card-header{border-bottom:1px solid var(--line);background:var(--surface-2);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.card-header h2{align-items:center;gap:8px;display:flex}.card-body{padding:16px}.kpis{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin-bottom:18px;display:grid;overflow:hidden}.kpi{border-right:1px solid var(--line);padding:16px 18px;position:relative}.kpi:last-child{border-right:0}.kpi:before{content:"";background:var(--line);height:3px;position:absolute;top:0;left:0;right:0}.kpi-good:before{background:var(--good)}.kpi-bad:before{background:var(--bad)}.kpi-warn:before{background:#e2a640}.kpi-info:before{background:var(--info)}.kpi-accent:before{background:var(--accent)}.kpi-label{color:var(--ink-2);font-size:12px}.kpi-value{font-variant-numeric:tabular-nums;margin-top:2px;font-size:30px;font-weight:600;line-height:1.2}.kpi-hint{color:var(--ink-3);font-size:12px}.btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.07)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--bad)}.btn.small{padding:4px 10px;font-size:12.5px}.icon-btn{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:6px;place-items:center;padding:4px;display:grid}.icon-btn:hover{background:var(--surface-2)}input,select,textarea{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;outline:none;min-width:0;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.toolbar input[type=search]{width:280px}.segmented{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line);cursor:pointer;color:var(--ink-2);background:0 0;align-items:center;gap:6px;padding:6px 14px;font-weight:500;display:inline-flex}.segmented button:last-child{border-right:0}.segmented button.active{background:var(--accent-soft);color:var(--accent)}.subnav{box-shadow:inset 0 -1px 0 var(--line-strong);gap:22px;margin-bottom:18px;display:flex;overflow:auto hidden}.subnav button{cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 0;font-weight:500;display:inline-flex}.subnav button.active{color:var(--ink);border-bottom-color:var(--accent)}.tab-count{background:var(--bad-soft);color:var(--bad);border-radius:8px;padding:0 6px;font-size:11px;font-weight:600}.field{flex-direction:column;flex:1;gap:4px;margin-bottom:14px;display:flex}.field-label{color:var(--ink-2);font-size:12.5px;font-weight:600}.field-hint{color:var(--ink-3);font-size:11.5px}.form-row{gap:12px;display:flex}.form-row>*{flex:1}.form-section{border-top:1px solid var(--line);margin-top:4px;padding-top:14px}.check{cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;display:flex}.row-end{justify-content:flex-end;display:flex}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.button-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.badge{white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:5px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.sev-critical,.tone-bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.sev-warning,.tone-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.sev-info,.tone-info{background:var(--info-soft);color:var(--info);border-color:#0000}.tone-good{background:var(--good-soft);color:var(--good);border-color:#0000}.tone-accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.sev-bar{border-radius:2px;flex-shrink:0;align-self:stretch;width:4px}.sev-bar.critical{background:var(--bad)}.sev-bar.warning{background:#e2a640}.sev-bar.info{background:var(--info)}.status{white-space:nowrap;align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.status .dot{background:var(--ink-3);border-radius:2px;width:9px;height:9px}.status-online .dot{background:var(--good)}.status-offline .dot{background:var(--bad)}.status-updating .dot{background:var(--info)}.status-revoked .dot{background:#e2a640}.status-offline{color:var(--bad)}.table-wrap{overflow-x:auto}.table-scroll{overflow:auto}.table-scroll thead th{z-index:2;box-shadow:inset 0 -1px 0 var(--line);position:sticky;top:0}.pager-size{align-items:center;gap:8px;display:inline-flex}.pager-size select{width:auto;padding:4px 8px}.pager-nav{align-items:center;gap:8px;display:inline-flex}.sticky-head{z-index:30;background:var(--bg);margin:-28px -24px 0;padding:28px 24px 0;position:sticky;top:56px}.sticky-head .subnav{margin-bottom:0}.sticky-head+*{margin-top:18px}.inv-nav{margin:12px 0 0}@media (width<=800px){.sticky-head{margin:-18px -16px 0;padding:18px 16px 0}}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:.02em;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface);padding:10px 16px;font-size:11.5px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 16px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}.details-cell{overflow-wrap:anywhere;max-width:420px;color:var(--ink-2)}.cell-title{font-weight:600}.cell-sub{color:var(--ink-3);font-size:12px}.alert-list,.simple-list{margin:0;padding:0;list-style:none}.alert-list li{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.alert-list li:last-child,.simple-list li:last-child{border-bottom:0}.alert-main{flex:1;min-width:0}.alert-title{font-weight:600}.simple-list li{border-bottom:1px solid var(--line);padding:10px 16px}.kv{grid-template-columns:max-content 1fr;gap:9px 24px;margin:0;display:grid}.kv dt{color:var(--ink-3);font-size:13px}.kv dd{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.kv.cols{grid-template-columns:max-content 1fr max-content 1fr max-content 1fr}@media (width<=1100px){.kv.cols{grid-template-columns:max-content 1fr}}.empty{color:var(--ink-3);text-align:center;padding:22px 16px}.error-box{background:var(--bad-soft);color:var(--bad);border-radius:8px;margin-bottom:14px;padding:10px 12px}.info-box{background:var(--info-soft);color:var(--info);border-radius:8px;margin-bottom:14px;padding:10px 12px}.meter{align-items:center;gap:8px;display:inline-flex}.meter-track{background:var(--line);border-radius:0;width:56px;height:5px;overflow:hidden}.meter-fill{height:100%;display:block}.meter-fill.tone-good{background:var(--good)}.meter-fill.tone-warn{background:#e2a640}.meter-fill.tone-bad{background:var(--bad)}.meter-text{color:var(--ink-2);font-variant-numeric:tabular-nums;min-width:34px;font-size:12px}.bars{flex-direction:column;gap:10px;display:flex}.bar-row{grid-template-columns:90px 1fr 32px;align-items:center;gap:10px;display:grid}.bar-track{background:var(--surface-2);border:1px solid var(--line);height:14px}.bar-fill{background:var(--accent);height:100%;display:block}.bar-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.progress{align-items:center;gap:8px;display:inline-flex}.progress-track{background:var(--line);width:120px;height:6px;display:flex;overflow:hidden}.progress-ok{background:var(--good)}.progress-failed{background:var(--bad)}.uptime-strip{gap:3px;display:flex}.uptime-cell{background:var(--line);width:9px;height:24px}.avail-bg-good{background:var(--good)}.avail-bg-warn{background:#e2a640}.avail-bg-bad{background:var(--bad)}.avail-good{color:var(--good)}.avail-warn{color:var(--warn)}.avail-bad{color:var(--bad)}.modal-backdrop{z-index:80;background:#08101880;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:12px;flex-direction:column;width:min(640px,100%);max-height:90vh;display:flex;box-shadow:0 24px 60px #0000004d}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-size:16px}.modal-body{padding:18px 20px;overflow-y:auto}.modal-body .kv{margin-bottom:14px}.modal-footer{border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 12px 12px;align-items:center;gap:8px;padding:12px 20px;display:flex}.code-display{letter-spacing:.14em;text-align:center;background:var(--head);color:#fff;-webkit-user-select:all;user-select:all;border-radius:8px;margin:12px 0 16px;padding:18px;font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:28px}.select-head{align-items:center;gap:6px;margin:8px 0 6px;display:flex}.select-list{border:1px solid var(--line);border-radius:8px;max-height:260px;overflow-y:auto}.select-item{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.select-item:last-child{border-bottom:0}.select-item:hover{background:var(--surface-2)}.pager{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.center-screen{background:var(--head);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{text-align:center;background:var(--surface);border-radius:14px;width:min(380px,100%);padding:36px 40px}.login-card .logo-mark{width:48px;height:48px;margin:0 auto 14px}.login-card h1{margin-bottom:4px}.login-card .btn{justify-content:center;width:100%;margin-top:18px}.error-card{color:var(--bad);background:var(--surface);border-radius:12px;padding:24px}.center-screen.muted{color:var(--head-ink)}@media (width<=800px){.topbar-inner{gap:12px;padding:0 12px}.logo-text small{display:none}.page{padding:18px 16px 40px}.form-row{flex-direction:column;gap:0}}.card-body>.table-wrap,.card-body>.alert-list,.card-body>.simple-list{margin:-16px}.card-body>.table-wrap+.pager{margin:16px -16px -16px}.notice{border-radius:var(--r);background:var(--info-soft);color:var(--info);align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.row-muted td{opacity:.55}.error-text{color:var(--bad)}.input-row{gap:8px;display:flex}.input-row input{flex:1;min-width:0}.form-grid{flex-direction:column;gap:12px;display:flex}.noaccess-icon{justify-content:center;align-items:center;gap:8px;margin:14px 0 8px;font-weight:600;display:flex}.login-card .small{line-height:1.5}.row-actions{justify-content:flex-end;gap:2px;display:inline-flex}.occurrences{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);vertical-align:1px;border-radius:999px;margin-left:8px;padding:0 7px;font-size:12px;font-weight:600;display:inline-block}.toolbar .check{margin:0 0 0 auto}.row-link{cursor:pointer}.group-row td{background:var(--surface-2);cursor:pointer;-webkit-user-select:none;user-select:none}.group-row svg{vertical-align:-2px}.text-warn{color:var(--warn);font-weight:600}.toolbar.filters select{max-width:220px}.group-row.static td{cursor:default}.group-chip{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);margin:0 0 8px;font-size:13px}.kpi-link{cursor:pointer}.kpi-link:hover{background:var(--surface-2)}.maint-badge{background:var(--info-soft);color:var(--info);border-radius:6px;align-items:center;gap:4px;margin-top:3px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-flex}.maint-banner{border-radius:var(--r);background:var(--info-soft);color:var(--ink);border:1px solid var(--info);align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.maint-banner>svg{color:var(--info);flex:none}.preset-row{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.check-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 12px;padding-left:4px;display:grid}.version-hint{font-family:var(--font,inherit);color:var(--ink-2);font-size:11px}.version-hint.update{color:var(--warn);font-weight:600}.col-head-inner{align-items:center;gap:2px;display:inline-flex}.col-sort{font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:2px 0;display:inline-flex}.col-sort:hover{color:var(--ink)}.col-sort-idle{opacity:.35}.col-sort:hover .col-sort-idle{opacity:.8}.col-filter{cursor:pointer;color:var(--ink-2);opacity:.55;background:0 0;border:0;border-radius:5px;place-items:center;padding:3px;display:inline-grid}.col-filter:hover{opacity:1;background:var(--surface-2)}.col-filter.active{opacity:1;color:var(--accent);background:var(--accent-soft)}th.col-filtered{color:var(--accent)}.col-popover{z-index:50;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);text-transform:none;letter-spacing:normal;min-width:230px;max-height:60vh;padding:6px;font-weight:400;position:fixed;overflow:auto;box-shadow:0 8px 24px #0000002e}.col-popover-section+.col-popover-section{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.col-popover-title{text-transform:uppercase;color:var(--ink-2);padding:4px 8px;font-size:11px;font-weight:600}.col-option{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;gap:12px;padding:6px 8px;font-size:13px;display:flex}.col-option:hover{background:var(--surface-2)}.col-option.selected{background:var(--accent-soft);color:var(--accent);font-weight:600}.filter-chips{flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 12px;display:flex}.filter-chip{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:12px;font-weight:600;display:inline-flex}.filter-chip .muted{color:var(--accent);opacity:.75;font-weight:400}.filter-chip button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:2px;display:grid}.filter-chip button:hover{background:#00000014}.column-list{margin:0;padding:0;list-style:none}.column-list li{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:4px 0;display:flex}.column-list li .check{margin:0}.delete-banner{border-radius:var(--r);background:var(--bad-soft);border:1px solid var(--bad);align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.check{align-items:flex-start}.check input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin:1px 0 0}.warn-notice{background:var(--warn-soft);color:var(--ink);border:1px solid var(--warn)}.warn-notice>svg{color:var(--warn);flex:none}.select-filters{margin:0 0 8px}.select-filters input[type=search]{width:220px}.select-filters select{width:auto;max-width:200px}
