@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#0f1b2d;--navy-mid:#012b5e;--blue:#0060b6;--blue-deep:#003087;--cyan:#009cdc;--cyan-soft:#7dd8f5;--bg:#f5f9fc;--surface:#fff;--text:#0f1b2d;--muted:#5b6675;--border:#e5e7eb;--border-strong:#8a94a3;--row-selected:#e8f6fc;--row-hover:#f6fafd;--ok-bg:#dcf7e6;--ok-text:#0f6b34;--bad-bg:#fde8e6;--bad-text:#a8261a;--neutral-bg:#eaeef2;--neutral-text:#46505c;--shadow-sm:0 1px 3px #0f1b2d12;--shadow-md:0 6px 24px #0f1b2d14;--shadow-lg:0 16px 48px #0f1b2d38;--shadow-blue:0 6px 20px #0060b647;--hero:linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 45%, var(--blue) 100%)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:14px/1.5 Inter Variable,system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,p{margin:0}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#fff;flex-direction:column;gap:24px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:-.02em;color:#fff;white-space:nowrap;padding:0 12px;font-size:20px;font-weight:800}.brand span{color:var(--cyan-soft)}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav a{color:#ffffffc7;white-space:nowrap;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar nav a:hover{color:#fff;background:#ffffff14}.sidebar nav a.active{color:#fff;box-shadow:inset 3px 0 0 var(--cyan-soft);background:#ffffff26;font-weight:600}.nav-icon{flex-shrink:0;width:18px;height:18px}.nav-label{flex:1}.nav-alert{color:#fff;font-variant-numeric:tabular-nums;background:#c62f21;border-radius:100px;padding:0 7px;font-size:11.5px;font-weight:700;line-height:18px}.sidebar-user{border-top:1px solid #ffffff24;flex-direction:column;gap:10px;padding:16px 12px 0;display:flex}.sidebar-name{overflow-wrap:anywhere;font-weight:600}.sidebar-role{vertical-align:1px;background:#ffffff24;border-radius:100px;margin-left:4px;padding:0 7px;font-size:11px;font-weight:600;line-height:18px;display:inline-block}.sidebar-actions{flex-wrap:wrap;gap:6px;display:flex}.page{min-width:0;padding:28px 32px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:24px;font-weight:800;line-height:1.2}.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:20px;display:grid}.stat{color:inherit;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:18px 20px;text-decoration:none;transition:box-shadow .15s,border-color .15s,transform .15s;display:block}.stat:hover{box-shadow:var(--shadow-md);border-color:var(--cyan);transform:translateY(-1px)}.stat.static:hover{box-shadow:var(--shadow-sm);border-color:var(--border);transform:none}.stat-label{color:var(--muted);font-size:13px;font-weight:500}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:30px;font-weight:800;line-height:1.25}.stat-value.ok{color:var(--ok-text)}.stat-value.bad{color:var(--bad-text)}.action-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:12px}.stat.action .stat-value{font-size:40px}.stat.alert-card{border-color:var(--bad-text);box-shadow:inset 4px 0 0 var(--bad-text), var(--shadow-sm)}.stat.alert-card:hover{border-color:var(--bad-text);box-shadow:inset 4px 0 0 var(--bad-text), var(--shadow-md)}.context-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.stat.compact{box-shadow:none;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 20px;display:flex}.compact-value{font-variant-numeric:tabular-nums;margin-left:auto;font-size:18px;font-weight:700}.stat.compact .stat-note{flex-basis:100%;margin-top:0}td.strong-bad{color:var(--bad-text);font-weight:700}.compact-head{margin-bottom:12px}.filter-divider{background:var(--border-strong);align-self:stretch;width:1px;margin:4px}.toolbar-end{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.check-label{white-space:nowrap;flex-direction:row;align-items:center;gap:6px;font-weight:500}.check-label input{width:16px;height:16px;accent-color:var(--blue)}.stat-note{color:var(--muted);margin-top:2px;font-size:12px}.panel{background:var(--surface);box-shadow:var(--shadow-sm);border:1px solid var(--border);border-radius:16px;margin-bottom:20px;padding:22px 24px}.panel>h2{margin-bottom:14px}.panel-foot{margin-top:14px;font-weight:600}.panel-foot a,a.link{color:var(--blue);font-weight:600;text-decoration:none}.panel-foot a:hover,a.link:hover{text-decoration:underline}h2{letter-spacing:-.01em;font-size:16px;font-weight:700}.muted{color:var(--muted);margin-top:3px;font-size:13px}.muted-inline{color:var(--muted)}.empty{color:var(--muted);margin:8px 0 4px}.empty-action{margin-top:10px}.alert{background:var(--bad-bg);color:var(--bad-text);overflow-wrap:anywhere;border-radius:10px;margin-bottom:14px;padding:10px 14px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 12px}th{color:var(--muted);background:var(--bg);font-size:12px;font-weight:600}button.sort{min-height:24px;font:inherit;color:inherit;white-space:nowrap;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}button.sort:hover:not(:disabled),button.sort.active{color:var(--blue)}.sort-mark{opacity:.6;font-size:11px}button.sort.active .sort-mark,button.sort:hover .sort-mark{opacity:1}th:first-child{border-top-left-radius:8px}th:last-child{border-top-right-radius:8px}tbody tr:hover td{background:var(--row-hover)}tbody tr:last-child td{border-bottom:0}tr.selected td,tr.selected:hover td{background:var(--row-selected)}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}td.client{white-space:normal;overflow-wrap:anywhere;min-width:180px;font-weight:500}td.fill-client,td.fill-location{text-overflow:ellipsis;max-width:0;overflow:hidden}td.fill-client{width:34%;font-weight:500}td.fill-location{width:24%}.sticky-table{min-height:240px;max-height:calc(100vh - 150px);overflow:auto}.sticky-table thead th{z-index:2;box-shadow:inset 0 -1px 0 var(--border);position:sticky;top:0}th.expand-cell,td.expand-cell{width:34px;padding:0 0 0 6px}td.expand-cell .tree-toggle{vertical-align:middle;width:24px;height:24px}tr.clickable{cursor:pointer}.detail-row td{background:var(--bg);white-space:normal;padding:12px 16px 12px 48px}tbody tr.detail-row:hover td{background:var(--bg)}.detail-row .facts{margin:0}.facts-title{margin:16px 0 10px;font-size:13px;font-weight:600}.tag{background:var(--neutral-bg);color:var(--neutral-text);border-radius:100px;margin-left:6px;padding:0 6px;font:600 11px/1.5 Inter Variable,system-ui,sans-serif}.actions,.actions-head{z-index:1;position:sticky;right:0}.actions{text-align:right;background:var(--surface);box-shadow:-8px 0 8px -8px #0f1b2d1f}tbody tr:hover td.actions{background:var(--row-hover)}.actions button{margin-left:6px;padding:5px 13px;font-size:13px}.error-row td{background:var(--bad-bg);color:var(--bad-text);white-space:normal;overflow-wrap:anywhere;font-size:13px}tbody tr.error-row:hover td{background:var(--bad-bg)}button,input,select{font:inherit;color:inherit}button{background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;border-radius:100px;padding:7px 16px;font-weight:500;transition:background-color .15s,border-color .15s,box-shadow .15s}button:hover:not(:disabled){border-color:var(--blue)}button:disabled{opacity:.65;cursor:default}button.primary{background:var(--blue);border-color:var(--blue);color:#fff;white-space:nowrap;box-shadow:var(--shadow-blue);padding:9px 20px;font-weight:600}button.primary:hover:not(:disabled){background:var(--blue-deep);border-color:var(--blue-deep)}button.wide{width:100%}button.danger{color:var(--bad-text)}button.danger:hover:not(:disabled){border-color:var(--bad-text)}button.ghost{color:#fff;background:0 0;border-color:#ffffff4d;padding:6px 14px;font-size:13px}button.ghost:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff80}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.badge{border-radius:100px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.online{background:var(--ok-bg);color:var(--ok-text)}.badge.offline{background:var(--bad-bg);color:var(--bad-text)}.badge.role-admin{background:var(--row-selected);color:var(--blue-deep)}td.strong{font-weight:600}.badge.unknown{background:var(--neutral-bg);color:var(--neutral-text)}.poll-badge{margin-left:8px}.toolbar{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:12px;display:flex}.filters{flex-wrap:wrap;gap:6px;display:flex}.filters button{padding:6px 14px;font-size:13px}.filters button.active{background:var(--row-selected);border-color:var(--cyan);color:var(--blue-deep);font-weight:600}input,select{background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;width:100%;padding:9px 12px;font-weight:400}input:focus,select:focus{outline:2px solid var(--cyan);outline-offset:0;border-color:#0000}.toolbar input{border-radius:100px;width:300px;max-width:100%;padding:7px 14px}.selects{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.selects select{width:auto;max-width:300px;padding:7px 12px}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.pager .muted{margin:0}.pager-buttons{align-items:center;gap:10px;display:flex}button.link-button{color:var(--blue);background:0 0;border:0;border-radius:4px;padding:0;font-weight:600}button.link-button:hover:not(:disabled){text-decoration:underline}.facts{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 24px;margin:0 0 18px;display:grid}.facts .wide{grid-column:1/-1}.facts dt{color:var(--muted);font-size:12px;font-weight:500}.facts dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:500}.tree,.tree ul{margin:0;padding:0;list-style:none}.tree-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:6px;padding-bottom:6px;display:flex}.tree-row:hover{background:var(--row-hover)}.tree-toggle{background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.tree-toggle:hover:not(:disabled){background:var(--neutral-bg)}.chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:8px;height:8px;transition:transform .15s;transform:rotate(-45deg)}.chevron.open{transform:rotate(45deg)}.tree-label{text-align:left;background:0 0;border:0;border-radius:4px;flex:160px;align-items:baseline;gap:8px;min-width:0;padding:2px 0;display:inline-flex}.tree-kind{color:var(--muted);flex-shrink:0;font-size:11px;font-weight:600}.tree-name{overflow-wrap:anywhere;font-weight:600}.count-ok{color:var(--ok-text)}.count-bad{color:var(--bad-text);font-weight:600}.tree-counts{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:13px;display:inline-flex}.tree-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:0;min-width:34px;display:inline-flex}.tree-actions button:not(.more-button){padding:3px 12px;font-size:12.5px}.tree-empty{color:var(--muted);border-bottom:1px solid var(--border);padding-top:8px;padding-bottom:8px;font-size:13px}.tree-link{align-self:center;font-size:12.5px}.tree-leaves{border-bottom:1px solid var(--border);padding:8px 0 12px 96px}button.more-button{vertical-align:middle;width:28px;height:28px;margin-left:6px;padding:0;font-size:16px;line-height:1}.action-menu{z-index:20;background:var(--surface);border:1px solid var(--border);min-width:130px;box-shadow:var(--shadow-md);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:fixed}.action-menu button{text-align:left;background:0 0;border:0;border-radius:6px;min-height:32px;padding:7px 12px;font-size:13px}.action-menu button:hover,.action-menu button:focus-visible{background:var(--row-selected)}.action-menu button.danger:hover,.action-menu button.danger:focus-visible{background:var(--bad-bg)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#0f1b2d8c;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--surface);width:460px;max-width:100%;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:14px;padding:26px;display:flex}.dialog h2{font-size:18px}.dialog .alert{margin:0}label{flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.row{gap:12px;display:flex}.row label{width:120px}.row label.grow{flex:1;width:auto;min-width:0}.field-hint{color:var(--muted);font-size:12px;font-weight:400;line-height:1.5}.dialog-text{color:var(--text);line-height:1.6}button.primary.destructive{background:var(--bad-text);border-color:var(--bad-text);box-shadow:none}button.primary.destructive:hover:not(:disabled){background:#861c12;border-color:#861c12}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.login{grid-template-columns:1.2fr 1fr;min-height:100vh;display:grid}.login-hero{background:var(--hero);color:#fff;flex-direction:column;justify-content:center;gap:18px;padding:48px clamp(32px,6vw,88px);display:flex}.login-hero .brand{margin-bottom:18px;padding:0;font-size:22px}.login-hero h1{letter-spacing:-.03em;font-size:clamp(32px,4.2vw,52px);font-weight:800;line-height:1.1}.login-hero h1 span{color:var(--cyan-soft);display:block}.login-lead{color:#ffffffc7;max-width:460px;font-size:16px;line-height:1.7}.login-side{justify-content:center;align-items:center;padding:32px 16px;display:flex}.login-card{flex-direction:column;gap:16px;width:380px;max-width:100%;display:flex}.login-card h2{letter-spacing:-.02em;font-size:24px;font-weight:800}.login-card .muted{margin-top:-10px;font-size:14px}.login-card .alert{margin:0}.login-card button{margin-top:6px;padding:11px 20px}@media (width<=860px){.login{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.login-hero{gap:10px;padding:32px 24px}.login-hero .brand{margin-bottom:8px;padding:0}.login-lead{display:none}.shell{grid-template-columns:minmax(0,1fr)}.sidebar{flex-flow:wrap;justify-content:space-between;align-items:center;gap:10px;height:auto;padding:14px 16px;position:static}.brand{padding:0}.sidebar nav{flex-direction:row;flex:1 0 100%;order:3;gap:6px;overflow-x:auto}.sidebar nav a{padding:7px 12px;font-size:13px}.sidebar nav a.active{box-shadow:none}.sidebar-user{border:0;flex-direction:row;align-items:center;padding:0}.sidebar-name{display:none}.page{padding:20px 16px 32px}.tree-leaves{padding-left:0}}@media (width<=520px){.panel{padding:18px 16px}.stat{padding:14px 16px}.stat-value{font-size:24px}.toolbar input{width:100%}.selects{flex-wrap:nowrap;width:100%}.selects select{flex:1 1 0;min-width:0;max-width:none}.filters{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.filters button{white-space:nowrap;flex-shrink:0}.filter-divider{flex-shrink:0}.sticky-table{max-height:70vh}.sticky-table table{min-width:820px}.tree-row{padding-right:4px}}
