:root{--bg: #f2f5f6;--surface: #ffffff;--surface-2: #eaf0f2;--ink: #12202a;--muted: #566872;--line: #d3dde1;--accent: #0f6a78;--accent-ink: #ffffff;--accent-soft: #daedf0;--ok: #1e8a4c;--ok-soft: #dff2e6;--warn: #a86a12;--warn-soft: #fbefd9;--crit: #c2362f;--crit-soft: #fbe3e1;--none: #d3dde1;--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--f-display: "Bricolage Grotesque", "Avenir Next", "Segoe UI", sans-serif;--f-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0d1418;--surface: #141e24;--surface-2: #1a262e;--ink: #e2eaed;--muted: #93a4ad;--line: #283841;--accent: #52b8c6;--accent-ink: #06262b;--accent-soft: #143238;--ok: #4cc27f;--ok-soft: #14301f;--warn: #e3ab45;--warn-soft: #352a12;--crit: #f2695e;--crit-soft: #3a1a18;--none: #283841;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5}h1,h2,h3{font-family:var(--f-display);margin:0;line-height:1.2;text-wrap:balance}h1{font-size:22px}h2{font-size:16px}a{color:var(--accent)}code,.mono{font-family:var(--f-mono);font-size:.92em}.muted{color:var(--muted)}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{display:grid;grid-template-columns:200px 1fr;min-height:100%}.side{border-right:1px solid var(--line);background:var(--surface);padding:16px 10px;display:flex;flex-direction:column;gap:2px}.brand{display:flex;align-items:center;gap:8px;font-family:var(--f-display);font-weight:700;font-size:17px;padding:0 10px 16px}.nav{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-radius:6px;color:var(--muted);text-decoration:none}.nav:hover{background:var(--surface-2);color:var(--ink)}.nav.on{background:var(--accent-soft);color:var(--ink);font-weight:600}.nav .cnt{font-family:var(--f-mono);font-size:11px;background:var(--crit);color:#fff;border-radius:999px;padding:0 6px}.side .grow{flex:1}.side .who{font-size:12px;color:var(--muted);padding:8px 10px;display:grid;gap:4px}.main{padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px;min-width:0}@media (max-width: 760px){.shell{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:10px}.brand{padding:0 10px;width:100%}.side .grow,.side .who{display:none}.main{padding:16px}}.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn{font:inherit;font-size:13px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:6px 12px;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.danger{color:var(--crit)}.btn.sm{font-size:12px;padding:3px 8px}.link{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;border-radius:999px;padding:2px 8px;white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.crit{background:var(--crit-soft);color:var(--crit)}.pill.unknown,.pill.info{background:var(--surface-2);color:var(--muted)}.incident{display:grid;grid-template-columns:4px 1fr auto;gap:0 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;align-items:center}.incident .stripe{align-self:stretch;background:var(--crit)}.incident.warning .stripe{background:var(--warn)}.incident .body{padding:12px 0;display:grid;gap:4px;min-width:0}.incident .acts{padding-right:12px}.incident .line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.incident ul{margin:0;padding-left:16px;font-size:12.5px;color:var(--muted)}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sum{padding:12px 14px;display:grid;gap:2px}.sum .v{font-family:var(--f-display);font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.sum .l{font-size:12px;color:var(--muted)}@media (max-width: 760px){.summary{grid-template-columns:repeat(2,1fr)}}.grid-svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.svc{padding:12px;display:grid;gap:8px;align-content:start}.svc.crit{border-color:var(--crit)}.svc.warn{border-color:var(--warn)}.svc .hd{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}.svc .nm{font-weight:600}.svc .ty{font-size:11.5px;color:var(--muted)}.svc .kv{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--muted)}.svc .kv b{color:var(--ink);font-weight:500;font-family:var(--f-mono)}.svc .err{font-size:11.5px;color:var(--crit);overflow-wrap:anywhere}.spark{width:100%;height:34px;display:block}.days{display:flex;gap:1px;height:14px}.days i{flex:1;border-radius:1px;background:var(--ok);opacity:.75}.days i.degraded{background:var(--warn);opacity:1}.days i.down{background:var(--crit);opacity:1}.days i.none{background:var(--none);opacity:1}.two{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;align-items:start}@media (max-width: 900px){.two{grid-template-columns:1fr}}.sect-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600}.sect-h span{font-weight:400;font-size:12px;color:var(--muted)}.rows>*{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}.rows>*:last-child{border-bottom:0}.rows>a{text-decoration:none;color:inherit}.rows>a:hover{background:var(--surface-2)}.spark-empty{height:34px;display:grid;align-items:center;font-size:11.5px;color:var(--muted)}.rows .t{font-family:var(--f-mono);font-size:11.5px;color:var(--muted)}.empty{padding:20px 14px;color:var(--muted)}.tbl{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:500;background:var(--surface-2)}tr:last-child td{border-bottom:0}tr.off td{opacity:.55}.form{padding:16px;display:grid;gap:12px}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}label.f{display:grid;gap:4px;font-size:12px;color:var(--muted)}label.f input,label.f select,label.f textarea{font:inherit;font-size:13.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px}label.f small{font-size:11.5px}.check{display:flex;gap:6px;align-items:center;font-size:13px}.error{color:var(--crit);font-size:13px}.notice{border-radius:8px;padding:12px 14px;background:var(--accent-soft);display:grid;gap:6px}.notice.warn{background:var(--warn-soft)}.secret{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.secret code{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px 8px;overflow-wrap:anywhere}pre.snippet{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px;font-family:var(--f-mono);font-size:12px;overflow-x:auto}.login{min-height:100%;display:grid;place-items:center;padding:16px}.login .card{padding:28px;width:min(380px,100%);display:grid;gap:16px}.toast{position:fixed;bottom:16px;right:16px;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:8px;font-size:13px;z-index:10}.svc-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}.svc-head .title{display:grid;gap:4px}.svc-head .title .line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.svc-head .meta{font-size:12.5px;color:var(--muted)}.crumb{font-size:12.5px;color:var(--muted);text-decoration:none}.crumb:hover{color:var(--accent)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.tile{padding:12px 14px;display:grid;gap:2px}.tile .l{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.tile .v{font-family:var(--f-display);font-size:24px;font-weight:700}.tile .d{font-size:12px;color:var(--muted)}.tile .d b{font-weight:600;color:var(--ink)}.chart-card .sect-h{flex-wrap:wrap}.tabs{display:flex;gap:2px;flex-wrap:wrap}.tab{font:inherit;font-size:12.5px;border:0;background:none;color:var(--muted);padding:4px 9px;border-radius:6px;cursor:pointer}.tab:hover{background:var(--surface-2);color:var(--ink)}.tab.on{background:var(--accent-soft);color:var(--ink);font-weight:600}.tabs select{font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:3px 6px;max-width:220px}.chart-body{padding:10px 14px 4px}.chart-body.loading{opacity:.55}.chart{position:relative;outline:none;touch-action:pan-y}.chart:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.chart svg{display:block}.chart .grid{stroke:var(--line);stroke-width:1}.chart .tick{font-family:var(--f-mono);font-size:10.5px;fill:var(--muted);font-variant-numeric:tabular-nums}.chart .cross{stroke:var(--muted);stroke-width:1}.chart .dot{stroke:var(--surface);stroke-width:2}.chart .ev-maint{fill:var(--muted);opacity:.1}.chart .ev-inc{fill:var(--crit);opacity:.08}.chart .ev-inc.warning{fill:var(--warn)}.chart .ev-inc-top{fill:var(--crit)}.chart .ev-inc-top.warning{fill:var(--warn)}.chart-empty{height:120px;display:grid;place-items:center;color:var(--muted)}.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;box-shadow:0 4px 16px #0000001f;min-width:160px;max-width:220px;display:grid;gap:3px;font-size:12px;z-index:2}.tip-t{color:var(--muted);font-size:11.5px}.tip-row{display:flex;align-items:center;gap:6px}.tip-row i{width:10px;height:2px;border-radius:1px;flex:none}.tip-row b{font-variant-numeric:tabular-nums}.tip-row span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tip-note{color:var(--muted);border-top:1px solid var(--line);padding-top:3px;margin-top:2px}.legend{width:100%;font-size:12.5px}.legend td,.legend th{padding:5px 14px}.legend .key{display:inline-block;width:12px;height:2px;border-radius:1px;vertical-align:middle;margin-right:8px}.chart-foot{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);padding:0 14px 10px}.chart-foot i{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px;margin-right:5px}.list>*{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:baseline;padding:9px 14px;border-bottom:1px solid var(--line)}.list>*:last-child{border-bottom:0}.list .sub{grid-column:2 / -1;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.list .side-v{font-family:var(--f-mono);font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}.badge{font-family:var(--f-mono);font-size:10.5px;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--muted);margin-left:6px}.pill.maint{background:var(--surface-2);color:var(--muted)}.maint-note{font-size:11.5px;color:var(--muted)}.menu{position:relative}.menu-pop{position:absolute;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #00000024;padding:4px;display:grid;min-width:220px;z-index:5}.menu-pop button{font:inherit;font-size:13px;text-align:left;background:none;border:0;padding:7px 10px;border-radius:6px;color:var(--ink);cursor:pointer}.menu-pop button:hover{background:var(--surface-2)}.menu-pop hr{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}.svc-link{color:inherit;text-decoration:none}.svc-link:hover .nm,a.svc-link:hover b{color:var(--accent)}.list>.off>*:not(.sub){opacity:.55}.two>*{min-width:0}.sect-h span{text-align:right}@media (max-width: 560px){.list>*{grid-template-columns:auto 1fr}.list .side-v{grid-column:2;text-align:left}.tiles{grid-template-columns:repeat(2,1fr)}.tile .v{font-size:20px}}
