@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");:root{color-scheme:light;--brand:#00aeef;--brand-ink:#0d1b2e;--bg:#f3f5f9;--surface:#ffffff;--surface-2:#f7f9fc;--surface-3:#eef2f7;--border:#e1e7ef;--border-strong:#c9d3e0;--track:#e4e9f0;--overlay:rgba(9,17,31,0.5);--text:#0f1b2d;--text-2:#3d4b5f;--muted:#5b6878;--accent:#0077a8;--accent-hover:#00618a;--accent-soft:#e3f4fb;--accent-text:#00628b;--on-accent:#ffffff;--focus:#0077a8;--good:#13804b;--good-bg:#e6f5ed;--good-fill:#1f9d5c;--warn:#8a5300;--warn-bg:#fff4dc;--warn-fill:#e09a14;--danger:#c0262d;--danger-bg:#fdecec;--danger-fill:#d93b3b;--info:#0b62a4;--info-bg:#e6f0fb;--neutral:#4d5b6d;--neutral-bg:#eef1f5;--neutral-fill:#9aa6b5;--cold:#2c5fbf;--cold-bg:#e8efff;--virtual:#6a3fb5;--virtual-bg:#f1ebfb;--series-humidity:#2a78d6;--series-temperature:#eb6834;--series-window:#1baf7a;--series-battery:#4a3aa7;--slot-1:#2a78d6;--slot-2:#eb6834;--comfort-band:rgba(31,157,92,0.1);--comfort-band-line:rgba(31,157,92,0.55);--chart-grid:#e8ecf2;--chart-axis:#c9d3e0;--sidebar-bg:#0d1b2e;--sidebar-border:rgba(255,255,255,0.06);--sidebar-text:#c3cfdf;--sidebar-muted:#8494ab;--sidebar-hover:rgba(255,255,255,0.06);--sidebar-active:rgba(0,174,239,0.16);--font:"Poppins","Segoe UI",system-ui,-apple-system,sans-serif;--mono:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;--fs-xs:0.75rem;--fs-sm:0.8125rem;--fs-md:0.875rem;--fs-lg:1rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:1.875rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:48px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-1:0 1px 2px rgba(15,27,45,0.06),0 1px 3px rgba(15,27,45,0.04);--shadow-2:0 4px 14px rgba(15,27,45,0.08);--shadow-3:0 18px 48px rgba(15,27,45,0.2);--ring:0 0 0 2px var(--surface),0 0 0 4px var(--focus);--sidebar-w:248px;--sidebar-w-collapsed:72px;--topbar-h:60px;--ease:cubic-bezier(0.2,0,0,1)}:root[data-theme=dark]{color-scheme:dark;--brand-ink:#e8eef7;--bg:#0b1220;--surface:#121b2c;--surface-2:#172236;--surface-3:#1d2a40;--border:#26344c;--border-strong:#3a4a66;--track:#26344c;--overlay:rgba(2,6,14,0.66);--text:#e8eef7;--text-2:#b8c4d6;--muted:#8e9cb3;--accent:#2bb8f0;--accent-hover:#5ccaf5;--accent-soft:rgba(0,174,239,0.14);--accent-text:#5ccaf5;--on-accent:#04121f;--focus:#5ccaf5;--good:#4ade80;--good-bg:rgba(74,222,128,0.12);--good-fill:#2fbf71;--warn:#fbbf24;--warn-bg:rgba(251,191,36,0.12);--warn-fill:#e5a823;--danger:#f87171;--danger-bg:rgba(248,113,113,0.13);--danger-fill:#ef5d5d;--info:#60a5fa;--info-bg:rgba(96,165,250,0.13);--neutral:#aab6c8;--neutral-bg:rgba(170,182,200,0.12);--neutral-fill:#6b7a92;--cold:#8ab4ff;--cold-bg:rgba(138,180,255,0.13);--virtual:#c4a5ff;--virtual-bg:rgba(196,165,255,0.13);--series-humidity:#3987e5;--series-temperature:#d95926;--series-window:#199e70;--series-battery:#9085e9;--slot-1:#3987e5;--slot-2:#d95926;--comfort-band:rgba(47,191,113,0.11);--comfort-band-line:rgba(47,191,113,0.5);--chart-grid:#222f45;--chart-axis:#3a4a66;--sidebar-bg:#0a1322;--sidebar-border:#1b273b;--shadow-1:0 1px 2px rgba(0,0,0,0.3);--shadow-2:0 6px 18px rgba(0,0,0,0.35);--shadow-3:0 18px 48px rgba(0,0,0,0.55)}*,:after,:before{box-sizing:border-box}html{text-size-adjust:100%}body,html{min-height:100%;margin:0}body{background:var(--bg);font-family:var(--font);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased}body,h1,h2,h3,h4{color:var(--text)}h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:600}p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--s-3);top:-60px;z-index:100;padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-weight:600}.skip-link:focus{top:var(--s-3)}.muted{color:var(--muted)}.small-text{font-size:var(--fs-sm)}.mono{font-family:var(--mono);font-size:.92em}.nowrap{white-space:nowrap}.spaced{margin-top:var(--s-5)}.kicker{margin:0;color:var(--accent-text);font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);transition:grid-template-columns .2s var(--ease)}.shell.collapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;flex-direction:column;padding:var(--s-4) var(--s-3);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);color:var(--sidebar-text);overflow-y:auto;overflow-x:hidden;z-index:30;scrollbar-width:thin}.brand,.sidebar{display:flex;gap:var(--s-2)}.brand{align-items:center;min-height:44px;padding:0 var(--s-2)}.brand-link{display:block;width:132px;border-radius:var(--r-sm)}.brand-logo{width:100%}.brand-owner-logo{max-width:64px;max-height:34px;object-fit:contain;padding:3px 5px;border-radius:var(--r-sm);background:#ffffff}.brand-title{padding:0 var(--s-2) var(--s-3);border-bottom:1px solid var(--sidebar-border);color:var(--sidebar-muted);font-size:var(--fs-xs);font-weight:500;letter-spacing:.04em;white-space:nowrap}.solis-logo{display:grid;align-items:center}.solis-logo-image{grid-area:1/1;width:100%;height:auto;display:block}.solis-logo-dark,:root[data-theme=dark] .solis-logo-light{display:none}:root[data-theme=dark] .solis-logo-dark{display:block}.sidebar .solis-logo-light{display:none}.sidebar .solis-logo-dark{display:block}.nav{display:grid;grid-gap:var(--s-3);gap:var(--s-3);flex:1 1;align-content:start;margin-top:var(--s-2)}.nav ul{display:grid;grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none}.nav-group-label{padding:var(--s-1) var(--s-3);color:var(--sidebar-muted);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.nav a{position:relative;display:flex;align-items:center;gap:var(--s-3);min-height:40px;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);color:var(--sidebar-text);font-size:var(--fs-md);font-weight:500;white-space:nowrap;transition:background-color .15s,color .15s}.nav a:hover{background:var(--sidebar-hover);color:#ffffff}.nav a.active{background:var(--sidebar-active);color:#ffffff}.nav a.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.brand-link:focus-visible,.collapse-toggle:focus-visible,.nav a:focus-visible{outline-color:var(--brand)}.nav-icon{display:inline-flex;flex:none}.collapse-toggle{display:flex;align-items:center;gap:var(--s-3);min-height:40px;padding:var(--s-2) var(--s-3);border:0;border-top:1px solid var(--sidebar-border);border-radius:0;background:transparent;color:var(--sidebar-muted);cursor:pointer;white-space:nowrap}.collapse-toggle:hover{color:#ffffff}.drawer-backdrop,.drawer-close,.shell.collapsed .brand-owner-logo,.shell.collapsed .brand-title,.shell.collapsed .nav-group-label,.shell.collapsed .nav-label{display:none}.shell.collapsed .brand-link{width:40px;overflow:hidden}.shell.collapsed .brand-link .solis-logo{width:132px}.shell.collapsed .collapse-toggle,.shell.collapsed .nav a{justify-content:center;padding-inline:0}.shell.collapsed .nav-group{border-top:1px solid var(--sidebar-border);padding-top:var(--s-2)}.main-column{min-width:0;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--s-3);height:var(--topbar-h);padding:0 var(--s-6);background:color-mix(in srgb,var(--surface) 88%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}.sidebar .drawer-close,.topbar .mobile-nav-toggle,.topbar .topbar-logo{display:none}.topbar-status{flex:1 1;min-width:0}.live-indicator{display:inline-flex;align-items:center;gap:var(--s-2);padding:3px 10px;border-radius:var(--r-pill);background:var(--good-bg);color:var(--good);font-size:var(--fs-xs);font-weight:600}.live-indicator.historical{background:var(--warn-bg);color:var(--warn)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--good-fill);box-shadow:0 0 0 0 var(--good-fill);animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--good-fill) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.topbar-actions{display:flex;align-items:center;gap:var(--s-2)}.user-menu{position:relative}.user-menu-button{display:flex;align-items:center;gap:var(--s-2);min-height:40px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:var(--r-pill);background:transparent;cursor:pointer;text-align:left}.user-menu-button:hover{background:var(--surface-3)}.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand-ink);color:var(--surface);font-size:var(--fs-xs);font-weight:600}:root[data-theme=dark] .avatar{background:var(--accent);color:var(--on-accent)}.user-menu-text{display:grid;line-height:1.2}.user-menu-text strong{max-width:180px;overflow:hidden;font-size:var(--fs-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.user-menu-text small{color:var(--muted);font-size:var(--fs-xs)}.user-menu-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:40;display:grid;min-width:240px;padding:var(--s-2);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-3)}.user-menu-head{display:grid;padding:var(--s-2) var(--s-3) var(--s-3);margin-bottom:var(--s-1);border-bottom:1px solid var(--border)}.user-menu-head small{color:var(--muted);overflow-wrap:anywhere}.user-menu-panel a,.user-menu-panel button{display:flex;align-items:center;gap:var(--s-2);min-height:38px;padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--text);cursor:pointer;text-align:left}.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--surface-3)}.main{flex:1 1;width:100%;max-width:1600px;margin:0 auto;padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-5)}.main:focus{outline:none}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-4)}.page-head-text{display:grid;grid-gap:var(--s-1);gap:var(--s-1);min-width:0}.page-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}.page-head h1{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere}.page-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.page-head .subtitle{max-width:72ch;color:var(--muted)}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.page-owner-logo{max-height:44px;max-width:160px;object-fit:contain;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-md);background:#ffffff}.updated-at{color:var(--muted);font-size:var(--fs-sm)}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:var(--s-1);margin:0;padding:0;list-style:none;font-size:var(--fs-sm)}.breadcrumbs li{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--muted)}.breadcrumbs li+li:before{content:"/";color:var(--border-strong)}.breadcrumbs a{color:var(--accent-text);font-weight:500}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs [aria-current=page]{max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{min-width:0;padding:var(--s-5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.panel.panel-flush{padding:0;overflow:hidden}.panel>*+*{margin-top:var(--s-4)}.panel-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.panel-head h2{font-size:var(--fs-lg);font-weight:600}.panel-subtitle{margin-top:2px;color:var(--muted);font-size:var(--fs-sm)}.panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.is-refreshing,.panel.is-refreshing{transition:opacity .2s}.chart-card.is-loading .ts-chart,.table-wrap.is-refreshing{opacity:.55}.grid{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.button,.danger-button,.ghost-button,.icon-text-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:38px;padding:0 var(--s-4);border:1px solid transparent;border-radius:var(--r-md);font-size:var(--fs-md);font-weight:500;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.button{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-1)}.button:hover:not(:disabled){background:var(--accent-hover)}.ghost-button,.icon-text-button{border-color:var(--border-strong);background:var(--surface);color:var(--text)}.ghost-button:hover:not(:disabled),.icon-text-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.danger-button{border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:var(--surface);color:var(--danger)}.danger-button:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.danger-button.solid{border-color:var(--danger-fill);background:var(--danger-fill);color:#ffffff}:root[data-theme=dark] .danger-button.solid{background:#c53030;border-color:#c53030}.danger-button.solid:hover:not(:disabled){background:var(--danger);color:#ffffff}.button.compact,.danger-button.compact,.ghost-button.compact{min-height:32px;padding:0 var(--s-3);font-size:var(--fs-sm)}.button.block{width:100%;min-height:44px}.ghost-button.icon-only{width:36px;min-height:36px;padding:0}.button[aria-disabled=true],button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--text-2);cursor:pointer}.icon-button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-button.small{width:32px;height:32px}.link-button{padding:var(--s-1) 0;border:0;background:none;color:var(--accent-text);font-weight:500;cursor:pointer}.link-button:hover{text-decoration:underline}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.table-actions{flex-wrap:nowrap;justify-content:flex-end}.form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s-2);padding-top:var(--s-2)}.form{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.field{display:grid;grid-gap:6px;gap:6px;min-width:0}.field-label,.field>span:first-child,.range-fieldset legend{color:var(--text-2);font-size:var(--fs-sm);font-weight:500}.field.inline{display:flex;align-items:center;gap:var(--s-2)}.searchable-select-button,.textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;min-height:38px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:var(--fs-md);transition:border-color .15s,box-shadow .15s}input[type=file]{padding:var(--s-2);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-2)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}.searchable-select-button:hover:not(:disabled),input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--muted)}.searchable-select-button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 28%,transparent)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-3);color:var(--muted);cursor:not-allowed}.textarea,textarea{min-height:96px;resize:vertical}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--accent)}.check-row{display:flex;align-items:center;gap:var(--s-2);min-height:32px;color:var(--text);font-size:var(--fs-md);overflow-wrap:anywhere}.field-error{color:var(--danger);font-size:var(--fs-sm);font-weight:500}.toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;grid-gap:var(--s-3);gap:var(--s-3)}.toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--s-2)}.gateway-filter-bar{grid-template-columns:minmax(220px,1.4fr) repeat(auto-fit,minmax(170px,1fr))}.input-with-icon{position:relative;display:block}.input-with-icon svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.input-with-icon input{padding-left:36px!important}.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}.sticky-filters{padding:var(--s-3) 0}.range-caption{color:var(--muted);font-size:var(--fs-sm)}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-3)}.segmented button{min-height:32px;padding:0 var(--s-3);border:0;border-radius:7px;background:transparent;color:var(--text-2);font-size:var(--fs-sm);font-weight:500;cursor:pointer;white-space:nowrap}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}:root[data-theme=dark] .segmented button.active{background:var(--border-strong)}.segmented.small button{min-height:28px;padding:0 10px}.range-picker{gap:var(--s-3)}.range-custom,.range-picker{display:flex;flex-wrap:wrap;align-items:center}.range-custom{gap:var(--s-2) var(--s-3)}.range-custom input{width:auto}.password-input{position:relative;display:block}.password-input input{padding-right:44px!important}.password-toggle{position:absolute;right:4px;top:50%;display:grid;place-items:center;width:34px;height:34px;transform:translateY(-50%);border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer}.password-toggle:hover{color:var(--text)}.date-time-picker-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-gap:var(--s-2);gap:var(--s-2)}.date-time-input{position:relative}.date-time-input input{padding-right:36px!important}.date-time-input input::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0}.date-time-open-button{position:absolute;right:4px;top:50%;display:grid;place-items:center;width:30px;height:30px;transform:translateY(-50%);border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer}.date-time-open-button svg{width:16px;height:16px}.searchable-select{position:relative}.searchable-select-button{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);text-align:left;cursor:pointer}.searchable-select-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select-button .placeholder{color:var(--muted)}.searchable-select-button svg{flex:none;color:var(--muted)}.searchable-select-button:disabled{background:var(--surface-3);color:var(--muted);cursor:not-allowed}.searchable-select-required{position:absolute;inset:auto 0 0;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none}.searchable-select-menu{z-index:200;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-3)}.searchable-select-menu:focus{outline:none}.searchable-select-menu>input{margin:var(--s-2);width:calc(100% - 16px)!important}.searchable-select-options{overflow-y:auto;padding:var(--s-1)}.searchable-option{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-height:34px;padding:6px 10px;border-radius:var(--r-sm);color:var(--text);cursor:pointer}.searchable-option.active{background:var(--surface-3)}.searchable-option.selected{color:var(--accent-text);font-weight:600}.searchable-select-empty{padding:var(--s-2) var(--s-3);color:var(--muted);font-size:var(--fs-sm)}.app-access-grid,.permission-grid{display:flex;flex-wrap:wrap;gap:var(--s-2)}.app-access-grid .check-row,.permission-grid .check-row{min-height:36px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm)}.range-fieldset{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md)}.range-fieldset.two{grid-template-columns:repeat(2,minmax(0,1fr))}.range-fieldset legend{padding:0 var(--s-1)}.range-input{display:grid;grid-gap:4px;gap:4px;min-width:0}.range-input span{color:var(--muted);font-size:var(--fs-xs)}.range-input input{min-height:34px!important;padding:6px 8px!important}.toolbar>.button-row,.toolbar>button{justify-self:start}.main>.spaced,.tab-panel>.spaced{margin-top:0}input[type=file]::-webkit-file-upload-button{margin-right:var(--s-3);padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer}input[type=file]::file-selector-button{margin-right:var(--s-3);padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer}.pill{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 10px;border-radius:var(--r-pill);background:var(--neutral-bg);color:var(--neutral);font-size:var(--fs-xs);font-weight:600;line-height:1.3;white-space:nowrap;vertical-align:middle}.pill-dot{width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}.pill.good{background:var(--good-bg);color:var(--good)}.pill.warn,.pill.warning{background:var(--warn-bg);color:var(--warn)}.pill.danger,.pill.severe{background:var(--danger-bg);color:var(--danger)}.pill.info{background:var(--info-bg);color:var(--info)}.pill.cold{background:var(--cold-bg);color:var(--cold)}.pill.virtual,.pill.virtual-pill{background:var(--virtual-bg);color:var(--virtual)}.alert,.notice{padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--info) 30%,transparent);border-left:4px solid var(--info);border-radius:var(--r-md);background:var(--info-bg);color:var(--text);font-size:var(--fs-sm)}.alert{border-color:color-mix(in srgb,var(--warn) 35%,transparent);border-left-color:var(--warn-fill);background:var(--warn-bg)}.table-wrap{position:relative;max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.table-wrap.tall{max-height:560px}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-md)}.table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.table td,.table th{padding:10px var(--s-3);border-bottom:1px solid var(--border)}.table td{color:var(--text);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:color-mix(in srgb,var(--surface-3) 55%,transparent)}.table .numeric{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table .actions-col{width:1%;text-align:right;white-space:nowrap}.table small{font-size:var(--fs-xs)}.compact-table td,.compact-table th{padding:6px 10px}.table-link{color:var(--accent-text);font-weight:600}.table-link:hover{text-decoration:underline}.table-input{min-width:120px}.compact-input{max-width:110px}.table-logo{width:72px;height:36px;object-fit:contain;border-radius:var(--r-sm);background:#ffffff}.ad-thumb{width:96px;height:54px;object-fit:cover}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-4)}.pagination-summary{color:var(--muted);font-size:var(--fs-sm)}.pagination-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.pagination-page{min-width:96px;color:var(--text-2);font-size:var(--fs-sm);text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-size{width:190px}.page-size .searchable-select-button{min-height:36px}.empty-state{display:grid;justify-items:center;grid-gap:var(--s-2);gap:var(--s-2);padding:var(--s-7) var(--s-4);color:var(--muted);text-align:center}.empty-state.compact{padding:var(--s-5) var(--s-3)}.empty-state strong{color:var(--text);font-weight:600}.empty-state p{max-width:52ch;font-size:var(--fs-sm)}.empty-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface-3);color:var(--muted)}.empty-state.error .empty-icon{background:var(--danger-bg);color:var(--danger)}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-3) 0,var(--surface-2) 50%,var(--surface-3) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-value{width:60%;height:30px;margin:4px 0}.skeleton-block{display:grid;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-2) 0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-stack{position:fixed;right:var(--s-5);bottom:var(--s-5);z-index:300;width:min(420px,calc(100vw - 32px));pointer-events:none}.toast-stack,.toast-stack>div{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);border:1px solid var(--border);border-left-width:4px;border-radius:var(--r-md);background:var(--surface);color:var(--text);box-shadow:var(--shadow-3);font-size:var(--fs-md);pointer-events:auto;animation:toast-in .2s var(--ease)}.success-toast{border-left-color:var(--good-fill)}.success-toast>svg{color:var(--good)}.error-toast{border-left-color:var(--danger-fill)}.error-toast>svg{color:var(--danger)}.toast-close{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer}.toast-close:hover{background:var(--surface-3);color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}body.drawer-open,body.modal-open{overflow:hidden}.confirm-backdrop,.modal-backdrop{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:var(--s-4);background:var(--overlay);animation:fade-in .15s ease-out}.confirm-backdrop{z-index:250}.modal-panel{display:flex;flex-direction:column;width:min(560px,100%);max-height:min(88vh,900px);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-3);animation:modal-in .2s var(--ease)}.modal-panel.comfortable{width:min(760px,100%)}.modal-panel.ota-status-dialog,.modal-panel.wide{width:min(1100px,100%)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);padding:var(--s-5) var(--s-5) var(--s-3);border-bottom:1px solid var(--border)}.modal-head h2{font-size:var(--fs-xl)}.modal-body{overflow-y:auto;padding:var(--s-5)}.confirm-dialog{display:grid;justify-items:center;grid-gap:var(--s-3);gap:var(--s-3);width:min(420px,100%);padding:var(--s-6);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-3);text-align:center;animation:modal-in .2s var(--ease)}.confirm-dialog h2{font-size:var(--fs-xl)}.confirm-dialog p{color:var(--text-2);overflow-wrap:anywhere}.confirm-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--info-bg);color:var(--info)}.confirm-icon.danger{background:var(--danger-bg);color:var(--danger)}.confirm-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin-top:var(--s-2)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.tabs{display:flex;gap:var(--s-1);overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:none}.tabs button{position:relative;display:inline-flex;align-items:center;gap:var(--s-2);min-height:42px;padding:0 var(--s-3);border:0;background:none;color:var(--muted);font-weight:500;cursor:pointer;white-space:nowrap}.tabs button.active,.tabs button:hover{color:var(--text)}.tabs button.active:after{content:"";position:absolute;left:var(--s-2);right:var(--s-2);bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.tab-count{padding:0 7px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-2);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tab-panel{gap:var(--s-5);padding-top:var(--s-4)}.tab-panel,.tabbed{display:flex;flex-direction:column}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));grid-gap:var(--s-4);gap:var(--s-4)}.chart-card{min-width:0;margin:0;padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg)}.chart-card,.panel .chart-card{background:var(--surface)}.chart-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-2)}.chart-card-head h3{font-size:var(--fs-md);font-weight:600}.chart-card-subtitle{color:var(--muted);font-size:var(--fs-sm)}.chart-card-actions{display:flex;gap:var(--s-1)}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin:0 0 var(--s-2);padding:0;list-style:none;color:var(--text-2);font-size:var(--fs-xs)}.chart-legend.inline{margin:var(--s-3) 0 0}.chart-legend li{display:inline-flex;align-items:center;gap:6px}.legend-key{display:inline-block;flex:none}.legend-key.line{width:16px;height:2px;border-radius:2px;background:currentColor}.legend-key.area,.legend-key.band{width:14px;height:10px;border-radius:3px;background:color-mix(in srgb,currentColor 22%,transparent);border:1px solid color-mix(in srgb,currentColor 55%,transparent)}.legend-key.status-good{color:var(--good-fill)}.legend-key.status-danger{color:var(--danger-fill)}.ts-chart{position:relative;width:100%;transition:opacity .2s}.ts-svg{display:block;overflow:visible;touch-action:pan-y}.ts-svg:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:var(--r-sm)}.chart-gridline{stroke:var(--chart-grid);stroke-width:1;shape-rendering:crispEdges}.chart-baseline{stroke:var(--chart-axis);stroke-width:1;shape-rendering:crispEdges}.chart-tick{fill:var(--muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:currentColor}.chart-band{fill:currentColor;fill-opacity:.16;stroke:none}.chart-area{fill:currentColor;fill-opacity:.1;stroke:none}.chart-reference rect{fill:var(--comfort-band)}.chart-reference line{stroke:var(--comfort-band-line);stroke-width:1;shape-rendering:crispEdges}.chart-reference-label{fill:var(--good);font-size:11px;font-weight:500}.chart-crosshair line{stroke:var(--text-2);stroke-width:1;stroke-opacity:.5}.chart-marker{stroke:var(--surface);stroke-width:2}.chart-tooltip{position:absolute;top:4px;z-index:5;min-width:150px;max-width:260px;padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-2);font-size:var(--fs-xs);pointer-events:none;transform:translateX(12px)}.chart-tooltip.flip{transform:translateX(calc(-100% - 12px))}.chart-tooltip-time{margin-bottom:4px;color:var(--muted);font-weight:500}.chart-tooltip-row{display:flex;align-items:center;gap:var(--s-2)}.chart-tooltip-row strong{color:var(--text);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-tooltip-label{color:var(--text-2)}.chart-key-line{width:12px;height:2px;flex:none;border-radius:2px}.chart-placeholder{min-height:220px;display:grid;align-content:center}.chart-table{max-height:260px}.uptime{position:relative;padding-bottom:var(--s-5)}.uptime-track{position:relative;height:28px;border-radius:var(--r-sm);background:var(--surface-3)}.uptime-segment{position:absolute;top:0;bottom:0;border-right:1px solid var(--surface);cursor:default}.uptime-segment.online{background:var(--good-fill)}.uptime-segment.offline{background:var(--danger-fill)}.uptime-segment:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.uptime-segment:focus-visible{outline:2px solid var(--focus);outline-offset:2px;z-index:2}.uptime-tooltip{top:34px;transform:translateX(-50%)}.uptime-axis{position:absolute;left:0;right:0;bottom:0;height:16px}.uptime-axis span{position:absolute;color:var(--muted);font-size:11px;transform:translateX(-50%);white-space:nowrap}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:var(--s-3);gap:var(--s-3)}.kpi-grid.compact{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.stat-tile{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);color:var(--text)}.stat-link{transition:border-color .15s,box-shadow .15s}.stat-link:hover{border-color:var(--accent);box-shadow:var(--shadow-2)}.stat-label{display:flex;align-items:center;gap:var(--s-2);color:var(--text-2);font-size:var(--fs-sm);font-weight:500}.stat-icon{display:inline-grid;place-items:center;width:28px;height:28px;flex:none;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text)}.stat-icon.good{background:var(--good-bg);color:var(--good)}.stat-icon.warn{background:var(--warn-bg);color:var(--warn)}.stat-icon.danger{background:var(--danger-bg);color:var(--danger)}.stat-icon.neutral{background:var(--neutral-bg);color:var(--neutral)}.stat-icon.cold{background:var(--cold-bg);color:var(--cold)}.stat-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;min-height:36px;font-size:1.75rem;font-weight:600;letter-spacing:-.01em;line-height:1.2;overflow-wrap:anywhere}.stat-unit{color:var(--muted);font-size:var(--fs-md);font-weight:500}.stat-detail{color:var(--muted);font-size:var(--fs-xs)}.kpi-grid.compact .stat-value{font-size:1.25rem;min-height:28px}.status-bar{display:flex;gap:2px;height:6px;margin-top:auto;padding-top:0;overflow:hidden;border-radius:var(--r-pill)}.status-bar-part{min-width:3px;height:6px}.status-bar-part.good{background:var(--good-fill)}.status-bar-part.warn{background:var(--warn-fill)}.status-bar-part.danger{background:var(--danger-fill)}.status-bar-part.neutral{background:var(--neutral-fill)}.dashboard-grid{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.dashboard-grid.two-one{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.dashboard-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid>.chart-card{box-shadow:var(--shadow-1)}.offline-panel{display:flex;flex-direction:column}.offline-list{display:grid;margin:0;padding:0;list-style:none;max-height:260px;overflow-y:auto}.offline-list li+li{border-top:1px solid var(--border)}.offline-list a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-2) var(--s-1);border-radius:var(--r-sm)}.offline-list a:hover{background:var(--surface-2)}.offline-dot{width:8px;height:8px;border-radius:50%;background:var(--danger-fill)}.offline-name{display:grid;min-width:0}.offline-name small,.offline-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offline-name strong{font-size:var(--fs-sm);font-weight:600}.offline-name small{color:var(--muted);font-family:var(--mono);font-size:var(--fs-xs)}.offline-seen{color:var(--danger);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.composition{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.split-bar{display:flex;gap:2px;height:14px;overflow:hidden;border-radius:var(--r-sm)}.split-part{min-width:4px}.legend-swatch.slot-1,.split-part.slot-1{background:var(--slot-1)}.legend-swatch.slot-2,.split-part.slot-2{background:var(--slot-2)}.split-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:0}.split-legend dt{display:flex;align-items:center;gap:var(--s-2);color:var(--text-2);font-size:var(--fs-sm)}.split-legend dd{margin:2px 0 0;font-size:var(--fs-xl);font-weight:600}.split-legend small{color:var(--muted);font-size:var(--fs-sm);font-weight:500}.legend-swatch{width:10px;height:10px;border-radius:3px}.bar-list{grid-gap:var(--s-3);margin:0;padding:0;list-style:none}.bar-list,.bar-list li{display:grid;gap:var(--s-3)}.bar-list li{grid-template-columns:84px minmax(0,1fr) 40px;align-items:center;grid-gap:var(--s-3);font-size:var(--fs-sm)}.bar-list-label{color:var(--text-2)}.bar-list-track{height:10px;overflow:hidden;border-radius:var(--r-pill);background:var(--track)}.bar-list-fill{display:block;height:100%;min-width:2px;border-radius:var(--r-pill);background:var(--slot-1)}.bar-list-value{font-weight:600;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.indices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-4);gap:var(--s-4)}.index-item{display:flex;align-items:center;gap:var(--s-3)}.index-item>div{display:grid;min-width:0}.index-item strong{font-size:var(--fs-md)}.index-item small{color:var(--muted);font-size:var(--fs-xs)}.index-facts{grid-column:1/-1;display:grid;grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding-top:var(--s-3);border-top:1px solid var(--border)}.index-facts div{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-sm)}.index-facts dt{color:var(--text-2)}.index-facts dd{margin:0}.score-ring{place-items:center;width:72px;height:72px;flex:none}.score-ring,.score-ring-inner{display:grid;border-radius:50%}.score-ring-inner{place-items:center;width:58px;height:58px;background:var(--surface);line-height:1}.score-ring-inner strong{font-size:var(--fs-xl);font-weight:600}.score-ring-inner small{color:var(--muted);font-size:10px}.alert-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:0;padding:0;list-style:none}.alert-scroll{max-height:640px;overflow-y:auto;padding-right:var(--s-1)}.panel-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);padding-top:var(--s-3);border-top:1px solid var(--border)}.alert-flat{display:grid;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-4);border:1px solid color-mix(in srgb,var(--danger) 25%,var(--border));border-left:4px solid var(--danger-fill);border-radius:var(--r-md);background:var(--surface)}.alert-flat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.alert-flat-head h3{font-size:var(--fs-md)}.alert-flat-head p{color:var(--muted);font-size:var(--fs-xs)}.alert-gateway-list{display:grid;grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding:0;list-style:none}.alert-gateway{display:grid;grid-gap:4px;gap:4px;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface-2)}.alert-gateway:hover{background:var(--surface-3)}.alert-gateway-name{color:var(--accent-text);font-size:var(--fs-sm);font-weight:600}.alert-gateway ul{margin:0;padding-left:var(--s-4);color:var(--text-2);font-size:var(--fs-xs)}.warning-list{display:grid;grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding:0;list-style:none}.warning-item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm)}.warning-summary-list{display:grid;grid-gap:4px;gap:4px}.warning-summary-item{font-size:var(--fs-xs)}.warning-summary-item.danger{color:var(--danger)}.warning-summary-item.warn{color:var(--warn)}.history-control{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.history-status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);color:var(--muted);font-size:var(--fs-sm)}.history-control.active .history-status{padding:4px 4px 4px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn);font-weight:500}.history-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.history-form input{width:auto}.filter-row .history-control{margin-left:auto}.home-hero{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);grid-gap:var(--s-4);gap:var(--s-4);padding:var(--s-5);border:1px solid var(--border);border-radius:var(--r-lg);background:radial-gradient(120% 140% at 0 0,var(--accent-soft) 0,transparent 55%),var(--surface);box-shadow:var(--shadow-1)}.home-score{display:flex;align-items:center;gap:var(--s-4)}.home-score .score-ring{width:96px;height:96px}.home-score .score-ring-inner{width:78px;height:78px}.home-score .score-ring-inner strong{font-size:var(--fs-2xl)}.home-score h2{margin:2px 0 4px;font-size:var(--fs-xl)}.home-readings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3)}.comfort-reading{display:grid;align-content:start;grid-gap:4px;gap:4px;padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.comfort-reading-icon{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:var(--r-md);background:var(--neutral-bg);color:var(--neutral)}.comfort-reading.tone-good .comfort-reading-icon{background:var(--good-bg);color:var(--good)}.comfort-reading.tone-warn .comfort-reading-icon{background:var(--warn-bg);color:var(--warn)}.comfort-reading.tone-danger .comfort-reading-icon{background:var(--danger-bg);color:var(--danger)}.comfort-reading.tone-cold .comfort-reading-icon{background:var(--cold-bg);color:var(--cold)}.comfort-reading-label{color:var(--text-2);font-size:var(--fs-sm)}.comfort-reading-value{font-size:var(--fs-2xl);font-weight:600}.comfort-reading-hint{color:var(--muted);font-size:var(--fs-xs)}.device-list{display:grid;margin:0;padding:0;list-style:none}.device-list li+li{border-top:1px solid var(--border)}.device-list a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-3) var(--s-2);border-radius:var(--r-sm)}.device-list a:hover{background:var(--surface-2)}.device-list a>span{display:grid}.device-list small{color:var(--muted);font-size:var(--fs-xs)}.tenant-ad-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,300px);grid-gap:var(--s-3);gap:var(--s-3);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.tenant-ad-card{display:grid;align-content:start;grid-gap:6px;gap:6px;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);scroll-snap-align:start}.tenant-ad-card:hover{border-color:var(--accent)}.tenant-ad-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-sm)}.tenant-ad-card small{color:var(--muted)}.tenant-ad-dots{display:flex;justify-content:center;gap:6px}.tenant-ad-dot{width:24px;height:24px;padding:0;border:0;background:transparent;cursor:pointer}.tenant-ad-dot:before{content:"";display:block;width:8px;height:8px;margin:auto;border-radius:50%;background:var(--border-strong)}.tenant-ad-dot.active:before{width:20px;border-radius:var(--r-pill);background:var(--accent)}.google-map-block{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.google-map-shell{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-3)}.google-map{width:100%;height:460px}.google-map-legend{position:absolute;left:var(--s-3);bottom:var(--s-3);display:flex;flex-wrap:wrap;gap:var(--s-3);padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-2);color:var(--text-2);font-size:var(--fs-xs)}.google-map-legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border-strong)}.legend-dot.ok{background:#55db95}.legend-dot.warning{background:#ffb84d}.legend-dot.severe{background:#f25f5c}.google-map-message{color:var(--muted);font-size:var(--fs-sm)}.google-map-attribution{color:var(--muted);font-size:var(--fs-xs)}.google-map-attribution a{color:var(--accent-text)}.gateway-map-cluster{display:grid;place-items:center;min-width:38px;height:38px;padding:0 8px;border:3px solid #ffffff;border-radius:var(--r-pill);background:#0d1b2e;color:#ffffff;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.3);cursor:pointer}.gateway-map-cluster,.map-info-window{font-family:var(--font);font-size:13px}.map-info-window{display:grid;grid-gap:4px;gap:4px;max-width:260px;color:#0f1b2d}.map-info-window em{font-style:normal;font-weight:600;text-transform:capitalize}.map-info-window ul{margin:0;padding-left:16px}.map-info-window button{justify-self:start;margin-top:6px;padding:6px 12px;border:0;border-radius:8px;background:#0077a8;color:#ffffff;font-weight:600;cursor:pointer}.summary-strip{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:0}.summary-strip>div{display:flex;align-items:center;gap:var(--s-2);padding:6px 14px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-sm)}.summary-strip dt{display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}.summary-strip dd{margin:0;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-strip .good .pill-dot{background:var(--good-fill)}.summary-strip .danger .pill-dot{background:var(--danger-fill)}.summary-strip .neutral .pill-dot{background:var(--neutral-fill)}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding-top:var(--s-3);border-top:1px solid var(--border);color:var(--muted);font-size:var(--fs-sm)}.gateway-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));grid-gap:var(--s-4);gap:var(--s-4)}.gateway-card{display:flex;flex-direction:column;gap:var(--s-3);min-width:0;padding:var(--s-4);border:1px solid var(--border);border-top:3px solid var(--neutral-fill);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);transition:box-shadow .15s}.gateway-card:hover{box-shadow:var(--shadow-2)}.gateway-card.status-online{border-top-color:var(--good-fill)}.gateway-card.status-stale{border-top-color:var(--danger-fill)}.gateway-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.gateway-card-title{min-width:0}.gateway-card-title h2{font-size:var(--fs-lg);overflow-wrap:anywhere}.gateway-card-title h2 a:hover{color:var(--accent-text);text-decoration:underline}.gateway-card-title p{margin-top:2px;color:var(--muted);font-size:var(--fs-xs);overflow-wrap:anywhere}.gateway-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s-1)}.gateway-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding:var(--s-3);border-radius:var(--r-md);background:var(--surface-2)}.gateway-facts dt{color:var(--muted);font-size:var(--fs-xs)}.gateway-facts dd{margin:2px 0 0;font-size:var(--fs-sm);font-weight:500;overflow-wrap:anywhere}.gateway-card-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:auto;padding-top:var(--s-3);border-top:1px solid var(--border)}.node-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));grid-gap:var(--s-3);gap:var(--s-3)}.node-grid.compact{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:var(--s-2)}.node-card{display:flex;flex-direction:column;gap:var(--s-3);min-width:0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.node-card.tone-danger{border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.node-card.compact{gap:var(--s-2);padding:10px;background:var(--surface-2)}.node-card-head{display:flex;align-items:center;gap:var(--s-2)}.node-card-icon{display:inline-grid;place-items:center;width:28px;height:28px;flex:none;border-radius:var(--r-sm);background:var(--surface-3);color:var(--text-2)}.node-card-title{display:grid;flex:1 1;min-width:0;line-height:1.25}.node-card-title small,.node-card-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-card-title strong{font-size:var(--fs-sm);font-weight:600}.node-card-title small{color:var(--muted);font-size:var(--fs-xs)}.node-card.compact .node-card-icon{display:none}.node-card.compact .pill{padding:1px 8px;min-height:20px}.node-card-alert{color:var(--danger);font-size:var(--fs-sm)}.node-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));grid-gap:var(--s-2);gap:var(--s-2)}.node-value{display:grid;grid-gap:2px;gap:2px}.node-value-label{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-xs)}.node-value strong{font-size:var(--fs-xl);font-weight:600;line-height:1.2}.node-value strong small{margin-left:2px;color:var(--muted);font-size:var(--fs-sm);font-weight:500}.node-card.compact .node-value strong{font-size:var(--fs-lg)}.node-value-state{justify-self:start;padding:0 6px;border-radius:var(--r-sm);background:var(--neutral-bg);color:var(--neutral);font-size:11px;font-weight:600}.node-value.tone-good .node-value-state{background:var(--good-bg);color:var(--good)}.node-value.tone-warn .node-value-state{background:var(--warn-bg);color:var(--warn)}.node-value.tone-danger .node-value-state{background:var(--danger-bg);color:var(--danger)}.node-value.tone-cold .node-value-state{background:var(--cold-bg);color:var(--cold)}.node-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding-top:var(--s-2);border-top:1px solid var(--border)}.node-meta dt{color:var(--muted);font-size:var(--fs-xs)}.node-meta dd{margin:2px 0 0;font-size:var(--fs-sm);overflow-wrap:anywhere}.node-card-foot{margin-top:auto;color:var(--muted);font-size:var(--fs-xs)}.battery-bars{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.battery-bars-cells{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.battery-bar{width:4px;height:12px;border-radius:1px;background:var(--track)}.battery-bar.active{background:var(--good-fill)}.battery-bars.level-0 .battery-bar.active,.battery-bars.level-1 .battery-bar.active{background:var(--danger-fill)}.battery-bars.level-2 .battery-bar.active{background:var(--warn-fill)}.battery-bars-text{color:var(--text-2);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-value .battery-bars-text{font-size:var(--fs-lg);color:var(--text)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:0;gap:0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.metric{display:grid;grid-gap:2px;gap:2px;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);border-right:1px solid var(--border);margin:0 -1px -1px 0}.metric-label{color:var(--muted);font-size:var(--fs-xs)}.metric-value{font-size:var(--fs-md);font-weight:500;overflow-wrap:anywhere}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));grid-gap:var(--s-4);gap:var(--s-4)}.settings-card{display:grid;align-content:start;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.settings-card header{display:grid}.settings-card header small{color:var(--muted);font-size:var(--fs-xs)}.settings-meta{display:flex;flex-wrap:wrap;gap:var(--s-4);margin:0;font-size:var(--fs-xs)}.settings-meta dt{color:var(--muted)}.settings-meta dd{margin:0}.settings-actions{padding-top:var(--s-2);border-top:1px solid var(--border)}.telemetry{display:flex;flex-direction:column;gap:var(--s-4)}.claim-code-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:0;padding:var(--s-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-2)}.claim-code-card dt,.claim-code-card span{color:var(--muted);font-size:var(--fs-xs)}.claim-code-card dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}.claim-code{font-size:var(--fs-lg);letter-spacing:.08em}.auth-page{min-height:100vh;display:grid;place-items:center;padding:var(--s-6) var(--s-4);background:radial-gradient(80% 60% at 0 0,color-mix(in srgb,var(--brand) 14%,transparent) 0,transparent 60%),var(--bg)}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);width:min(980px,100%);overflow:hidden;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-3)}.auth-aside{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-8) var(--s-7);background:radial-gradient(90% 70% at 100% 100%,rgba(0,174,239,.28) 0,transparent 60%),#0d1b2e;color:#c3cfdf}.auth-aside-logo{width:170px}.auth-aside .solis-logo-light{display:none}.auth-aside .solis-logo-dark{display:block}.auth-aside h2{margin-top:var(--s-6);color:#ffffff;font-size:var(--fs-3xl);line-height:1.15}.auth-aside p{max-width:36ch}.auth-aside ul{display:grid;grid-gap:var(--s-3);gap:var(--s-3);margin:auto 0 0;padding:0;list-style:none}.auth-aside li{display:flex;align-items:center;gap:var(--s-3);color:#e8eef7}.auth-aside li svg{color:var(--brand)}.auth-panel{display:grid;align-content:center;grid-gap:var(--s-5);gap:var(--s-5);padding:var(--s-8) var(--s-7)}.auth-header{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.auth-header h1{font-size:var(--fs-2xl)}.auth-brand{width:150px;margin-bottom:var(--s-3)}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-sm)}.auth-panel .toast-stack{position:fixed}.status-page{display:grid;justify-items:center;align-content:center;grid-gap:var(--s-3);gap:var(--s-3);min-height:100vh;padding:var(--s-6) var(--s-4);background:var(--bg);text-align:center}.status-page h1{margin:0;font-size:var(--fs-2xl)}.status-page p{max-width:46ch;margin:0;color:var(--muted)}.status-page-logo{width:140px;margin-bottom:var(--s-5)}.status-page-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--accent-soft);color:var(--accent-text)}.status-page-icon.error{background:var(--danger-bg);color:var(--danger)}.status-page .status-page-ref{font-family:var(--mono);font-size:var(--fs-xs)}.status-page-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin-top:var(--s-3)}.status-page-actions a{text-decoration:none}.launcher{position:relative;display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden;background:var(--bg);isolation:isolate}.launcher-glow{position:absolute;inset:0 0 auto;z-index:-1;height:520px;background:radial-gradient(60% 80% at 15% 0,color-mix(in srgb,var(--brand) 18%,transparent) 0,transparent 70%),radial-gradient(50% 70% at 90% 10%,color-mix(in srgb,#8b6cf0 12%,transparent) 0,transparent 70%);pointer-events:none}.launcher-bar{justify-content:space-between;width:min(1200px,100%);margin:0 auto;padding:var(--s-5) var(--s-6)}.launcher-bar,.launcher-brand{display:flex;align-items:center;gap:var(--s-4)}.launcher-brand{min-width:0}.launcher-logo{width:150px}.launcher-owner-logo{max-width:150px;max-height:44px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-md);background:#ffffff;object-fit:contain}.launcher-actions{display:flex}.launcher-actions,.launcher-user{align-items:center;gap:var(--s-2)}.launcher-user{display:inline-flex;padding:4px var(--s-3) 4px 4px;border:1px solid var(--border);border-radius:var(--r-pill);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text);text-decoration:none;transition:border-color .15s,background-color .15s}.launcher-user:hover{border-color:var(--accent);background:var(--surface)}.launcher-user-text{display:grid;line-height:1.2}.launcher-user-text strong{max-width:180px;overflow:hidden;font-size:var(--fs-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.launcher-user-text small{color:var(--muted);font-size:var(--fs-xs)}.launcher-main{display:flex;flex:1 1;flex-direction:column;gap:var(--s-7);width:min(1200px,100%);margin:0 auto;padding:var(--s-7) var(--s-6) var(--s-6)}.launcher-hero{display:grid;justify-items:center;grid-gap:var(--s-3);gap:var(--s-3);text-align:center}.launcher-hero h1{margin:0;font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}.launcher-lead{max-width:52ch;margin:0;color:var(--text-2);font-size:var(--fs-lg)}.launcher-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin:var(--s-2) 0 0;padding:0;list-style:none}.launcher-summary li{display:inline-flex;align-items:center;gap:var(--s-2);padding:6px var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm)}.launcher-dot{width:8px;height:8px;border-radius:50%}.launcher-dot.available{background:var(--good-fill);box-shadow:0 0 0 3px var(--good-bg)}.launcher-dot.soon{background:var(--warn-fill);box-shadow:0 0 0 3px var(--warn-bg)}.launcher-grid{display:flex;gap:var(--s-5);margin:0;padding:var(--s-2) var(--s-1) var(--s-4);list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--s-1);scrollbar-width:thin;-webkit-overflow-scrolling:touch}.launcher-grid:focus-visible{outline:2px solid var(--accent,var(--info));outline-offset:4px;border-radius:var(--r-lg)}.launcher-grid>li:first-child{-webkit-margin-start:auto;margin-inline-start:auto}.launcher-grid>li:last-child{-webkit-margin-end:auto;margin-inline-end:auto}.launcher-rail{position:relative;min-width:0}.launcher-rail:after,.launcher-rail:before{content:"";position:absolute;top:0;bottom:var(--s-4);width:48px;pointer-events:none;opacity:0;transition:opacity .2s var(--ease);z-index:1}.launcher-rail:before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}.launcher-rail:after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}.launcher-rail.can-left:before,.launcher-rail.can-right:after{opacity:1}.launcher-rail-nav{position:absolute;top:calc(50% - var(--s-2));z-index:2;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);cursor:pointer;transform:translateY(-50%);transition:opacity .2s var(--ease),background .2s var(--ease)}.launcher-rail-nav:hover{background:var(--surface-2)}.launcher-rail-nav:focus-visible{outline:2px solid var(--accent,var(--info));outline-offset:2px}.launcher-rail-nav.prev{left:calc(-1 * var(--s-3))}.launcher-rail-nav.next{right:calc(-1 * var(--s-3))}.launcher-rail-nav[hidden]{display:none}.launcher-section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-2)}.launcher-section-count{color:var(--muted);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.launcher-section{display:grid;grid-gap:var(--s-4);gap:var(--s-4);min-width:0}.launcher-section-head h2{margin:0;font-size:var(--fs-lg);font-weight:600}.launcher-section-head p{margin:2px 0 0;color:var(--muted);font-size:var(--fs-sm)}.app-card-expiry{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:2px 9px;border-radius:var(--r-pill);background:var(--warn-bg);color:var(--warn);font-size:var(--fs-xs);font-weight:600}.launcher-grid>li{display:flex;flex:0 0 clamp(260px,30vw,340px);scroll-snap-align:center}.app-card{--app-tint:color-mix(in srgb,var(--app-hue) 14%,transparent);--app-ink:color-mix(in srgb,var(--app-hue) 72%,var(--text));position:relative;display:flex;flex:1 1;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-7) var(--s-5) var(--s-5);overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);text-align:center;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.app-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--app-hue),color-mix(in srgb,var(--app-hue) 40%,transparent))}.app-card.available:focus-visible,.app-card.available:hover{border-color:color-mix(in srgb,var(--app-hue) 55%,var(--border));box-shadow:0 14px 34px color-mix(in srgb,var(--app-hue) 18%,transparent),var(--shadow-2);transform:translateY(-4px)}.app-card.available:focus-visible{outline:none;box-shadow:var(--ring),0 14px 34px color-mix(in srgb,var(--app-hue) 18%,transparent)}.app-card-icon{display:grid;place-items:center;flex:none;width:68px;height:68px;margin-bottom:var(--s-2);border-radius:20px;background:linear-gradient(145deg,color-mix(in srgb,var(--app-hue) 22%,transparent),var(--app-tint));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--app-hue) 28%,transparent);color:var(--app-ink)}.app-card-icon svg{display:block}.app-card-title{font-size:1.0625rem;font-weight:600;line-height:1.3}.app-card-description{flex:1 1;max-width:34ch;color:var(--muted);font-size:var(--fs-sm);line-height:1.55}.app-card-features{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.app-card-features>span{padding:3px 10px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-2);font-size:var(--fs-xs);font-weight:500}.app-card-footer{display:flex;justify-content:center;width:100%;margin-top:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--border)}.app-card-cta{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--app-ink);font-size:var(--fs-md);font-weight:600}.app-card-cta svg{transition:transform .2s var(--ease)}.app-card.available:hover .app-card-cta svg{transform:translateX(4px)}.app-card-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600}.app-card-badge.soon{background:var(--warn-bg);color:var(--warn)}.app-card-badge.locked{background:var(--neutral-bg);color:var(--neutral)}.app-card.coming-soon,.app-card.locked{cursor:default}.app-card.coming-soon .app-card-icon,.app-card.coming-soon .app-card-title{opacity:.85}.app-card.locked{background:var(--surface-2)}.app-card.locked .app-card-icon{background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--border);color:var(--muted)}.app-card.locked:before{background:var(--border-strong)}.launcher-footer{display:grid;justify-items:center;grid-gap:var(--s-1);gap:var(--s-1);margin-top:auto;padding-top:var(--s-6);color:var(--muted);font-size:var(--fs-sm);text-align:center}.launcher-footer p{margin:0}.launcher-legal{font-size:var(--fs-xs)}@media (prefers-reduced-motion:reduce){.app-card,.app-card-cta svg{transition:none}.app-card.available:hover{transform:none}}.logo-upload-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-3);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-2)}.ad-upload-preview,.logo-upload-preview{display:grid;place-items:center;width:120px;height:72px;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-sm);background:#ffffff}.ad-upload-preview img,.logo-upload-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-upload-copy{display:grid;grid-gap:4px;gap:4px;color:var(--muted);font-size:var(--fs-sm)}.ota-status-modal{margin-bottom:var(--s-4)}.ota-status-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:var(--s-3);gap:var(--s-3);align-items:end}.compact-table-wrap{max-height:420px}.compact-head{gap:var(--s-2)}@media (min-width:961px){.auth-panel .auth-brand{display:none}}@media (max-width:1280px){.dashboard-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid.three>:last-child{grid-column:1/-1}}@media (max-width:1100px){.dashboard-grid.two-one,.home-hero{grid-template-columns:minmax(0,1fr)}.launcher-grid>li{flex-basis:clamp(260px,42vw,340px)}}@media (max-width:960px){.shell,.shell.collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);transform:translateX(-100%);visibility:hidden;transition:transform .22s var(--ease),visibility 0s linear .22s;box-shadow:var(--shadow-3);z-index:60}.shell.mobile-nav-open .sidebar{transform:none;visibility:visible;transition:transform .22s var(--ease),visibility 0s}.shell.collapsed .brand-title,.shell.collapsed .nav-group-label,.shell.collapsed .nav-label{display:revert}.shell.collapsed .nav a{justify-content:flex-start;padding-inline:var(--s-3)}.shell.collapsed .brand-link{width:132px}.collapse-toggle{display:none}.sidebar .drawer-close{display:inline-grid;margin-left:auto;color:var(--sidebar-text)}.drawer-close:hover{background:var(--sidebar-hover)!important;color:#ffffff!important}.shell.mobile-nav-open .drawer-backdrop{position:fixed;inset:0;z-index:50;display:block;background:var(--overlay);animation:fade-in .15s ease-out}.topbar .mobile-nav-toggle{display:inline-grid;margin-left:calc(var(--s-2) * -1)}.topbar .topbar-logo{display:block;width:104px}.topbar{padding:0 var(--s-4)}.topbar-status{display:flex;justify-content:flex-end}.user-menu-text{display:none}.user-menu-button{padding:4px}.main{padding:var(--s-5) var(--s-4)}.auth-layout{grid-template-columns:minmax(0,1fr)}.auth-aside{display:none}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-row .history-control{margin-left:0}}@media (max-width:720px){.dashboard-grid.three,.grid.cols-2,.grid.cols-3,.grid.cols-4,.home-readings,.indices{grid-template-columns:minmax(0,1fr)}.launcher-grid>li{flex-basis:82%}.launcher-rail-nav{display:none}.launcher-bar{padding:var(--s-4)}.launcher-main{gap:var(--s-6);padding:var(--s-5) var(--s-4) var(--s-5)}.launcher-logo{width:116px}.launcher-user{padding-right:4px}.launcher-logout-text,.launcher-user-text{display:none}.launcher-actions .ghost-button{width:38px;padding:0}.launcher-lead{font-size:var(--fs-md)}.kpi-grid,.kpi-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-tile{padding:var(--s-3)}.stat-value{font-size:1.375rem;min-height:30px}.panel{padding:var(--s-4)}.page-head h1{font-size:var(--fs-xl)}.page-actions{width:100%}.gateway-filter-bar,.toolbar{grid-template-columns:minmax(0,1fr)}.toolbar-actions{justify-content:flex-start}.range-fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}.pagination{justify-content:center}.pagination-summary{width:100%;text-align:center}.page-size{width:100%}.pagination-controls{justify-content:center;width:100%}.google-map{height:340px}.confirm-backdrop,.modal-backdrop{align-items:end;padding:0}.modal-panel{width:100%;max-height:92vh;border-radius:var(--r-lg) var(--r-lg) 0 0}.modal-body,.modal-head{padding-inline:var(--s-4)}.confirm-dialog{width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0}.auth-panel{padding:var(--s-6) var(--s-5)}.claim-code-card,.split-legend{grid-template-columns:minmax(0,1fr)}.device-list a{grid-template-columns:minmax(0,1fr) auto}.device-list a>small,.live-text{display:none}.panel .chart-card{padding:var(--s-3)}.live-indicator{padding:6px}.toast-stack{right:var(--s-4);bottom:var(--s-4)}.node-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.table-actions{flex-wrap:wrap}}@media (max-width:359px){.kpi-grid,.kpi-grid.compact{grid-template-columns:minmax(0,1fr)}.segmented{width:100%}.segmented button{flex:1 1}}@media (forced-colors:active){.panel,.pill,.stat-tile,.uptime-segment{border:1px solid CanvasText}.chart-line{stroke:CanvasText}}@media print{.page-actions,.sidebar,.toast-stack,.topbar{display:none!important}.shell{display:block}.panel{box-shadow:none;page-break-inside:avoid;break-inside:avoid}}.rp-section{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.rp-section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-2) var(--s-4)}.rp-section-head h2{font-size:var(--fs-lg)}.rp-scope{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 12px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.rp-scope svg{color:var(--accent-text)}.owner-filter{position:relative;display:inline-flex;align-items:center;gap:2px;min-width:0;max-width:100%}.owner-filter .searchable-select{flex:0 1 auto;width:clamp(220px,28vw,340px);min-width:0;gap:0}.owner-filter .searchable-select-button{min-width:0;max-width:100%;min-height:34px;padding:5px 10px 5px 32px;border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:500}.owner-filter .searchable-select-button>span{flex:1 1 auto;min-width:0}.owner-filter-icon{position:absolute;top:50%;left:11px;z-index:1;display:inline-flex;color:var(--accent-text);transform:translateY(-50%);pointer-events:none}.owner-filter.active .searchable-select-button{border-color:color-mix(in srgb,var(--accent) 55%,var(--border-strong));background:var(--accent-soft);color:var(--accent-text);font-weight:600}.owner-filter.active .searchable-select-button svg{color:var(--accent-text)}.owner-filter-clear{flex:none;color:var(--muted)}.owner-filter-skeleton{display:inline-block;width:200px;max-width:100%;height:34px;border-radius:var(--r-pill)}.owner-filter-notice-region{display:contents}.owner-filter-notice{display:flex;align-items:center;gap:var(--s-2)}.owner-filter-notice>svg{flex:none;color:var(--info)}.owner-filter-notice>span{flex:1 1;min-width:0}.owner-filter-notice .icon-button{flex:none;margin:-6px -8px -6px 0}.owner-filter.block{display:flex;width:100%}.owner-filter.block .searchable-select{flex:1 1;width:auto;min-width:0}.rp-heading-owner{color:var(--muted);font-weight:500}.rp-owner-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);color:var(--text-2);font-size:var(--fs-sm)}@media (max-width:560px){.owner-filter{width:100%}.owner-filter .searchable-select{flex:1 1;width:auto;min-width:0}.page-actions>.owner-filter,.page-actions>.owner-filter-skeleton{flex:1 1 100%}}.rp-app-switcher{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.rp-app-switcher.row{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.rp-app-switcher.stack{gap:var(--s-2)}.rp-app-skeleton{border-radius:var(--r-lg)}.rp-app-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);min-height:68px;padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s}.rp-app-option.active,.rp-app-option:hover{border-color:var(--accent)}.rp-app-option.active{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.rp-app-text{display:grid;min-width:0;line-height:1.3}.rp-app-text strong{font-size:var(--fs-md);font-weight:600;overflow-wrap:anywhere}.rp-app-text small{color:var(--muted);font-size:var(--fs-xs)}.rp-app-option.active .rp-app-text small{color:var(--text-2)}.rp-app-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-md);background:color-mix(in srgb,var(--series-humidity) 14%,transparent);color:var(--series-humidity)}.rp-app-icon.app-ecopods{background:color-mix(in srgb,var(--series-temperature) 14%,transparent);color:var(--series-temperature)}.rp-app-icon.app-billing{background:color-mix(in srgb,var(--series-window) 14%,transparent);color:var(--series-window)}.rp-app-option.unavailable .rp-app-icon{background:var(--surface-3);color:var(--muted)}.rp-app-switcher.stack .rp-app-option{grid-template-columns:auto minmax(0,1fr);min-height:0;padding:var(--s-2) var(--s-3);box-shadow:none}.rp-app-switcher.stack .rp-app-option>.pill{grid-column:2;justify-self:start;margin-top:-4px}.rp-app-switcher.stack .rp-app-icon{width:32px;height:32px}.rp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));grid-gap:var(--s-4);gap:var(--s-4)}.rp-card{display:flex;flex-direction:column;gap:var(--s-3);min-width:0;padding:var(--s-5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.rp-card.failed{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.rp-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2)}.rp-period-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em}.rp-card-range{color:var(--muted);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rp-card-title{font-size:var(--fs-lg);font-weight:600;overflow-wrap:anywhere}.rp-card-body{display:flex;flex:1 1;flex-direction:column;gap:var(--s-3)}.rp-card-headline{color:var(--text-2);font-size:var(--fs-sm)}.rp-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2)}.rp-kpi{display:grid;align-content:start;grid-gap:2px;gap:2px;min-width:0;padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-left:3px solid var(--neutral-fill);border-radius:var(--r-md);background:var(--surface-2)}.rp-kpi.tone-good{border-left-color:var(--good-fill)}.rp-kpi.tone-warn{border-left-color:var(--warn-fill)}.rp-kpi.tone-danger{border-left-color:var(--danger-fill)}.rp-kpi-label{display:-webkit-box;overflow:hidden;color:var(--text-2);font-size:var(--fs-xs);font-weight:500;-webkit-box-orient:vertical;-webkit-line-clamp:2}.rp-kpi-value{font-size:var(--fs-xl);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.25;overflow-wrap:anywhere}.rp-kpi-unit{color:var(--muted);font-size:var(--fs-sm);font-weight:500}.rp-kpi-foot{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--s-2);min-height:18px}.rp-status{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.rp-status.good{color:var(--good)}.rp-status.warn{color:var(--warn)}.rp-status.danger{color:var(--danger)}.rp-change{display:inline-flex;align-items:center;gap:2px;color:var(--text-2);font-size:var(--fs-xs);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.rp-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:auto;padding-top:var(--s-3);border-top:1px solid var(--border)}.rp-card-error{flex-direction:row;align-items:flex-start;padding:var(--s-3);border-radius:var(--r-md);background:var(--danger-bg)}.rp-card-error strong{display:block;font-size:var(--fs-sm)}.rp-card-error p{color:var(--text-2);font-size:var(--fs-sm)}.rp-card-error-icon{color:var(--danger)}.ghost-button[aria-disabled=true]{cursor:progress;opacity:.75}.rp-menu{z-index:200;display:grid;grid-gap:2px;gap:2px;padding:var(--s-1);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-3);animation:fade-in .12s ease-out}.rp-menu-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;grid-gap:var(--s-3);gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);text-align:left;cursor:pointer}.rp-menu-item:focus-visible,.rp-menu-item:hover{background:var(--surface-3)}.rp-menu-item:focus-visible{outline-offset:-2px}.rp-menu-icon{padding-top:2px;color:var(--accent-text)}.rp-menu-text small,.rp-menu-text strong{display:block}.rp-menu-text strong{font-size:var(--fs-sm);font-weight:600}.rp-menu-text small{color:var(--muted);font-size:var(--fs-xs)}.rp-spin{animation:rp-spin .9s linear infinite}@keyframes rp-spin{to{transform:rotate(1turn)}}.rp-filters{grid-template-columns:repeat(2,minmax(200px,300px)) minmax(0,1fr)}.rp-results{color:var(--muted);font-size:var(--fs-sm)}.rp-history-title{min-width:260px}.rp-history-headline{display:-webkit-box;max-width:64ch;margin-top:2px;overflow:hidden;color:var(--muted);-webkit-box-orient:vertical;-webkit-line-clamp:2}.rp-period-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3)}.rp-period-preview{display:flex;align-items:flex-start;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-sm)}.rp-period-preview svg{flex:none;margin-top:2px;color:var(--accent-text)}.rp-report{display:flex;flex-direction:column;gap:var(--s-5);min-width:0}.rp-report-dates{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);font-size:var(--fs-sm)}.rp-report-dates strong{margin-right:4px;color:var(--text-2);font-weight:600}.rp-report-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.rp-headline{padding:var(--s-4) var(--s-5);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-left:4px solid var(--accent);border-radius:var(--r-md);background:var(--accent-soft);color:var(--text);font-size:var(--fs-lg);font-weight:500}.rp-bars{grid-gap:var(--s-3);margin-bottom:0;padding:0;list-style:none}.rp-bars,.rp-bars li{display:grid;gap:var(--s-3)}.rp-bars li{grid-template-columns:minmax(120px,220px) minmax(0,1fr) minmax(64px,auto) 88px;align-items:center;grid-gap:var(--s-3);font-size:var(--fs-sm)}.rp-bar-label{color:var(--text-2);overflow-wrap:anywhere}.rp-bar-track{height:12px;overflow:hidden;background:var(--track)}.rp-bar-fill,.rp-bar-track{border-radius:var(--r-pill)}.rp-bar-fill{display:block;height:100%;min-width:2px;background:var(--slot-1)}.rp-bar-fill.tone-good{background:var(--good-fill)}.rp-bar-fill.tone-warn{background:var(--warn-fill)}.rp-bar-fill.tone-danger{background:var(--danger-fill)}.rp-bar-value{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.rp-sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;border-radius:var(--r-sm);background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.rp-sort svg{opacity:.55}.rp-sort.active,.rp-sort:hover{color:var(--text)}.rp-sort.active svg{color:var(--accent-text);opacity:1}.rp-text{display:grid;grid-gap:var(--s-3);gap:var(--s-3);max-width:80ch;color:var(--text-2)}:root{--rp-comfortable:#1b9e6b;--rp-too-cold:#4a3aa7;--rp-too-hot:#d6452f;--rp-too-dry:#b07d12;--rp-too-humid:var(--series-humidity);--rp-completeness:#0b3d5c;--rp-reference:#5b6878;--rp-previous:#b8c2cf;--rp-insight-bg:color-mix(in srgb,var(--accent) 7%,var(--surface))}:root[data-theme=dark]{--rp-comfortable:#2fb37f;--rp-too-cold:#9085e9;--rp-too-hot:#f0704f;--rp-too-dry:#d9a33a;--rp-completeness:#7fb4d9;--rp-reference:#9aa8bd;--rp-previous:#4a5a74;--rp-insight-bg:color-mix(in srgb,var(--accent) 10%,var(--surface))}:root[data-theme=dark] .rp-report-section .chart-band{fill-opacity:.3}.chart-reference-line line{stroke:var(--rp-reference);stroke-width:1;stroke-dasharray:5 4;shape-rendering:crispEdges}.chart-reference-line text{fill:var(--rp-reference);font-size:11px;font-weight:500;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.category-bar{shape-rendering:crispEdges}.category-hover{fill:var(--text-2);fill-opacity:.06}.rp-insight{display:flex;gap:var(--s-3);align-items:flex-start;margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-left:4px solid var(--accent);border-radius:var(--r-md);background:var(--rp-insight-bg);color:var(--text);font-size:var(--fs-md);line-height:1.55}.rp-insight p{margin:0}.rp-insight strong{display:block;margin-bottom:2px;color:var(--accent-text);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.rp-insight-icon{flex:none;margin-top:2px;color:var(--accent-text)}.rp-bars-legend{margin-bottom:var(--s-3)}.legend-key.rp-key-current,.legend-key.rp-key-previous{width:14px;height:8px;border-radius:var(--r-pill);background:var(--slot-1)}.legend-key.rp-key-previous{height:4px;background:var(--rp-previous)}.rp-bar-tracks{display:grid;grid-gap:3px;gap:3px;min-width:0}.rp-bar-track.previous{height:5px;background:transparent}.rp-bar-fill.previous{background:var(--rp-previous)}.rp-bar-previous{display:block;color:var(--muted);font-size:var(--fs-xs);font-weight:400}.rp-bar-label .table-link{overflow-wrap:anywhere}.rp-chart-data{margin-top:var(--s-2);font-size:var(--fs-sm)}.rp-chart-data summary{width:-moz-fit-content;width:fit-content;color:var(--accent-text);cursor:pointer}.rp-chart-data summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}.rp-chart-data .table-wrap{margin-top:var(--s-2);max-height:320px;overflow:auto}.rp-report-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-4);border:1px dashed var(--border-strong);border-radius:var(--r-lg);color:var(--muted);font-size:var(--fs-sm)}.main:has(>.chat-layout){flex:none;height:calc(100dvh - var(--topbar-h));min-height:520px;padding-top:var(--s-4);padding-bottom:var(--s-4)}.chat-layout{display:grid;flex:1 1;grid-template-columns:272px minmax(0,1fr) 320px;grid-template-rows:minmax(0,1fr);grid-gap:var(--s-4);gap:var(--s-4);min-height:0}.chat-pane,.chat-scroll{position:relative}.chat-pane{min-height:0;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.chat-context-inner,.chat-list-inner{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4)}.chat-pane-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-height:32px}.chat-pane-head h2{font-size:var(--fs-md)}.chat-issues ul,.chat-list,.chat-suggestions{margin:0;padding:0;list-style:none}.chat-list{display:grid;grid-gap:2px;gap:2px}.chat-list li{display:flex;align-items:center;border-radius:var(--r-md)}.chat-list li:hover{background:var(--surface-3)}.chat-list li.active{background:var(--accent-soft)}.chat-list-item{display:grid;flex:1 1;grid-gap:1px;gap:1px;min-width:0;padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--text);text-align:left;cursor:pointer}.chat-list-item:focus-visible{outline-offset:-2px}.chat-list-title{overflow:hidden;font-size:var(--fs-sm);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.chat-list li.active .chat-list-title{color:var(--accent-text);font-weight:600}.chat-list-time{color:var(--muted);font-size:var(--fs-xs)}.chat-list-delete{flex:none;margin-right:2px;color:var(--muted);opacity:0}.chat-list li.active .chat-list-delete,.chat-list li:focus-within .chat-list-delete,.chat-list li:hover .chat-list-delete{opacity:1}.chat-list-delete:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}@media (hover:none){.chat-list-delete{opacity:1}}.chat-list-empty{display:flex;align-items:flex-start;gap:var(--s-2);padding:var(--s-3);border-radius:var(--r-md);background:var(--surface-2);color:var(--muted);font-size:var(--fs-sm)}.chat-list-empty svg{flex:none;margin-top:2px}.chat-asset-loading,.chat-list-loading{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.chat-main{display:flex;flex-direction:column;gap:var(--s-3);min-width:0;min-height:0}.chat-banner{display:flex;align-items:flex-start;gap:var(--s-2)}.chat-banner svg{flex:none;margin-top:2px;color:var(--warn)}.chat-banner small{display:block;margin-top:2px;color:var(--muted);font-size:var(--fs-xs)}.chat-thread{position:relative;display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.chat-toolbar{display:flex;align-items:center;gap:var(--s-2);min-height:56px;padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--border)}.chat-title{display:grid;flex:1 1;min-width:0;line-height:1.3}.chat-title h1{font-size:var(--fs-md);font-weight:600}.chat-title h1,.chat-title-app{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title-app{color:var(--muted);font-size:var(--fs-xs)}.chat-backdrop,.chat-toggle-context,.chat-toggle-list{display:none}.chat-scroll-wrap{position:relative;display:flex;flex:1 1;flex-direction:column;min-height:0}.chat-scroll{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--s-5)}.chat-scroll:focus{outline:none}.chat-messages{display:flex;flex-direction:column;gap:var(--s-5);max-width:820px;margin:0 auto;padding:0;list-style:none}.chat-skeleton.user{align-self:flex-end}.chat-msg{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;grid-gap:var(--s-3);gap:var(--s-3)}.chat-msg.user{grid-template-columns:minmax(0,1fr) 32px}.chat-msg.user .chat-avatar{order:2}.chat-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);font-weight:600}.chat-msg.user .chat-avatar{background:var(--brand-ink);color:var(--surface)}:root[data-theme=dark] .chat-msg.user .chat-avatar{background:var(--accent);color:var(--on-accent)}.chat-bubble{min-width:0;padding-top:5px;color:var(--text);line-height:1.6}.chat-msg.user .chat-bubble{justify-self:end;max-width:min(100%,640px);padding:var(--s-2) var(--s-4);border-radius:var(--r-lg) var(--r-sm) var(--r-lg) var(--r-lg);background:var(--accent-soft)}.chat-user-text{overflow-wrap:anywhere;white-space:pre-wrap}.chat-msg-meta{display:flex;align-items:center;gap:var(--s-2);min-height:24px;margin-top:var(--s-1);color:var(--muted);font-size:var(--fs-xs)}.chat-msg.user .chat-msg-meta{justify-content:flex-end}.chat-copy{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:0;border-radius:var(--r-sm);background:none;color:var(--muted);font-size:var(--fs-xs);cursor:pointer}.chat-copy:hover{background:var(--surface-3);color:var(--text)}.chat-typing{display:inline-flex;gap:5px;padding:8px 0}.chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:chat-bounce 1.2s ease-in-out infinite}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-bounce{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.chat-msg.streaming .md>:is(ul,ol):last-child>li:last-child:after,.chat-msg.streaming .md>p:last-child:after{content:"";display:inline-block;width:7px;height:1.05em;margin-left:3px;border-radius:1px;background:var(--accent);vertical-align:text-bottom;animation:chat-blink 1s steps(2,start) infinite}@keyframes chat-blink{to{visibility:hidden}}.chat-note{margin-top:var(--s-2);color:var(--muted);font-size:var(--fs-xs);font-style:italic}.chat-error{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--danger-bg);color:var(--danger);font-size:var(--fs-sm)}.chat-error>span{flex:1 1;min-width:160px;color:var(--text)}.chat-jump{position:absolute;bottom:var(--s-3);left:50%;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-2);color:var(--text);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transform:translateX(-50%)}.chat-jump:hover{border-color:var(--accent);color:var(--accent-text)}.chat-composer{display:grid;grid-gap:var(--s-1);gap:var(--s-1);margin:0 var(--s-4);padding:var(--s-2) var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);transition:border-color .15s,box-shadow .15s}.chat-composer:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 28%,transparent)}.chat-composer.disabled{background:var(--surface-3)}.chat-composer textarea{min-height:0;max-height:200px;padding:6px 2px;border:0;background:transparent;line-height:1.5;resize:none}.chat-composer textarea:focus-visible{border:0;box-shadow:none}.chat-composer textarea:disabled{background:transparent}.chat-composer-bar{display:flex;align-items:center;gap:var(--s-3)}.chat-composer-hint{flex:1 1}.chat-composer-hint,.chat-count{color:var(--muted);font-size:var(--fs-xs)}.chat-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chat-count.near{color:var(--warn);font-weight:600}.chat-footnote{display:flex;flex-wrap:wrap;justify-content:center;gap:2px var(--s-3);padding:var(--s-2) var(--s-4) var(--s-3);color:var(--muted);font-size:var(--fs-xs);text-align:center}.chat-footnote small{opacity:.85}.chat-welcome{display:grid;justify-items:center;grid-gap:var(--s-3);gap:var(--s-3);max-width:680px;margin:var(--s-6) auto;text-align:center}.chat-welcome h2{font-size:var(--fs-xl)}.chat-welcome p{max-width:54ch;color:var(--muted)}.chat-welcome-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text)}.chat-suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));grid-gap:var(--s-2);gap:var(--s-2);width:100%;margin-top:var(--s-2)}.chat-suggestion{width:100%;height:100%;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:var(--fs-sm);text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s}.chat-suggestion:hover{border-color:var(--accent);background:var(--accent-soft)}.chat-context-section{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.chat-context-section+.chat-context-section{padding-top:var(--s-3);border-top:1px solid var(--border)}.chat-context-section h3{color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.chat-context-note{display:flex;align-items:flex-start;gap:var(--s-2);color:var(--muted);font-size:var(--fs-xs)}.chat-context-note svg{flex:none;margin-top:2px}.chat-asset-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2)}.chat-asset-head small,.chat-asset-head strong{display:block}.chat-asset-head small{color:var(--muted);font-size:var(--fs-xs)}.chat-asset-pills{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.chat-asset-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0}.chat-asset-kpis>div{min-width:0;padding:var(--s-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.chat-asset-kpis dt{color:var(--text-2);font-size:var(--fs-xs)}.chat-asset-kpis dd{display:grid;grid-gap:2px;gap:2px;margin:0}.chat-asset-value{font-size:var(--fs-md);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chat-asset-open{justify-self:start}.sparkline{display:grid;grid-gap:4px;gap:4px;margin:0;min-width:0}.sparkline-head,.sparkline-range{display:flex;justify-content:space-between;gap:var(--s-2);color:var(--text-2);font-size:var(--fs-xs)}.sparkline-head strong{color:var(--text);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sparkline-range{color:var(--muted)}.sparkline svg{display:block;overflow:visible}.sparkline-line{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}.sparkline-area{fill:currentColor;opacity:.12}.sparkline-dot{fill:currentColor;stroke:var(--surface);stroke-width:2}.chat-issues h4{margin-bottom:var(--s-1);color:var(--text-2);font-size:var(--fs-xs);font-weight:600}.chat-issues ul{display:grid;grid-gap:var(--s-1);gap:var(--s-1)}.chat-issue{display:flex;align-items:flex-start;gap:var(--s-2);font-size:var(--fs-sm)}.chat-issue svg{flex:none;margin-top:3px;color:var(--info)}.chat-issue.warning svg{color:var(--warn)}.chat-issue.critical svg{color:var(--danger)}.chat-issue.good svg{color:var(--good)}.md{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0;overflow-wrap:anywhere}.md blockquote,.md ol,.md p,.md pre,.md ul{margin:0}.md-heading{margin-top:var(--s-1)}.md-heading.md-h1,.md-heading.md-h2{font-size:var(--fs-lg)}.md-list{display:grid;grid-gap:var(--s-1);gap:var(--s-1);padding-left:1.4em}.md-list li>.md-list{margin-top:var(--s-1)}.md-code{padding:1px 5px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-3);font-size:.88em}.md-code,.md-pre{font-family:var(--mono)}.md-pre{max-width:100%;overflow-x:auto;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);line-height:1.5;white-space:pre}.md-quote{display:grid;grid-gap:var(--s-2);gap:var(--s-2);padding-left:var(--s-3);border-left:3px solid var(--border-strong);color:var(--text-2)}.md-rule{width:100%;margin:0;border:0;border-top:1px solid var(--border)}.md-link{color:var(--accent-text);font-weight:500;text-decoration:underline;text-underline-offset:2px}.md-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md)}.md-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.md-table td,.md-table th{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.md-table th{background:var(--surface-2);color:var(--text-2);font-weight:600;white-space:nowrap}.md-table tbody tr:last-child td{border-bottom:0}.md-table .align-right{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.md-table .align-center{text-align:center}@media (max-width:1280px){.chat-layout{grid-template-columns:260px minmax(0,1fr)}.chat-toggle-context{display:inline-flex}.chat-context-pane{position:fixed;top:0;right:0;bottom:0;z-index:160;width:min(380px,92vw);border-radius:0;box-shadow:var(--shadow-3);transform:translateX(100%);visibility:hidden;transition:transform .22s var(--ease),visibility 0s linear .22s}.chat-layout.context-open .chat-context-pane{transform:none;visibility:visible;transition:transform .22s var(--ease),visibility 0s}.chat-layout.context-open .chat-backdrop.context,.chat-layout.list-open .chat-backdrop.list{position:fixed;inset:0;z-index:155;display:block;background:var(--overlay);animation:fade-in .15s ease-out}}@media (max-width:1100px){.rp-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-filters .toolbar-actions{grid-column:1/-1}}@media (max-width:960px){.main:has(>.chat-layout){padding:var(--s-3)}.chat-layout{grid-template-columns:minmax(0,1fr)}.chat-toggle-list{display:inline-grid}.chat-list-pane{position:fixed;top:0;bottom:0;left:0;z-index:160;width:min(320px,88vw);border-radius:0;box-shadow:var(--shadow-3);transform:translateX(-100%);visibility:hidden;transition:transform .22s var(--ease),visibility 0s linear .22s}.chat-layout.list-open .chat-list-pane{transform:none;visibility:visible;transition:transform .22s var(--ease),visibility 0s}}@media (max-width:720px){.rp-app-switcher.row{grid-template-columns:minmax(0,1fr);gap:var(--s-2)}.rp-app-option{min-height:0;padding:var(--s-2) var(--s-3)}.rp-card{padding:var(--s-4)}.rp-filters,.rp-period-fields{grid-template-columns:minmax(0,1fr)}.rp-headline{padding:var(--s-3) var(--s-4);font-size:var(--fs-md)}.rp-bars li{grid-template-columns:minmax(0,1fr) auto;gap:6px var(--s-3)}.rp-bar-track{grid-row:2}.rp-bar-status,.rp-bar-track{grid-column:1/-1}.rp-bar-status:empty{display:none}.rp-history.table-wrap{border:0;background:transparent}.rp-stack-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.rp-stack-table,.rp-stack-table tbody,.rp-stack-table td,.rp-stack-table tr{display:block;width:100%}.rp-stack-table tbody{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.rp-stack-table tr{padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.rp-stack-table td{display:flex;justify-content:space-between;gap:var(--s-3);padding:4px 0;border:0;white-space:normal}.rp-stack-table td[data-label]:before{content:attr(data-label);flex:none;color:var(--muted);font-size:var(--fs-xs);font-weight:600}.rp-stack-table td.rp-history-title{display:grid;min-width:0;padding-bottom:var(--s-2)}.rp-stack-table td.rp-history-title:before{display:none}.rp-stack-table tbody tr:hover td{background:transparent}.rp-stack-table .actions-col{width:100%;padding-top:var(--s-2);text-align:left}.rp-stack-table .table-actions{justify-content:flex-start}.chat-scroll{padding:var(--s-4) var(--s-3)}.chat-toolbar{padding:var(--s-2) var(--s-3)}.chat-composer{margin:0 var(--s-2)}.chat-composer-hint{display:none}.chat-count{flex:1 1}.chat-msg{grid-template-columns:28px minmax(0,1fr);gap:var(--s-2)}.chat-msg.user{grid-template-columns:minmax(0,1fr) 28px}.chat-avatar{width:28px;height:28px}.chat-welcome{margin:var(--s-4) auto}.chat-context-pane{top:auto;left:0;width:100%;max-height:86dvh;border-radius:var(--r-lg) var(--r-lg) 0 0;transform:translateY(100%)}}@media print{:root,:root[data-theme=dark]{--bg:#ffffff;--surface:#ffffff;--surface-2:#f7f9fc;--surface-3:#eef2f7;--border:#e1e7ef;--border-strong:#c9d3e0;--track:#e4e9f0;--text:#0f1b2d;--text-2:#3d4b5f;--muted:#5b6878;--accent:#0077a8;--accent-soft:#e3f4fb;--accent-text:#00628b;--good:#13804b;--good-fill:#1f9d5c;--warn:#8a5300;--warn-fill:#e09a14;--danger:#c0262d;--danger-bg:#fdecec;--danger-fill:#d93b3b;--neutral-fill:#9aa6b5;--chart-grid:#e8ecf2;--chart-axis:#c9d3e0;color-scheme:light}body{background:#ffffff}.breadcrumbs,.chart-card-actions,.rp-menu,.rp-report-actions,.rp-report-foot,.skip-link{display:none!important}.main{max-width:none;padding:0}.rp-report .kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chart-card,.rp-headline,.stat-tile{box-shadow:none;page-break-inside:avoid;break-inside:avoid}.rp-report-section{page-break-inside:auto;break-inside:auto}.table-wrap.tall{max-height:none;overflow:visible}.rp-headline{border-left-width:4px}.rp-chart-data{display:none}:root,:root[data-theme=dark]{--rp-comfortable:#1b9e6b;--rp-too-cold:#4a3aa7;--rp-too-hot:#d6452f;--rp-too-dry:#b07d12;--rp-completeness:#0b3d5c;--rp-reference:#5b6878;--rp-previous:#b8c2cf;--rp-insight-bg:#eef6fc}.rp-insight{page-break-inside:avoid;break-inside:avoid}}:root{--series-mould:#b03a72;--series-mould-max:#cf6f9b;--series-outdoor:#5f6f86}:root[data-theme=dark]{--series-mould:#e47aab;--series-mould-max:#b5658c;--series-outdoor:#9aa8bd}.legend-key.dash{width:16px;height:0;border-top:2px dashed}.node-value.tone-info .node-value-state{background:var(--info-bg);color:var(--info)}.node-value-state{display:inline-flex;align-items:center;gap:3px}.node-value-sub{color:var(--muted);font-size:11px;line-height:1.3}.node-values:has(.mould-value){grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.mould-pill{gap:4px}.mould-pill svg{flex:none}.mould-info{margin-top:var(--s-2);color:var(--text-2);font-size:var(--fs-sm)}.mould-info>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:2px 4px;border-radius:var(--r-sm);color:var(--accent-text);font-weight:500;cursor:pointer;list-style:none}.mould-info>summary::-webkit-details-marker{display:none}.mould-info>summary:focus-visible{outline:none;box-shadow:var(--ring)}.mould-info-body{display:grid;grid-gap:var(--s-2);gap:var(--s-2);max-width:72ch;margin-top:var(--s-2);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);line-height:1.5}.mould-info-body ol,.mould-info-body ul{margin:0;padding-left:1.25rem}.mould-info-body ol{font-family:var(--mono);font-size:var(--fs-xs)}.mould-info-heading{margin-top:var(--s-1);color:var(--text);font-weight:600}.mould-info-params{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0}.mould-info-params dt{color:var(--muted);font-size:var(--fs-xs)}.mould-info-params dd{margin:2px 0 0;color:var(--text);font-weight:600}.mould-summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-3);font-size:var(--fs-sm)}.mould-list{display:grid;margin:0;padding:0;list-style:none}.mould-list li+li{border-top:1px solid var(--border)}.mould-list a{display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-2) var(--s-1);border-radius:var(--r-sm)}.mould-list a:hover{background:var(--surface-2)}.mould-rank{color:var(--muted);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.mould-list-name{display:grid;min-width:0}.mould-list-name small,.mould-list-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mould-list-name strong{font-size:var(--fs-sm);font-weight:600}.mould-list-name small{color:var(--muted);font-size:var(--fs-xs)}.mould-bar{display:block;height:4px;margin-top:4px;overflow:hidden;border-radius:var(--r-pill);background:var(--track)}.mould-bar>span{display:block;height:100%;border-radius:inherit;background:var(--series-mould)}@media (forced-colors:active){.mould-bar>span{background:CanvasText}}.chart-card-head{flex-wrap:wrap}.chart-card-head>div:first-child{flex:1 1 200px;min-width:0}:root{--series-heat:#e0622c;--series-cost:#5a46b8;--series-credit:#13804b;--series-dp:#2a78d6;--series-flow:#d0452a;--series-return:#2a78d6;--series-delta:#5a46b8;--series-rate:#0f8a7e;--series-score:#0077a8;--poor:#b4480a;--poor-bg:#fdeee3;--poor-fill:#ea7a2c;--band-a:#007f4e;--band-b:#2a9d48;--band-c:#8cc63f;--band-d:#ffcc00;--band-e:#f7ac4b;--band-f:#ec7a24;--band-g:#d7263d;--band-ink-light:#ffffff;--band-ink-dark:#10202f}:root[data-theme=dark]{--series-heat:#f0763f;--series-cost:#9a8cf0;--series-credit:#3fcf86;--series-dp:#5a9eef;--series-flow:#f2714f;--series-return:#5a9eef;--series-delta:#9a8cf0;--series-rate:#2fc3b2;--series-score:#5ccaf5;--poor:#fb9a5a;--poor-bg:rgba(251,154,90,0.13);--poor-fill:#e8823d;--band-a:#1f9a63;--band-b:#37ad57;--band-c:#93c94c;--band-d:#f2c522;--band-e:#f0a54b;--band-f:#e5782b;--band-g:#e04456}.bl-chart-skeletons,.bl-health-dist,.bl-issues,.bl-perf,.bl-section,.bl-stack-sections,.bl-table-skeleton,.bl-usage-chart,.bl-usage-charts{grid-template-columns:minmax(0,1fr)}.bl-section{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0}.bl-section-title{font-size:var(--fs-lg)}.bl-two{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-stack-sections,.bl-two{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.bl-anchor>.alert,.bl-anchor>.chart-card{margin-top:var(--s-4)}.bl-anchor{scroll-margin-top:calc(var(--topbar-h) + 64px)}.bl-notice{margin:0}.bl-subheading{font-size:var(--fs-md);font-weight:600}.bl-stale{margin-left:var(--s-2)}.bl-subheading small{color:var(--muted);font-weight:400}.bl-eyebrow{color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.bl-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-nowrap{white-space:nowrap}.bl-cell-sub{white-space:nowrap}.bl-cell-sub,.bl-fact-sub{margin-top:2px;color:var(--muted);font-size:var(--fs-xs)}.bl-fact-sub{display:block;font-weight:400}.bl-footnote{color:var(--muted);font-size:var(--fs-xs)}.bl-dim{opacity:.6;transition:opacity .2s}.bl-section-nav{position:-webkit-sticky;position:sticky;top:var(--topbar-h);z-index:20;margin:0 calc(var(--s-2) * -1);padding:var(--s-2);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.bl-section-nav ul{display:flex;gap:var(--s-2);margin:0;padding:0;overflow-x:auto;list-style:none;scrollbar-width:none}.bl-section-nav a{display:inline-flex;align-items:center;min-height:34px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;white-space:nowrap}.bl-section-nav a:hover{border-color:var(--accent);color:var(--accent-text)}.pill.bl-health.good{background:var(--good-bg);color:var(--good)}.pill.bl-health.fair{background:var(--warn-bg);color:var(--warn)}.pill.bl-health.poor{background:var(--poor-bg);color:var(--poor)}.pill.bl-health.critical{background:var(--danger-bg);color:var(--danger)}.pill.bl-health.unknown{background:var(--neutral-bg);color:var(--neutral)}.bl-health-score{padding-left:6px;border-left:1px solid;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-band{display:inline-grid;place-items:center;width:28px;height:24px;flex:none;border-radius:var(--r-sm);background:var(--neutral-bg);color:var(--neutral);font-size:var(--fs-sm);font-weight:700;line-height:1}.bl-band.sm{width:24px;height:20px;font-size:var(--fs-xs)}.bl-band.lg{width:64px;height:64px;border-radius:var(--r-md);font-size:2rem}.band-a{background:var(--band-a);color:var(--band-ink-light)}.band-b{background:var(--band-b)}.band-b,.band-c{color:var(--band-ink-dark)}.band-c{background:var(--band-c)}.band-d{background:var(--band-d)}.band-d,.band-e{color:var(--band-ink-dark)}.band-e{background:var(--band-e)}.band-f{background:var(--band-f);color:var(--band-ink-dark)}.band-g{background:var(--band-g);color:var(--band-ink-light)}.bl-meta-band{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-xs);font-weight:600}.bl-credit{display:grid;grid-gap:6px;gap:6px;min-width:140px}.bl-credit.compact{gap:4px;max-width:200px}.bl-credit-text{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px var(--s-2)}.bl-credit-text strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-credit-days{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}.bl-credit-days.warn{color:var(--warn);font-weight:600}.bl-credit-track{position:relative;height:6px;border-radius:var(--r-pill);background:var(--track)}.bl-credit:not(.compact) .bl-credit-track{height:10px}.bl-credit-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--good-fill)}.bl-credit-fill.warn{background:var(--warn-fill)}.bl-credit-fill.danger{background:var(--danger-fill)}.bl-credit-notch{position:absolute;top:-3px;bottom:-3px;width:2px;border-radius:1px;background:var(--text-2);opacity:.55}.bl-credit-cell .pill{margin-top:6px}.bl-health-dist{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.bl-stack{display:flex;gap:2px;height:14px;overflow:hidden;border-radius:var(--r-sm)}.bl-stack-part{min-width:4px}.bl-stack-part.good{background:var(--good-fill)}.bl-stack-part.fair{background:var(--warn-fill)}.bl-stack-part.poor{background:var(--poor-fill)}.bl-stack-part.critical{background:var(--danger-fill)}.bl-stack-part.unknown{background:var(--neutral-fill)}.bl-health-legend{display:grid;grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none}.bl-health-legend a,.bl-health-legend li>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-2);border-radius:var(--r-md)}.bl-health-legend a:hover{background:var(--surface-2)}.bl-health-key{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm)}.bl-health-key.good{background:var(--good-bg);color:var(--good)}.bl-health-key.fair{background:var(--warn-bg);color:var(--warn)}.bl-health-key.poor{background:var(--poor-bg);color:var(--poor)}.bl-health-key.critical{background:var(--danger-bg);color:var(--danger)}.bl-health-key.unknown{background:var(--neutral-bg);color:var(--neutral)}.bl-health-legend-text{display:grid}.bl-health-legend-count small,.bl-health-legend-text small{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.bl-health-legend-count{display:grid;justify-items:end;font-size:var(--fs-lg);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.bl-ladder{display:grid;grid-gap:4px;gap:4px;margin:0;padding:0;list-style:none}.bl-ladder a,.bl-ladder li>div{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:2px;border-radius:var(--r-sm)}.bl-ladder a:hover{background:var(--surface-2)}.bl-ladder-step{display:flex;align-items:center;gap:var(--s-2);min-width:0;height:28px;padding:0 var(--s-2);-webkit-clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:4px 0 0 4px;white-space:nowrap}.bl-ladder-step strong{font-size:var(--fs-md)}.bl-ladder-step small{overflow:hidden;font-size:11px;font-weight:500;text-overflow:ellipsis}.bl-ladder-count{display:grid;grid-template-columns:minmax(0,1fr) 3.5ch;align-items:center;grid-gap:var(--s-2);gap:var(--s-2)}.bl-ladder-count strong{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-ladder-bar{height:8px;overflow:hidden;border-radius:var(--r-pill);background:var(--track)}.bl-ladder-bar>span{display:block;height:100%;min-width:2px;border-radius:inherit;background:var(--neutral-fill)}.bl-ladder-note{padding-top:var(--s-2);color:var(--muted);font-size:var(--fs-xs)}.bl-rank-list{display:grid;margin:0;padding:0;list-style:none;counter-reset:rank}.bl-rank-list li+li{border-top:1px solid var(--border)}.bl-rank-list a{display:grid;grid-template-columns:2ch minmax(0,1fr) auto auto;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-2) var(--s-1);border-radius:var(--r-sm)}.bl-rank-list a:before{counter-increment:rank;content:counter(rank);color:var(--muted);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.bl-rank-list a:hover{background:var(--surface-2)}.bl-rank-list a:hover .bl-rank-name strong{color:var(--accent-text)}.bl-rank-name,.bl-rank-value{display:grid;min-width:0}.bl-rank-name small,.bl-rank-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bl-rank-name strong{font-size:var(--fs-sm);font-weight:600}.bl-rank-name small,.bl-rank-value small{color:var(--muted);font-size:var(--fs-xs)}.bl-rank-value{justify-items:end;font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-rank-list li:has(.bl-health) a{grid-template-columns:2ch minmax(0,1fr) auto}.bl-tariff-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:0}.bl-tariff-strip div{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-2)}.bl-tariff-strip dt{color:var(--muted);font-size:var(--fs-xs)}.bl-tariff-strip dd{margin:2px 0 0;font-weight:600}.bl-tariff-strip dd small{color:var(--muted);font-weight:400}.bl-usage-chart{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.bl-chart-total{display:flex;align-items:baseline;gap:var(--s-2);color:var(--muted);font-size:var(--fs-sm)}.bl-chart-total strong{color:var(--text);font-size:var(--fs-xl);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-temp-strip{padding-top:var(--s-2);border-top:1px dashed var(--border)}.bl-temp-label{display:block;margin-bottom:2px;color:var(--muted);font-size:var(--fs-xs);font-weight:500}.bl-range-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4)}.bl-chart-skeletons,.bl-usage-charts{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.bl-filters{grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(150px,1fr)) auto}.bl-hiu-filters{grid-template-columns:minmax(220px,2fr) minmax(200px,1fr) auto}.bl-topup-filters{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(180px,1fr)) auto}.bl-sort-select{display:none}.bl-results{display:flex;align-items:center;gap:var(--s-3);min-height:20px;color:var(--muted);font-size:var(--fs-sm)}.bl-updating{color:var(--accent-text);font-weight:500}.bl-table-skeleton{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.bl-sort{display:inline-flex;align-items:center;gap:4px;margin:-4px -6px;padding:4px 6px;border:0;border-radius:var(--r-sm);background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.bl-sort.active,.bl-sort:hover{color:var(--text)}.bl-sort svg{opacity:.6}.bl-sort.active svg{color:var(--accent-text);opacity:1}.table th.numeric .bl-sort{flex-direction:row-reverse}.bl-card-list{display:none;gap:var(--s-3);margin:0;padding:0;list-style:none}.bl-flat-card{display:grid;grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.bl-flat-card:hover{border-color:var(--accent)}.bl-flat-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.bl-flat-card-head>span:first-child{display:grid;min-width:0}.bl-flat-card-head strong{color:var(--accent-text)}.bl-flat-card-facts small,.bl-flat-card-foot small,.bl-flat-card-head small{color:var(--muted);font-size:var(--fs-xs)}.bl-flat-card-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3)}.bl-flat-card-facts>span{display:grid;align-content:start;justify-items:start;grid-gap:2px;gap:2px}.bl-flat-card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.bl-account{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);grid-gap:var(--s-4);gap:var(--s-4);align-items:start}.bl-balance-card{display:grid;grid-gap:var(--s-2);gap:var(--s-2);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.bl-balance-value{font-size:2.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-balance-card .bl-credit-text{display:none}.bl-balance-days{color:var(--text-2);font-size:var(--fs-sm)}.bl-balance-note{color:var(--muted);font-size:var(--fs-xs)}.bl-facts .metric-value .pill{margin-bottom:2px}.bl-ledger-entry{min-width:240px}.bl-ledger-entry small{display:block;margin-top:2px;color:var(--muted);font-size:var(--fs-xs)}.bl-ledger-type{display:inline-flex;align-items:center;gap:6px;font-weight:600}.bl-ledger-type.consumption svg{color:var(--series-heat)}.bl-ledger-type.opening_credit svg,.bl-ledger-type.top_up svg{color:var(--good)}.bl-ledger-type.adjustment svg{color:var(--info)}.bl-amount{font-weight:600;white-space:nowrap}.bl-amount svg{margin-right:4px;vertical-align:-2px}.bl-amount.credit{color:var(--good)}.bl-amount.debit{color:var(--text)}.bl-amount.debit svg{color:var(--muted)}.bl-perf{display:grid;grid-gap:var(--s-5);gap:var(--s-5)}.bl-perf .bl-facts{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.bl-perf .bl-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.bl-perf .bl-facts{grid-template-columns:minmax(0,1fr)}}.bl-perf-summary{display:flex;align-items:center;gap:var(--s-4)}.bl-perf-summary>div{display:grid;grid-gap:4px;gap:4px}.bl-perf-headline{font-size:var(--fs-xl)}.bl-perf-headline strong{font-weight:600}.bl-perf-meaning,.bl-perf-rank{color:var(--text-2)}.bl-perf-rank{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm)}.bl-gauge{margin:0;padding:var(--s-6) 0 0}.bl-gauge-scale{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:2px;gap:2px}.bl-gauge-band{display:grid;place-items:center;height:30px;font-size:var(--fs-sm);font-weight:700;opacity:.55}.bl-gauge-band:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.bl-gauge-band:nth-child(7){border-radius:0 var(--r-sm) var(--r-sm) 0}.bl-gauge-band.current{opacity:1;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text);z-index:1}.bl-gauge-marker{top:-8px;bottom:-8px;z-index:2;width:3px;margin-left:-1.5px;border-radius:2px;box-shadow:0 0 0 2px var(--surface)}.bl-gauge-marker,.bl-gauge-value{position:absolute;background:var(--text)}.bl-gauge-value{bottom:calc(100% + 4px);left:50%;padding:1px 8px;border-radius:var(--r-pill);color:var(--surface);font-size:var(--fs-xs);font-weight:600;white-space:nowrap;transform:translateX(-50%)}.bl-gauge-benchmark{position:absolute;top:100%;width:0;height:12px;border-left:2px dashed var(--muted)}.bl-gauge-benchmark span{position:absolute;top:14px;left:0;color:var(--text-2);font-size:11px;font-weight:600;white-space:nowrap;transform:translateX(-50%)}.bl-gauge-ticks{position:relative;height:32px;margin-top:2px}.bl-gauge-ticks span{position:absolute;top:0;color:var(--muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transform:translateX(-50%)}.bl-gauge-ticks span:nth-child(3){display:none}.bl-hiu-top{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);grid-gap:var(--s-4);gap:var(--s-4);align-items:start}.bl-score-card{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-4);border:1px solid var(--border);border-left-width:4px;border-radius:var(--r-md);background:var(--surface-2)}.bl-score-card.good{border-left-color:var(--good-fill)}.bl-score-card.fair{border-left-color:var(--warn-fill)}.bl-score-card.poor{border-left-color:var(--poor-fill)}.bl-score-card.critical{border-left-color:var(--danger-fill)}.bl-score-card.unknown{border-left-color:var(--neutral-fill)}.bl-score-text{display:grid;justify-items:start;grid-gap:6px;gap:6px;font-size:var(--fs-sm)}.bl-dial{--dial:var(--neutral-fill);display:grid;place-items:center;width:96px;height:96px;flex:none;border-radius:50%;background:conic-gradient(var(--dial) 0deg var(--score-deg,0deg),var(--track) var(--score-deg,0deg) 1turn)}.bl-dial.good{--dial:var(--good-fill);color:var(--good)}.bl-dial.fair{--dial:var(--warn-fill);color:var(--warn)}.bl-dial.poor{--dial:var(--poor-fill);color:var(--poor)}.bl-dial.critical{--dial:var(--danger-fill);color:var(--danger)}.bl-dial.unknown{color:var(--neutral)}.bl-dial-inner{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:var(--surface-2);line-height:1.05}.bl-dial-inner strong{color:var(--text);font-size:var(--fs-2xl);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-dial-inner small{color:var(--muted);font-size:10px}.bl-issue-list,.bl-issues{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.bl-issue-list{margin:0;padding:0;list-style:none}.bl-issue{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:var(--s-3);gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-left:4px solid var(--warn-fill);border-radius:var(--r-md);background:var(--surface)}.bl-issue.critical{border-left-color:var(--danger-fill)}.bl-issue-icon{padding-top:2px;color:var(--warn)}.bl-issue.critical .bl-issue-icon{color:var(--danger)}.bl-issue-body{display:grid;grid-gap:4px;gap:4px;font-size:var(--fs-sm)}.bl-issue-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);font-size:var(--fs-md)}.bl-issue-message{color:var(--text)}.bl-issue-why{color:var(--text-2)}.bl-issue-action{display:flex;align-items:flex-start;gap:6px;color:var(--accent-text);font-weight:500}.bl-issue-action svg{flex:none;margin-top:3px}.bl-no-issues{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--good-bg);color:var(--good);font-size:var(--fs-sm);font-weight:500}.bl-readings{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:0;padding:0;list-style:none}.bl-reading{display:grid;align-content:start;grid-gap:2px;gap:2px;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.bl-reading.warn{border-color:color-mix(in srgb,var(--warn-fill) 55%,var(--border))}.bl-reading.bad{border-color:color-mix(in srgb,var(--danger-fill) 55%,var(--border))}.bl-reading-label{color:var(--text-2);font-size:var(--fs-xs);font-weight:500}.bl-reading-value{font-size:var(--fs-xl);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-reading-range{color:var(--muted);font-size:var(--fs-xs)}.bl-reading-check{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:var(--fs-xs);font-weight:600}.bl-reading-check.ok{color:var(--good)}.bl-reading-check.warn{color:var(--warn)}.bl-reading-check.bad{color:var(--danger)}#hiu>*+*,#usage>*+*{margin-top:var(--s-4)}.bl-health-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:var(--s-3);gap:var(--s-3)}.bl-health-chip{display:grid;justify-items:start;grid-gap:2px;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-top:4px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;box-shadow:var(--shadow-1)}.bl-health-chip:hover{border-color:var(--accent)}.bl-health-chip.good{border-top-color:var(--good-fill)}.bl-health-chip.fair{border-top-color:var(--warn-fill)}.bl-health-chip.poor{border-top-color:var(--poor-fill)}.bl-health-chip.critical{border-top-color:var(--danger-fill)}.bl-health-chip.unknown{border-top-color:var(--neutral-fill)}.bl-health-chip.all{border-top-color:var(--accent)}.bl-health-chip.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.bl-health-chip-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-sm);font-weight:500}.bl-health-chip strong{font-size:var(--fs-2xl);font-weight:600;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-health-chip small{color:var(--muted);font-size:var(--fs-xs)}.bl-issue-summary{display:grid;grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none;font-size:var(--fs-sm)}.bl-issue-summary li{display:flex;align-items:center;gap:6px}.bl-issue-summary li svg{flex:none}.bl-issue-summary li.warning svg{color:var(--warn)}.bl-issue-summary li.critical svg{color:var(--danger)}.bl-issue-summary li.more{padding-left:19px;color:var(--muted);font-size:var(--fs-xs)}.panel.bl-prose>*+*{margin-top:var(--s-4)}.bl-prose p,.bl-rule-list,.bl-steps{max-width:80ch;color:var(--text-2)}.bl-rule-list,.bl-steps{display:grid;grid-gap:var(--s-3);gap:var(--s-3);margin:0;padding-left:var(--s-5)}.bl-rule-list strong,.bl-steps strong{color:var(--text)}.bl-example{display:grid;grid-gap:4px;gap:4px;max-width:80ch;padding:var(--s-3) var(--s-4);border-left:4px solid var(--accent);border-radius:var(--r-md);background:var(--accent-soft)}.bl-example p{color:var(--text)}.bl-band-table td:first-child{width:1%}.bl-health-bands{display:grid;grid-gap:var(--s-2);gap:var(--s-2);margin:0;padding:0;list-style:none;font-size:var(--fs-sm)}.bl-health-bands li{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;grid-gap:var(--s-3);gap:var(--s-3);color:var(--text-2)}.bl-health-bands .pill{justify-self:start}@media (max-width:1280px){.bl-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.bl-filters .bl-search{grid-column:1/-1}}@media (max-width:1100px){.bl-account,.bl-hiu-top,.bl-two{grid-template-columns:minmax(0,1fr)}}@media (max-width:900px){.bl-table-wrap{display:none}.bl-card-list{display:grid}.bl-sort-select{display:block}.bl-filters,.bl-hiu-filters,.bl-topup-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-filters .toolbar-actions,.bl-hiu-filters .toolbar-actions,.bl-topup-filters .toolbar-actions{grid-column:1/-1;justify-content:flex-start}}@media (max-width:720px){.bl-filters,.bl-hiu-filters,.bl-topup-filters{grid-template-columns:minmax(0,1fr)}.bl-account .bl-facts,.bl-health-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-health-filter .bl-health-chip.all{grid-column:1/-1}.bl-rank-list a{grid-template-columns:2ch minmax(0,1fr) auto}.bl-ladder-step small,.bl-rank-list .bl-band{display:none}.bl-ladder a,.bl-ladder li>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bl-perf-summary{align-items:flex-start}.bl-perf-headline{font-size:var(--fs-lg)}.bl-gauge-benchmark span,.bl-gauge-ticks span{font-size:10px}.bl-gauge-ticks span:nth-child(2n){display:none}.bl-health-bands li{grid-template-columns:minmax(0,1fr);gap:4px}.bl-section-nav{margin:0 calc(var(--s-4) * -1);padding:var(--s-2) var(--s-4)}.bl-stack-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.bl-stack-table,.bl-stack-table tbody{display:block;width:100%}.bl-stack-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"entry amount" "date balance";grid-gap:2px var(--s-3);gap:2px var(--s-3);padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border)}.bl-stack-table tbody tr:last-child{border-bottom:0}.bl-stack-table td{padding:0;border:0}.bl-stack-table td:first-child{grid-area:date;color:var(--muted);font-size:var(--fs-xs)}.bl-stack-table td:nth-child(2){grid-area:entry;min-width:0}.bl-stack-table td:nth-child(3){display:none}.bl-stack-table td:nth-child(4){grid-area:amount}.bl-stack-table td:nth-child(5){grid-area:balance;color:var(--muted);font-size:var(--fs-xs)}.bl-stack-table td:nth-child(5):before{content:"Balance "}.bl-stack-table tbody tr:hover td{background:transparent}}@media (forced-colors:active){.bl-band,.bl-credit-track,.bl-gauge-band,.bl-ladder-step,.bl-stack{border:1px solid CanvasText}}@media print{.bl-range-row .segmented,.bl-section-nav{display:none!important}}.bl-usage-explorer{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.bl-usage-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-4)}.bl-period-controls{min-width:0;max-width:100%}.bl-period-segmented{max-width:100%;overflow-x:auto;scrollbar-width:thin}.bl-period-segmented .segmented{flex-wrap:nowrap}.bl-period-select{display:none}.bl-custom-range input[type=date],.bl-custom-range select,.bl-period-select select{min-height:36px;padding:0 var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md)}.bl-usage-summary{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin:0}.bl-usage-summary div{display:grid;grid-gap:2px;gap:2px}.bl-usage-summary dt{color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.bl-usage-summary dd{margin:0;color:var(--text);font-size:var(--fs-sm);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-custom-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)}.bl-custom-range label{display:grid;grid-gap:4px;gap:4px;color:var(--text-2);font-size:var(--fs-xs);font-weight:600}.bl-custom-icon{align-self:center;color:var(--accent-text)}.bl-custom-error,.bl-custom-hint{flex-basis:100%;margin:0;font-size:var(--fs-sm)}.bl-custom-error{color:var(--danger)}.bl-custom-hint{color:var(--muted)}@media (max-width:720px){.bl-period-segmented{display:none}.bl-period-select{display:block}.bl-period-select select{width:100%}.bl-period-controls{flex:1 1 100%}.bl-custom-range .button,.bl-custom-range label{flex:1 1 140px}}@media print{.bl-custom-range,.bl-period-controls{display:none!important}}.twin-head{flex-wrap:wrap;gap:var(--s-2) var(--s-4)}.twin-live{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;color:var(--good);font-size:var(--fs-sm);font-weight:600}.twin-live.paused{color:var(--warn)}.twin-live .muted{font-weight:400}.twin-notice{margin-bottom:var(--s-3)}.twin-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-gap:var(--s-4);gap:var(--s-4);align-items:start}.twin-card{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0;margin:0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)}.twin-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2)}.twin-card-head figcaption{display:grid;grid-gap:2px;gap:2px;min-width:0}.twin-card-head figcaption .muted{font-size:var(--fs-sm)}.twin-tools{display:flex;flex-wrap:wrap;gap:var(--s-2)}.twin-toggle.on{border-color:color-mix(in srgb,var(--accent) 55%,var(--border-strong));background:var(--accent-soft);color:var(--accent-text)}.twin-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-md);background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%),var(--surface);border:1px solid var(--border)}.twin-stage,.twin-stage.meter{height:560px}.twin-stage.interactive canvas{cursor:-webkit-grab;cursor:grab}.twin-stage.interactive canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.twin-stage>.skeleton{border-radius:0}.twin-stage-flag{position:absolute;top:var(--s-2);left:50%;z-index:25;padding:4px 10px;border-radius:var(--r-pill);background:var(--warn-bg);color:var(--warn);font-size:var(--fs-xs);font-weight:600;transform:translateX(-50%);white-space:nowrap}.twin-stage-error{display:grid;place-items:center;height:100%;margin:0;padding:var(--s-4);color:var(--muted);text-align:center}.twin-canvas-wrap{position:relative;width:100%;height:100%}.twin-overlay{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.twin-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.twin-leaders line{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;opacity:.85}.twin-anchor{position:absolute;top:0;left:0;will-change:transform}.twin-anchor>.twin-caption,.twin-marker.centred{transform:translate(-50%,-50%)}.twin-tag{display:flex;align-items:center;gap:8px;width:max-content;max-width:220px;padding:6px 10px 6px 6px;border:1px solid var(--border-strong);border-left:3px solid var(--neutral-fill);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-1);color:var(--text);font-family:var(--font);line-height:1.2;white-space:nowrap;transform:translateY(-50%)}.twin-tag.left{transform:translate(-100%,-50%)}.twin-tag.ok{border-left-color:var(--good-fill)}.twin-tag.warn{border-left-color:var(--warn-fill)}.twin-tag.bad{border-left-color:var(--danger-fill)}.twin-tag-body{display:grid;min-width:0}.twin-tag-title{color:var(--muted);font-size:11px}.twin-tag strong{font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.twin-marker,.twin-tag-n{display:inline-grid;flex:none;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--neutral-fill);color:#fff;font-family:var(--font);font-size:11px;font-weight:700}.twin-marker{box-shadow:0 0 0 2px var(--surface)}.twin-marker.ok,.twin-tag.ok .twin-tag-n{background:var(--good-fill)}.twin-marker.warn,.twin-tag.warn .twin-tag-n{background:var(--warn-fill)}.twin-marker.bad,.twin-tag.bad .twin-tag-n{background:var(--danger-fill)}.twin-caption{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--text-2);font-family:var(--font);font-size:11px;font-weight:600;white-space:nowrap}.twin-legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);color:var(--text-2);font-size:var(--fs-xs)}.twin-legend-item{display:inline-flex;align-items:center;gap:6px}.twin-scale{width:64px;border-radius:var(--r-pill)}.twin-dots,.twin-scale{display:inline-block;height:8px}.twin-dots{width:26px;background:radial-gradient(circle,var(--accent) 2.5px,transparent 3px) 0 50% /9px 8px repeat-x}.twin-glow{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--warn-fill);box-shadow:0 0 6px 1px var(--warn-fill)}.twin-faults{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none;font-size:var(--fs-sm)}.twin-faults li{display:flex;align-items:flex-start;gap:6px;padding:6px 10px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--text)}.twin-faults li>svg{flex:none;margin-top:2px;color:var(--warn)}.twin-faults li.critical{background:var(--danger-bg)}.twin-faults li.critical>svg{color:var(--danger)}.twin-readouts{display:grid;grid-gap:0;gap:0;margin:0;padding:0;list-style:none}.twin-readout{display:flex;align-items:center;gap:var(--s-2);padding:8px 2px;border-top:1px solid var(--border)}.twin-readout:first-child{border-top:0}.twin-readout-text{display:grid;flex:1 1;min-width:0}.twin-readout-title{font-size:var(--fs-sm);font-weight:600}.twin-readout-note{color:var(--muted);font-size:var(--fs-xs)}.twin-readout-value{display:grid;justify-items:end;grid-gap:2px;gap:2px;text-align:right}.twin-readout-value strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.twin-note{margin:0;font-size:var(--fs-xs)}@media (max-width:1279px){.twin-grid{grid-template-columns:minmax(0,1fr)}.twin-stage.meter{height:480px}}@media (max-width:560px){.twin-card{padding:var(--s-2)}.twin-stage,.twin-stage.meter{height:420px}}@media print{.twin-section{display:none!important}}.fp-panel{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--s-3);gap:var(--s-3)}.fp-panel>*,.twin-card>*{min-width:0}.fp-head{flex-wrap:wrap;gap:var(--s-2) var(--s-4)}.fp-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3)}.fp-note{margin:0;font-size:var(--fs-sm)}.fp-stage{height:560px}.fp-stage.editing{outline:2px dashed color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:2px}.estate-stage{height:600px}.fp-editor{display:grid;grid-gap:var(--s-2);gap:var(--s-2);padding:var(--s-3);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:var(--r-md);background:var(--accent-soft)}.fp-editor-help{margin:0;color:var(--text-2);font-size:var(--fs-sm)}.fp-editor-actions,.fp-editor-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s-2) var(--s-3)}.estate-area,.fp-editor-fields label{display:grid;grid-gap:4px;gap:4px;font-size:var(--fs-sm);font-weight:600}.estate-area select,.fp-editor-fields select,.fp-room-select select{min-height:36px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font:inherit;font-weight:400}.estate-area{grid-auto-flow:column;align-items:center}.fp-message{margin:0;font-size:var(--fs-sm);font-weight:600}.fp-message.good{color:var(--good)}.fp-message.danger{color:var(--danger)}.fp-room-label{display:inline-grid;justify-items:center;padding:3px 8px;border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text-2);font-family:var(--font);font-size:11px;font-weight:600;line-height:1.25;white-space:nowrap;transform:translate(-50%,-50%)}.fp-room-label strong{color:var(--text);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fp-room-label.compact{padding:2px 6px;font-size:10px}.fp-tag{display:flex;align-items:center;gap:8px;width:max-content;max-width:230px;padding:5px 9px 5px 5px;border:1px solid var(--border-strong);border-left:3px solid var(--neutral-fill);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-1);color:var(--text);font-family:var(--font);line-height:1.2;white-space:nowrap;transform:translate(-50%,-100%)}.fp-tag.short{gap:5px;padding:3px 7px 3px 3px;font-size:11px}.fp-tag.short .twin-tag-n{width:16px;height:16px;font-size:10px}.fp-tag.ok{border-left-color:var(--good-fill)}.fp-tag.warn{border-left-color:var(--warn-fill)}.fp-tag.bad{border-left-color:var(--danger-fill)}.fp-tag.stale{opacity:.7}.fp-tag strong{font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fp-tag .twin-tag-n{order:0}.fp-tag.ok .twin-tag-n{background:var(--good-fill)}.fp-tag.warn .twin-tag-n{background:var(--warn-fill)}.fp-tag.bad .twin-tag-n{background:var(--danger-fill)}.fp-swatch{display:inline-block;width:12px;height:12px;border-radius:3px}.twin-scale.wide{width:110px}.fp-room-select{flex:none}.estate-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0}.estate-stats div{padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.estate-stats dt{color:var(--muted);font-size:var(--fs-xs)}.estate-stats dd{margin:0;font-size:var(--fs-lg);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.estate-tip{display:grid;grid-gap:2px;gap:2px;width:max-content;max-width:240px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-2);color:var(--text-2);font-family:var(--font);font-size:12px;line-height:1.3;transform:translate(-50%,calc(-100% - 6px))}.estate-tip strong{color:var(--text);font-size:13px}.estate-tip small{color:var(--muted)}@media (max-width:560px){.fp-stage{height:440px}.twin-readout{flex-wrap:wrap}.twin-readout-value{flex-basis:100%;justify-items:start;padding-left:28px;text-align:left}.estate-stage{height:460px}}@media print{.fp-panel{display:none!important}}.twin-section{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.twin-section>.twin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.twin-card-title{margin:0;font-size:var(--fs-md)}.twin-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:var(--s-3);gap:var(--s-3);align-items:start}.twin-stage.hiu{height:640px}.twin-aside{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0}.twin-inspector,.twin-model{display:grid;grid-gap:var(--s-2);gap:var(--s-2);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.twin-inspector h3,.twin-model h3{margin:0;font-size:var(--fs-md)}.twin-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2)}.twin-inspector-role{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.45}.twin-inspector-rows{display:grid;grid-gap:0;gap:0;margin:0}.twin-inspector-rows>div{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);padding:7px 0 7px 8px;border-top:1px solid var(--border);border-left:3px solid transparent}.twin-inspector-rows>div:first-child{border-top:0}.twin-inspector-rows>div.ok{border-left-color:var(--good-fill)}.twin-inspector-rows>div.warn{border-left-color:var(--warn-fill)}.twin-inspector-rows>div.bad{border-left-color:var(--danger-fill)}.twin-inspector-rows dt{display:grid;grid-gap:2px;gap:2px;font-size:var(--fs-sm);font-weight:600}.twin-inspector-rows dt small{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.twin-inspector-rows dd{display:grid;justify-items:end;grid-gap:2px;gap:2px;margin:0;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.twin-part-picker{display:grid;grid-gap:4px;gap:4px;padding-top:var(--s-2);border-top:1px solid var(--border);font-size:var(--fs-xs);font-weight:600;color:var(--muted)}.twin-part-picker select{min-height:34px;padding:5px 8px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:400}.twin-part-list{display:flex;flex-wrap:wrap;gap:6px;padding-top:var(--s-2);border-top:1px solid var(--border)}.twin-part{padding:4px 10px;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font:inherit;font-size:var(--fs-xs);cursor:pointer}.twin-part:hover{border-color:var(--muted);color:var(--text)}.twin-part.warning{border-color:var(--warn-fill)}.twin-part.critical{border-color:var(--danger-fill)}.twin-part.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.twin-part:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 35%,transparent)}.twin-timeline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.twin-timeline input[type=range]{flex:1 1 220px;min-width:160px;accent-color:var(--accent)}.twin-timeline-label{min-width:90px;font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.twin-stage-flag.replay{background:var(--info-bg);color:var(--info)}.twin-live.replay{color:var(--info)}.twin-glow.select{background:#0ea5e9;box-shadow:0 0 6px 1px #0ea5e9}.twin-caption.small{padding:1px 6px;font-size:10px}@media (max-width:1279px){.twin-body,.twin-section>.twin-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.twin-stage.hiu{height:460px}}.pagination-pages{display:flex;align-items:center;gap:2px;margin:0;padding:0;list-style:none}.pagination-number{min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:var(--r-md);background:none;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer}.pagination-number:hover{border-color:var(--border);color:var(--text)}.pagination-number.current{border-color:var(--accent-text);background:var(--accent-soft);color:var(--text);font-weight:600}.pagination-number:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pagination-gap{padding:0 4px;color:var(--muted)}@media (max-width:480px){.pagination-gap,.pagination-number:not(.current){display:none}}:root{--bl-map-idle:#c3ccd7;--bl-demand-1:#bcd7f5;--bl-demand-2:#7fb0ea;--bl-demand-3:#3f82d6;--bl-demand-4:#1d4f9a;--bl-map-ink:#10202f}:root[data-theme=dark]{--bl-map-idle:#4a5668;--bl-demand-1:#2a4a72;--bl-demand-2:#3a72b8;--bl-demand-3:#6aa6ee;--bl-demand-4:#b4d4f8;--bl-map-ink:#0b1622}.bl-tone-good{--tone:var(--good-fill);--tone-ink:var(--bl-map-ink)}.bl-tone-fair{--tone:var(--warn-fill);--tone-ink:var(--bl-map-ink)}.bl-tone-poor{--tone:var(--poor-fill);--tone-ink:var(--bl-map-ink)}.bl-tone-critical{--tone:var(--danger-fill);--tone-ink:#ffffff}.bl-tone-unknown{--tone:var(--neutral-fill);--tone-ink:var(--bl-map-ink)}.bl-tone-idle{--tone:var(--bl-map-idle);--tone-ink:var(--bl-map-ink)}.bl-tone-d1{--tone:var(--bl-demand-1);--tone-ink:var(--bl-map-ink)}.bl-tone-d2{--tone:var(--bl-demand-2);--tone-ink:var(--bl-map-ink)}.bl-tone-d3{--tone:var(--bl-demand-3);--tone-ink:#ffffff}.bl-tone-d4{--tone:var(--bl-demand-4);--tone-ink:#ffffff}:root[data-theme=dark] .bl-tone-d3,:root[data-theme=dark] .bl-tone-d4{--tone-ink:var(--bl-map-ink)}.bl-map-bar{align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-3)}.bl-map-bar,.bl-map-layers{display:flex;flex-wrap:wrap}.bl-map-layers{gap:4px;padding:3px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.bl-map-layer{min-height:34px;padding:4px 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.bl-map-layer.on,.bl-map-layer:hover{background:var(--surface);color:var(--text)}.bl-map-layer.on{box-shadow:var(--shadow-1)}.bl-map-layer:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.bl-map-tools{display:flex;flex:1 1 420px;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--s-2)}.bl-map-tools .ghost-button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.bl-map-search{position:relative;flex:1 1 240px;min-width:0;max-width:360px}.bl-map-search .input-with-icon,.bl-map-search input{width:100%}.bl-map-matches{position:absolute;z-index:20;top:calc(100% + 4px);right:0;left:0;display:grid;margin:0;padding:4px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);list-style:none}.bl-map-matches button{display:flex;justify-content:space-between;gap:var(--s-2);width:100%;padding:6px 8px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.bl-map-matches button:focus-visible,.bl-map-matches button:hover{background:var(--surface-2)}.bl-map-matches small{color:var(--muted)}.bl-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:var(--s-4);gap:var(--s-4);align-items:start;margin-bottom:var(--s-4)}.bl-map-stage{position:relative;min-width:0}.bl-map-shell{position:relative;height:640px;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.bl-map{width:100%;height:100%}.bl-map-drawn{display:block}.bl-map-gridline{stroke:var(--border);stroke-width:1;opacity:.6}.bl-map-message{position:absolute;right:12px;bottom:12px;left:12px;margin:0;padding:6px 10px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text-2);font-size:var(--fs-xs)}.bl-map-count{margin:6px 2px 0;color:var(--muted);font-size:var(--fs-xs)}.bl-map-pin{min-width:30px;height:20px;padding:0 6px;border:2px solid #ffffff;border-radius:10px;background:var(--tone);box-shadow:0 1px 3px rgba(0,0,0,.35);color:var(--tone-ink);font:700 11px/16px system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;cursor:pointer;transform:translateY(50%)}.bl-map-pin:hover{transform:translateY(50%) scale(1.12)}.bl-map-pin:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.bl-map-pin.selected{border-color:var(--bl-map-ink);box-shadow:0 0 0 3px var(--accent),0 2px 6px rgba(0,0,0,.4);transform:translateY(50%) scale(1.2)}.bl-map-cluster{display:grid;place-content:center;width:var(--size,40px);height:var(--size,40px);border-radius:50%;background:radial-gradient(circle,var(--surface) 0 60%,transparent 61%),var(--ring,var(--neutral-fill));box-shadow:0 1px 4px rgba(0,0,0,.35);color:var(--text);line-height:1.05;text-align:center;cursor:pointer}.bl-map-cluster b{font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-map-cluster{position:relative}.bl-map-cluster-flag{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border:1.5px solid var(--surface);border-radius:9px;background:var(--warn-fill);color:var(--bl-map-ink);font-size:10px;font-weight:700;line-height:15px}.bl-map-cluster-flag.critical{background:var(--danger-fill);color:#ffffff}.bl-map-cluster.alarm{box-shadow:0 0 0 2px var(--danger-fill),0 1px 4px rgba(0,0,0,.35)}.bl-map-dot circle{fill:var(--tone);stroke:var(--surface);stroke-width:1.5;cursor:pointer}.bl-map-dot text{fill:var(--text);font-size:11px;font-weight:700;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.bl-map-dot.selected circle{stroke:var(--text);stroke-width:2.5}.bl-map-dot:focus-visible{outline:none}.bl-map-dot:focus-visible circle{stroke:var(--focus);stroke-width:3}.bl-map-side{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0;max-height:664px;overflow-y:auto}.bl-map-side .panel{margin:0}.bl-map-hint{margin:0;padding:var(--s-3);border:1px dashed var(--border);border-radius:var(--r-md);color:var(--muted);font-size:var(--fs-sm)}.bl-map-card h2,.bl-map-legend h2{margin:0;font-size:var(--fs-md)}.bl-map-legend>p{margin:4px 0 var(--s-2)}.bl-map-legend ul{display:grid;grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none}.bl-map-key{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-2);gap:var(--s-2);width:100%;padding:6px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.bl-map-key:hover:not(:disabled){background:var(--surface-2)}.bl-map-key:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.bl-map-key:disabled{cursor:default;opacity:.55}.bl-map-key.off{opacity:.5}.bl-map-key.off strong{text-decoration:line-through}.bl-map-swatch{width:14px;height:14px;border:2px solid var(--surface);border-radius:50%;background:var(--tone);box-shadow:0 0 0 1px var(--border)}.bl-map-key-text{display:grid;min-width:0}.bl-map-key-text strong{font-size:var(--fs-sm)}.bl-map-key-text small{color:var(--muted);font-size:var(--fs-xs)}.bl-map-key-count{display:grid;justify-items:end;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-map-key-count small{color:var(--muted);font-size:var(--fs-xs)}.bl-map-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2)}.bl-map-card-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:var(--s-2) 0}.bl-map-state{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-xs);font-weight:600}.bl-map-state:before{width:10px;height:10px;border-radius:50%;background:var(--tone);content:""}.bl-map-readings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;margin:var(--s-2) 0}.bl-map-readings div{padding:6px 8px;border:1px solid var(--border);border-left:3px solid var(--tone,var(--border));border-radius:var(--r-sm)}.bl-map-readings dt{color:var(--muted);font-size:var(--fs-xs)}.bl-map-readings dd{margin:0;font-size:var(--fs-md);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-map-gauge{margin:var(--s-2) 0}.bl-map-gauge figcaption{margin-bottom:4px;color:var(--muted);font-size:var(--fs-xs)}.bl-map-gauge-track{position:relative;height:10px;border-radius:5px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.bl-map-gauge-track span{position:absolute;top:0;bottom:0;border-radius:5px}.bl-map-gauge-track .starved{background:color-mix(in srgb,var(--danger-fill) 35%,transparent)}.bl-map-gauge-track .design{background:color-mix(in srgb,var(--good-fill) 55%,transparent)}.bl-map-gauge-track i{position:absolute;top:-4px;width:4px;height:18px;margin-left:-2px;border-radius:2px;background:var(--text)}.bl-map-gauge-scale{position:relative;height:18px;color:var(--muted);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bl-map-gauge-scale span{position:absolute;top:2px;transform:translateX(-50%)}.bl-map-gauge-scale span:first-child{left:0;transform:none}.bl-map-gauge-scale b{position:absolute;top:2px;right:0;color:var(--text)}.bl-map-issues{display:grid;grid-gap:6px;gap:6px;margin:var(--s-2) 0;padding:0;list-style:none}.bl-map-issues li{display:grid;padding:6px 8px;border-left:3px solid var(--warn-fill);border-radius:var(--r-sm);background:var(--surface-2)}.bl-map-issues li.critical{border-left-color:var(--danger-fill)}.bl-map-issues strong{font-size:var(--fs-sm)}.bl-map-issues small{color:var(--text-2);font-size:var(--fs-xs)}.bl-map-districts th[scope=row]{font-weight:700}.bl-map-districts tr.selected{background:var(--accent-soft)}.bl-map-mix{display:flex;width:160px;max-width:100%;height:10px}.bl-map-mix-part{min-width:3px;background:var(--tone)}.bl-map-more{margin-top:var(--s-2)}.bl-map-unplaced{margin:var(--s-3) 0 0}@media (max-width:1100px){.bl-map-layout{grid-template-columns:minmax(0,1fr)}.bl-map-side{max-height:none;overflow:visible}.bl-map-shell{height:520px}}@media (max-width:640px){.bl-map-shell{height:420px}.bl-map-layers{width:100%}.bl-map-layer{flex:1 1 auto;padding:4px 8px}.bl-map-search{flex-basis:100%;max-width:none}.bl-map-tools{justify-content:flex-start}}.bl-map-drawn{position:relative;overflow:hidden;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bl-map-drawn:active{cursor:-webkit-grabbing;cursor:grabbing}.bl-map-drawn svg{display:block}.bl-map-dot,.bl-map-group{cursor:pointer}.bl-map-dot rect{fill:var(--tone);stroke:#ffffff;stroke-width:2;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.35))}.bl-map-dot rect~text{fill:var(--tone-ink);stroke:none;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.bl-map-dot.selected rect{stroke:var(--bl-map-ink);stroke-width:2.5}.bl-map-dot.selected circle,.bl-map-dot.selected rect{filter:drop-shadow(0 0 3px var(--accent))}.bl-map-dot:focus-visible rect{stroke:var(--focus);stroke-width:3}.bl-map-group-back{fill:var(--surface);filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.bl-map-group-arc{fill:none;stroke:var(--tone);stroke-width:5}.bl-map-group-count{fill:var(--text);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;pointer-events:none}.bl-map-group-flag{pointer-events:none}.bl-map-group-flag circle{fill:var(--warn-fill);stroke:var(--surface);stroke-width:1.5}.bl-map-group-flag.critical circle{fill:var(--danger-fill)}.bl-map-group-flag text{fill:var(--bl-map-ink);font-size:9px;font-weight:700}.bl-map-group-flag.critical text{fill:#ffffff}.bl-map-group.alarm .bl-map-group-back{stroke:var(--danger-fill);stroke-width:2}.bl-map-group:focus-visible{outline:none}.bl-map-group:focus-visible .bl-map-group-back{stroke:var(--focus);stroke-width:3}.bl-map-zoom{position:absolute;top:10px;right:10px;display:grid;grid-gap:4px;gap:4px}.bl-map-zoom button{min-width:34px;height:34px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer}.bl-map-zoom button:hover{background:var(--surface-2)}.bl-map-zoom button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.gateway-grid.dense{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--s-3)}.gateway-card.summary{gap:var(--s-2);padding:var(--s-3) var(--s-4)}.gateway-card.summary .gateway-card-title h2{font-size:var(--fs-md)}.gateway-card.summary .gateway-card-badges{flex-wrap:nowrap}.gateway-card-meta{margin:-4px 0 0;overflow:hidden;color:var(--muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap}.gateway-rollup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px var(--s-3);gap:6px var(--s-3);margin:0}.gateway-rollup-wide{display:flex;grid-column:1/-1;align-items:center;gap:var(--s-2)}.gateway-rollup-wide dd{margin:0}.gateway-rollup dt{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-xs)}.gateway-rollup dd{margin:1px 0 0;font-size:var(--fs-sm);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gateway-rollup-flag{color:var(--warn);font-weight:600}.gateway-rooms{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.gateway-room{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:2px 8px 2px 6px;border:1px solid var(--border);border-left:3px solid var(--neutral-fill);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-xs);line-height:1.5}.gateway-room-name{overflow:hidden;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap}.gateway-room strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gateway-room.tone-good{border-left-color:var(--good-fill)}.gateway-room.tone-warn{border-left-color:var(--warn-fill)}.gateway-room.tone-cold{border-left-color:var(--cold)}.gateway-room.tone-danger{border-left-color:var(--danger-fill);background:var(--danger-bg)}.gateway-room.more{border-left-color:var(--border);background:transparent}.gateway-room.more a{color:var(--accent-text,var(--accent));font-weight:600}.gateway-card-foot{justify-content:space-between;gap:var(--s-2);margin-top:auto;padding-top:var(--s-2);border-top:1px solid var(--border)}.gateway-card-facts,.gateway-card-foot{display:flex;flex-wrap:wrap;align-items:center}.gateway-card-facts{gap:4px var(--s-3);min-width:0;color:var(--text-2);font-size:var(--fs-xs)}.gateway-card.summary .gateway-card-actions{flex-wrap:nowrap;margin:0 0 0 auto;padding:0;border:0}.action-menu{position:relative;display:inline-flex}.action-menu-list{position:fixed;z-index:60;display:grid;min-width:170px;padding:4px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-2)}.action-menu-list button{padding:7px 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.action-menu-list button:focus-visible,.action-menu-list button:hover{background:var(--surface-2);outline:none}.action-menu-list button:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.action-menu-list button.danger{color:var(--danger)}.action-menu-list button.danger:focus-visible,.action-menu-list button.danger:hover{background:var(--danger-bg)}:root{--gd-series-1:#2a78d6;--gd-series-2:#eb6834;--gd-series-3:#1baf7a;--gd-raised:#4a3aa7;--gd-resolved:#e87ba4}:root[data-theme=dark]{--gd-series-1:#3987e5;--gd-series-2:#d95926;--gd-series-3:#199e70;--gd-raised:#9085e9;--gd-resolved:#d55181}.gd-section{display:grid;grid-gap:var(--s-4);gap:var(--s-4);margin-bottom:var(--s-6,32px);min-width:0}.gd-section-head h2{margin:0;font-size:var(--fs-xl)}.gd-section-head p{margin:4px 0 0;max-width:90ch}.gd-section>.panel,.gd-two>.panel{margin:0;min-width:0}.gd-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-4);gap:var(--s-4)}.gd-state.online{background:var(--good-fill)}.gd-state.stale{background:var(--warn-fill)}.gd-state.lost{background:var(--danger-fill)}.gd-state.never{background:var(--neutral-fill)}.gd-state.empty,.gd-statebar{background:var(--surface-2)}.gd-statebar{display:flex;gap:2px;height:10px;overflow:hidden;border-radius:5px}.gd-statebar .gd-state{min-width:3px}.gd-state-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:2px var(--s-3);gap:2px var(--s-3);margin:0;padding:0;color:var(--text-2);font-size:var(--fs-xs);list-style:none}.gd-state-legend li{display:flex;align-items:center;gap:6px}.gd-state-legend i{width:10px;height:10px;border-radius:3px}.gd-state-legend b{margin-left:auto;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gd-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));grid-gap:var(--s-4);gap:var(--s-4)}.gd-app{display:grid;align-content:start;grid-gap:var(--s-2);gap:var(--s-2);margin:0;min-width:0;border-top:3px solid var(--gd-app,var(--border))}.gd-app-head{display:flex;align-items:center;gap:var(--s-2)}.gd-app-head h3{flex:1 1;margin:0;font-size:var(--fs-md)}.gd-app-icon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--gd-app,var(--text-2))}.gd-app-figure{display:flex;align-items:baseline;gap:var(--s-2)}.gd-app-figure strong{font-size:28px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.gd-app-figure span{color:var(--text-2);font-size:var(--fs-sm)}.gd-app-secondary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-2);gap:var(--s-2);color:var(--text-2);font-size:var(--fs-xs)}.gd-app-secondary b{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gd-facts{display:flex;flex-wrap:wrap;gap:4px var(--s-4);margin:0;padding:var(--s-2) 0 0;border-top:1px solid var(--border)}.gd-facts dt{color:var(--muted);font-size:var(--fs-xs)}.gd-facts dd{margin:0;font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.gd-facts dd small{color:var(--muted);font-weight:400}.gd-backlog .bad dd,.gd-facts dd.bad,.gd-oldest-age.bad,small.bad{color:var(--danger)}.gd-offline h4{margin:0 0 4px;color:var(--muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.gd-offline ul{display:grid;grid-gap:2px;gap:2px;margin:0;padding:0;list-style:none}.gd-offline li{display:flex;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-sm)}.gd-offline li span{display:grid;min-width:0}.gd-offline li strong{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.gd-offline li small,.gd-offline time{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}.gd-all-online{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--good);font-size:var(--fs-sm)}.gd-owners th[scope=row]{font-weight:600}.gd-owner-cell{display:grid;grid-template-columns:minmax(60px,120px) auto;align-items:center;grid-gap:var(--s-2);gap:var(--s-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.gd-more{margin-top:var(--s-2)}.gd-chart{position:relative;min-width:0}.gd-chart svg{display:block;overflow:visible}.gd-grid{stroke:var(--border);stroke-width:1}.gd-axis{fill:var(--muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gd-axis-title,.gd-direct{fill:var(--text-2);font-size:11px;font-weight:600}.gd-crosshair{stroke:var(--text-2);stroke-dasharray:3 3;stroke-width:1}.gd-chart-empty{margin:0;padding:var(--s-4) 0}.gd-avail{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0}.gd-avail-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-2) var(--s-4)}.gd-avail-note{margin:0}.gd-legend-value{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gd-nodata{fill:var(--surface-2)}.gd-leader{stroke:var(--muted);stroke-width:1}.gd-tooltip{position:absolute;top:4px;z-index:5;display:grid;grid-gap:3px;gap:3px;min-width:170px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-2);font-size:var(--fs-xs);pointer-events:none}.gd-tooltip strong{color:var(--text)}.gd-tooltip span{display:flex;align-items:center;gap:6px;color:var(--text-2)}.gd-tooltip b{margin-left:auto;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gd-tooltip small{color:var(--muted)}.gd-legend i,.gd-tooltip i{width:10px;height:10px;border-radius:3px}.gd-bar.raised,.gd-legend i.raised,.gd-tooltip i.raised{fill:var(--gd-raised);background:var(--gd-raised)}.gd-bar.resolved,.gd-legend i.resolved,.gd-tooltip i.resolved{fill:var(--gd-resolved);background:var(--gd-resolved)}.gd-line.detected{stroke:var(--text-2);stroke-dasharray:4 3;stroke-width:2}.gd-legend i.detected,.gd-tooltip i.detected{height:2px;background:var(--text-2)}.gd-legend{display:flex;flex-wrap:wrap;gap:4px var(--s-3);margin:0;padding:0;color:var(--text-2);font-size:var(--fs-xs);list-style:none}.gd-legend li{display:inline-flex;align-items:center;gap:6px}.gd-kpis .stat-tile{gap:4px}.gd-delta{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:var(--fs-xs);font-weight:600}.gd-delta.good{color:var(--good)}.gd-delta.bad{color:var(--danger)}.gd-delta.flat{color:var(--muted);font-weight:400}.gd-stages{grid-gap:var(--s-3);margin:0;padding:0;list-style:none}.gd-stages,.gd-stages li{display:grid;gap:var(--s-3)}.gd-stages li{grid-template-columns:minmax(150px,210px) minmax(0,1fr) 70px;align-items:center;grid-gap:var(--s-3)}.gd-stage-label{display:grid;min-width:0}.gd-stage-label strong{font-size:var(--fs-sm)}.gd-stage-label small{color:var(--muted);font-size:var(--fs-xs)}.gd-stage-track{position:relative;height:14px;border-radius:4px;background:var(--surface-2)}.gd-stage-bar{position:absolute;top:0;bottom:0;left:0;border-radius:4px;background:var(--accent)}.gd-stage-p90{top:6px;height:2px}.gd-stage-p90,.gd-stage-p90:after{position:absolute;background:var(--text-2)}.gd-stage-p90:after{top:-4px;right:0;width:2px;height:10px;content:""}.gd-stage-prev{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--text);opacity:.7}.gd-stage-value{font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.gd-backlog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin:0 0 var(--s-3)}.gd-backlog div{padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface-2)}.gd-backlog dt{color:var(--muted);font-size:var(--fs-xs)}.gd-backlog dd{margin:2px 0 0;font-size:var(--fs-xl);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.gd-oldest{display:grid;grid-gap:4px;gap:4px;margin:0;padding:0;list-style:none}.gd-oldest li{display:grid;grid-template-columns:max-content minmax(0,1fr) auto auto;align-items:center;grid-gap:var(--s-2);gap:var(--s-2);padding:4px 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.gd-oldest-what{display:grid;min-width:0}.gd-oldest-what strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gd-oldest-what small{color:var(--muted);font-size:var(--fs-xs)}.gd-oldest-age{color:var(--text-2);font-size:var(--fs-xs);text-align:right;white-space:nowrap}.gd-sla{display:grid;grid-template-columns:70px auto;align-items:center;grid-gap:var(--s-2);gap:var(--s-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gd-sla-bar{height:8px;overflow:hidden;border-radius:4px;background:color-mix(in srgb,var(--danger-fill) 35%,var(--surface-2))}.gd-sla-bar span{display:block;height:100%;background:var(--good-fill)}.gd-sla-bar.empty{background:var(--surface-2)}.gd-oldest .table-link{white-space:nowrap}.gd-app-key{display:inline-flex;align-items:center;gap:6px;font-weight:600}.gd-app-key i{width:10px;height:10px;border-radius:3px}@media (max-width:1100px){.gd-two{grid-template-columns:minmax(0,1fr)}}@media (max-width:1600px){.gd-two.wide{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.gd-backlog{grid-template-columns:repeat(2,minmax(0,1fr))}.gd-stages li{grid-template-columns:minmax(0,1fr) 64px}.gd-stage-track{grid-column:1/-1;grid-row:2}.gd-oldest li{grid-template-columns:minmax(0,1fr) auto}.gd-oldest-what{grid-column:1/-1;grid-row:2}}.rp-dl-title-icon{margin-right:var(--s-2);color:var(--accent-text);vertical-align:-3px}.rp-dl-describe textarea{width:100%;min-height:84px;resize:vertical}.rp-dl-examples{display:flex;flex-wrap:wrap;gap:var(--s-2)}.chip-button{min-height:30px;padding:4px var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.chip-button:focus-visible,.chip-button:hover{border-color:var(--accent);color:var(--text)}.rp-dl-plan{display:grid;grid-gap:var(--s-2);gap:var(--s-2);margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--info) 30%,transparent);border-left:4px solid var(--info);border-radius:var(--r-md);background:var(--info-bg)}.rp-dl-notes{margin:0;padding-left:var(--s-6);color:var(--text-2);font-size:var(--fs-sm)}.rp-dl-form{gap:var(--s-5)}.rp-dl-dataset-note{margin-top:calc(-1 * var(--s-3))}.rp-dl-fieldset{display:grid;grid-gap:var(--s-3);gap:var(--s-3);min-width:0;margin:0;padding:0;border:0}.rp-dl-fieldset legend{margin-bottom:var(--s-2);padding:0;color:var(--text);font-size:var(--fs-md);font-weight:600}.rp-dl-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:var(--s-2);gap:var(--s-2)}.rp-dl-field,.rp-dl-format{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer}.rp-dl-field:hover,.rp-dl-format:hover{border-color:var(--border-strong)}.rp-dl-field:has(input:checked),.rp-dl-format.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.rp-dl-field input,.rp-dl-format input{flex:none;margin-top:1px}.rp-dl-field>span,.rp-dl-format>span{display:grid;grid-gap:2px;gap:2px;min-width:0}.rp-dl-field strong,.rp-dl-format strong{color:var(--text);font-size:var(--fs-md);font-weight:600}.rp-dl-field small,.rp-dl-format small{color:var(--muted);font-size:var(--fs-sm);line-height:1.4}.rp-dl-unit{color:var(--muted);font-weight:500}.rp-dl-presets{display:flex;flex-wrap:wrap;gap:var(--s-2)}.rp-dl-period{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);align-items:end;grid-gap:var(--s-3);gap:var(--s-3)}.rp-dl-formats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2)}.rp-dl-assets{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.rp-dl-chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:0;padding:0;list-style:none}.rp-dl-chips li{display:inline-flex;align-items:center;gap:2px;max-width:100%;padding:2px 4px 2px var(--s-3);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:var(--r-pill);background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text);font-size:var(--fs-sm)}.rp-dl-chips li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-dl-chips button{display:inline-grid;place-items:center;width:24px;height:24px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--text-2);cursor:pointer}.rp-dl-chips button:focus-visible,.rp-dl-chips button:hover{background:var(--surface-3);color:var(--text)}.rp-dl-search-box{position:relative;display:block}.rp-dl-search-box svg{position:absolute;top:50%;left:var(--s-3);color:var(--muted);transform:translateY(-50%);pointer-events:none}.rp-dl-search .rp-dl-search-box input[type=search]{width:100%;padding-left:38px}.rp-dl-results{display:grid;max-height:240px;margin:0;padding:var(--s-1) var(--s-3);overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);list-style:none}.rp-dl-results small{margin-left:var(--s-1)}.rp-dl-submit{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--border)}.rp-dl-submit p{display:flex;align-items:flex-start;gap:var(--s-2);max-width:62ch;margin:0}.rp-dl-submit p svg{flex:none;margin-top:1px;color:var(--accent-text)}.rp-dl-code{width:100%;max-width:240px;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);font-size:1.5rem;letter-spacing:.4em;text-align:center}.rp-dl-verified{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.rp-dl-success{display:flex;align-items:flex-start;gap:var(--s-2);margin:0;color:var(--text);overflow-wrap:anywhere}.rp-dl-success svg{flex:none;color:var(--good)}@media (max-width:760px){.rp-dl-period{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.rp-dl-formats{grid-template-columns:minmax(0,1fr)}.rp-dl-submit .button{width:100%}}.rp-dl-hint{flex-wrap:nowrap;align-items:flex-start}.rp-dl-hint svg{flex:none;margin-top:2px}.gd-heat-callout{display:flex;align-items:center;gap:var(--s-3);margin:0 0 var(--s-4);color:inherit;text-decoration:none}.gd-heat-callout>span:nth-child(2){display:grid;flex:1 1;min-width:0}.gd-heat-callout small{color:var(--text-2);font-size:var(--fs-sm)}.gd-heat-callout:focus-visible,.gd-heat-callout:hover{border-color:var(--accent)}.gd-heat-callout .gd-app-icon{color:var(--accent)}:root{--gh-weather:#6b7380;--gh-pick:var(--text);--gh-div-pos:#1c5cab;--gh-div-neg:#a1302b;--gh-div-mid:#eef0f3;--gh-div-ink:#0b0b0b;--gh-div-ink-strong:#ffffff}:root[data-theme=dark]{--gh-weather:#9aa3b2;--gh-div-pos:#5598e7;--gh-div-neg:#e16e63;--gh-div-mid:#323a48;--gh-div-ink:#ffffff;--gh-div-ink-strong:#0b0b0b}.gh-body{display:grid;grid-gap:var(--s-4);gap:var(--s-4);min-width:0;transition:opacity .2s}.gh-body.updating{opacity:.6}.gh-body .gd-two>.panel,.gh-body>.panel{margin:0;min-width:0}.gh-network-select{min-width:min(100%,260px)}.gh-scope{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);margin:0;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-sm)}.gh-scope span{flex:1 1;min-width:0}.gh-findings{display:grid;grid-gap:6px;gap:6px;max-width:110ch;margin:0;padding-left:1.2em}.gh-meter{display:inline-flex;align-items:center;gap:8px}.gh-meter-bars{display:inline-flex;align-items:flex-end;gap:2px}.gh-meter-bars i{width:6px;border-radius:2px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.gh-meter-bars i:first-child{height:6px}.gh-meter-bars i:nth-child(2){height:10px}.gh-meter-bars i:nth-child(3){height:14px}.gh-meter.pos .gh-meter-bars i.on{background:var(--gh-div-pos);box-shadow:none}.gh-meter.neg .gh-meter-bars i.on{background:var(--gh-div-neg);box-shadow:none}.gh-meter-text{display:grid;grid-template-columns:auto auto;align-items:baseline;grid-column-gap:6px;column-gap:6px;line-height:1.25}.gh-meter-text small:first-child:not(.gh-r){grid-column:1/-1;color:var(--muted);font-size:var(--fs-xs)}.gh-meter-text b{font-size:var(--fs-sm)}.gh-r{color:var(--muted);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gh-chain{container-type:inline-size;margin-bottom:var(--s-4)}.gh-chain-row{display:flex;margin:0;padding:0;list-style:none}.gh-chain-step{display:flex;flex:1 1;align-items:stretch;min-width:0}.gh-chain-step:last-child{flex:0 0 auto}.gh-node{display:grid;flex:0 0 124px;align-content:start;grid-gap:2px;gap:2px;padding:10px;border:1px solid var(--border);border-top:3px solid var(--gh-node);border-radius:var(--r-sm);background:var(--surface)}.gh-node-icon{color:var(--gh-node)}.gh-node-kicker{color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.gh-node strong{font-size:var(--fs-sm);line-height:1.25}.gh-node-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.gh-node-value small{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.gh-link{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:76px;padding:0 4px;--gh-c:var(--muted);--gh-w:2px}.gh-link.pos{--gh-c:var(--gh-div-pos)}.gh-link.neg{--gh-c:var(--gh-div-neg)}.gh-link.weak{--gh-w:3px}.gh-link.moderate{--gh-w:6px}.gh-link.strong{--gh-w:10px}.gh-link-line{width:100%;height:var(--gh-w);border-radius:99px;background:var(--gh-c)}.gh-link.none .gh-link-line,.gh-link.unknown .gh-link-line{background:repeating-linear-gradient(90deg,var(--muted) 0 6px,transparent 6px 11px)}.gh-link-label{display:grid;color:var(--text-2);font-size:var(--fs-xs);text-align:center;line-height:1.3}.gh-link-label b{color:var(--text);font-size:var(--fs-sm)}.gh-link-label small{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@container (max-width: 940px){.gh-chain-row,.gh-chain-step{flex-direction:column}.gh-chain-step{align-items:stretch}.gh-node{flex-basis:auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:10px}.gh-node-icon{grid-row:span 2}.gh-node strong,.gh-node-kicker{grid-column:2}.gh-node-value{grid-column:3;grid-row:1/span 2;text-align:right}.gh-link{flex-direction:row;justify-content:flex-start;gap:12px;min-height:58px;padding:4px 0 4px 26px}.gh-link-line{flex:0 0 auto;width:var(--gh-w);height:50px}.gh-link.none .gh-link-line,.gh-link.unknown .gh-link-line{width:2px;background:repeating-linear-gradient(180deg,var(--muted) 0 6px,transparent 6px 11px)}.gh-link-label{text-align:left}}.gh-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:0;padding:0;list-style:none}.gh-links li{display:grid;align-content:start;grid-gap:8px;gap:8px;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-sm)}.gh-links-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px var(--s-2)}.gh-links-meters{display:flex;flex-wrap:wrap;gap:8px 20px}.gh-links p{margin:0;color:var(--text-2);font-size:var(--fs-sm)}.gh-row-label{fill:var(--text);font-size:12px;font-weight:600}.gh-fault-band{fill:color-mix(in srgb,var(--danger-fill) 16%,transparent)}.gh-binned{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-4);gap:var(--s-4)}.gh-binned figure,.gh-flat-charts figure{min-width:0;margin:0}.gh-binned figcaption,.gh-flat-charts figcaption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px var(--s-2);margin-bottom:6px;font-size:var(--fs-sm)}.gh-flat-charts figure p{margin:6px 0 0}.gh-matrix-wrap{margin-bottom:var(--s-2)}.gh-matrix{min-width:100%;border-collapse:separate;border-spacing:2px;font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.gh-matrix th{padding:4px 6px;color:var(--text-2);font-weight:600;text-align:left;white-space:nowrap}.gh-matrix td,.gh-matrix thead th{text-align:center}.gh-matrix td{min-width:46px;padding:9px 4px;border-radius:4px}.gh-matrix td.gh-matrix-empty{background:transparent}.gh-legend-bar{display:grid;grid-gap:4px;gap:4px;max-width:340px}.gh-legend-ramp{display:block;height:10px;border-radius:5px;background:linear-gradient(in oklab 90deg,var(--gh-div-neg),var(--gh-div-mid),var(--gh-div-pos))}.gh-legend-ramp.temperature{width:200px;background:linear-gradient(in oklab 90deg,var(--gh-div-pos),var(--gh-div-mid),var(--gh-div-neg))}.gh-legend-labels{display:flex;justify-content:space-between;gap:var(--s-2);color:var(--muted);font-size:var(--fs-xs)}.gh-compare th[scope=row] .gd-app-key{font-weight:400}.gh-strip-legend{display:grid;grid-template-columns:200px auto;align-items:center;grid-gap:4px 24px;gap:4px 24px;margin-bottom:var(--s-3)}.gh-strip-legend .gh-legend-labels{width:200px;grid-row:2}.gh-strip-legend-ring{display:inline-flex;grid-row:1/span 2;grid-column:2;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-xs)}.gh-strip-legend-ring i{width:14px;height:22px;border-radius:3px;background:var(--gh-div-mid)}.gh-strip{display:inline-flex;gap:2px}.gh-strip i{width:14px;height:22px;border-radius:3px;background:var(--surface-2)}.gh-strip i.mould,.gh-strip-legend-ring i.mould{box-shadow:inset 0 0 0 2px var(--text)}.gh-networks th[scope=row]{font-weight:600}.gh-network-name{display:grid;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;text-align:left;cursor:pointer}.gh-network-name small{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.gh-networks tr.selected{background:var(--surface-2)}.gh-method{margin:0}.gh-method summary{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}.gh-method ul{display:grid;grid-gap:6px;gap:6px;max-width:110ch;margin:var(--s-3) 0 0;padding-left:1.2em;color:var(--text-2);font-size:var(--fs-sm)}@media (max-width:640px){.gh-binned{grid-template-columns:minmax(0,1fr)}.gh-strip-legend{grid-template-columns:1fr}.gh-strip-legend-ring{grid-row:auto;grid-column:auto}}.hn-body{display:grid;grid-gap:var(--s-4);gap:var(--s-4);min-width:0;transition:opacity .2s}.hn-body.updating{opacity:.6}.hn-body>.panel{margin:0;min-width:0}.hn-summary{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:var(--s-5,24px);gap:var(--s-5,24px);margin-bottom:var(--s-4)}.hn-summary-text{display:grid;justify-items:start;grid-gap:var(--s-2);gap:var(--s-2);min-width:0}.hn-summary-text p{margin:0;max-width:70ch;color:var(--text-2)}.hn-ring-track{fill:none;stroke:var(--surface-2)}.hn-ring-tick{stroke:var(--muted);stroke-width:1.5}.hn-ring-value{fill:var(--text);font-size:34px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-ring-caption{fill:var(--muted);font-size:11px}.hn-statusbar-wrap{display:grid;grid-gap:6px;gap:6px;width:min(100%,460px)}.hn-statusbar{display:flex;gap:2px;height:10px;overflow:hidden;border-radius:5px;background:var(--surface-2)}.hn-statusbar i{min-width:4px}.hn-statusbar i.pass,.hn-statusbar-legend i.pass{background:var(--good-fill)}.hn-statusbar i.watch,.hn-statusbar-legend i.watch{background:var(--warn-fill)}.hn-statusbar i.fail,.hn-statusbar-legend i.fail{background:var(--danger-fill)}.hn-statusbar i.none,.hn-statusbar-legend i.none{background:var(--neutral-fill)}.hn-statusbar-legend{display:flex;flex-wrap:wrap;gap:4px var(--s-3);margin:0;padding:0;color:var(--text-2);font-size:var(--fs-xs);list-style:none}.hn-statusbar-legend li{display:inline-flex;align-items:center;gap:6px}.hn-statusbar-legend i{width:10px;height:10px;border-radius:3px}.hn-app-scores{display:flex;flex-wrap:wrap;gap:4px var(--s-4);margin:0;padding:0;color:var(--text-2);font-size:var(--fs-sm);list-style:none}.hn-app-scores li{display:inline-flex;align-items:center;gap:6px}.hn-app-scores i{width:10px;height:10px;border-radius:3px}.hn-app-scores b{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));grid-gap:var(--s-4);gap:var(--s-4)}.hn-app{align-content:start;grid-gap:var(--s-2);min-width:0;padding:var(--s-3);border:1px solid var(--border);border-top:3px solid var(--hn-app,var(--border));border-radius:var(--r-md);background:var(--surface)}.hn-app,.hn-app-head{display:grid;gap:var(--s-2)}.hn-app-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--s-2)}.hn-app-head h3{margin:0;font-size:var(--fs-md,1rem)}.hn-app-head small{color:var(--muted);font-size:var(--fs-xs)}.hn-app-icon{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--hn-app,var(--text-2))}.hn-app-score{display:grid;justify-items:end}.hn-app-score strong{font-size:24px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.hn-app>.pill{justify-self:start}.hn-app-bar{height:6px;overflow:hidden;border-radius:3px;background:var(--surface-2)}.hn-app-bar i{display:block;height:100%;border-radius:3px}.hn-kpis{display:grid;margin:var(--s-1,4px) 0 0;padding:0;list-style:none}.hn-kpi{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:var(--s-2);gap:var(--s-2);padding:8px 0;border-top:1px solid var(--border)}.hn-kpi-main{display:grid;grid-gap:2px;gap:2px;min-width:0}.hn-kpi-name{font-size:var(--fs-sm);font-weight:600}.hn-kpi-main small{overflow:hidden;color:var(--muted);font-size:var(--fs-xs);text-overflow:ellipsis}.hn-kpi-id{display:inline-block;margin-right:6px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-kpi-figures{display:grid;justify-items:end}.hn-kpi-figures strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-kpi-figures small{color:var(--muted)}.hn-kpi-figures small,.hn-status{font-size:var(--fs-xs);white-space:nowrap}.hn-status{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-weight:600}.hn-status.pass{background:var(--good-bg);color:var(--good)}.hn-status.watch{background:var(--warn-bg);color:var(--warn)}.hn-status.fail{background:var(--danger-bg);color:var(--danger)}.hn-status.none,.hn-status.reported{background:var(--neutral-bg);color:var(--neutral)}.hn-track-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-2)}.hn-track-head small{display:block;color:var(--muted);font-size:var(--fs-xs)}.hn-track-head strong{font-size:var(--fs-xl);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-track-head strong.up{color:var(--good)}.hn-track-head strong.down{color:var(--danger)}.hn-threshold{stroke:var(--muted);stroke-dasharray:4 4;stroke-width:1}.hn-threshold-label{fill:var(--muted);font-size:10px}.hn-end-label{fill:var(--text-2);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-dot{stroke:var(--surface);stroke-width:2}.hn-table-toggle{margin-top:var(--s-2)}.hn-table-toggle summary{color:var(--text-2);font-size:var(--fs-sm);cursor:pointer}.hn-spark{display:block;overflow:visible}.hn-spark polyline{stroke:var(--text-2);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.hn-spark circle{fill:var(--text)}.hn-league tbody th,.hn-networks tbody th,.hn-trend-table tbody th{position:static;background:transparent;color:var(--text);font-size:var(--fs-sm);font-weight:500;letter-spacing:normal;text-transform:none}.hn-trend-table tbody .hn-group th{color:var(--text-2);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.hn-trend-table .hn-group th{padding-top:var(--s-3)}.hn-network{display:grid;font-weight:600}.hn-network small{color:var(--muted);font-weight:400}.hn-cell{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hn-cell-target{display:block;color:var(--muted);font-size:var(--fs-xs)}.hn-dot-status{display:inline-flex}.hn-dot-status.pass{color:var(--good)}.hn-dot-status.watch{color:var(--warn)}.hn-dot-status.fail{color:var(--danger)}.hn-outages{margin-top:var(--s-3)}.hn-outages h3{margin:0 0 var(--s-2);font-size:var(--fs-sm)}.hn-outages ul{display:grid;grid-gap:4px;gap:4px;margin:0;padding-left:1.2em;color:var(--text-2);font-size:var(--fs-sm)}@media (max-width:640px){.hn-summary{grid-template-columns:minmax(0,1fr);justify-items:center}.hn-summary-text{justify-items:center;text-align:center}.hn-kpi{grid-template-columns:minmax(0,1fr) auto}.hn-kpi .hn-status{grid-column:1/-1;justify-self:start}}