.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg: #0f1115;--panel: #171a21;--border: #262b36;--text: #e6e9ef;--muted: #9aa4b2;--accent: #4f8cff;--error: #ff6b6b;--ok: #4fd18b;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.center,.auth-card{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.muted{color:var(--muted)}.auth-card form{display:flex;flex-direction:column;gap:.75rem;width:320px;background:var(--panel);border:1px solid var(--border);padding:1.5rem;border-radius:12px}label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}input{padding:.55rem .7rem;border-radius:8px;border:1px solid var(--border);background:#10131a;color:var(--text);font-size:1rem}button{padding:.55rem .9rem;border-radius:8px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}button:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--muted);border:none;font-weight:400}.error{color:var(--error);font-size:.85rem;margin:0}.ok{color:var(--ok)}.hint{color:var(--muted);font-size:.85rem}.topbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--panel)}.topbar .spacer{flex:1}.who{color:var(--muted);font-size:.9rem}.content{padding:1.5rem;max-width:900px;margin:0 auto}.panel{margin-top:1.5rem;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.otpauth{display:block;word-break:break-all;background:#10131a;padding:.6rem;border-radius:8px;font-size:.8rem;margin:.5rem 0}.codes{font-family:ui-monospace,SFMono-Regular,monospace;columns:2}.nav{display:flex;gap:.25rem;margin-left:1rem}.nav a{color:var(--muted);text-decoration:none;padding:.35rem .7rem;border-radius:8px;font-size:.9rem}.nav a:hover,.nav a.active{color:var(--text);background:#10131a}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-head h2{margin:.2rem 0}.back{color:var(--muted);text-decoration:none;font-size:.85rem}a.button,.button{display:inline-block;padding:.5rem .9rem;border-radius:8px;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;font-size:.9rem}button.ghost{background:none;border:1px solid var(--border);color:var(--text);font-weight:500}button.ghost.danger{color:var(--error);border-color:#4a2730}table.grid{width:100%;border-collapse:collapse;font-size:.9rem}table.grid th{text-align:left;color:var(--muted);font-weight:500;padding:.5rem .6rem;border-bottom:1px solid var(--border)}table.grid td{padding:.6rem;border-bottom:1px solid var(--border);vertical-align:top}table.grid a{color:var(--accent);text-decoration:none}.sub{color:var(--muted);font-size:.8rem}.row-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.health-healthy{color:var(--ok)}.health-warning{color:#e5b567}.health-critical{color:var(--error)}.health-unknown{color:var(--muted)}.test-result{font-size:.8rem;color:var(--muted)}.form-page{max-width:640px}.form-page form,.panel form{display:flex;flex-direction:column;gap:.85rem}.form-page .row{display:flex;gap:.85rem}textarea{padding:.55rem .7rem;border-radius:8px;border:1px solid var(--border);background:#10131a;color:var(--text);font-family:ui-monospace,monospace;font-size:.85rem}select{padding:.55rem .7rem;border-radius:8px;border:1px solid var(--border);background:#10131a;color:var(--text)}.actions{display:flex;gap:.75rem}dl.kv{display:grid;grid-template-columns:180px 1fr;gap:.4rem 1rem;font-size:.9rem}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.25rem}.stat{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem}.stat-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.5rem;font-weight:600;margin-top:.2rem}.stat-sub{color:var(--muted);font-size:.78rem}.charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;margin-bottom:1.25rem}.chart{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.5rem;overflow:hidden;min-width:0}.chart .u-title{color:var(--text);font-size:.85rem}.u-legend{color:var(--muted)}.toggle{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}.toggle input{width:auto}.sev-info{color:var(--muted)}.sev-warning{color:#e5b567}.sev-critical{color:var(--error)}.lh-scores{display:flex;gap:1.5rem;margin:.5rem 0}.gauge{text-align:center}.gauge-value{font-size:1.8rem;font-weight:700}.gauge-label{color:var(--muted);font-size:.78rem}.update-result{margin-top:.75rem}.diff-runs{list-style:none;padding:0;font-size:.9rem}.diff-runs li{padding:.3rem 0;border-bottom:1px solid var(--border)}.diff-runs a{color:var(--accent);text-decoration:none}.diff-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem}.diff-list{display:flex;flex-direction:column;gap:.25rem}.diff-page-row{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;color:var(--text);font-weight:400}.diff-page-row.active{border-color:var(--accent)}.diff-detail{min-width:0}.diff-view{background:#0c0e13;border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-x:auto;font-size:.78rem;line-height:1.5}.diff-add{color:#4fd18b;background:#4fd18b18}.diff-del{color:#ff6b6b;background:#ff6b6b18}.diff-hunk{color:var(--accent)}.sev-none{color:var(--muted)}.sev-cosmetic{color:var(--accent)}.sev-content{color:#e5b567}.sev-broken{color:var(--error)}fieldset.keymode{border:1px solid var(--border);border-radius:8px;padding:.75rem}fieldset.keymode legend{color:var(--muted);font-size:.85rem;padding:0 .4rem}label.radio{flex-direction:row;align-items:flex-start;gap:.5rem;color:var(--text);font-size:.88rem;margin-bottom:.5rem}label.radio input{width:auto;margin-top:.2rem}.pubkey-box{background:#10131a;border:1px solid var(--border);border-radius:8px;padding:.75rem;margin:.5rem 0}.pubkey-row{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.4rem}.pubkey-row .otpauth{flex:1;margin:0}.banner-error{background:#ff6b6b1a;border:1px solid #4a2730;border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;color:var(--text);font-size:.9rem}.banner-error ul{margin:.4rem 0 0;padding-left:1.2rem}.sev-ok{color:var(--ok)}.row-regressed td{background:#ff6b6b12}.app-shell{display:flex;min-height:100vh}.sidebar{width:210px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem .75rem;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:1.05rem;padding:.25rem .6rem 1rem}.brand-mark{color:var(--accent)}.side-nav{display:flex;flex-direction:column;gap:.15rem;flex:1}.side-nav a{color:var(--muted);text-decoration:none;padding:.5rem .6rem;border-radius:8px;font-size:.92rem}.side-nav a:hover{color:var(--text);background:#10131a}.side-nav a.active{color:var(--text);background:#10131a;font-weight:600}.sidebar-foot{border-top:1px solid var(--border);padding-top:.75rem}.sidebar-foot .who{font-size:.85rem;margin-bottom:.5rem}.sidebar-foot .role{color:var(--muted);margin-left:.4rem}.main{flex:1;min-width:0;padding:1.5rem 2rem}.metric-cell{display:flex;align-items:center;gap:.5rem}.spark{display:inline-block;vertical-align:middle}.spark-empty{color:var(--muted)}.dot-ok{color:var(--ok)}.dot-bad{color:var(--error)}.rt-fast{color:#4fd18b}.rt-ok{color:#e5b567}.rt-slow{color:#e8843c}.rt-bad{color:#ff6b6b}.kebab{position:relative;display:inline-block}.kebab-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.15rem;line-height:1;padding:.2rem .55rem;border-radius:6px}.kebab-btn:hover,.kebab-btn[aria-expanded=true]{background:#10131a;color:var(--text)}.kebab-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.3rem;min-width:170px;box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column;gap:.1rem;text-align:left}.kebab-menu button,.kebab-menu a{display:block;width:100%;text-align:left;box-sizing:border-box;padding:.45rem .6rem;border-radius:6px;background:none;border:none;color:var(--text);font-size:.88rem;font-weight:400;text-decoration:none;cursor:pointer}.kebab-menu button:hover,.kebab-menu a:hover{background:#10131a}.kebab-menu .danger{color:var(--error)}.kebab-menu .test-result,.kebab-menu .error{display:block;padding:0 .6rem .4rem;font-size:.8rem}.lh-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lh-pages{display:flex;gap:.35rem;flex-wrap:wrap}.chip{background:#10131a;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.2rem .7rem;font-size:.8rem;cursor:pointer}.chip:hover{color:var(--text)}.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}.lh-rings{display:flex;gap:1.75rem;flex-wrap:wrap;margin:1rem 0}.lh-ring{text-align:center}.lh-ring-dial{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto .35rem}.lh-ring-dial span{width:50px;height:50px;border-radius:50%;background:var(--panel);display:grid;place-items:center;font-weight:700;font-size:1.1rem}.lh-vitals{display:flex;gap:1.75rem;flex-wrap:wrap;margin:.5rem 0 .25rem}.lh-vital{text-align:center}.lh-vital-value{font-size:1.3rem;font-weight:700}.lh-vital-unit{font-size:.7rem;font-weight:400;margin-left:1px;color:var(--muted)}.lh-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;margin-top:1rem}.lh-charts>div{min-width:0}.chart-title{font-size:.85rem;color:var(--muted);margin:0 0 .35rem;font-weight:500}@media(max-width:900px){.lh-charts{grid-template-columns:1fr}}.lh-mid{color:#e8843c}.ch-kind{padding:.1rem .5rem;border-radius:999px;font-size:.78rem}.ch-added{color:#4fd18b;background:#4fd18b1a}.ch-removed{color:#ff6b6b;background:#ff6b6b1a}.ch-updated{color:#4f8cff;background:#4f8cff1a}.ch-deact{color:#e5b567;background:#e5b5671a}.ch-src{padding:.05rem .45rem;border-radius:999px;font-size:.72rem}.ch-ext{color:#e8843c;background:#e8843c1a}.ch-fleet{color:#9aa4b2;background:#9aa4b21a}.sla-group{margin-top:1.5rem}.sla-group-head{display:flex;align-items:center;gap:.5rem;margin:0 0 .4rem;font-size:1rem}.sla-chip{display:inline-block;width:12px;height:12px;border-radius:3px}.sla-manage{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.35rem}.sla-manage li{display:flex;align-items:center;gap:.5rem}.sla-manage .sla-name{font-weight:500}.sla-manage .spacer{flex:1}.sla-manage button.ghost{padding:.25rem .55rem}.sla-add{display:flex;gap:.5rem;align-items:center;margin-top:.75rem}.sla-add input[type=color]{width:40px;height:36px;padding:2px}.sla-add input:not([type=color]){flex:0 0 220px}.sla-select{padding:.25rem .4rem;font-size:.8rem;background:#10131a;border:1px solid var(--border);border-radius:6px;color:var(--text)}
