:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f2f1ed;--surface-hover:#efeeea;--ink:#0b0b0b;--ink-2:#52514e;--ink-3:#6b6a65;--border:#e1e0d9;--border-strong:#c3c2b7;--accent:#c93d4b;--accent-hover:#b23441;--accent-ink:#fff;--accent-soft:#fbe9eb;--accent-text:#ad2f3c;--series-1:#2a78d6;--series-1-wash:#2a78d61a;--grid:#e1e0d9;--axis:#c3c2b7;--good:#0ca30c;--good-text:#006300;--good-soft:#e6f5e6;--warning:#fab219;--warning-text:#7a5300;--warning-soft:#fff3d2;--critical:#d03b3b;--critical-text:#ad2828;--critical-soft:#fde9e9;--info-text:#1c5cab;--info-soft:#e6f0fc;--neutral-soft:#eeede8;--radius-s:8px;--radius-m:12px;--radius-l:16px;--shadow-1:0 1px 2px #0b0b0b0d, 0 1px 1px #0b0b0b08;--shadow-2:0 12px 32px #0b0b0b24, 0 2px 6px #0b0b0b0f;--focus:0 0 0 3px #2a78d659;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sidebar-width:248px;--tabbar-height:60px}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232321;--surface-hover:#2a2a28;--ink:#f0efec;--ink-2:#c3c2b7;--ink-3:#a3a29a;--border:#2c2c2a;--border-strong:#3d3d3a;--accent-soft:#3a1b20;--accent-text:#f58a94;--series-1:#3987e5;--series-1-wash:#3987e524;--grid:#2c2c2a;--axis:#383835;--good-text:#4fc24f;--good-soft:#12301a;--warning-text:#fab219;--warning-soft:#3a2c08;--critical-text:#f08080;--critical-soft:#3b1717;--info-text:#86b6ef;--info-soft:#14263d;--neutral-soft:#262624;--shadow-1:0 1px 2px #0006;--shadow-2:0 12px 32px #0009}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232321;--surface-hover:#2a2a28;--ink:#f0efec;--ink-2:#c3c2b7;--ink-3:#a3a29a;--border:#2c2c2a;--border-strong:#3d3d3a;--accent-soft:#3a1b20;--accent-text:#f58a94;--series-1:#3987e5;--series-1-wash:#3987e524;--grid:#2c2c2a;--axis:#383835;--good-text:#4fc24f;--good-soft:#12301a;--warning-text:#fab219;--warning-soft:#3a2c08;--critical-text:#f08080;--critical-soft:#3b1717;--info-text:#86b6ef;--info-soft:#14263d;--neutral-soft:#262624;--shadow-1:0 1px 2px #0006;--shadow-2:0 12px 32px #0009}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--page);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus);border-radius:6px;outline:none}code,.mono{font-family:var(--mono);font-size:.9em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-3)}.small{font-size:13px}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums}.app{min-height:100dvh}.sidebar{display:none}.topbar{z-index:20;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--page);border-bottom:1px solid var(--border);align-items:center;gap:10px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;font-weight:650;display:flex}.brand:hover{text-decoration:none}.brand img{border-radius:8px;width:30px;height:30px}.brand small{color:var(--ink-3);letter-spacing:0;font-size:11.5px;font-weight:450;display:block}.topbar .spacer{flex:1}.main{padding:18px 16px calc(var(--tabbar-height) + 28px + env(safe-area-inset-bottom));max-width:1240px;margin:0 auto}.tabbar{z-index:30;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--ink-3);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:10.5px;font-weight:550;display:flex}.tabbar a:hover{text-decoration:none}.tabbar a.active{color:var(--accent-text)}.tabbar svg{width:22px;height:22px}@media (width>=900px){.app{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);display:grid}.topbar,.tabbar{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100dvh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar .brand{padding:4px 8px 18px}.sidebar .brand img{width:36px;height:36px}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar nav a{border-radius:var(--radius-s);color:var(--ink-2);align-items:center;gap:11px;padding:9px 10px;font-weight:520;display:flex}.sidebar nav a:hover{background:var(--surface-hover);text-decoration:none}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent-text)}.sidebar nav svg{flex:none;width:19px;height:19px}.sidebar .nav-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:14px 10px 4px;font-size:11px;font-weight:650}.sidebar .sidebar-foot{border-top:1px solid var(--border);color:var(--ink-3);margin-top:auto;padding:12px 10px 0;font-size:13px}.main{width:100%;max-width:1280px;margin:0;padding:28px 32px 48px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;margin-bottom:18px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:24px;font-weight:680;line-height:1.2}.page-head p{color:var(--ink-3);margin-top:4px}.page-head .actions{flex-wrap:wrap;gap:8px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.grid{gap:14px;display:grid}.grid.cols-3{grid-template-columns:1fr}.grid.cols-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-2{grid-template-columns:1fr}@media (width>=720px){.grid.cols-3,.grid.cols-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1100px){.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-stats{grid-template-columns:repeat(6,minmax(0,1fr))}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow-1);min-width:0;padding:16px}.card.flush{padding:0;overflow:hidden}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.card-head>div:first-child{flex:220px;min-width:0}.card-head h2,.card h2{letter-spacing:-.01em;font-size:15.5px;font-weight:650}.card-head p,.card .card-sub{color:var(--ink-3);margin-top:2px;font-size:13px}.card.flush .card-head{padding:16px 16px 0}.stat{flex-direction:column;gap:4px;display:flex}.stat .label{color:var(--ink-3);font-size:12.5px;font-weight:520}.stat .value{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:26px;font-weight:680;line-height:1.15}.stat .value.medium{font-size:20px}.stat .hint{color:var(--ink-3);font-size:12.5px}.status-card{align-items:flex-start;gap:12px;display:flex}.status-card .icon-wrap{background:var(--neutral-soft);width:38px;height:38px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;display:grid}.status-card .icon-wrap svg{width:20px;height:20px}.status-card .title{color:var(--ink-3);font-size:12.5px;font-weight:520}.status-card .state{margin:3px 0 2px}.status-card .detail{color:var(--ink-2);font-size:13px}.badge{background:var(--neutral-soft);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px 3px 7px;font-size:12.5px;font-weight:600;line-height:1.35;display:inline-flex}.badge svg{flex:none;width:13px;height:13px}.badge.good{background:var(--good-soft);color:var(--good-text)}.badge.warning{background:var(--warning-soft);color:var(--warning-text)}.badge.critical{background:var(--critical-soft);color:var(--critical-text)}.badge.info{background:var(--info-soft);color:var(--info-text)}.badge.plain{padding-left:9px}.alert{border-radius:var(--radius-s);background:var(--info-soft);color:var(--info-text);align-items:flex-start;gap:10px;padding:11px 14px;font-size:14px;display:flex}.alert svg{flex:none;width:18px;height:18px;margin-top:1.5px}.alert.warning{background:var(--warning-soft);color:var(--warning-text)}.alert.danger{background:var(--critical-soft);color:var(--critical-text)}.alert.success{background:var(--good-soft);color:var(--good-text)}.alert .alert-body{min-width:0;color:var(--ink);flex:1}.alert .alert-body a{white-space:nowrap;font-weight:600}.btn{border-radius:var(--radius-s);border:1px solid var(--border-strong);background:var(--surface);min-height:38px;color:var(--ink);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:7px;padding:7px 14px;font-size:14px;font-weight:580;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-hover);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{flex:none;width:16px;height:16px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{color:var(--critical-text);border-color:color-mix(in srgb, var(--critical) 45%, var(--border))}.btn.danger:hover:not(:disabled){background:var(--critical-soft)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{min-height:32px;padding:4px 10px;font-size:13px}.btn.block{width:100%}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>span,.field>label{color:var(--ink-2);font-size:13px;font-weight:580}.field .help{color:var(--ink-3);font-size:12.5px;font-weight:400}.input,.select{border-radius:var(--radius-s);border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:38px;color:var(--ink);padding:7px 11px;font-size:16px}@media (width>=900px){.input,.select{font-size:14px}}.input:focus-visible,.select:focus-visible{border-color:var(--series-1);border-radius:var(--radius-s)}.input::placeholder{color:var(--ink-3)}.input.mono{font-family:var(--mono);font-size:13px}.check{cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:2px}.switch{cursor:pointer;align-items:center;gap:10px;font-size:14px;font-weight:550;display:inline-flex;position:relative}.switch input{opacity:0;cursor:pointer;width:44px;height:26px;margin:0;position:absolute}.switch .track{background:var(--border-strong);border-radius:999px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.switch .track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.switch input:checked+.track{background:var(--good)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{box-shadow:var(--focus)}.switch input:disabled+.track{opacity:.5}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.segmented button{color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:6px 12px;font-size:13.5px;font-weight:560}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.filters{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}@media (width>=900px){.filters{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.filters .full{grid-column:1/-1}@media (width>=900px){.filters .full{grid-column:auto}}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:10px 14px;font-size:12px;font-weight:620}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.table th{padding-left:12px;padding-right:12px}.table th:first-child,.table td:first-child{padding-left:16px}.table th:last-child,.table td:last-child{padding-right:16px}@media (width>=900px) and (width<=1199px){:root{--sidebar-width:212px}.main{padding:24px 22px 40px}table.table{font-size:13.5px}.table th,.table td{padding-left:9px;padding-right:9px}}.table tr:last-child td{border-bottom:0}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover td{background:var(--surface-hover)}.table .right{text-align:right}.table td.wrap{white-space:normal;min-width:260px}.cards-list{flex-direction:column;display:flex}.cards-list .item{border-bottom:1px solid var(--border);color:inherit;padding:13px 16px;display:block}.cards-list .item:last-child{border-bottom:0}.cards-list a.item:hover{background:var(--surface-hover);text-decoration:none}.cards-list .item .line{justify-content:space-between;align-items:center;gap:10px;display:flex}.cards-list .item .line+.line{margin-top:5px}.cards-list .item .title{font-weight:640}.only-desktop{display:none}@media (width>=900px){.only-desktop{display:block}.only-mobile{display:none}}.pagination{border-top:1px solid var(--border);color:var(--ink-3);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex}.empty{text-align:center;color:var(--ink-3);padding:36px 20px}.empty svg{width:30px;height:30px;color:var(--border-strong);margin-bottom:8px}.empty strong{color:var(--ink);margin-bottom:2px;display:block}.chart{width:100%;position:relative}.chart svg{width:100%;display:block;overflow:visible}.chart .grid-line{stroke:var(--grid);stroke-width:1px}.chart .axis-line{stroke:var(--axis);stroke-width:1px}.chart .tick{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.chart .bar{fill:var(--series-1)}.chart .bar.dim{opacity:.45}.chart .value-label{fill:var(--ink);font-size:11.5px;font-weight:620}.chart .line{fill:none;stroke:var(--series-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--series-1-wash)}.chart .dot{fill:var(--series-1);stroke:var(--surface);stroke-width:2px}.chart .fail-mark{stroke:var(--critical);stroke-width:2px;stroke-linecap:round}.chart .crosshair{stroke:var(--axis);stroke-width:1px}.chart .hit{fill:#0000;cursor:default}.chart .hit:focus-visible{fill:var(--series-1-wash);outline:none}.chart-tooltip{z-index:5;pointer-events:none;background:var(--ink);color:var(--page);white-space:nowrap;box-shadow:var(--shadow-2);border-radius:8px;padding:6px 9px;font-size:12.5px;line-height:1.35;position:absolute;transform:translate(-50%,-100%)}.chart-tooltip strong{font-size:13.5px;display:block}.chart-legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12.5px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend svg{width:14px;height:14px}details.data-table{margin-top:10px;font-size:13px}details.data-table summary{cursor:pointer;color:var(--ink-3);width:fit-content}details.data-table table{border-collapse:collapse;width:100%;max-width:360px;margin-top:8px}details.data-table th,details.data-table td{text-align:left;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:3px 12px 3px 0}.dialog-backdrop{z-index:60;background:#0b0b0b73;place-items:end center;padding:0;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius-l) var(--radius-l) 0 0;width:100%;max-width:480px;max-height:92dvh;padding:20px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-2);overflow-y:auto}@media (width>=640px){.dialog-backdrop{place-items:center;padding:20px}.dialog{border-radius:var(--radius-l);padding:22px}}.dialog h2{margin-bottom:6px;font-size:18px;font-weight:660}.dialog .dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.toasts{z-index:80;left:50%;bottom:calc(var(--tabbar-height) + 18px + env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;gap:8px;width:min(92vw,420px);display:flex;position:fixed;transform:translate(-50%)}@media (width>=900px){.toasts{bottom:24px;left:auto;right:24px;transform:none}}.toast{pointer-events:auto;border-radius:var(--radius-s);background:var(--ink);color:var(--page);box-shadow:var(--shadow-2);align-items:flex-start;gap:10px;padding:11px 14px;font-size:14px;display:flex}.toast svg{flex:none;width:18px;height:18px;margin-top:1px}.toast.error svg{color:#ff9c9c}.toast.success svg{color:#7ddc7d}.login{min-height:100dvh;padding:24px 18px calc(24px + env(safe-area-inset-bottom));place-items:center;display:grid}.login .card{width:100%;max-width:400px;padding:26px 22px}.login .brand{margin-bottom:20px}.login .brand img{border-radius:11px;width:44px;height:44px}.login h1{letter-spacing:-.02em;font-size:21px}.steps{counter-reset:step;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.steps li{counter-increment:step;grid-template-columns:30px 1fr;align-items:start;gap:12px;display:grid}.steps li:before{content:counter(step);background:var(--accent-soft);width:30px;height:30px;color:var(--accent-text);border-radius:50%;place-items:center;font-size:14px;font-weight:680;display:grid}.steps li.done:before{content:"✓";background:var(--good-soft);color:var(--good-text)}.steps li strong{display:block}.steps li p{color:var(--ink-2);font-size:14px}.steps li .badge{white-space:normal;margin-top:6px}.kv{grid-template-columns:1fr;gap:2px 16px;font-size:14px;display:grid}.kv dt{color:var(--ink-3);margin-top:8px;font-size:12.5px;font-weight:540}.kv dd{overflow-wrap:anywhere;margin:0}@media (width>=640px){.kv{grid-template-columns:200px 1fr;gap:8px 16px}.kv dt{margin-top:0;font-size:13.5px}}.divider{background:var(--border);border:0;height:1px;margin:16px 0}.device{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:13px 0;display:flex}.device:last-child{border-bottom:0;padding-bottom:0}.device:first-child{padding-top:0}.device .device-icon{background:var(--neutral-soft);width:36px;height:36px;color:var(--ink-2);border-radius:9px;flex:none;place-items:center;display:grid}.device .device-icon svg{width:19px;height:19px}.device .device-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.notif-body{white-space:pre-line;color:var(--ink-2);font-size:13.5px}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{min-height:40dvh;color:var(--ink-3);place-items:center;display:grid}.pulse-dot{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 #0ca30c80}@keyframes pulse{70%{box-shadow:0 0 0 7px #0ca30c00}to{box-shadow:0 0 #0ca30c00}}@media (prefers-reduced-motion:reduce){.pulse-dot,.spinner{animation:none}}.sim-banner{border:1px dashed var(--border-strong);background:var(--surface-2)}
