@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@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");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@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");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@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");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@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");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #070d18;--bg-2: #0a1222;--surface: #0f1a2b;--surface-2: #132138;--line: #1c2a42;--line-2: #26385a;--fg: #e6eef8;--muted: #8a9bb5;--dim: #5b6b84;--accent: #3cc4e6;--accent-2: #7c8cff;--ok: #2fd075;--warn: #f3a83a;--down: #ff5466;--maint: #a78bfa;--idle: #5d6d84;--shadow: 0 20px 50px -24px rgba(0, 0, 0, .7);--f-display: "Bricolage Grotesque Variable", "Segoe UI", system-ui, sans-serif;--f-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;--r: 14px;color-scheme:dark}:root[data-theme=light]{--bg: #edf1f7;--bg-2: #ffffff;--surface: #ffffff;--surface-2: #f3f6fb;--line: #dce3ee;--line-2: #c7d2e2;--fg: #0e1a2c;--muted: #55667f;--dim: #8593a8;--accent: #0a86ad;--accent-2: #5563e8;--ok: #13924a;--warn: #c47600;--down: #d42a3a;--maint: #7c5ce0;--idle: #94a3b8;--shadow: 0 18px 40px -26px rgba(20, 40, 80, .35);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--f-display);margin:0;line-height:1.15;text-wrap:balance;letter-spacing:-.01em}h1{font-size:1.75rem;font-weight:750}h2{font-size:1.2rem;font-weight:700}h3{font-size:1rem;font-weight:650}p{margin:0}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:color-mix(in oklab,var(--accent) 35%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.dim{color:var(--dim)}.eyebrow{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.lucide{width:18px;height:18px;stroke-width:1.8;flex:none}.c-up{--c: var(--ok)}.c-warn{--c: var(--warn)}.c-down{--c: var(--down)}.c-maintenance{--c: var(--maint)}.c-paused,.c-pending{--c: var(--idle)}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100%}.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px;background:var(--bg-2);border-right:1px solid var(--line);padding:18px 14px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#06101e;position:relative}.brand-mark svg{width:24px;height:24px}.brand-mark path{stroke-dasharray:60;animation:brand-ekg 2.4s linear infinite}@keyframes brand-ekg{0%{stroke-dashoffset:60}to{stroke-dashoffset:-60}}.brand b{font-family:var(--f-display);font-size:1.15rem;display:block;line-height:1.1}.brand small{color:var(--muted);font-size:.72rem}.nav{display:flex;flex-direction:column;gap:2px}.nav a{position:relative;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--muted);font-weight:500;transition:color .2s,background .2s}.nav a:hover{color:var(--fg);background:var(--surface)}.nav a.active{color:var(--fg)}.nav .nav-bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);z-index:0}.nav a>*:not(.nav-bg){position:relative;z-index:1}.nav a.active .lucide{color:var(--accent)}.nav .badge{margin-left:auto}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}.conn{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--muted);padding:0 10px}.conn i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 var(--ok);animation:conn 2s infinite}.conn.off i{background:var(--down);animation:none}@keyframes conn{0%{box-shadow:0 0 color-mix(in oklab,var(--ok) 60%,transparent)}to{box-shadow:0 0 0 8px transparent}}.user-box{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:color-mix(in oklab,var(--accent) 22%,var(--surface));color:var(--accent);flex:none}.user-box .who{min-width:0;flex:1}.user-box .who b{display:block;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-box .who small{color:var(--muted);font-size:.72rem}.main{min-width:0;padding-inline:28px;padding-block:24px 60px}.page{display:flex;flex-direction:column;gap:22px;max-width:1480px;margin:0 auto}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}.page-head .t{display:flex;flex-direction:column;gap:6px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{position:sticky;z-index:30;height:auto;flex-direction:row;align-items:center;padding:10px 12px;gap:8px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.brand{padding:0}.brand>div{display:none}.nav{flex-direction:row}.nav a span.lbl{display:none}.nav .badge{position:absolute;top:2px;right:2px}.side-foot{margin:0 0 0 auto;flex-direction:row;align-items:center}.user-box .who,.conn span,.hide-sm{display:none}.user-box{padding:4px}.main{padding-inline:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-weight:500;cursor:pointer;transition:background .2s,border-color .2s,transform .1s;white-space:nowrap}.btn:hover{background:var(--surface-2);border-color:color-mix(in oklab,var(--accent) 40%,var(--line-2))}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#04121c;font-weight:600}.btn.primary:hover{background:color-mix(in oklab,var(--accent) 85%,white)}.btn.danger{color:var(--down)}.btn.danger.solid{background:var(--down);border-color:var(--down);color:#fff}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{height:32px;padding:0 10px;font-size:.85rem;border-radius:8px}.btn.icon{width:34px;padding:0;height:34px}.btn .spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field>.lbl{font-size:.8rem;font-weight:500;color:var(--muted)}.field .hint{font-size:.75rem;color:var(--dim)}.input,.select,.textarea{width:100%;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);color:var(--fg);transition:border-color .2s,box-shadow .2s}.textarea{height:auto;min-height:76px;padding:10px 12px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 20%,transparent)}.input-icon{position:relative}.input-icon .lucide{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--dim)}.input-icon .input{padding-left:38px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media(max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:11px;background:var(--surface);border:1px solid var(--line);flex-wrap:wrap}.seg button{position:relative;border:0;background:none;padding:7px 13px;border-radius:8px;color:var(--muted);cursor:pointer;font-weight:500;display:inline-flex;gap:7px;align-items:center}.seg button.on{color:var(--fg)}.seg .seg-bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;background:var(--surface-2);border:1px solid var(--line-2)}.seg button>*:not(.seg-bg){position:relative}.seg .count{font-family:var(--f-mono);font-size:.72rem;color:var(--dim)}.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;pointer-events:none}.switch .track{width:38px;height:22px;border-radius:99px;background:var(--line-2);position:relative;transition:background .25s;flex:none}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(16px)}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.panel-pad{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:99px;font-family:var(--f-mono);font-size:.68rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--c);background:color-mix(in oklab,var(--c) 15%,transparent);white-space:nowrap}.pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.pill.c-down{animation:pill-blink 1.2s steps(1) infinite}.pill.c-up i{animation:dot-pulse 2s ease-out infinite}@keyframes pill-blink{50%{background:color-mix(in oklab,var(--c) 32%,transparent)}}@keyframes dot-pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--c) 70%,transparent)}to{box-shadow:0 0 0 6px transparent}}.badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--down);color:#fff;font-size:.7rem;font-weight:700;display:inline-grid;place-items:center}.tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--f-mono);font-size:.7rem;padding:2px 7px;border-radius:6px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em}.hero-grid{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:stretch}@media(max-width:1180px){.hero-grid{grid-template-columns:auto minmax(0,1fr)}.hero-grid .radar-box{display:none}}@media(max-width:720px){.hero-grid{grid-template-columns:1fr}}.health{padding:18px 22px;display:flex;align-items:center;gap:18px}.health-txt{display:flex;flex-direction:column;gap:4px}.health-txt b{font-family:var(--f-display);font-size:1.25rem}.stat-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media(max-width:720px){.stat-tiles{grid-template-columns:repeat(2,1fr)}}.tile{position:relative;overflow:hidden;padding:16px 18px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:border-color .2s,transform .2s;text-align:left}.tile:hover{transform:translateY(-2px);border-color:color-mix(in oklab,var(--c) 50%,var(--line))}.tile.sel{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c)}.tile .k{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem;font-weight:500}.tile .k .lucide{color:var(--c)}.tile .v{font-family:var(--f-display);font-size:2.4rem;font-weight:800;line-height:1;color:var(--c);font-variant-numeric:tabular-nums}.tile .glow{position:absolute;right:-30px;bottom:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,color-mix(in oklab,var(--c) 30%,transparent),transparent 70%);pointer-events:none}.tile.c-down.hot .glow{animation:glow 1.4s ease-in-out infinite}@keyframes glow{50%{transform:scale(1.4);opacity:.6}}.tile .sub{font-size:.75rem;color:var(--dim)}.alert-strip{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid color-mix(in oklab,var(--down) 50%,var(--line));background:color-mix(in oklab,var(--down) 9%,var(--surface));padding:14px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.alert-strip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(-45deg,transparent 0 14px,color-mix(in oklab,var(--down) 7%,transparent) 14px 28px);background-size:40px 40px;animation:stripes 1.2s linear infinite}@keyframes stripes{to{background-position:40px 0}}.alert-strip>*{position:relative}.alert-strip .siren{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--down);color:#fff;animation:siren 1s ease-in-out infinite}@keyframes siren{50%{box-shadow:0 0 0 8px color-mix(in oklab,var(--down) 25%,transparent)}}.alert-strip .list{display:flex;flex-wrap:wrap;gap:8px}.alert-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 6px;border-radius:99px;background:var(--surface);border:1px solid color-mix(in oklab,var(--down) 40%,var(--line));color:var(--fg);font-size:.82rem;cursor:pointer}.alert-chip .dicon{color:var(--down)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.loc-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;min-width:0}.loc-pick{position:relative;display:flex;align-items:center;gap:2px;min-width:0}.loc-pick>.btn.on{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 10%,var(--surface))}.loc-pick>.btn.on .lucide:first-child{color:var(--accent)}.loc-label{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(420px,calc(100vw - 32px));padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.loc-filter .loc-pop .input-icon{flex:none;max-width:none}.loc-list{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.loc-row{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;border:0;background:none;color:var(--fg);cursor:pointer;text-align:left}.loc-row:hover{background:var(--surface-2)}.loc-row.on{background:color-mix(in oklab,var(--accent) 14%,transparent)}.loc-row .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-row .ct{font-family:var(--f-mono);font-size:.72rem;color:var(--dim);min-width:22px;text-align:right}.loc-row .lucide{color:var(--muted)}.loc-tree{display:flex;flex-direction:column}.loc-node{position:relative;display:flex;align-items:center;gap:10px;padding:10px 14px 10px calc(14px + var(--depth) * 30px);border-bottom:1px solid var(--line)}.loc-node:last-child{border-bottom:0}.loc-node:hover{background:color-mix(in oklab,var(--surface-2) 60%,transparent)}.loc-node .gicon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--gc);background:color-mix(in oklab,var(--gc) 15%,transparent);flex:none}.loc-node .tx{flex:1;min-width:0}.loc-node .tx b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-branch{position:absolute;left:calc(14px + (var(--depth) - 1) * 30px + 16px);top:-1px;width:12px;height:50%;border-left:1.5px solid var(--line-2);border-bottom:1.5px solid var(--line-2);border-bottom-left-radius:6px}@media(max-width:640px){.loc-node{padding-left:calc(10px + var(--depth) * 16px)}.loc-node>.tag{display:none}}.crumb{color:var(--dim);font-weight:500}.crumb+.crumb:before,.crumb-sep:before{content:"›";margin:0 6px;color:var(--dim)}@media(max-width:640px){.loc-label{max-width:200px}}.toolbar .input-icon{flex:1 1 220px;max-width:340px}.group-sec{display:flex;flex-direction:column;gap:12px}.group-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.group-head .gicon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:var(--gc);background:color-mix(in oklab,var(--gc) 16%,transparent)}.group-head h3{font-size:1.02rem}.group-head .mini{display:flex;gap:10px;font-family:var(--f-mono);font-size:.75rem;color:var(--muted);margin-left:4px}.group-head .mini span{display:inline-flex;align-items:center;gap:4px}.group-head .mini i{width:7px;height:7px;border-radius:50%;background:var(--c)}.group-head .rule{flex:1;height:1px;background:var(--line);min-width:20px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:12px}.dcard{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 14px 12px;display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:border-color .3s,box-shadow .3s;text-align:left}.dcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c);transition:background .3s}.dcard:hover{border-color:color-mix(in oklab,var(--c) 45%,var(--line));box-shadow:0 14px 30px -20px color-mix(in oklab,var(--c) 60%,transparent)}.dcard.c-down{border-color:color-mix(in oklab,var(--down) 55%,var(--line));background:linear-gradient(160deg,color-mix(in oklab,var(--down) 10%,var(--surface)),var(--surface) 60%)}.dcard.c-down.shake{animation:shake .5s ease-in-out}@keyframes shake{15%,55%{transform:translate(-4px)}35%,75%{transform:translate(4px)}}.dcard .top{display:flex;align-items:center;gap:11px}.dcard .nm{min-width:0;flex:1}.dcard .nm b{display:block;font-size:.93rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dcard .nm span{display:block;font-family:var(--f-mono);font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dcard .mid{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.dcard .lat{font-family:var(--f-display);font-size:1.85rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.dcard .lat small{font-family:var(--f-mono);font-size:.72rem;font-weight:400;color:var(--muted);margin-left:3px}.dcard.c-down .lat{color:var(--down);font-size:1.3rem}.dcard .foot{display:flex;justify-content:space-between;gap:8px;font-family:var(--f-mono);font-size:.7rem;color:var(--muted)}.dcard .err{font-size:.75rem;color:var(--c);background:color-mix(in oklab,var(--c) 10%,transparent);border-radius:8px;padding:5px 8px}.dcard .sparkwrap{display:flex;align-items:flex-end;gap:10px}.orb{position:relative;display:grid;place-items:center;width:var(--s, 42px);height:var(--s, 42px);border-radius:12px;color:var(--c);background:color-mix(in oklab,var(--c) 14%,transparent);flex:none}.orb .ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:2px solid var(--c);opacity:0;pointer-events:none}.orb.live .ring{animation:orb 2.6s ease-out infinite}.c-warn .orb.live .ring,.orb.c-warn.live .ring{animation-duration:1.5s}.c-down .orb.live .ring,.orb.c-down.live .ring{animation-duration:.9s}.orb .ring.r2{animation-delay:1.3s!important}.c-down .orb .ring.r2,.orb.c-down .ring.r2{animation-delay:.45s!important}@keyframes orb{0%{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}.orb .ping-flash{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:14px;border:2px solid var(--accent);animation:flash .7s ease-out forwards;pointer-events:none}@keyframes flash{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.25)}}.orb.round,.orb.round .ring,.orb.round .ping-flash{border-radius:50%}.sbars{display:inline-flex;align-items:flex-end;gap:2px;height:16px}.sbars i{width:4px;border-radius:1.5px;background:var(--line-2);transition:background .4s}.sbars i.on{background:var(--c)}.sbars i:nth-child(1){height:25%}.sbars i:nth-child(2){height:50%}.sbars i:nth-child(3){height:75%}.sbars i:nth-child(4){height:100%}.c-down .sbars i.on{animation:bar-blink 1s steps(1) infinite}@keyframes bar-blink{50%{opacity:.2}}.spark path.l{fill:none;stroke:var(--c);stroke-width:1.6;transition:d .6s ease}.spark path.a{transition:d .6s ease}.spark circle{fill:var(--c);transition:cx .6s ease,cy .6s ease}.spark circle.halo{fill:none;stroke:var(--c);animation:halo 2s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes halo{0%{transform:scale(1);opacity:.9}to{transform:scale(3);opacity:0}}.ekg{display:block}.ekg .beat{fill:none;stroke:var(--c);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 4px color-mix(in oklab,var(--c) 60%,transparent))}.ekg .grid{stroke:var(--line);stroke-width:1}.ring-wrap{position:relative;display:grid;place-items:center;flex:none}.ring-wrap .center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.ring-wrap .center b{font-family:var(--f-display);font-size:1.7rem;font-weight:800;line-height:1;display:block}.ring-wrap .center small{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-family:var(--f-mono)}.ring-ticks{animation:spin 30s linear infinite;transform-origin:center;transform-box:fill-box}.radar-box{padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.radar .sweep{transform-origin:0 0;animation:spin 4s linear infinite}.radar .ring{fill:none;stroke:var(--line-2)}.radar .blip{transition:cx 1s,cy 1s}.radar .blip-pulse{fill:none;stroke-width:1.5;animation:blip 1.2s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes blip{0%{transform:scale(1);opacity:1}to{transform:scale(3.2);opacity:0}}.sla-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--accent);background:color-mix(in oklab,var(--accent) 14%,transparent)}.sla-tbl td.sla-cell{min-width:132px}.sla-cell b{display:block;color:var(--c);font-size:.95rem}.sla-cell small{display:block;color:var(--dim);font-size:.72rem;margin-top:2px}.sla-bar{position:relative;display:block;height:5px;margin-top:5px;border-radius:3px;background:var(--line)}.sla-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--c);transition:width .8s cubic-bezier(.2,.8,.2,1);animation:sla-grow .9s cubic-bezier(.2,.8,.2,1)}.sla-bar em{position:absolute;top:-3px;bottom:-3px;width:2px;border-radius:1px;background:var(--fg);opacity:.55}@keyframes sla-grow{0%{width:0}}.sla-box{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg);transition:border-color .2s}.sla-box.on{border-color:color-mix(in oklab,var(--accent) 50%,var(--line-2))}.sla-box .hint{font-size:.75rem;color:var(--dim)}.sla-allow{min-height:40px;display:flex;align-items:center;font-size:.8rem;color:var(--muted)}.sla-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px}@media(max-width:900px){.sla-tiles{grid-template-columns:repeat(2,1fr)}}.sla-tile{padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:6px}.sla-tile .v{font-family:var(--f-display);font-size:1.6rem;font-weight:800;color:var(--c);font-variant-numeric:tabular-nums;line-height:1}.sla-tile .k{font-size:.78rem;color:var(--muted)}.sla-tile small{font-size:.74rem;color:var(--dim)}.tbl-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:.88rem}.tbl th{text-align:left;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}.tbl td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background .15s}.tbl tbody tr:hover{background:color-mix(in oklab,var(--surface-2) 60%,transparent)}.tbl .name-cell{display:flex;align-items:center;gap:10px;min-width:200px}.tbl .name-cell b{display:block;font-weight:600}.tbl .name-cell small{color:var(--muted);font-size:.75rem}.row-actions{display:flex;gap:2px;justify-content:flex-end}.tbl tr.grp-row td{padding:0;background:color-mix(in oklab,var(--gc) 6%,var(--surface-2));border-bottom:1px solid var(--line)}.tbl tr.grp-row:hover{background:none}.tbl tr.grp-row.has-down td{box-shadow:inset 3px 0 0 var(--down)}.grp-line{position:relative;display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 14px 9px calc(10px + var(--depth) * 26px);min-height:50px}.grp-branch{position:absolute;left:calc(10px + (var(--depth) - 1) * 26px + 13px);top:0;width:10px;height:50%;border-left:1.5px solid var(--line-2);border-bottom:1.5px solid var(--line-2);border-bottom-left-radius:6px}.grp-toggle{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;border:0;background:none;color:var(--muted);cursor:pointer}.grp-toggle:hover:not(:disabled){background:var(--surface);color:var(--fg)}.grp-toggle:disabled{opacity:.35;cursor:default}.grp-toggle .lucide{width:16px;height:16px;transition:transform .2s}.grp-line .gicon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:var(--gc);background:color-mix(in oklab,var(--gc) 16%,transparent);flex:none}.grp-name{font-family:var(--f-display);font-size:.98rem;cursor:pointer}.grp-count{color:var(--muted);font-size:.78rem}.grp-stats{display:inline-flex;gap:10px;font-family:var(--f-mono);font-size:.74rem;color:var(--muted)}.grp-stats span{display:inline-flex;align-items:center;gap:4px}.grp-stats i{width:7px;height:7px;border-radius:50%;background:var(--c)}.grp-stats .c-down{color:var(--down);font-weight:600}.grp-add{margin-left:auto;color:var(--muted)}.grp-add:hover{color:var(--accent)}.tbl tr.dev-row>td:first-child{padding-left:calc(14px + var(--depth) * 26px);position:relative}.tbl tr.dev-row>td:first-child:before{content:"";position:absolute;left:calc(14px + (var(--depth) - 1) * 26px + 13px);top:0;bottom:0;border-left:1.5px solid var(--line)}@media(max-width:640px){.grp-line{padding-left:calc(8px + var(--depth) * 12px)}.tbl tr.dev-row>td:first-child{padding-left:calc(10px + var(--depth) * 12px)}.grp-count{display:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0308109e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;overflow-y:auto}.modal{width:min(720px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-2);border-radius:18px;box-shadow:var(--shadow)}.modal.sm{width:min(440px,100%)}.modal-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h2{flex:1}.modal-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.modal-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap}.form-sec{display:flex;flex-direction:column;gap:14px}.form-sec>.eyebrow{display:flex;align-items:center;gap:8px}.form-sec>.eyebrow:after{content:"";flex:1;height:1px;background:var(--line)}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px;max-height:220px;overflow-y:auto;padding:2px}.icon-opt{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px 8px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer;font-size:.68rem;text-align:center;transition:border-color .2s,color .2s,transform .15s}.icon-opt:hover{color:var(--fg);transform:translateY(-2px)}.icon-opt.on{border-color:var(--accent);color:var(--accent);background:color-mix(in oklab,var(--accent) 10%,var(--bg))}.type-opts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}@media(max-width:560px){.type-opts{grid-template-columns:repeat(2,1fr)}}.type-opt{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);cursor:pointer;text-align:left}.type-opt b{display:flex;align-items:center;gap:7px;font-size:.88rem}.type-opt small{color:var(--dim);font-size:.72rem;line-height:1.3}.type-opt.on{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 9%,var(--bg))}.type-opt.on b{color:var(--accent)}.test-result{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg)}.test-result.ok{border-color:color-mix(in oklab,var(--ok) 50%,var(--line))}.test-result.fail{border-color:color-mix(in oklab,var(--down) 50%,var(--line))}.draw-check path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .6s .1s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;background:var(--sw);box-shadow:inset 0 0 0 2px var(--surface)}.swatch.on{border-color:var(--sw)}.toasts{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 36px));pointer-events:none}.toast{pointer-events:auto;display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow);position:relative;overflow:hidden}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c, var(--accent))}.toast .body{flex:1;min-width:0}.toast .body b{display:block;font-size:.9rem}.toast .body span{font-size:.8rem;color:var(--muted)}.toast .bar{position:absolute;left:0;bottom:0;height:2px;background:var(--c, var(--accent));animation:toastbar linear forwards}@keyframes toastbar{0%{width:100%}to{width:0}}.chart{width:100%;display:block;touch-action:pan-y}.chart .gridl{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--dim);font:400 10.5px var(--f-mono)}.chart .line{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round}.chart .maxline{fill:none;stroke:var(--accent);stroke-opacity:.3;stroke-width:1;stroke-dasharray:3 3}.chart .downband{fill:var(--down);fill-opacity:.16}.chart .thr{stroke:var(--warn);stroke-dasharray:5 4;stroke-width:1}.chart .thr-l{fill:var(--warn);font:500 10px var(--f-mono)}.chart .cross{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3}.chart-tip{position:absolute;pointer-events:none;background:var(--bg-2);border:1px solid var(--line-2);border-radius:10px;padding:8px 10px;font-size:.78rem;box-shadow:var(--shadow);white-space:nowrap;z-index:5}.uptime-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;height:38px}.uptime-strip i{border-radius:3px;background:var(--c);opacity:.9;transform-origin:bottom;animation:rise .5s backwards;cursor:default}.uptime-strip i.none{background:var(--line)}@keyframes rise{0%{transform:scaleY(0)}}.detail-hero{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:22px;position:relative;overflow:hidden}.detail-hero .orbit{position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:1px dashed color-mix(in oklab,var(--c) 30%,transparent);animation:spin 40s linear infinite;pointer-events:none}.detail-hero .orbit:after{content:"";position:absolute;top:50%;left:-5px;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c)}.detail-hero .info{flex:1;min-width:220px;display:flex;flex-direction:column;gap:6px}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.kv>div{padding:14px 16px;display:flex;flex-direction:column;gap:4px}.kv .k{font-size:.76rem;color:var(--muted)}.kv .v{font-family:var(--f-display);font-size:1.5rem;font-weight:750;font-variant-numeric:tabular-nums}.kv .v small{font-family:var(--f-mono);font-size:.75rem;color:var(--muted);font-weight:400;margin-left:3px}.timeline{display:flex;flex-direction:column}.tl-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);align-items:center}.tl-item:last-child{border-bottom:0}.tl-item .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--c);background:color-mix(in oklab,var(--c) 14%,transparent)}.tl-item .tx{min-width:0}.tl-item .tx b{font-weight:600}.tl-item .tx p{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.tl-item .when{text-align:right;font-family:var(--f-mono);font-size:.72rem;color:var(--muted);white-space:nowrap}.ev-row{overflow:hidden;animation:ev-flash 1.4s ease-out}@keyframes ev-flash{0%{background:color-mix(in oklab,var(--accent) 16%,transparent)}}.day-sep{padding:8px 18px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);background:var(--surface-2);border-bottom:1px solid var(--line)}.topo-panel{position:relative;overflow:hidden;height:calc(100vh - 190px);min-height:460px}.topo-svg{width:100%;height:100%;display:block;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background-image:radial-gradient(circle,var(--line) 1px,transparent 1.2px);background-size:22px 22px}.topo-svg.panning{cursor:grabbing}.topo-svg .link{fill:none;stroke:var(--c);stroke-width:2.2;stroke-opacity:.5;transition:stroke .4s}.topo-svg .link.c-down{stroke-dasharray:7 7;stroke-opacity:.9;animation:dashmove 1s linear infinite}@keyframes dashmove{to{stroke-dashoffset:-28}}.topo-svg .pkt{fill:var(--accent);stroke:color-mix(in oklab,var(--accent) 35%,transparent);stroke-width:3}.topo-svg.busy .node-ring,.topo-svg.busy .dicon *,.topo-svg.busy .link.c-down{animation-play-state:paused!important}.topo-svg .node{cursor:pointer}.topo-svg .node.dragging{cursor:grabbing}.topo-svg .node.dragging .node-bg{stroke-width:3.5;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}.topo-svg .node.dragging .node-ring{animation:none;opacity:0}.topo-svg .node-bg{fill:var(--surface);stroke:var(--c);stroke-width:2.4;transition:stroke .4s,fill .4s}.topo-svg .c-down .node-bg{fill:color-mix(in oklab,var(--down) 18%,var(--surface))}.topo-svg .node-ring{fill:none;stroke:var(--c);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:orb 2.6s ease-out infinite}.topo-svg .c-warn .node-ring{animation-duration:1.5s}.topo-svg .c-down .node-ring{animation-duration:.9s}.topo-svg .c-paused .node-ring,.topo-svg .c-maintenance .node-ring,.topo-svg .c-pending .node-ring{display:none}.topo-svg .node .dicon{color:var(--c)}.topo-svg .n-label{fill:var(--fg);font:600 12.5px var(--f-body);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}.topo-svg .n-sub{fill:var(--muted);font:400 10.5px var(--f-mono);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:4px}.topo-svg .n-lat{fill:var(--c);font:600 10.5px var(--f-mono);text-anchor:middle}.topo-svg .break{stroke:var(--down);stroke-width:2.4}.topo-svg .root-bg{fill:url(#rootGrad);stroke:none}.topo-svg .loc-box .lb-bg{fill:color-mix(in oklab,var(--gc) 5%,var(--surface));fill-opacity:.55;stroke:color-mix(in oklab,var(--gc) 40%,var(--line-2));stroke-width:1.5}.topo-svg .loc-box.depth-1 .lb-bg{fill-opacity:.7;stroke-dasharray:none}.topo-svg .loc-box.depth-2 .lb-bg{fill-opacity:.85}.topo-svg .loc-box.depth-3 .lb-bg{fill-opacity:1}.topo-svg .loc-box.c-down>.lb-bg{stroke:var(--down);stroke-width:2;animation:lb-alarm 1.6s ease-in-out infinite}@keyframes lb-alarm{50%{stroke-opacity:.35}}.topo-svg .lb-headbg{fill:color-mix(in oklab,var(--gc) 12%,var(--surface))}.topo-svg .lb-head.clickable{cursor:pointer}.topo-svg .lb-head.clickable:hover .lb-headbg{fill:color-mix(in oklab,var(--gc) 22%,var(--surface))}.topo-svg .lb-head.clickable:hover .lb-title{fill:var(--accent)}.topo-svg .lb-ico rect{fill:color-mix(in oklab,var(--gc) 22%,var(--surface))}.topo-svg .lb-ico .dicon{color:var(--gc)}.topo-svg .lb-title{fill:var(--fg);font:700 15px var(--f-display)}.topo-svg .lb-sub{font:500 11px var(--f-mono);fill:var(--muted)}.topo-svg .lb-level{fill:var(--gc);font-weight:700;letter-spacing:.06em}.topo-svg .lb-ok{fill:var(--ok)}.topo-svg .lb-warn{fill:var(--warn)}.topo-svg .lb-down{fill:var(--down);font-weight:700}.topo-svg.busy .loc-box .lb-bg{animation-play-state:paused}.topo-svg .lb-band text{font:600 9.5px var(--f-mono);letter-spacing:.14em;fill:var(--dim)}.topo-svg .lb-band.net-internet text{fill:var(--accent)}.topo-svg .lb-band line{stroke:var(--line-2);stroke-dasharray:3 5}.topo-svg .lb-arrow{cursor:pointer}.topo-svg .lb-arrow circle{fill:var(--surface);stroke:var(--line-2);transition:fill .15s,stroke .15s}.topo-svg .lb-arrow path{fill:none;stroke:var(--fg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topo-svg .lb-arrow:hover circle{fill:var(--accent);stroke:var(--accent)}.topo-svg .lb-arrow:hover path{stroke:var(--bg)}.topo-svg .lb-arrow.off{cursor:default;opacity:.25}.topo-svg .lb-arrow.off:hover circle{fill:var(--surface);stroke:var(--line-2)}.topo-svg .lb-arrow.off:hover path{stroke:var(--fg)}.topo-svg .topo-x{cursor:pointer}.topo-svg .topo-x circle{fill:var(--surface);stroke:var(--down);stroke-width:1.6;transition:fill .15s}.topo-svg .topo-x path{stroke:var(--down);stroke-width:2;stroke-linecap:round;fill:none}.topo-svg .topo-x:hover circle{fill:var(--down)}.topo-svg .topo-x:hover path{stroke:#fff}.topo-svg .rubber{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 5;pointer-events:none;animation:dashmove .8s linear infinite}.topo-svg .node.source .node-bg{stroke:var(--accent);stroke-width:3.5;stroke-dasharray:6 4}.topo-panel.editing{border-color:color-mix(in oklab,var(--accent) 50%,var(--line))}.topo-panel.editing .topo-svg{cursor:crosshair}.topo-banner{position:absolute;left:12px;top:12px;max-width:calc(100% - 340px);padding:8px 12px;border-radius:10px;font-size:.8rem;background:color-mix(in oklab,var(--accent) 14%,var(--surface));border:1px solid color-mix(in oklab,var(--accent) 40%,var(--line))}@media(max-width:760px){.topo-banner{top:auto;bottom:56px;max-width:calc(100% - 24px)}}.map-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.map-tab{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;font-weight:500}.map-tab:hover{color:var(--fg);border-color:var(--line-2)}.map-tab.on{color:var(--fg);border-color:var(--accent);background:color-mix(in oklab,var(--accent) 10%,var(--surface))}.map-tab .count{font-family:var(--f-mono);font-size:.72rem;color:var(--dim)}.map-tab.add{border-style:dashed;color:var(--accent)}.pick-list{display:flex;flex-direction:column;max-height:340px;overflow-y:auto;border:1px solid var(--line);border-radius:12px}.pick-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer}.pick-item:last-child{border-bottom:0}.pick-item:hover{background:var(--surface-2)}.pick-item input{width:16px;height:16px;accent-color:var(--accent);flex:none}.pick-item .tx{min-width:0;flex:1}.pick-item small{color:var(--muted);font-family:var(--f-mono);font-size:.72rem}.pick-group{padding:6px 12px;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);background:var(--surface-2);border-bottom:1px solid var(--line);position:sticky;top:0}.topo-tools{position:absolute;top:12px;right:12px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.topo-legend{position:absolute;left:12px;bottom:12px;display:flex;gap:12px;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:color-mix(in oklab,var(--surface) 88%,transparent);border:1px solid var(--line);font-size:.75rem;color:var(--muted)}.topo-legend span{display:inline-flex;align-items:center;gap:6px}.topo-legend i{width:14px;height:3px;border-radius:2px;background:var(--c)}.empty{padding:48px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;color:var(--muted)}.empty h3{color:var(--fg)}.empty p{max-width:46ch}.login{position:relative;min-height:100%;display:grid;place-items:center;padding:24px 16px;overflow:hidden}.login canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.login-card{position:relative;width:min(400px,100%);padding:30px 28px;border-radius:22px;background:color-mix(in oklab,var(--surface) 86%,transparent);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}.login-card .brand{padding:0}.login-card .err{color:var(--down);font-size:.85rem;background:color-mix(in oklab,var(--down) 10%,transparent);padding:8px 12px;border-radius:10px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{position:relative;background:none;border:0;padding:10px 14px;color:var(--muted);cursor:pointer;font-weight:500;display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.tabs button.on{color:var(--fg)}.tabs .tab-line{position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.callout{display:flex;gap:12px;padding:12px 14px;border-radius:12px;background:color-mix(in oklab,var(--accent) 8%,var(--surface));border:1px solid color-mix(in oklab,var(--accent) 30%,var(--line));font-size:.85rem}.callout.warn{background:color-mix(in oklab,var(--warn) 10%,var(--surface));border-color:color-mix(in oklab,var(--warn) 40%,var(--line))}.callout .lucide{color:var(--accent);margin-top:2px}.callout.warn .lucide{color:var(--warn)}.callout ol{margin:4px 0 0;padding-left:18px}.group-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.gcard{padding:16px;display:flex;gap:12px;align-items:center}.gcard .gicon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--gc);background:color-mix(in oklab,var(--gc) 15%,transparent);flex:none}.gcard .tx{flex:1;min-width:0}.tv{min-height:100%;padding:22px 26px;display:flex;flex-direction:column;gap:18px;background:radial-gradient(1200px 500px at 20% -10%,color-mix(in oklab,var(--accent) 10%,transparent),transparent),var(--bg)}.tv-head{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.tv-head .clock{font-family:var(--f-display);font-size:2.6rem;font-weight:800;font-variant-numeric:tabular-nums;margin-left:auto;line-height:1}.tv-counts{display:flex;gap:12px;flex-wrap:wrap}.tv-count{padding:10px 18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:flex;align-items:baseline;gap:10px}.tv-count b{font-family:var(--f-display);font-size:2rem;color:var(--c)}.tv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.tv-card{padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}.tv-card.c-down{border-color:var(--down);background:color-mix(in oklab,var(--down) 14%,var(--surface));animation:tvdown 1.6s ease-in-out infinite}@keyframes tvdown{50%{box-shadow:0 0 0 4px color-mix(in oklab,var(--down) 30%,transparent)}}.tv-card .row{display:flex;align-items:center;gap:12px}.tv-card b{font-size:1.05rem}.tv-card .lat{font-family:var(--f-display);font-size:2rem;font-weight:800;color:var(--c);line-height:1;white-space:nowrap}.tv-card.c-down .lat{font-size:1.35rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}}.dicon{--spd: 1;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;overflow:visible;flex:none}.dicon *{transform-box:fill-box;transform-origin:center}.dicon .f{fill:currentColor;stroke:none}.dicon .rec{fill:var(--down);stroke:none}.dicon .notify{fill:var(--down)}.dicon.s-warn{--spd: 1.9}.dicon:hover{--spd: .55}.dicon.s-down *,.dicon.s-paused *,.dicon.s-maintenance *{animation:none!important}.dicon.s-down .a-io,.dicon.s-down .a-load,.dicon.s-down .a-scan,.dicon.s-down .a-smoke,.dicon.s-paused .a-scan,.dicon.s-paused .a-smoke,.dicon.s-maintenance .a-scan,.dicon.s-maintenance .a-smoke{opacity:0}.dicon.s-down .a-wave{opacity:.2}.dicon.s-pending *{animation-duration:3s!important}.a-wave{animation:np-wave calc(1.8s * var(--spd)) ease-in-out infinite}.w2{animation-delay:calc(.28s * var(--spd))}.w3{animation-delay:calc(.56s * var(--spd))}@keyframes np-wave{0%,to{opacity:.15}40%{opacity:1}}.a-led{animation:np-led calc(1.2s * var(--spd)) steps(1,end) infinite}.d2{animation-delay:calc(.2s * var(--spd))}.d3{animation-delay:calc(.45s * var(--spd))}.d4{animation-delay:calc(.7s * var(--spd))}.d5{animation-delay:calc(.95s * var(--spd))}.d6{animation-delay:calc(1.2s * var(--spd))}@keyframes np-led{0%,55%{opacity:1}56%,to{opacity:.2}}.a-win{animation:np-led calc(3.4s * var(--spd)) steps(1,end) infinite}.a-spinx{animation:np-spinx calc(3.6s * var(--spd)) linear infinite}.d-half{animation-delay:calc(-1.8s * var(--spd))!important}.a-io.d-half,.a-smoke.d-half,.a-swing.d-half{animation-delay:calc(-.9s * var(--spd))!important}@keyframes np-spinx{0%{transform:scaleX(1)}50%{transform:scaleX(.06)}to{transform:scaleX(1)}}.a-io{stroke-dasharray:2 4;animation:np-io calc(.9s * var(--spd)) linear infinite}@keyframes np-io{to{stroke-dashoffset:-12}}.a-scan{stroke:var(--accent);stroke-width:1.4;animation:np-scan calc(2.2s * var(--spd)) ease-in-out infinite}.a-scan.tall{animation-name:np-scan-tall}@keyframes np-scan{0%{transform:translateY(0);opacity:0}15%,85%{opacity:1}to{transform:translateY(10px);opacity:0}}@keyframes np-scan-tall{0%{transform:translateY(0);opacity:0}15%,85%{opacity:1}to{transform:translateY(17px);opacity:0}}.a-shackle{animation:np-shackle calc(2.6s * var(--spd)) ease-in-out infinite}@keyframes np-shackle{0%,70%,to{transform:translateY(0)}80%{transform:translateY(-1.6px)}90%{transform:translateY(0)}}.a-sway{transform-box:view-box;transform-origin:11.6px 9.4px;animation:np-sway calc(3.2s * var(--spd)) ease-in-out infinite}@keyframes np-sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.a-smoke{animation:np-smoke calc(1.8s * var(--spd)) ease-out infinite}@keyframes np-smoke{0%{transform:translateY(2px) scale(.4);opacity:0}30%{opacity:.9}to{transform:translate(2.5px,-5px) scale(1.5);opacity:0}}.a-load{stroke:var(--accent);stroke-dasharray:12;animation:np-load calc(1.8s * var(--spd)) ease-in-out infinite}@keyframes np-load{0%{stroke-dashoffset:12}50%{stroke-dashoffset:0}to{stroke-dashoffset:-12}}.a-pan{transform-box:view-box;transform-origin:8.4px 12px;animation:np-pan calc(4s * var(--spd)) ease-in-out infinite}@keyframes np-pan{0%,to{transform:rotate(-8deg)}50%{transform:rotate(7deg)}}.a-float{animation:np-float calc(2.8s * var(--spd)) ease-in-out infinite}@keyframes np-float{0%,to{transform:translateY(0)}50%{transform:translateY(-1.3px)}}.a-beam{stroke:var(--accent);stroke-dasharray:1.4 2.4;animation:np-beam calc(.7s * var(--spd)) linear infinite}@keyframes np-beam{to{stroke-dashoffset:-7.6}}.a-ring{animation:np-ring calc(2.4s * var(--spd)) ease-in-out infinite}@keyframes np-ring{0%,55%,to{transform:rotate(0)}60%{transform:rotate(-13deg)}65%{transform:rotate(12deg)}70%{transform:rotate(-10deg)}75%{transform:rotate(8deg)}80%{transform:rotate(0)}}.a-paper{animation:np-paper calc(2.6s * var(--spd)) ease-in-out infinite}@keyframes np-paper{0%{transform:translateY(-4px);opacity:0}20%{opacity:1}80%{transform:translateY(.5px);opacity:1}to{transform:translateY(.5px);opacity:0}}.a-blink{animation:np-led calc(1s * var(--spd)) steps(1,end) infinite}.a-swing{transform-box:view-box;transform-origin:12px 10px;animation:np-swing calc(2.6s * var(--spd)) ease-in-out infinite}@keyframes np-swing{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}.a-charge{animation:np-charge calc(2.1s * var(--spd)) ease-in-out infinite}@keyframes np-charge{0%{opacity:.12}18%,80%{opacity:1}to{opacity:.12}}.a-bounce{animation:np-bounce calc(1.6s * var(--spd)) cubic-bezier(.5,0,.5,1) infinite}.a-shadow{animation:np-shadow calc(1.6s * var(--spd)) cubic-bezier(.5,0,.5,1) infinite}@keyframes np-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2.6px)}}@keyframes np-shadow{0%,to{transform:scaleX(1)}50%{transform:scaleX(.6)}}.a-flap{animation:np-flap calc(2.6s * var(--spd)) ease-in-out infinite}@keyframes np-flap{0%,70%,to{transform:translateY(0)}80%{transform:translateY(1.2px)}}@media(prefers-reduced-motion:reduce){.dicon *{animation:none!important}}
