@font-face{font-family:Quicksand;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/quicksand-latin-600-normal-DTBPeRoM.woff2)format("woff2"),url(/assets/quicksand-latin-600-normal-CkxN0sDw.woff)format("woff")}@font-face{font-family:Quicksand;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/quicksand-latin-700-normal-Dpk7G9Y6.woff2)format("woff2"),url(/assets/quicksand-latin-700-normal-HjJN-aaT.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff")}@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")}@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")}:root{--orange-700:#c8650a;--orange-600:#f5820d;--orange-500:#f7983a;--orange-300:#fbc288;--orange-100:#fde8d2;--orange-50:#fef5ec;--slate-900:#1b2a31;--slate-700:#2a414b;--slate-600:#395762;--slate-400:#6e8893;--slate-300:#9cb0b9;--slate-200:#c7d4da;--indigo-900:#190f32;--indigo-800:#2c215d;--indigo-600:#4b3db8;--green-700:#087f5b;--green-600:#12a978;--green-500:#20c997;--green-200:#d9fbef;--green-50:#ecfdf7;--mauve-700:#32286f;--mauve-600:#5041c8;--mauve-500:#8070e6;--mauve-200:#e4dfff;--mauve-100:#f3f0ff;--magenta-700:#a70678;--magenta-600:#d60a9d;--magenta-500:#f21bb8;--magenta-200:#ffd1f1;--magenta-50:#fff0fa;--yellow-500:#ffc857;--yellow-200:#fff1bf;--red-600:#e5392f;--red-500:#ff4d4d;--red-200:#ffe8e8;--red-50:#ffe8e8;--white:#fff;--paper:#f7fafb;--bg-light:var(--paper);--mist:#ebeef5;--line-100:#e3e9ef;--line-200:#d2dbe2;--ink-muted:#5c6b73;--brand-primary:var(--orange-600);--brand-primary-hover:var(--orange-700);--brand-primary-soft:var(--orange-50);--brand-ink:var(--slate-600);--text-strong:var(--slate-900);--text-body:var(--slate-700);--text-muted:var(--ink-muted);--text-faint:var(--slate-400);--text-on-dark:var(--white);--text-on-brand:var(--white);--text-on-dark-muted:var(--mauve-200);--text-on-dark-faint:#e4dfff9e;--surface-page:var(--paper);--surface-card:var(--white);--surface-sunken:var(--mist);--surface-tint:var(--orange-50);--surface-dark:var(--indigo-900);--surface-dark-2:var(--indigo-800);--surface-violet:var(--mauve-700);--surface-soft:var(--mauve-100);--border-subtle:var(--line-100);--border-default:var(--line-200);--border-strong:var(--slate-300);--status-positive:var(--green-500);--status-positive-bg:var(--green-200);--status-warning:var(--yellow-500);--status-warning-bg:var(--yellow-200);--status-danger:var(--red-500);--status-danger-bg:var(--red-200);--status-info:var(--mauve-600);--data-1:var(--orange-600);--data-2:var(--green-500);--data-3:var(--indigo-600);--data-4:var(--mauve-500);--data-5:var(--magenta-600);--data-6:var(--yellow-500);--data-7:var(--slate-400);--orange-burnt:#e8690a;--gradient-cta-warm:linear-gradient(125deg, var(--orange-500) 0%, var(--orange-burnt) 100%);--shadow-cta:0 6px 18px #e8690a4d;--shadow-cta-hover:0 10px 26px #e8690a6b;--font-display:"Quicksand", "Trebuchet MS", sans-serif;--font-body:"DM Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-3xl:3rem;--text-4xl:4rem;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.04em;--tracking-caps:.08em;--display-font:var(--font-display);--display-weight:var(--fw-bold);--heading-font:var(--font-display);--heading-weight:var(--fw-semibold);--body-font:var(--font-body);--body-weight:var(--fw-regular);--metric-font:var(--font-mono);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--radius-full:50%;--border-width:1px;--border-width-thick:1.5px;--shadow-xs:0 1px 2px #1b2a310f;--shadow-sm:0 1px 3px #1b2a3114, 0 1px 2px #1b2a310a;--shadow-md:0 4px 14px #1b2a3114, 0 2px 4px #1b2a310a;--shadow-lg:0 12px 32px #1b2a311f, 0 4px 8px #1b2a310d;--shadow-focus:0 0 0 3px #f5820d47;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.12s;--dur-normal:.2s;--dur-slow:.32s;--container-max:1200px;--sidebar-w:248px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:var(--fw-semibold);color:var(--text-strong);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0}h1{font-size:var(--text-xl);font-weight:var(--fw-bold)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0}a{color:var(--mauve-600)}button,input,select{font:inherit;color:inherit}:focus-visible{box-shadow:var(--shadow-focus);outline:none}.metric{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.muted{color:var(--text-muted)}.small{font-size:var(--text-sm)}.eyebrow{font-weight:var(--fw-semibold);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--brand-primary)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-4);z-index:100;background:var(--white);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);position:absolute;top:-100px}.skip-link:focus{top:var(--space-2)}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--indigo-900);color:var(--white);gap:var(--space-5);padding:var(--space-5) var(--space-4);flex-direction:column;flex:none;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:0 6px;display:flex}.brand img:first-child{width:30px;height:30px}.brand img:last-child{width:auto;height:19px}.nav{flex-direction:column;gap:4px;display:flex}.nav a{border-radius:var(--radius-md);color:var(--mauve-200);font-weight:var(--fw-medium);font-size:var(--text-sm);transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex;position:relative}.nav a:hover{color:var(--white);background:#ffffff0f}.nav a.active{color:var(--white);font-weight:var(--fw-semibold);background:#ffffff1a}.nav a.active:before{content:"";background:var(--orange-500);border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.sidebar-section{gap:var(--space-2);flex-direction:column;display:flex}.sidebar-title{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-on-dark-faint);font-weight:var(--fw-semibold);padding:0 12px}.sidebar-note{font-size:var(--text-xs);color:var(--text-on-dark-faint);padding:0 12px}.sidebar-footer{padding-top:var(--space-4);gap:var(--space-2);border-top:1px solid #ffffff14;flex-direction:column;margin-top:auto;display:flex}.sidebar-user{font-size:var(--text-sm);color:var(--mauve-200);overflow-wrap:anywhere;padding:0 12px}.device-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.device-item label{border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);color:var(--white);align-items:center;gap:10px;padding:8px 12px;display:flex}.device-item label:hover{background:#ffffff0f}.device-item input{accent-color:var(--orange-600);flex:none;width:16px;height:16px;margin:0}.device-item input:disabled+.device-name{opacity:.5}.device-item label:has(input:disabled){cursor:not-allowed}.device-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.swatch{border-radius:50%;flex:none;width:10px;height:10px}.online-dot{background:var(--slate-400);border-radius:50%;flex:none;width:8px;height:8px}.online-dot.on{background:var(--green-500)}.main-col{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);z-index:10;background:#f7fafbe6;display:flex;position:sticky;top:0}.topbar .spacer{flex:1}.topbar .menu-button{display:none}main{padding:var(--space-6);gap:var(--space-5);flex-direction:column;width:100%;max-width:1280px;display:flex}.segmented{background:var(--surface-sunken);border-radius:var(--radius-pill);gap:2px;padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-pill);cursor:pointer;font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-muted);background:0 0;border:0;padding:4px 12px}.segmented button[aria-pressed=true]{background:var(--white);color:var(--text-strong);box-shadow:var(--shadow-xs)}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-header{gap:var(--space-1);flex-direction:column;display:flex}.btn{border-radius:var(--radius-pill);cursor:pointer;height:40px;font-weight:var(--fw-semibold);font-size:var(--text-sm);white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard), box-shadow var(--dur-normal) var(--ease-standard), transform var(--dur-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{background-image:var(--gradient-cta-warm);color:var(--white);box-shadow:var(--shadow-cta);background-size:160% 100%}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-cta-hover);background-position:100% 0}.btn-secondary{background:var(--white);border-color:var(--border-default);color:var(--text-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-sunken)}.btn-ghost{color:var(--text-body);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--orange-50)}.btn-danger{background:var(--red-500);color:var(--white)}.btn-danger:hover:not(:disabled){background:var(--red-600)}.btn-sm{height:32px;padding:0 12px}.btn-on-dark{color:var(--mauve-200);border-radius:var(--radius-md);justify-content:flex-start;padding:0 12px}.btn-on-dark:hover:not(:disabled){color:var(--white);background:#ffffff0f}.icon-btn{width:40px;padding:0}.field{font-size:var(--text-sm);flex-direction:column;gap:4px;display:flex}.field>span{font-weight:var(--fw-medium);color:var(--text-strong)}.input{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--white);min-width:0;height:40px;padding:0 12px}.input:focus-visible{border-color:var(--orange-600)}.error-text{color:var(--red-600);font-size:var(--text-sm)}.radio-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.radio-row label{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.radio-row input{accent-color:var(--orange-600)}.badge{border-radius:var(--radius-pill);height:22px;font-size:var(--text-xs);font-weight:var(--fw-semibold);white-space:nowrap;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.level-good{background:var(--status-positive-bg);color:var(--green-700)}.level-moderate{background:var(--status-warning-bg);color:#7a5c00}.level-high{background:var(--status-danger-bg);color:#b4231b}.tabs{border-bottom:1.5px solid var(--border-subtle);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.tab{color:var(--text-muted);font-weight:var(--fw-semibold);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2.5px solid #0000;align-items:center;gap:7px;margin-bottom:-1.5px;padding:10px 14px;display:inline-flex}.tab[aria-selected=true]{color:var(--text-strong);border-bottom-color:var(--orange-600)}.progress{background:var(--orange-100);border-radius:3px;height:3px;position:relative;overflow:hidden}.progress:after{content:"";background:var(--orange-600);width:40%;animation:progress 1.2s var(--ease-standard) infinite;position:absolute;inset:0}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}.empty{padding:var(--space-6);text-align:center;color:var(--text-muted);align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.latest-grid{gap:var(--space-4);flex-direction:column;display:flex}.latest-device{gap:var(--space-3);flex-direction:column;display:flex}.latest-device-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tiles{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(128px,1fr));display:grid}.tile{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--white);text-align:left;cursor:pointer;transition:box-shadow var(--dur-fast), border-color var(--dur-fast);flex-direction:column;gap:6px;display:flex}.tile:hover{box-shadow:var(--shadow-sm)}.tile[aria-current=true]{border-color:var(--orange-300);background:var(--orange-50)}.tile-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--fw-semibold)}.tile-value{font-size:var(--text-lg);color:var(--text-strong);font-weight:var(--fw-medium)}.tile-value small{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-body);margin-left:4px}.tile .badge{align-self:flex-start}.ranges{gap:var(--space-3);flex-direction:column;display:flex}.range-row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.range-row .field{flex:190px}.range-swatches{align-self:center;gap:4px;padding-top:18px;display:flex}.range-swatch{border-radius:2px;width:18px;height:4px}.range-swatch.dashed{background-image:linear-gradient(90deg,currentColor 60%,#0000 60%);background-size:6px 4px;background-color:#0000!important}.range-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.presets{gap:var(--space-2);flex-wrap:wrap;display:flex}.chart-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.chart-box{width:100%;min-height:360px;position:relative}.chart-box svg{max-width:100%;height:auto;display:block}.chart-tooltip{pointer-events:none;background:var(--white);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:var(--text-xs);z-index:2;min-width:160px;padding:8px 10px;position:absolute}.chart-tooltip ul{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.chart-tooltip li{align-items:center;gap:6px;display:flex}.legend{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:inline-flex}.legend-line{border-top:3px solid;width:22px;height:0}.legend-line.dashed{border-top-style:dashed}.summary{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.stat-list{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.stat{flex-direction:column;gap:2px;display:flex}.stat .metric{font-size:var(--text-md);color:var(--text-strong)}.pies{gap:var(--space-4);flex-wrap:wrap;justify-content:space-around;display:flex}.pie{font-size:var(--text-sm);flex-direction:column;align-items:center;gap:4px;display:flex}.pie-legend{gap:var(--space-4);font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;justify-content:center;display:flex}.pie-legend span{align-items:center;gap:6px;display:inline-flex}.table-wrap{position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}th{text-align:left;font-weight:var(--fw-semibold);color:var(--text-muted);font-size:var(--text-xs);border-bottom:1px solid var(--border-default);white-space:nowrap;padding:8px 10px}td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:10px}code,.code{font-family:var(--font-mono);background:var(--surface-sunken);border-radius:var(--radius-xs);padding:1px 6px;font-size:.9em}.form-row{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.form-row .field{flex:240px}.scrim{padding:var(--space-4);z-index:50;background:#190f3273;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5);gap:var(--space-4);flex-direction:column;width:min(520px,100%);display:flex}.modal-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.secret{gap:var(--space-2);align-items:stretch;display:flex}.secret code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;flex:1;padding:10px 12px}.notice{background:var(--status-warning-bg);color:#5e4700;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.full-page{min-height:100vh;padding:var(--space-5);justify-content:center;align-items:center;display:flex}@media (width<=960px){.sidebar{z-index:40;visibility:hidden;transition:transform var(--dur-normal) var(--ease-out), visibility 0s linear var(--dur-normal);box-shadow:var(--shadow-lg);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar[data-open=true]{visibility:visible;transition:transform var(--dur-normal) var(--ease-out);transform:none}.topbar .menu-button{display:inline-flex}.topbar{padding:var(--space-3) var(--space-4)}main{padding:var(--space-4)}.sidebar-backdrop{z-index:30;background:#190f3259;border:0;position:fixed;inset:0}}@media (width>=961px){.sidebar-backdrop{display:none}}@media (width<=560px){.stat-list{grid-template-columns:repeat(2,1fr)}.chart-box{min-height:280px}.topbar .lang-switch{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
