:root{--color-primary:#1d4ed8;--color-primary-pressed:#1e3a8a;--color-primary-tint:#eef3ff;--color-primary-tint-border:#d6e0ff;--color-on-primary:#fff;--color-ink:#0e1726;--color-muted:#4b5565;--color-border:#e2e6ec;--color-border-strong:#c9d1dc;--color-canvas:#f5f7fa;--color-surface:#fff;--color-success:#0f7a55;--color-success-tint:#e6f4ee;--color-success-text:#0b5e41;--color-warning:#a85a00;--color-warning-tint:#fdf1e3;--color-warning-text:#7a4100;--color-danger:#c2272d;--color-danger-tint:#fce9ea;--color-danger-text:#9b1c22;--color-ble:#6b3fd1;--color-ble-tint:#f1ecfc;--color-ble-text:#4f2aa6;--color-offline:#6b7280;--color-offline-tint:#eef0f3;--color-offline-text:#374151;--color-sidebar:#0e1726;--color-sidebar-text:#c7ceda;--color-sidebar-muted:#8a96a8;--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:14px;--font-size-body:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-title:28px;--font-size-display:40px;--font-size-hero:62px;--font-ui:"Inter", system-ui, sans-serif;--font-display:"Space Grotesk", "Inter", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#8aa8ff;--color-primary-pressed:#b3c6ff;--color-primary-tint:#1b2747;--color-primary-tint-border:#2a3a66;--color-on-primary:#0b1220;--color-ink:#e8ecf3;--color-muted:#9aa6b8;--color-border:#243049;--color-border-strong:#33405c;--color-canvas:#0b1220;--color-surface:#141c2e;--color-success:#4cc79a;--color-success-tint:#12322a;--color-success-text:#7ee0bb;--color-warning:#f0a44b;--color-warning-tint:#3a2a14;--color-warning-text:#f7c283;--color-danger:#ff7a7f;--color-danger-tint:#3d1a1d;--color-danger-text:#ffa9ac;--color-ble:#b39bff;--color-ble-tint:#261d45;--color-ble-text:#cbb9ff;--color-offline:#9aa3b2;--color-offline-tint:#1e2638;--color-offline-text:#c3cad6;--color-sidebar:#070c17;--color-sidebar-text:#c7ceda;--color-sidebar-muted:#8a96a8}}:root[data-theme=dark]{--color-primary:#8aa8ff;--color-primary-pressed:#b3c6ff;--color-primary-tint:#1b2747;--color-primary-tint-border:#2a3a66;--color-on-primary:#0b1220;--color-ink:#e8ecf3;--color-muted:#9aa6b8;--color-border:#243049;--color-border-strong:#33405c;--color-canvas:#0b1220;--color-surface:#141c2e;--color-success:#4cc79a;--color-success-tint:#12322a;--color-success-text:#7ee0bb;--color-warning:#f0a44b;--color-warning-tint:#3a2a14;--color-warning-text:#f7c283;--color-danger:#ff7a7f;--color-danger-tint:#3d1a1d;--color-danger-text:#ffa9ac;--color-ble:#b39bff;--color-ble-tint:#261d45;--color-ble-text:#cbb9ff;--color-offline:#9aa3b2;--color-offline-tint:#1e2638;--color-offline-text:#c3cad6;--color-sidebar:#070c17;--color-sidebar-text:#c7ceda;--color-sidebar-muted:#8a96a8}
*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-ui);font-size:var(--font-size-body);color:var(--color-ink);background:var(--color-canvas);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);margin:0;line-height:1.2}h1{font-size:var(--font-size-title)}h2{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-3)}.muted{color:var(--color-muted)}.small{font-size:var(--font-size-sm)}.mono{font-family:var(--font-mono);font-size:var(--font-size-sm)}.row{flex-wrap:wrap;align-items:center;display:flex}.gap{gap:var(--space-3)}.grow{flex:1}.stack{gap:var(--space-4);display:grid}.grid-2{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.grid-stats{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.btn{border-radius:var(--radius-md);height:40px;font:600 var(--font-size-md) var(--font-ui);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 16px;display:inline-flex;text-decoration:none!important}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{background:var(--color-primary-pressed)}.btn-secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{color:var(--color-primary);background:0 0}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn-lg{height:52px;font-size:var(--font-size-body);padding:0 24px}.badge{border-radius:var(--radius-pill);font-size:var(--font-size-xs);text-transform:capitalize;white-space:nowrap;align-items:center;gap:6px;padding:2px 10px;font-weight:600;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.badge-online{background:var(--color-success-tint);color:var(--color-success-text)}.badge-offline,.badge-neutral{background:var(--color-offline-tint);color:var(--color-offline-text)}.badge-warning{background:var(--color-warning-tint);color:var(--color-warning-text)}.badge-danger{background:var(--color-danger-tint);color:var(--color-danger-text)}.badge-info{background:var(--color-primary-tint);color:var(--color-primary)}.badge-ble{background:var(--color-ble-tint);color:var(--color-ble-text)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);min-width:0;display:grid}.card-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.stat-label{font-size:var(--font-size-sm);color:var(--color-muted)}.stat-value{font:700 28px/1.2 var(--font-display)}.stat-online .stat-value{color:var(--color-success)}.stat-danger .stat-value{color:var(--color-danger)}.stat-warning .stat-value{color:var(--color-warning)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-md)}.alert-danger{background:var(--color-danger-tint);color:var(--color-danger-text)}.alert-info{background:var(--color-primary-tint);color:var(--color-ink)}.empty{color:var(--color-muted);padding:var(--space-4) 0;margin:0}.kv{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin:0;display:grid}.kv dt{font-size:var(--font-size-sm);color:var(--color-muted)}.kv dd{overflow-wrap:anywhere;margin:0;font-weight:600}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--font-size-md)}th{text-align:left;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:8px 10px}td{border-bottom:1px solid var(--color-border);vertical-align:top;padding:10px}tr:last-child td{border-bottom:0}.pager{justify-content:flex-end;display:flex}@media (max-width:720px){table,thead,tbody,tr,td{display:block}thead{display:none}tr{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-2)}td{border:0;gap:8px;padding:4px 6px;display:flex}td:before{content:attr(data-label);min-width:110px;color:var(--color-muted);font-size:var(--font-size-xs);text-transform:uppercase}}.form{gap:var(--space-3);display:grid}.form-inline{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.field{font-size:var(--font-size-md);gap:4px;min-width:160px;display:grid}.field>span{font-weight:600;font-size:var(--font-size-sm)}input,select,textarea{font:inherit;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:100%;min-height:40px;padding:8px 10px}input[type=checkbox]{width:auto;min-height:0}.filters{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.filters input,.filters select{width:auto;min-width:150px}.field-errors{color:var(--color-danger-text);font-size:var(--font-size-sm);margin:0;padding-left:18px}.confirm{font-size:var(--font-size-sm);align-items:center;gap:8px;display:flex}.ok-text{color:var(--color-success-text);font-size:var(--font-size-sm)}.err-text{color:var(--color-danger-text);font-size:var(--font-size-sm)}details>summary{cursor:pointer;color:var(--color-primary);font-weight:600}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--color-sidebar);color:var(--color-sidebar-text);padding:var(--space-5) var(--space-3);gap:var(--space-4);flex-direction:column;display:flex}.sidebar .brand{font:700 20px var(--font-display);color:#fff;padding:0 var(--space-3);align-items:center;gap:10px;display:flex}.sidebar .context{padding:0 var(--space-3);font-size:var(--font-size-sm);color:var(--color-sidebar-muted)}.sidebar nav{gap:2px;display:grid}.sidebar nav a{color:var(--color-sidebar-text);border-radius:var(--radius-sm);font-size:var(--font-size-md);padding:8px 12px}.sidebar nav a:hover{background:#ffffff0f;text-decoration:none}.sidebar nav a[aria-current=page]{color:#fff;background:#ffffff1f;font-weight:600}.sidebar .foot{padding:0 var(--space-3);font-size:var(--font-size-sm);gap:8px;margin-top:auto;display:grid}.sidebar .foot button{color:var(--color-sidebar-text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.main{padding:var(--space-6) var(--space-8);gap:var(--space-5);align-content:start;min-width:0;display:grid}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-header p{margin:4px 0 0}.menu-toggle{display:none}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{padding:var(--space-3)}.sidebar nav{display:none}.menu-toggle{display:block}.menu-toggle[open]+nav,.sidebar details[open] nav{display:grid}.main{padding:var(--space-4)}}.bar{background:var(--color-primary);border-radius:5px;min-width:2px;height:10px}.bar-row{font-size:var(--font-size-sm);grid-template-columns:96px 1fr 48px;align-items:center;gap:8px;display:grid}.skip{background:var(--color-primary);color:#fff;z-index:10;padding:8px 12px;position:absolute;top:0;left:-9999px}.skip:focus{left:8px}.gap-sm{gap:6px}.stack-sm{gap:6px;display:grid}.stack-lg{gap:var(--space-8);display:grid}.between{justify-content:space-between}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.num{text-align:right;font-variant-numeric:tabular-nums}.pre{white-space:pre-wrap}.plain{margin:0;padding-left:18px}.payload{white-space:pre-wrap;overflow-wrap:anywhere;max-width:520px;color:var(--color-muted);display:block}.form-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.form-inline .field{min-width:120px}.form-inline input{width:auto}.meter{background:var(--color-offline-tint);border-radius:5px;min-width:100px;height:10px;overflow:hidden}.meter>div{background:var(--color-success);height:100%}.sidebar .ctx-name{color:#fff;font-weight:600}.sidebar .switch{gap:6px;padding:6px 0 0 10px;display:grid}.sidebar .switch a,.sidebar .foot summary{color:var(--color-sidebar-text)}.menu-toggle summary{color:#fff;border-radius:var(--radius-sm);border:1px solid #fff3;width:max-content;padding:6px 12px;list-style:none}.chart{border-bottom:1px solid var(--color-border);align-items:flex-end;gap:3px;height:160px;padding-top:8px;display:flex}.chart-col{flex-direction:column-reverse;flex:1;min-width:3px;height:100%;display:flex}.chart-ok{background:var(--color-success);border-radius:2px 2px 0 0}.chart-bad{background:var(--color-danger);opacity:.75}.key{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.key-ok{background:var(--color-success)}.key-bad{background:var(--color-danger);opacity:.75}.door-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.door>a,.door>div{border-radius:var(--radius-md);border:1px solid var(--color-border);color:var(--color-ink);gap:2px;padding:12px;text-decoration:none;display:grid}.door-on>a{background:var(--color-success-tint);border-color:var(--color-success)}.door-off>a{background:var(--color-danger-tint);border-color:var(--color-danger)}.door-none>div{background:var(--color-offline-tint)}.brand-preview{color:#fff;border-radius:var(--radius-lg);padding:var(--space-5);gap:6px;display:grid}.auth{min-height:100vh;padding:var(--space-4);place-items:center;display:grid}.auth-card{width:100%;max-width:420px}.brand-link{color:var(--color-ink);font-size:20px}.wrap{max-width:1120px;padding:0 var(--space-5);margin:0 auto}.narrow{max-width:760px}.section{padding-top:var(--space-8);padding-bottom:var(--space-8)}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:5;position:sticky;top:0}.site-header .wrap{justify-content:space-between;gap:var(--space-4);min-height:64px}.site-brand{font:700 20px var(--font-display);color:var(--color-ink);align-items:center;gap:10px;display:inline-flex}.site-nav{align-items:center;gap:var(--space-4);display:flex}.site-nav a:not(.btn){color:var(--color-ink);font-weight:500}.site-menu{display:none}.site-menu summary{cursor:pointer;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-ink);padding:8px 12px;list-style:none}@media (max-width:860px){.site-menu{display:block}.site-nav{width:100%;padding-bottom:var(--space-4);flex-direction:column;align-items:stretch;display:none}.site-menu[open]+.site-nav{display:flex}}.eyebrow{color:var(--color-primary);text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.lead{color:var(--color-muted);max-width:640px;font-size:19px}.hero{background:linear-gradient(180deg, var(--color-primary-tint), var(--color-canvas));padding:72px 0}.hero h1{margin-bottom:var(--space-4);font-size:clamp(34px,5vw,54px)}.hero-grid{gap:var(--space-8);grid-template-columns:1.3fr 1fr;align-items:center;display:grid}@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.phone{display:none}.hero{padding:40px 0}}.phone{background:var(--color-sidebar);border-radius:36px;justify-self:center;width:240px;height:440px;padding:14px;box-shadow:0 30px 60px #0e172640}.phone-screen{background:var(--color-surface);height:100%;color:var(--color-muted);border-radius:26px;align-content:center;place-items:center;gap:24px;display:grid}.unlock-btn{background:var(--color-primary);color:#fff;width:140px;height:140px;box-shadow:0 0 0 12px var(--color-primary-tint);border-radius:50%;place-items:center;font-weight:700;display:grid}.features{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.feature{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.feature h2,.feature h3{font-size:var(--font-size-lg);margin-bottom:var(--space-2)}.feature p{color:var(--color-muted);margin:0}.band{background:var(--color-sidebar);color:#fff;padding:48px 0}.band .muted{color:var(--color-sidebar-text)}.band-inline{background:var(--color-primary-tint);border-radius:var(--radius-lg);padding:var(--space-6)}.steps{counter-reset:s;gap:var(--space-5);margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:s;padding-left:56px;position:relative}.steps li:before{content:counter(s);background:var(--color-primary);color:#fff;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:700;display:grid;position:absolute;top:0;left:0}.steps h2{font-size:var(--font-size-lg);margin-bottom:4px}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-6) 0;gap:var(--space-4);display:grid}.footer-grid{gap:var(--space-5);grid-template-columns:1fr 2fr;display:grid}.footer-links{gap:var(--space-4);flex-wrap:wrap;justify-content:flex-end;display:flex}@media (max-width:720px){.footer-grid{grid-template-columns:1fr}.footer-links{justify-content:flex-start}}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}code{font-family:var(--font-mono)}td .btn-primary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border-strong);height:34px;font-size:var(--font-size-sm);padding:0 12px}td .btn-danger{height:34px;font-size:var(--font-size-sm);padding:0 12px}
