:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--aurora-1:#22d3ee;--aurora-2:#818cf8;--aurora-3:#c084fc;--aurora:linear-gradient(135deg, var(--aurora-1), var(--aurora-2) 55%, var(--aurora-3));--bg:#080b14;--bg-glow-1:#1e3a8a4d;--bg-glow-2:#6d28d940;--surface:#10141fd9;--surface-solid:#131826;--surface-2:#1a2032;--surface-3:#232b40;--surface-hover:#1e2536;--border:#ffffff14;--border-strong:#ffffff26;--text:#eef2ff;--text-muted:#97a3bd;--text-faint:#6b7794;--on-accent:#05070d;--accent:#38bdf8;--accent-soft:#38bdf81f;--success:#34d399;--success-soft:#34d3991f;--warning:#fbbf24;--warning-soft:#fbbf241f;--danger:#fb7185;--danger-soft:#fb71851f;--hue-temperature:#fb923c;--hue-humidity:#22d3ee;--hue-weather:#38bdf8;--hue-sunrise:#fbbf24;--hue-electricityprice:#a3e635;--hue-group:#a78bfa;--hue-location:#818cf8;--hue-scene:#f472b6;--hue-sensor:#34d399;--hue-chart:#2dd4bf;--r-sm:.5rem;--r-md:.75rem;--r-lg:1rem;--r-xl:1.5rem;--r-pill:999px;--shadow-sm:0 1px 2px #00000040;--shadow-md:0 .5rem 1.5rem -.5rem #00000073, 0 0 0 1px var(--border);--shadow-lg:0 1.5rem 3rem -1rem #000000a6, 0 0 0 1px var(--border);--ring:0 0 0 3px #38bdf84d;--ease:cubic-bezier(.22, 1, .36, 1);--fast:.16s var(--ease);--slow:.32s var(--ease);--rail:16.5rem;--topbar:4rem;--tabbar:0rem;font-synthesis-weight:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,system-ui,sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--aurora-1:#0e7490;--aurora-2:#4338ca;--aurora-3:#7e22ce;--bg:#f4f6fc;--bg-glow-1:#38bdf82e;--bg-glow-2:#a78bfa2e;--surface:#ffffffd9;--surface-solid:#fff;--surface-2:#f2f5fb;--surface-3:#e6ebf5;--surface-hover:#eef2fa;--border:#0b112014;--border-strong:#0b112026;--text:#0f172a;--text-muted:#56637d;--text-faint:#7c88a1;--on-accent:#fff;--accent:#0284c7;--accent-soft:#0284c714;--success:#059669;--success-soft:#05966914;--warning:#b45309;--warning-soft:#b4530914;--danger:#dc2626;--danger-soft:#dc262614;--hue-temperature:#ea580c;--hue-humidity:#0891b2;--hue-weather:#0284c7;--hue-sunrise:#d97706;--hue-electricityprice:#4d7c0f;--hue-group:#7c3aed;--hue-location:#4f46e5;--hue-scene:#db2777;--hue-sensor:#059669;--hue-chart:#0d9488;--shadow-sm:0 1px 2px #0b112014;--shadow-md:0 .5rem 1.5rem -.75rem #0b11202e, 0 0 0 1px var(--border);--shadow-lg:0 1.5rem 3rem -1rem #0b112033, 0 0 0 1px var(--border)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--aurora-1:#0e7490;--aurora-2:#4338ca;--aurora-3:#7e22ce;--bg:#f4f6fc;--bg-glow-1:#38bdf82e;--bg-glow-2:#a78bfa2e;--surface:#ffffffd9;--surface-solid:#fff;--surface-2:#f2f5fb;--surface-3:#e6ebf5;--surface-hover:#eef2fa;--border:#0b112014;--border-strong:#0b112026;--text:#0f172a;--text-muted:#56637d;--text-faint:#7c88a1;--on-accent:#fff;--accent:#0284c7;--accent-soft:#0284c714;--success:#059669;--success-soft:#05966914;--warning:#b45309;--warning-soft:#b4530914;--danger:#dc2626;--danger-soft:#dc262614;--hue-temperature:#ea580c;--hue-humidity:#0891b2;--hue-weather:#0284c7;--hue-sunrise:#d97706;--hue-electricityprice:#4d7c0f;--hue-group:#7c3aed;--hue-location:#4f46e5;--hue-scene:#db2777;--hue-sensor:#059669;--hue-chart:#0d9488;--shadow-sm:0 1px 2px #0b112014;--shadow-md:0 .5rem 1.5rem -.75rem #0b11202e, 0 0 0 1px var(--border);--shadow-lg:0 1.5rem 3rem -1rem #0b112033, 0 0 0 1px var(--border)}*{box-sizing:border-box}::selection{background:var(--aurora-2);color:var(--on-accent)}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;line-height:1.55;overflow-x:hidden}body:before{background:radial-gradient(60rem 40rem at 12% -10%, var(--bg-glow-1), transparent 60%), radial-gradient(50rem 36rem at 95% 4%, var(--bg-glow-2), transparent 62%);content:"";pointer-events:none;z-index:0;position:fixed;inset:0}h1{letter-spacing:-.02em;font-size:clamp(1.55rem,1.1rem + 1.6vw,2.1rem);font-weight:650;line-height:1.15}h2{letter-spacing:-.015em;font-weight:620}h3{letter-spacing:-.01em;font-weight:620}a{color:var(--accent);transition:color var(--fast);text-decoration:none}a:hover{color:var(--text);text-decoration:none}:where(a,button,input,select,textarea,summary):focus-visible{box-shadow:var(--ring);outline-offset:2px;outline:2px solid #0000}button{background:var(--aurora);border-radius:var(--r-md);box-shadow:var(--shadow-sm);color:var(--on-accent);cursor:pointer;font:inherit;letter-spacing:-.01em;min-height:2.6rem;transition:transform var(--fast), filter var(--fast), background var(--fast), box-shadow var(--fast);white-space:nowrap;border:0;justify-content:center;align-items:center;gap:.45rem;padding:.6rem 1rem;font-weight:600;display:inline-flex;position:relative}button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)scale(.985)}button:disabled{cursor:not-allowed;filter:grayscale(.3);opacity:.55}.secondary-button{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text)}.secondary-button:hover:not(:disabled){background:var(--surface-3);filter:none}.danger-button{background:var(--danger);color:#fff}input,textarea,select{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text);font:inherit;min-height:2.6rem;transition:border-color var(--fast), background var(--fast), box-shadow var(--fast);width:100%;padding:.6rem .75rem}input:hover,textarea:hover,select:hover{border-color:var(--accent)}input:focus,textarea:focus,select:focus{background:var(--surface-solid);border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-faint)}select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 1.05rem) 55%,calc(100% - .75rem) 55%;background-repeat:no-repeat;background-size:.3rem .3rem,.3rem .3rem;padding-right:2.25rem}select option{background:var(--surface-solid);color:var(--text)}input[type=checkbox],input[type=radio]{accent-color:var(--aurora-2);width:auto;min-height:0}.portal-shell{min-height:100vh;padding-bottom:var(--tabbar);padding-left:var(--rail);padding-top:var(--topbar);z-index:1;position:relative}.appbar{-webkit-backdrop-filter:blur(18px)saturate(160%);background:color-mix(in srgb, var(--bg) 72%, transparent);border-bottom:1px solid var(--border);height:var(--topbar);z-index:30;align-items:center;gap:.75rem;padding:0 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.appbar a{color:var(--text);font-weight:600}.brand{letter-spacing:.22em;align-items:center;gap:.6rem;font-size:1rem;display:flex}.brand-mark{background:var(--aurora);box-shadow:0 0 1.4rem -.2rem var(--aurora-2);color:var(--on-accent);border-radius:.7rem;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;display:flex}.brand-mark svg{width:1.05rem;height:1.05rem}.session-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.driver-status-badge{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:.4rem;min-height:2.35rem;padding:.45rem .75rem;font-size:.72rem;font-weight:700;display:inline-flex}.appbar .driver-status-badge:hover{background:var(--surface-3);filter:none}.driver-status-dot{background:currentColor;border-radius:50%;width:.48rem;height:.48rem}.driver-status-badge[data-state=online]{background:var(--success-soft);border-color:var(--success);color:var(--success)}.driver-status-badge[data-state=online] .driver-status-dot{animation:pulse 2.4s var(--ease) infinite}.driver-status-badge[data-state=offline],.driver-status-badge[data-state=error]{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.driver-status-badge[data-state=waiting]{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.worker-status-badge{border:1px solid var(--border);border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.worker-status-dot{background:currentColor;border-radius:50%;width:.48rem;height:.48rem}.worker-status-badge[data-state=running]{background:var(--success-soft);border-color:var(--success);color:var(--success)}.worker-status-badge[data-state=running] .worker-status-dot{animation:pulse 2.4s var(--ease) infinite}.worker-status-badge[data-state=paused]{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.worker-status-badge[data-state=stopped]{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.worker-status-refresh{margin-top:.75rem}.worker-detail-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem;display:grid}.worker-detail-grid .detail-card{max-width:none}.session-user{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);align-items:center;gap:.5rem;padding:.3rem .85rem .3rem .3rem;font-size:.85rem;font-weight:600;display:flex}.session-avatar{background:var(--aurora);color:var(--on-accent);border-radius:50%;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.75rem;font-weight:700;display:flex}.icon-button{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);justify-content:center;align-items:center;width:2.4rem;height:2.4rem;min-height:0;padding:0;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--surface-3);filter:none}.icon-button svg{width:1.15rem;height:1.15rem}.menu-toggle{display:none}.portal-navigation{background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(18px);border-right:1px solid var(--border);overscroll-behavior:contain;scrollbar-width:thin;bottom:0;left:0;top:var(--topbar);width:var(--rail);z-index:20;padding:1rem .7rem 2rem;position:fixed;overflow-y:auto}.portal-navigation nav{gap:.15rem;display:grid}.portal-navigation a,.portal-navigation summary,.portal-nav-disabled{border-radius:var(--r-md);color:var(--text-muted);transition:background var(--fast), color var(--fast);align-items:center;gap:.65rem;padding:.6rem .7rem;font-size:.92rem;font-weight:550;display:flex;position:relative}.portal-navigation a:hover,.portal-navigation summary:hover{background:var(--surface-hover);color:var(--text)}.portal-navigation summary>a{color:inherit;flex:1;margin:-.6rem -.7rem -.6rem -.65rem;padding:.6rem .7rem .6rem .65rem}.portal-navigation summary>a:hover{background:0 0}.nav-icon{flex:none;justify-content:center;align-items:center;width:1.15rem;height:1.15rem;display:flex}.nav-icon svg{width:100%;height:100%}.portal-navigation a[aria-current=page]{background:var(--accent-soft);color:var(--text)}.portal-navigation details:has(>summary a[aria-current=page])>summary{background:var(--accent-soft);color:var(--text)}.portal-navigation a[aria-current=page]:before{background:var(--aurora);border-radius:0 var(--r-pill) var(--r-pill) 0;box-shadow:0 0 .9rem var(--aurora-1);content:"";width:.2rem;height:1.1rem;position:absolute;top:50%;left:-.7rem;translate:0 -50%}.portal-navigation details:has(a[aria-current=page])>summary{color:var(--text)}.portal-navigation details{padding-bottom:.15rem}.portal-navigation details+details{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.35rem}.portal-navigation summary{cursor:pointer;list-style:none}.portal-navigation summary::-webkit-details-marker{display:none}.portal-navigation summary:after{content:"";opacity:.55;height:.4rem;transition:rotate var(--fast);border-bottom:1.5px solid;border-right:1.5px solid;width:.4rem;margin-left:auto;rotate:45deg}.portal-navigation details[open]>summary:after{rotate:-135deg}.portal-nav-children{gap:.05rem;margin-left:1.5rem;padding:.15rem 0 .3rem;display:grid;position:relative}.portal-nav-children:before{background:var(--border-strong);content:"";width:1px;position:absolute;top:.3rem;bottom:.4rem;left:-.1rem}.portal-nav-children a,.portal-nav-children .portal-nav-disabled{padding:.45rem .7rem;font-size:.875rem;font-weight:500}.portal-nav-children a[aria-current=page]:before{left:-.65rem}.portal-nav-disabled{color:var(--text-faint);cursor:not-allowed}.portal-nav-disabled small,.portal-navigation summary small{color:var(--text-faint);font-size:.65rem;font-weight:500}.nav-scrim,.tab-bar{display:none}.page-content{max-width:82rem;margin:0 auto;padding:2.25rem 2rem 3rem}.page-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.75rem;display:flex}.page-heading h1,.login-card h1{margin:.2rem 0 .35rem}.page-heading>div:first-child{min-width:0}.eyebrow{background:var(--aurora);color:#0000;letter-spacing:.16em;text-transform:uppercase;-webkit-background-clip:text;background-clip:text;margin:0;font-size:.7rem;font-weight:750}.muted,.card p{color:var(--text-muted)}.card,.detail-card,.login-card,.empty-state,.toolbar-card,.scene-section,.dashboard-toolbar,.dashboard-editor,.hub-card,.entity-card,.inline-editor,.admin-editor,.entity-actions{-webkit-backdrop-filter:blur(14px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:1.25rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1rem;display:grid}.card{transition:transform var(--slow), box-shadow var(--slow), border-color var(--slow)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card h2{margin:0;font-size:1.05rem}.card-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.status,.state-pill,.status-pill{background:var(--surface-3);border-radius:var(--r-pill);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.35rem;padding:.22rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.status.active,.state-pill.on{background:var(--success-soft);box-shadow:inset 0 0 0 1px var(--success);color:var(--success)}.state-pill.on:before,.status.active:before{animation:pulse 2.4s var(--ease) infinite;background:var(--success);content:"";border-radius:50%;width:.4rem;height:.4rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.button-group{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.command-control{gap:.25rem;display:grid}.power-group{gap:.4rem}.power-group button{flex:1;min-width:6rem}.power-on{background:var(--success);color:var(--on-accent)}.power-on:hover:not(:disabled){box-shadow:0 0 1.2rem -.2rem var(--success)}.power-off{color:var(--text-muted)}.power-off:hover:not(:disabled){color:var(--text)}.power-group:not(.power-segmented) button[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent);font-weight:600}.power-segmented{background:var(--surface-2);border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--border);gap:.15rem;padding:.2rem;display:inline-flex}.power-segmented button{border-radius:var(--r-pill);box-shadow:none;color:var(--text-muted);background:0 0;min-width:3.1rem;min-height:1.9rem;padding:.3rem .8rem;font-size:.82rem}.power-segmented button:hover:not(:disabled){filter:none;transform:none}.power-segmented .power-on:hover:not(:disabled){background:var(--success-soft);box-shadow:inset 0 0 0 1px var(--success);color:var(--success)}.power-segmented .power-off:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.power-segmented button:focus-visible{box-shadow:var(--ring)}.power-segmented button[aria-pressed=true]{background:var(--success-soft);box-shadow:inset 0 0 0 1px var(--success);color:var(--success)}.power-segmented .power-off[aria-pressed=true]{background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--border);color:var(--text)}.card-action-bar{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.9rem;display:flex}.card-action-bar .command-control-compact{gap:.35rem}.card-action-bar .action-feedback button{min-height:2rem;padding:.35rem .95rem;font-size:.85rem}.card-action-links{gap:.15rem;margin-left:auto;display:flex}.table-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.table-actions .command-control-compact{gap:.35rem}.automation-table-scroll .table-action-cell{white-space:nowrap;width:1%}.automation-table-scroll .table-action-cell .action-feedback,.automation-table-scroll .table-action-cell .command-control{display:inline-grid}.automation-table-scroll .table-action-cell button{width:max-content;min-width:max-content;max-width:8rem;padding-left:.65rem;padding-right:.65rem}.automation-table-scroll .table-action-cell .power-segmented button{padding-left:.55rem;padding-right:.55rem}.automation-table-scroll .table-action-cell .form-error{white-space:normal;max-width:12rem}.ghost-action{border-radius:var(--r-md);color:var(--text-muted);min-height:1.9rem;transition:background var(--fast), color var(--fast);background:0 0;justify-content:center;align-items:center;padding:.3rem .7rem;font-size:.82rem;font-weight:600;display:inline-flex}.ghost-action:hover:not(:disabled){background:var(--surface-3);color:var(--text);filter:none;text-decoration:none;transform:none}.ghost-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.form-error{color:var(--danger);margin:.5rem 0 0}.form-success{color:var(--success);margin:.5rem 0 0}.form-alert{background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--r-md);color:var(--danger);gap:.2rem;padding:.8rem .9rem;display:grid}.form-alert strong{color:var(--danger)}.form-warning{background:var(--warning-soft);border:1px solid var(--warning);border-radius:var(--r-md);color:var(--warning);padding:.7rem .85rem}.empty-state{color:var(--text-muted)}.empty-state h2{color:var(--text)}.login-page{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.login-card{animation:rise .5s var(--ease) both;box-shadow:var(--shadow-lg);width:100%;max-width:26rem;padding:2rem;position:relative}.login-card:before{background:var(--aurora);border-radius:var(--r-lg) var(--r-lg) 0 0;content:"";height:2px;position:absolute;top:0;left:1.5rem;right:1.5rem}@keyframes rise{0%{opacity:0;translate:0 1rem}to{opacity:1;translate:0}}.login-mark{border-radius:var(--r-md);width:2.6rem;height:2.6rem;margin-bottom:1.25rem}.login-mark svg{width:1.4rem;height:1.4rem}.form-stack{gap:1rem;margin-top:1.5rem;display:grid}.form-stack label{gap:.4rem;font-size:.85rem;font-weight:600;display:grid}.form-stack button[type=submit]{min-height:2.9rem}.checkbox-label{align-items:center;gap:.6rem!important;font-weight:500!important;display:flex!important}.checkbox-label input{width:auto}.detail-card{max-width:44rem}.detail-card h2{margin:0 0 1rem;font-size:1.05rem}dl{gap:.85rem;display:grid}dl div{gap:.15rem;display:grid}dt{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.78rem}dd{margin:0;font-weight:600}.back-link{color:var(--text-muted);align-items:center;gap:.35rem;margin-bottom:1.25rem;display:inline-flex}.back-link:hover{color:var(--text)}.button-link{background:var(--aurora);border-radius:var(--r-md);color:var(--on-accent);text-align:center;min-height:2.6rem;transition:transform var(--fast), filter var(--fast);justify-content:center;align-items:center;padding:.6rem 1rem;font-weight:600;display:inline-flex}.button-link:hover{color:var(--on-accent);filter:brightness(1.08);text-decoration:none;transform:translateY(-1px)}.filter-disclosure{background:color-mix(in srgb, var(--surface-2) 60%, transparent);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:1.25rem}.filter-disclosure>summary{color:var(--text-muted);cursor:pointer;transition:color var(--fast);align-items:center;gap:.5rem;padding:.55rem .85rem;font-size:.85rem;font-weight:600;list-style:none;display:flex}.filter-disclosure>summary::-webkit-details-marker{display:none}.filter-disclosure>summary:hover{color:var(--text)}.filter-disclosure>summary:after{content:"";opacity:.6;height:.38rem;transition:rotate var(--fast);border-bottom:1.5px solid;border-right:1.5px solid;width:.38rem;margin-left:auto;rotate:45deg}.filter-disclosure[open]>summary{border-bottom:1px solid var(--border);color:var(--text)}.filter-disclosure[open]>summary:after{rotate:-135deg}.filter-disclosure svg{width:1rem;height:1rem}.filter-count{background:var(--accent-soft);border-radius:var(--r-pill);color:var(--accent);padding:.1rem .5rem;font-size:.7rem;font-weight:700}.filter-body{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem .85rem;padding:.9rem .85rem;display:grid}.filter-body label{align-content:start}.filter-body .filter-actions{grid-column:1/-1;justify-content:end;align-items:center;gap:.5rem;display:flex}.filter-body .filter-actions button{min-height:2.2rem;padding:.4rem 1rem}.filter-inline{background:color-mix(in srgb, var(--surface-2) 60%, transparent);border:1px solid var(--border);border-radius:var(--r-md);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:end;gap:.75rem .85rem;margin-bottom:1.25rem;padding:.85rem;display:grid}.filter-inline button{min-height:2.2rem;padding:.4rem 1rem}.toolbar-card{margin-bottom:1rem}.toolbar-card h2,.scene-section h2{margin:0 0 1rem;font-size:1.05rem}.inline-form,.member-form{align-items:end;gap:.75rem;display:grid}.inline-form{grid-template-columns:minmax(14rem,1fr) auto}.inline-form label,.member-form label,.dashboard-toolbar>label,.dashboard-name,.add-tile label,.tile-editor-fields label,.organization-create-form label,.organization-filters label,.inline-editor label,.admin-editor label,.entity-actions label,.upnp-action label,.automation-form label,.energy-filters>label,.device-filters label,.setup-import-form label,.setup-preview label,.danger-zone label,.threshold-level label,.filter-field,.schedule-date-nav label,.filter-body label,.filter-inline label,.field-row label{letter-spacing:.01em;gap:.35rem;font-size:.82rem;font-weight:600;display:grid}.form-span{grid-column:1/-1}.scene-card{flex-direction:column;justify-content:space-between;display:flex}.action-feedback{display:grid}.scene-detail-heading{gap:1rem}.scene-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.scene-section:first-child{grid-column:1/-1}.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.count{color:var(--text-muted);font-size:.85rem;font-weight:500}.member-form{border-bottom:1px solid var(--border);grid-template-columns:minmax(10rem,1fr) minmax(8rem,.5fr) auto;margin-bottom:1rem;padding-bottom:1rem}.member-list,.resource-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.member-list li,.resource-list li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);transition:background var(--fast), border-color var(--fast);justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem;display:flex}.member-list li:hover,.resource-list li:hover{background:var(--surface-3);border-color:var(--border-strong)}.member-list li>div:first-child{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.resource-list li>div{gap:.2rem;display:grid}.member-actions{flex-wrap:wrap;justify-content:end;align-items:start;gap:.4rem;display:flex}.action-error{text-align:right;flex-basis:100%}.empty-inline{color:var(--text-muted);margin:.5rem 0 0}.compact{margin:0 0 1rem}.reading-summary{color:var(--text-muted);flex-wrap:wrap;gap:.75rem;font-size:.8rem;display:flex}.card-timeline{gap:.35rem;margin:.75rem 0 0;font-size:.8rem;display:grid}.card-timeline>div{grid-template-columns:2.75rem 1fr;gap:.6rem;display:grid}.card-timeline dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;line-height:1.5}.card-timeline dd{margin:0}.card-timeline dd small{color:var(--text-muted);display:block}.dashboard-heading{margin-bottom:1.25rem}.dashboard-toolbar{grid-template-columns:minmax(12rem,1fr) auto auto;align-items:end;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.15rem;display:grid}.column-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);align-items:center;gap:.2rem;margin:0;padding:.25rem;display:flex}.column-picker legend{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding:0 .5rem 0 .35rem;font-size:.7rem;font-weight:700}.column-picker button{box-shadow:none;color:var(--text-muted);background:0 0;min-width:2.25rem;min-height:2rem;padding:.3rem .5rem}.column-picker button:hover:not(:disabled){background:var(--surface-3);color:var(--text);filter:none;transform:none}.column-picker button[aria-pressed=true]{background:var(--aurora);color:var(--on-accent)}.dashboard-actions{justify-content:end;margin:0}.dashboard-empty{margin-top:1rem}.dashboard-empty h2{margin-top:0}.dashboard-grid{grid-template-columns:repeat(var(--dashboard-columns), minmax(0, 1fr));gap:1rem;display:grid}.dashboard-tile{--tile-hue:var(--accent);animation:tile-in .45s var(--ease) both;background:var(--surface);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-md);min-width:0;transition:transform var(--slow), box-shadow var(--slow), border-color var(--slow);flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes tile-in{0%{opacity:0;translate:0 .75rem}to{opacity:1;translate:0}}.dashboard-tile:before{background:linear-gradient(90deg, transparent, var(--tile-hue), transparent);content:"";opacity:.9;height:1px;position:absolute;top:0;left:0;right:0}.dashboard-tile:after{background:radial-gradient(14rem 10rem at 100% 0%, color-mix(in srgb, var(--tile-hue) 22%, transparent), transparent 70%);content:"";opacity:.6;pointer-events:none;transition:opacity var(--slow);position:absolute;inset:0}.dashboard-tile:hover{border-color:color-mix(in srgb, var(--tile-hue) 40%, var(--border));box-shadow:var(--shadow-lg);transform:translateY(-3px)}.dashboard-tile:hover:after{opacity:1}.dashboard-tile header{z-index:1;background:0 0;border:0;align-items:center;gap:.6rem;padding:1rem 1.15rem .25rem;display:flex;position:relative}.dashboard-tile header h2{margin:0;font-size:.95rem}.dashboard-tile .tile-kind{color:var(--text-faint);letter-spacing:.12em;text-transform:uppercase;font-size:.64rem;font-weight:800;display:block}.tile-badge{background:color-mix(in srgb, var(--tile-hue) 16%, transparent);border-radius:var(--r-md);color:var(--tile-hue);flex:none;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;display:flex}.tile-badge svg{width:1.1rem;height:1.1rem}.tile-temperature{--tile-hue:var(--hue-temperature)}.tile-humidity{--tile-hue:var(--hue-humidity)}.tile-weather{--tile-hue:var(--hue-weather)}.tile-sunrise{--tile-hue:var(--hue-sunrise)}.tile-electricityprice{--tile-hue:var(--hue-electricityprice)}.tile-group{--tile-hue:var(--hue-group)}.tile-location{--tile-hue:var(--hue-location)}.tile-scene{--tile-hue:var(--hue-scene)}.tile-sensor{--tile-hue:var(--hue-sensor)}.tile-chart{--tile-hue:var(--hue-chart)}.dashboard-tile-content{z-index:1;flex-direction:column;flex:1;justify-content:center;min-height:10.5rem;padding:.75rem 1.15rem 1.15rem;display:flex;position:relative}.dashboard-tile-content>p{color:var(--text-muted);margin:.6rem 0 0;font-size:.82rem}.tile-value{font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums;letter-spacing:-.035em;font-size:clamp(2rem,1.2rem + 2.4vw,2.9rem);font-weight:600;line-height:1.05;display:block}.tile-resource{letter-spacing:-.02em;font-size:1.35rem}.tile-unavailable{color:var(--text-faint);text-align:center;margin:0!important}.tile-stat-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.tile-stat-row span{background:var(--surface-2);border-radius:var(--r-sm);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;flex:1;gap:.1rem;min-width:4.5rem;padding:.45rem .6rem;font-size:.68rem;display:grid}.tile-stat-row b{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1rem}.dashboard-tile .command-control{margin-top:auto}.dashboard-tile .button-group{margin-top:.9rem}.dashboard-tile .button-group button{flex:1;min-width:5.5rem}.dashboard-chart{width:100%;height:auto;max-height:9rem;display:block;overflow:visible}.chart-axis{stroke:var(--border-strong);stroke-width:1px}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-tick{fill:var(--text-faint);font-size:.58rem}.chart-tick-left,.chart-tick-right{font-variant-numeric:tabular-nums}.chart-crosshair{pointer-events:none;stroke:var(--text-muted);stroke-dasharray:3 3;stroke-width:1px}.chart-plot{position:relative}.chart-tooltip{background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;z-index:1;padding:.5rem .6rem;font-size:.72rem;position:absolute;top:.5rem;transform:translate(-50%)}.chart-tooltip strong{color:var(--text);margin-bottom:.3rem;font-size:.68rem;font-weight:600;display:block}.chart-tooltip ul{gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.chart-tooltip li{align-items:center;gap:.35rem;display:flex}.chart-tooltip i{border-radius:50%;flex-shrink:0;width:.45rem;height:.45rem;display:inline-block}.chart-tooltip-value{color:var(--text);font-weight:600}.chart-tooltip-name{color:var(--text-muted)}.chart-legend{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem;display:flex}.chart-legend span{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.72rem;display:flex}.chart-legend i{border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.chart-legend .chart-export{margin-left:auto;padding:.2rem .55rem;font-size:.7rem}.time-series-workspace{gap:1rem;min-width:0;display:grid}.analysis-toolbar{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);grid-template-columns:minmax(13rem,1.2fr) repeat(4,minmax(8.5rem,.75fr)) auto;align-items:end;gap:.65rem;padding:.75rem;display:grid}.analysis-toolbar label{color:var(--text-muted);gap:.3rem;font-size:.72rem;font-weight:650;display:grid}.analysis-toolbar input,.analysis-toolbar select{width:100%;min-width:0}.analysis-quick-ranges{flex-wrap:wrap;gap:.3rem;display:flex}.analysis-quick-ranges button{min-height:2.25rem;padding:.35rem .55rem}.analysis-error{margin:0}.analysis-status{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.analysis-status span{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.25rem .55rem;font-size:.7rem}.analysis-layout{grid-template-columns:minmax(0,1fr) minmax(17rem,21rem);align-items:start;gap:1rem;display:grid}.analysis-visuals{min-width:0}.analysis-window{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);gap:.55rem;margin-top:.8rem;padding:.75rem;display:grid}.analysis-window-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.analysis-window-heading h3{margin:0;font-size:.85rem}.analysis-window-heading p{color:var(--text-muted);margin:.15rem 0 0;font-size:.72rem}.analysis-window label{color:var(--text-muted);gap:.15rem;font-size:.7rem;display:grid}.analysis-window input[type=range]{accent-color:var(--aurora-2);width:100%;margin:0}.analysis-navigator{border:1px solid var(--border);border-radius:var(--r-sm);height:4rem;overflow:hidden}.analysis-navigator svg{width:100%;height:100%;display:block}.analysis-navigator polyline{fill:none;opacity:.75;stroke-width:2px;vector-effect:non-scaling-stroke}.analysis-navigator-background{fill:var(--surface-3)}.analysis-navigator-selection{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.analysis-navigator-handle{stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.analysis-statistics{gap:.65rem;max-height:44rem;padding-right:.15rem;display:grid;overflow:auto}.analysis-statistics>h3{margin:0;font-size:.95rem}.analysis-statistics>.muted{margin:-.35rem 0 .2rem;font-size:.75rem}.analysis-statistics article{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:.75rem}.analysis-statistics h4{align-items:center;gap:.4rem;margin:0 0 .65rem;font-size:.78rem;display:flex}.analysis-statistics h4 i{border-radius:50%;width:.55rem;height:.55rem}.analysis-statistics dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin:0;display:grid}.analysis-statistics dl div{background:var(--surface-3);border-radius:var(--r-sm);min-width:0;padding:.4rem .5rem}.analysis-statistics dt{color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;font-size:.62rem}.analysis-statistics dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;gap:.15rem;margin:.12rem 0 0;font-size:.78rem;font-weight:650;display:grid}.analysis-statistics dd time{color:var(--text-muted);font-size:.64rem;font-weight:500}.dashboard-editor h2{margin:0}.dashboard-name{max-width:32rem;margin:1rem 0}.add-tile{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);grid-template-columns:minmax(12rem,20rem) auto;justify-content:start;align-items:end;gap:.75rem;padding:1rem;display:grid}.tile-editor-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.tile-editor-list>li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:1rem}.tile-editor-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.tile-editor-heading .button-group{margin:0}.tile-editor-heading button{min-height:2.2rem;padding:.4rem .7rem}.tile-editor-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem;display:grid}.filter-field{max-width:28rem;margin-bottom:1rem}.organization-create-form,.organization-filters{align-items:end;gap:.75rem;display:grid}.organization-create-form{grid-template-columns:minmax(12rem,1fr) minmax(12rem,1fr) auto}.organization-filters{grid-template-columns:minmax(14rem,1fr) minmax(12rem,18rem);max-width:48rem;margin-bottom:1rem}.organization-card{flex-direction:column;justify-content:space-between;display:flex}.organization-card .action-feedback{margin-top:1rem}.organization-detail-heading{gap:1rem}.organization-detail-heading .action-feedback{min-width:12rem}.organization-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.organization-sections>.scene-section:last-child{grid-column:1/-1}.hub-grid{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.hub-card{color:inherit;transition:transform var(--slow), box-shadow var(--slow), border-color var(--slow);display:block;position:relative;overflow:hidden}.hub-card:after{background:var(--aurora);content:"";opacity:0;height:2px;transition:opacity var(--slow);position:absolute;top:0;left:0;right:0}.hub-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);color:inherit;text-decoration:none;transform:translateY(-3px)}.hub-card:hover:after{opacity:1}.hub-card h2{margin:0 0 .35rem;font-size:1.05rem}.hub-card p{color:var(--text-muted);margin:0}.hub-card .hub-open{color:var(--text-faint);transition:color var(--fast), translate var(--fast);margin-top:.75rem;font-size:.8rem;font-weight:600;display:block}.hub-card:hover .hub-open{color:var(--accent);translate:.15rem}.entity-card{gap:1rem;display:grid}.entity-card h2{margin:0}.inline-editor,.admin-editor,.entity-actions{gap:.8rem;margin-bottom:1rem;padding:1.15rem;display:grid}.inline-editor{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));align-items:end}.inline-editor h2,.inline-editor h3{grid-column:1/-1;margin:0}.admin-editor textarea{width:100%;font-family:ui-monospace,SF Mono,Menlo,monospace}.form-grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;display:grid}.row-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.entity-actions form{grid-template-columns:1fr auto;align-items:end;gap:.5rem;display:grid}.related-links{flex-wrap:wrap;gap:.75rem;display:flex}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.compact-form{margin-top:0}.compact-details{margin:0}.assignment-toolbar{background:color-mix(in srgb, var(--surface-2) 60%, transparent);border:1px solid var(--border);border-radius:var(--r-md);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.8rem .9rem;display:flex}.assignment-toolbar h3{margin:0;font-size:.95rem}.assignment-toolbar p{margin:.25rem 0 0;font-size:.8rem}.assignment-toolbar>div{min-width:0}.assignment-dialog{gap:1rem;display:grid}.assignment-dialog>p{margin:0}.assignment-search{gap:.35rem;font-size:.82rem;font-weight:600;display:grid}.assignment-selection-bar{border-bottom:1px solid var(--border);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem 0;display:flex}.assignment-selection-bar p{margin:0}.assignment-selection-actions{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.assignment-device-list{border:1px solid var(--border);border-radius:var(--r-md);gap:.35rem;max-height:min(48dvh,28rem);margin:0;padding:.35rem;display:grid;overflow:auto}.assignment-device-option{background:var(--surface-2);border-radius:var(--r-sm);cursor:pointer;transition:background var(--fast), border-color var(--fast);border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.65rem .7rem;display:grid}.assignment-device-option:hover{background:var(--surface-3);border-color:var(--border-strong)}.assignment-device-option input{width:auto}.assignment-device-meta{gap:.15rem;min-width:0;display:grid}.assignment-device-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.assignment-device-meta .muted{font-size:.78rem}.assignment-device-location{color:var(--text-muted);text-align:right;white-space:nowrap;font-size:.75rem}.assignment-device-location.moving{color:var(--warning)}.assignment-empty{color:var(--text-muted);text-align:center;margin:0;padding:1.5rem 0}.automation-card[data-enabled=false]{opacity:.72}.automation-card[data-enabled=false]:hover,.automation-card:focus-within{opacity:1}.automation-section{max-width:none;margin-top:1rem}.automation-section>h2,.automation-section>.section-heading h2{margin:0}.editor-details{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);margin:1rem 0;overflow:hidden}.editor-details>summary{cursor:pointer;align-items:center;gap:.5rem;padding:.75rem .9rem;font-weight:650;list-style:none;display:flex}.editor-details>summary::-webkit-details-marker{display:none}.editor-details>summary:after{content:"";opacity:.6;height:.38rem;transition:rotate var(--fast);border-bottom:1.5px solid;border-right:1.5px solid;width:.38rem;margin-left:auto;rotate:45deg}.editor-details[open]>summary:after{rotate:-135deg}.editor-details>summary:hover{background:var(--surface-3)}.disclosure-body{background:var(--surface-solid);border-top:1px solid var(--border);padding:1rem}.field-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem;display:grid}.field-row+.field-row,.field-row+.card-action-links{margin-top:.8rem}.field-row button{min-height:2.2rem}.field-row-block{grid-template-columns:1fr}.field-label{color:var(--text-muted);letter-spacing:.01em;font-size:.82rem;font-weight:600}.chip-row{flex-wrap:wrap;gap:.35rem;margin:.75rem 0;display:flex}.chip-row+.editor-details{margin-top:0}.automation-form{background:var(--surface-solid);border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.75rem;padding:1rem;display:grid}.automation-form>button{justify-self:start}.automation-form .target-picker{grid-column:1/-1}.automation-step{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:1rem}.automation-step h3,.automation-step p{margin:0 0 .5rem}.create-automation-form{background:0 0;border-top:0;padding:0}.automation-flow-section{max-width:none;margin-top:1rem}.flow-rail{gap:0;margin:1rem 0 0;padding:0;list-style:none;display:grid}.flow-step{grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:start;gap:.75rem;padding:.85rem 0;display:grid;position:relative}.flow-step+.flow-step{border-top:1px solid var(--border)}.flow-gutter{justify-items:center;gap:.3rem;display:grid;position:relative}.flow-gutter:before{background:var(--border-strong);content:"";width:1px;position:absolute;top:1.1rem;bottom:-1.2rem;left:calc(50% - .5px)}.flow-step:last-child .flow-gutter:before{display:none}.flow-node{background:var(--surface-solid);border:2px solid var(--border-strong);border-radius:50%;width:.7rem;height:.7rem;margin-top:.25rem}.flow-step[data-next=true] .flow-node{background:var(--aurora);border-color:var(--aurora-2)}.flow-step[data-stops=true] .flow-node{border-style:dashed}.flow-time{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.flow-step[data-next=true] .flow-time{color:var(--text);font-weight:650}.flow-body{min-width:0}.flow-body p{margin:0 0 .25rem}.flow-trigger{font-weight:600}.flow-icon{vertical-align:-.18em;width:1rem;height:1rem;margin-right:.35rem;display:inline-block}.flow-trigger .flow-icon{color:var(--text-muted)}.flow-step[data-next=true] .flow-trigger .flow-icon{color:var(--aurora-2)}.flow-action{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.flow-actions{align-items:center;gap:.25rem;display:flex}.add-step{margin-top:1rem}.branch-picker{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.branch-picker .tab-links{margin:0}.branch-days{opacity:.75;font-size:.7rem;font-weight:500;display:block}.branch-picker-actions{gap:.25rem;display:flex}.overflow-menu{position:relative}.overflow-menu-panel{background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:20;min-width:11rem;padding:.25rem;display:grid;position:absolute;top:calc(100% + .25rem);right:0}.overflow-menu-panel button{border-radius:var(--r-sm);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;padding:.45rem .6rem;font-size:.85rem}.overflow-menu-panel button:hover:not(:disabled){background:var(--surface-3)}.overflow-menu-panel button:disabled{cursor:not-allowed;opacity:.45}.overflow-menu-panel .menu-danger{color:var(--danger)}.step-form-group{border:1px solid var(--border);border-radius:var(--r-md);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.75rem;padding:.9rem;display:grid}.step-form-group>legend{letter-spacing:.02em;text-transform:uppercase;padding:0 .35rem;font-size:.8rem;font-weight:650}.step-form-group .target-picker{grid-column:1/-1}.settings-actions{margin-left:0}.dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.table-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--r-lg);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.75rem .85rem}th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:.7rem;font-weight:700;position:sticky;top:0}.sortable-table th[data-sortable]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-table th[data-sortable]:after{color:var(--text-faint);content:"↕";margin-left:.35rem;display:inline-block}.sortable-table th[data-sortable][aria-sort=ascending]:after{color:var(--accent);content:"↑"}.sortable-table th[data-sortable][aria-sort=descending]:after{color:var(--accent);content:"↓"}.sortable-table th[data-sortable]:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}tbody tr{transition:background var(--fast)}tbody tr:hover{background:var(--surface-hover)}tbody tr:last-child td{border-bottom:0}.table-note{color:var(--text-muted);margin-top:.2rem;font-size:.8rem;display:block}.schedule-date-nav{align-items:center;gap:.35rem;display:flex}.schedule-date-nav .ghost-action{text-align:center;min-width:2.25rem;padding:.4rem .6rem}.schedule-date-picker input[type=date]{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:.4rem .6rem;font-size:.85rem}.schedule-date-picker input[type=date]:focus-visible{box-shadow:var(--ring);outline:none}.schedule-week{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;margin:0 0 1.25rem;padding:.25rem;display:grid}.schedule-week a{border-radius:var(--r-sm);color:var(--text-muted);transition:background var(--fast), color var(--fast);place-items:center;gap:.1rem;padding:.45rem .3rem;display:grid}.schedule-week a:hover{background:var(--surface-3);color:var(--text)}.schedule-week a[aria-current=date]{background:var(--aurora);color:var(--on-accent)}.schedule-week a[data-today]:not([aria-current=date]){color:var(--accent)}.schedule-week strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.05rem}.schedule-week-day{letter-spacing:.08em;font-size:.62rem}.schedule-stats{margin-top:0}.schedule-section{max-width:none;margin-top:1rem}.schedule-section h2{margin:0}.schedule-axis{color:var(--text-faint);justify-content:space-between;margin-left:10rem;padding:.5rem 0;font-size:.7rem;display:flex}.schedule-rows{gap:.45rem;display:grid}.sun-context{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem .85rem;margin:.75rem 0 1rem;padding:.65rem .8rem;font-size:.8rem;display:flex}.sun-context i{color:var(--warning);font-style:normal}.schedule-rail{margin:0;padding:0;list-style:none;display:grid}.schedule-rail>li{display:grid}.schedule-gap{border-left:1px dashed var(--border);height:clamp(.4rem, calc(var(--gap,0) * .05rem), 3.5rem);margin-left:3.5rem}.schedule-slot{border-radius:var(--r-md);grid-template-columns:3.5rem 1fr;gap:.75rem;padding:.2rem 0;display:grid}.schedule-slot[data-night]{background:color-mix(in srgb, var(--aurora-2) 7%, transparent)}.schedule-time{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right;padding-top:.55rem;font-size:.8rem}.schedule-slot-items{gap:.4rem;display:grid}.schedule-event{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--text-faint);border-radius:var(--r-sm);padding:.55rem .75rem}.schedule-event[data-state=on]{border-left-color:var(--accent)}.schedule-event[data-conflict]{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 40%, transparent);border-left-color:var(--danger)}.schedule-event-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.schedule-event-meta{color:var(--text-muted);flex-wrap:wrap;gap:.25rem .5rem;margin:.25rem 0 0;font-size:.78rem;display:flex}.schedule-event-meta>:not(:first-child):before{color:var(--text-faint);content:"·";padding-right:.5rem}.schedule-sun-slot{color:var(--warning);font-size:.8rem}.schedule-sun-label{align-items:center;gap:.4rem;margin:0;padding-top:.1rem;display:flex}.schedule-now{color:var(--accent);align-items:center;gap:.5rem;margin:.35rem 0;font-size:.72rem;font-weight:600;display:flex}.schedule-now time{font-variant-numeric:tabular-nums;text-align:right;min-width:3.5rem}.schedule-now span{letter-spacing:.06em;text-transform:uppercase;flex:1;align-items:center;gap:.5rem;display:flex}.schedule-now span:after{background:var(--accent);content:"";opacity:.5;flex:1;height:1px}.schedule-row{grid-template-columns:9.25rem 1fr;align-items:center;gap:.75rem;display:grid}.schedule-target{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.schedule-target small{color:var(--text-muted);display:block}.schedule-track{background:repeating-linear-gradient(90deg, var(--border) 0, var(--border) 1px, transparent 1px, transparent 25%), var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);height:2.75rem;position:relative}.schedule-marker{background:var(--accent);border:2px solid var(--surface-solid);border-radius:var(--r-pill);box-shadow:0 0 .6rem var(--accent);color:var(--on-accent);cursor:pointer;z-index:1;min-width:1rem;height:1rem;padding:0;font-size:.62rem;font-weight:700;position:absolute;top:.8rem;transform:translate(-50%)}.schedule-marker em{font-style:normal}.schedule-marker:focus-visible{box-shadow:var(--ring);outline:none}.sun-line{border-left:2px dashed var(--warning);z-index:0;position:absolute;top:0;bottom:0}.sun-line.sunset{border-color:var(--hue-group)}.schedule-marker.off{background:var(--text-faint);box-shadow:none;color:var(--text)}.schedule-marker.conflict{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft), 0 0 .7rem var(--danger)}.schedule-tip{background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-md);color:var(--text);white-space:nowrap;z-index:3;padding:.4rem .6rem;font-size:.75rem;font-weight:500;display:none;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.schedule-tip>span,.schedule-marker:hover .schedule-tip,.schedule-marker:focus-visible .schedule-tip{display:block}.schedule-legend{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.78rem;display:flex}.schedule-legend i{background:var(--accent);border-radius:50%;width:.6rem;height:.6rem;margin-left:.4rem;display:inline-block}.schedule-legend i.off{background:var(--text-faint)}.schedule-legend i.conflict{background:var(--danger)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.conflict-row{background:var(--danger-soft)}.conflict-label{background:var(--danger-soft);border-radius:var(--r-pill);color:var(--danger);width:fit-content;margin-top:.25rem;padding:.1rem .45rem;font-size:.66rem;font-weight:700;display:block}.device-filters{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:.75rem;display:grid}.device-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.device-detail-grid .detail-card{max-width:none}.device-detail-grid .detail-card:last-child{grid-column:1/-1}.device-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.settings-disclosure{margin-top:1.5rem}.settings-disclosure>.device-settings{background:var(--surface-solid);border-top:1px solid var(--border);margin:0;padding:1rem}.device-settings>.form-error,.device-settings>.form-success{grid-column:1/-1}.danger-zone{background:var(--danger-soft);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);border-radius:var(--r-lg);gap:1rem;margin-top:1.5rem;padding:1.25rem;display:grid}.danger-zone h2,.danger-zone p{margin:0}.danger-zone h2{color:var(--danger)}.danger-zone form{grid-template-columns:minmax(12rem,24rem) auto;align-items:end;gap:.75rem;display:grid}.compact-danger-zone{gap:.5rem;margin-top:1rem;padding:1rem}.compact-danger-zone h3{color:var(--danger);margin:0;font-size:.9rem}.setup-backup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.setup-import-form,.setup-preview{gap:.75rem;margin-top:1rem;display:grid}.setup-import-form button,.setup-preview button{justify-self:start}.setup-counts{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.5rem;margin:0;display:grid}.setup-counts div{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:.7rem}.setup-counts dt{color:var(--text-muted);font-size:.68rem}.setup-counts dd{font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:1.25rem;font-weight:700}.insight-chart{margin:1rem 0 0}.insight-chart svg{width:100%;height:auto;max-height:24rem;display:block}.chart-plot-expandable{border-radius:var(--r-md);cursor:pointer;outline-offset:2px;transition:background var(--fast)}.chart-plot-expandable:hover{background:var(--surface-2)}.chart-plot-expandable:focus-visible{outline:2px solid var(--aurora)}.chart-data-table{margin-top:.6rem}.chart-data-table summary{color:var(--text-muted);cursor:pointer;font-size:.82rem;font-weight:600}.insight-stack{gap:1rem;display:grid}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem;margin:1rem 0;display:grid}.metric-grid article{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);gap:.2rem;padding:.85rem;display:grid}.metric-grid span{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem}.metric-grid strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.35rem}.metric-grid article[data-state=warning]{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 40%, transparent)}.metric-grid article[data-state=critical]{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.metric-grid progress{accent-color:var(--aurora-2);width:100%}.weather-day-strip{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.6rem;margin:1rem 0;display:grid}.weather-day-source{grid-column:1/-1;margin:0;font-size:.78rem}.weather-day{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);gap:.3rem;padding:.7rem .8rem;display:grid}.weather-day-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem}.weather-day-range{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.15rem}.weather-condition{align-items:center;gap:.35rem;display:inline-flex}.weather-condition-icon{flex:none;width:1.05rem;height:1.05rem}.weather-condition-text{color:var(--text);font-size:.82rem}.weather-day .weather-condition-text{color:var(--text-muted)}.weather-age{color:var(--text-muted);font-size:.7rem}.weather-age-stale{color:var(--warning)}.metric-zone{font-size:.95rem}.weather-hourly h3{margin:1rem 0 .4rem;font-size:.95rem}.weather-hourly summary{font-variant-numeric:tabular-nums}.weather-hourly tr[data-past]{opacity:.55}.chart-reference{pointer-events:none;stroke:var(--text-muted);stroke-dasharray:2 4;stroke-width:1.5px}.chart-reference-label{fill:var(--text-muted)}.sun-bar{gap:.6rem;margin:1rem 0;display:grid}.sun-bar-track{border:1px solid var(--border);border-radius:var(--r-md);height:2.4rem;display:flex;position:relative;overflow:hidden}.sun-bar-phase{height:100%;display:block}.sun-bar-phase[data-phase=dawn-twilight],.sun-bar-phase[data-phase=dusk-twilight]{background:#3b3f6b}.sun-bar-phase[data-phase=civil-dawn],.sun-bar-phase[data-phase=civil-dusk]{background:#d98a4f}.sun-bar-phase[data-phase=daylight]{background:#f2c14e}.sun-bar-marker{background:#1b1d2acc;width:2px;position:absolute;top:0;bottom:0}.sun-bar-markers,.sun-bar-legend{color:var(--text-muted);flex-wrap:wrap;gap:.3rem .9rem;font-size:.78rem;display:flex}.sun-bar-markers strong{color:var(--text);font-variant-numeric:tabular-nums}.sun-bar-key{align-items:center;gap:.35rem;display:inline-flex}.sun-bar-swatch{border-radius:2px;flex:none;width:.7rem;height:.7rem}.sun-bar-swatch[data-phase=dawn-twilight],.sun-bar-swatch[data-phase=dusk-twilight]{background:#3b3f6b}.sun-bar-swatch[data-phase=civil-dawn],.sun-bar-swatch[data-phase=civil-dusk]{background:#d98a4f}.sun-bar-swatch[data-phase=daylight]{background:#f2c14e}.sun-bar-tick{background:var(--text-muted);flex:none;width:2px;height:.7rem}.sun-automations{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.sun-automations>li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:.7rem .85rem}.sun-automation-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.sun-automation-triggers{gap:.25rem;margin:.45rem 0 0;padding:0;list-style:none;display:grid}.sun-automation-triggers li{color:var(--text-muted);align-items:baseline;gap:.5rem;font-size:.82rem;display:flex}.sun-automation-triggers strong{color:var(--text);font-variant-numeric:tabular-nums;min-width:3.2rem}.record-grid{grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr));gap:.75rem;margin:1rem 0 0;display:grid}.record-card{--record-hue:var(--accent);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);border-top:3px solid var(--record-hue);gap:.15rem;padding:.9rem;display:grid}.record-card[data-tone=hot]{--record-hue:var(--hue-temperature)}.record-card[data-tone=cold]{--record-hue:var(--hue-humidity)}.record-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:650}.record-value{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:1.6rem;line-height:1.15}.record-sensor{color:var(--record-hue);font-size:.85rem;font-weight:600}.record-hint{color:var(--text-faint);font-size:.7rem}.temperature-filters{grid-template-columns:minmax(0,2fr) minmax(9rem,1fr) auto;align-items:start}.temperature-filters>label{margin-top:.1rem}.temperature-filters>button{align-self:start;margin-top:1.68rem}.sensor-picker{min-width:0}.sensor-picker>summary{cursor:pointer;align-items:baseline;gap:.5rem;padding:.35rem 0;list-style:none;display:flex}.sensor-picker>summary::-webkit-details-marker{display:none}.sensor-picker>summary:after{content:"";height:.4rem;transition:rotate var(--fast);border-bottom:2px solid;border-right:2px solid;width:.4rem;margin-left:.1rem;translate:0 -.15rem;rotate:45deg}.sensor-picker[open]>summary:after{translate:0 .1rem;rotate:-135deg}.sensor-picker>summary:hover{color:var(--text)}.sensor-picker>summary:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}.sensor-picker>summary:after{margin-right:auto}.picker-presets{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.3rem;padding:.5rem 0 .6rem;display:flex}.picker-presets>button{min-height:1.7rem;padding:.25rem .6rem;font-size:.78rem}.picker-presets>button:disabled{cursor:not-allowed;opacity:.45}.chip-checkboxes{flex-wrap:wrap;gap:.35rem;max-height:13rem;padding-top:.5rem;display:flex;overflow-y:auto}.chip-checkbox{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);cursor:pointer;transition:background var(--fast), border-color var(--fast), color var(--fast);align-items:center;gap:.4rem;padding:.3rem .7rem .3rem .55rem;font-size:.82rem;display:inline-flex}.chip-checkbox:hover{background:var(--surface-3)}.chip-checkbox:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.chip-checkbox:has(input:focus-visible){box-shadow:var(--ring)}.chip-checkbox input{accent-color:var(--accent);margin:0}.series-name{align-items:center;gap:.45rem;display:inline-flex}.series-swatch{border-radius:50%;flex:none;width:.6rem;height:.6rem}.table-subtext{color:var(--text-faint);margin-top:.15rem;font-size:.72rem;display:block}.sensor-detail+.sensor-detail{margin-top:.5rem}.sensor-detail>summary{flex-wrap:wrap;align-items:center;gap:.35rem 1rem;display:flex}.sensor-detail-summary{font-variant-numeric:tabular-nums;margin-left:auto;padding-right:1.5rem;font-size:.82rem}.period-table{margin-top:1.5rem}.period-table .section-heading{margin-bottom:.5rem}.period-table h3{margin:0;font-size:.9rem}@media (max-width:48rem){.temperature-filters{grid-template-columns:1fr}.record-value{font-size:1.35rem}}.driver-status-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);margin-top:1rem;padding:1.25rem}.driver-status-panel[data-state=online]{border-color:color-mix(in srgb, var(--success) 40%, var(--border))}.driver-status-panel[data-state=offline]{border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.driver-status-panel>.muted{margin:.6rem 0 0}.driver-status-details{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0 0;display:grid}.driver-status-details div{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);min-width:0;padding:.75rem}.driver-status-details dt{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem}.driver-status-details dd{overflow-wrap:anywhere;margin:.25rem 0 0;font-weight:650}.driver-status-details .driver-capabilities{grid-column:1/-1}.energy-filters{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:.75rem;display:grid}.energy-filters fieldset{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;grid-column:1/-1;gap:.6rem;display:flex}.chart-editor{margin-top:1rem}.chart-field{grid-template-columns:1fr 10rem;align-items:center;gap:.75rem;display:grid}.chart-card-grid{grid-template-columns:repeat(auto-fit,minmax(24rem,1fr));gap:1rem;display:grid}.tab-manager{background:var(--surface-2);border-top:1px solid var(--border);gap:.75rem;padding:1rem;display:grid}.tab-manager-row{grid-template-columns:1fr repeat(4,auto);align-items:center;gap:.5rem;display:grid}.tab-manager-row button{min-height:2.2rem;padding:.45rem .65rem}.tab-links{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;gap:.2rem;width:fit-content;margin:0 0 1.25rem;padding:.25rem;display:flex}.tab-links a,.tab-links button{border-radius:var(--r-sm);color:var(--text-muted);transition:background var(--fast), color var(--fast);padding:.45rem .85rem;font-size:.875rem;font-weight:550}.tab-links button{cursor:pointer;background:0 0;border:0;font-family:inherit}.tab-links a:hover,.tab-links button:hover{background:var(--surface-3);color:var(--text)}.tab-links a[aria-current=page],.tab-links button[aria-current=page]{background:var(--aurora);color:var(--on-accent)}.view-toggle{margin:0}.view-toggle a{padding:.35rem .7rem;font-size:.8rem}.quick-filters{margin:0 0 .5rem;font-size:.8rem}.quick-filters a{padding:.35rem .75rem;font-size:.8rem}.stat-lines{gap:.15rem;display:grid}.stat-lines>span{white-space:nowrap}.stat-measurement{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem}.card-stats{border-top:1px solid var(--border);grid-template-columns:auto repeat(3,minmax(0,1fr));gap:.3rem .6rem;margin:.75rem 0 0;padding-top:.6rem;font-size:.78rem;display:grid}.card-stats>span{white-space:nowrap}.card-stats-title,.card-stats-head{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem}.card-stats-head,.card-stats>span:not(.card-stats-title):not(.card-stats-head):not(.stat-measurement){text-align:right}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.pagination .is-disabled{opacity:.4}.upnp-action{border-top:1px solid var(--border);gap:.6rem;padding:.85rem 0;display:grid}.upnp-action pre,.log-detail pre{border:1px solid var(--border);border-radius:var(--r-md);color:#d6e0f5;white-space:pre-wrap;background:#05070d;max-height:28rem;padding:.85rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem;overflow:auto}.status-error,.status-fatal{background:var(--danger-soft);box-shadow:inset 0 0 0 1px var(--danger);color:var(--danger)}.status-warning{background:var(--warning-soft);box-shadow:inset 0 0 0 1px var(--warning);color:var(--warning)}.threshold-category{border:1px solid var(--border);border-radius:var(--r-md);gap:.8rem;margin-bottom:.8rem;padding:.9rem;display:grid}.threshold-level{background:var(--surface-2);border-radius:var(--r-sm);grid-template-columns:1fr repeat(3,minmax(7rem,.6fr)) auto;align-items:end;gap:.5rem;padding:.7rem;display:grid}.page-heading-actions{align-self:end}.create-button{padding-left:.85rem}.create-button svg{width:1.05rem;height:1.05rem}.portal-dialog{color:var(--text);background:0 0;border:0;width:min(38rem,100vw - 2rem);max-width:100vw;max-height:100dvh;padding:0;overflow:visible}.portal-dialog.wide{width:min(58rem,100vw - 2rem)}.portal-dialog.fullscreen{width:min(90rem,100vw - 2rem)}.portal-dialog.fullscreen .portal-dialog-panel{max-height:calc(100dvh - 2rem)}.portal-dialog.fullscreen .insight-chart svg{max-height:min(58dvh,36rem)}.portal-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04060cbf}.portal-dialog-panel{background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);flex-direction:column;max-height:min(85dvh,48rem);display:flex;overflow:hidden}.portal-dialog-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.portal-dialog-heading h2{margin:0;font-size:1.05rem}.portal-dialog-body{padding:1.25rem;overflow-y:auto}.portal-dialog-body>:first-child{margin-top:0}.portal-dialog-body>:last-child{margin-bottom:0}.portal-dialog-body>.inline-form,.portal-dialog-body>.organization-create-form,.portal-dialog-body>.automation-form,.portal-dialog-body>.inline-editor{box-shadow:none;background:0 0;border:0;grid-template-columns:1fr;margin:0;padding:0}.portal-dialog-body>.inline-editor h2{display:none}@media (max-width:64rem){:root{--rail:15rem}.page-content{padding:2rem 1.5rem 3rem}.analysis-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-quick-ranges{grid-column:1/-1}.analysis-layout{grid-template-columns:1fr}.analysis-statistics{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.analysis-statistics>h3,.analysis-statistics>.muted{grid-column:1/-1}}@media (max-width:52rem){:root{--tabbar:calc(4.25rem + env(safe-area-inset-bottom))}.portal-shell{padding-left:0}.menu-toggle{display:inline-flex}.appbar .driver-status-badge span:last-child{display:none}.appbar .driver-status-badge{min-height:2.4rem;padding:.65rem}.portal-navigation{background:var(--surface-solid);box-shadow:var(--shadow-lg);transition:transform var(--slow);width:min(19rem,86vw);transform:translate(-102%)}.portal-navigation.open{transform:translate(0)}.nav-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;bottom:0;left:0;right:0;top:var(--topbar);transition:opacity var(--slow);z-index:15;background:#05070db3;border-radius:0;padding:0;display:block;position:fixed}.nav-scrim.open{opacity:1;pointer-events:auto}.tab-bar{-webkit-backdrop-filter:blur(20px)saturate(180%);background:color-mix(in srgb, var(--bg) 80%, transparent);border-top:1px solid var(--border);padding:.4rem .4rem env(safe-area-inset-bottom);z-index:25;grid-auto-columns:1fr;grid-auto-flow:column;gap:.15rem;display:grid;position:fixed;bottom:0;left:0;right:0}.tab-bar a,.tab-bar button{border-radius:var(--r-md);box-shadow:none;color:var(--text-faint);letter-spacing:.01em;min-height:3.35rem;transition:color var(--fast), background var(--fast);background:0 0;justify-items:center;gap:.18rem;padding:.45rem .2rem;font-size:.66rem;font-weight:600;display:grid}.tab-bar a:hover,.tab-bar button:hover:not(:disabled){background:var(--surface-hover);color:var(--text);filter:none;transform:none}.tab-bar svg{width:1.35rem;height:1.35rem}.tab-bar a[aria-current=page],.tab-bar button[aria-expanded=true]{background:var(--accent-soft);color:var(--accent)}.tab-bar .tab-label{line-height:1}.driver-status-details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:48rem){.inline-form,.member-form,.scene-sections{grid-template-columns:1fr}.scene-section:first-child{grid-column:auto}.member-list li,.scene-detail-heading{flex-direction:column;align-items:stretch}.member-actions{justify-content:start}.action-error{text-align:left}.dashboard-toolbar,.tile-editor-fields{grid-template-columns:1fr}.dashboard-actions{justify-content:stretch}.dashboard-actions button{flex:1}.dashboard-grid,.add-tile{grid-template-columns:1fr}.tile-editor-heading{flex-direction:column;align-items:start}.organization-create-form,.organization-filters,.organization-sections,.settings-grid{grid-template-columns:1fr}.organization-sections>.scene-section:last-child{grid-column:auto}.organization-detail-heading,.resource-list li,.assignment-toolbar,.assignment-selection-bar{flex-direction:column;align-items:stretch}.assignment-toolbar button{align-self:start}.assignment-selection-actions{justify-content:space-between}.assignment-device-option{grid-template-columns:auto minmax(0,1fr)}.assignment-device-location{text-align:left;grid-column:2}.automation-form{grid-template-columns:1fr}.automation-form .target-picker{grid-column:auto}.step-form-group{grid-template-columns:1fr}.flow-step{grid-template-columns:3.2rem minmax(0,1fr)}.flow-actions{grid-column:2}.branch-picker{flex-direction:column;align-items:stretch}.schedule-axis{margin-left:0}.schedule-row{grid-template-columns:1fr}.schedule-date-nav{flex-wrap:wrap}.schedule-date-picker input[type=date]{width:100%}.schedule-slot{grid-template-columns:2.9rem 1fr;gap:.5rem}.schedule-gap{margin-left:2.9rem}.schedule-week strong{font-size:.95rem}.schedule-tip{white-space:normal;width:max-content;max-width:14rem}.device-filters,.device-detail-grid,.device-settings,.setup-backup-grid,.worker-detail-grid{grid-template-columns:1fr}.device-detail-grid .detail-card:last-child{grid-column:auto}.energy-filters,.chart-field,.tab-manager-row,.chart-card-grid,.analysis-toolbar,.analysis-statistics{grid-template-columns:1fr}.analysis-statistics>h3,.analysis-statistics>.muted{grid-column:auto}.entity-actions form,.danger-zone form,.threshold-level{grid-template-columns:1fr}.tab-links{width:auto}.button-group>button,.button-group>.button-link{flex:8rem}}@media (max-width:42rem){.appbar{gap:.5rem;padding:0 .85rem}.session-user span:not(.session-avatar){display:none}.session-user{padding:.3rem}.page-content{padding:1.5rem 1rem 2rem}.page-heading{margin-bottom:1.25rem}.brand span{display:none}.dashboard-grid{grid-template-columns:1fr!important}.card-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr))}}@media (min-width:48.01rem) and (max-width:68rem){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (hover:none){.card:hover,.dashboard-tile:hover,.hub-card:hover,button:hover:not(:disabled){transform:none}}.skip-link{background:var(--surface-2);border-radius:var(--r-sm,.4rem);box-shadow:inset 0 0 0 1px var(--border);color:var(--text);z-index:1000;padding:.6rem 1rem;text-decoration:none;position:fixed;top:-100vh;left:.5rem}.skip-link:focus{top:.5rem}.page-content:focus{outline:none}.page-error{background:var(--surface-2);border-radius:var(--r-lg,.9rem);box-shadow:inset 0 0 0 1px var(--border);text-align:center;max-width:34rem;margin:2rem auto;padding:2rem}.page-error .button-group{justify-content:center}.page-error .error-digest{font-family:var(--font-mono,monospace);font-size:.8rem}.panel-warning{background:var(--surface-2);border-radius:var(--r-sm,.4rem);box-shadow:inset 0 0 0 1px var(--border);color:var(--text-muted);margin-bottom:1rem;padding:.6rem .9rem;font-size:.85rem}.skeleton{background:var(--surface-3);border-radius:var(--r-sm,.4rem);height:1rem;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-eyebrow{width:5rem;height:.7rem;margin-bottom:.5rem}.skeleton-title{width:min(14rem,60%);height:1.5rem;margin-bottom:.6rem}.skeleton-line{width:100%}.skeleton-line.short{width:45%}.skeleton-card{gap:.55rem;display:grid}.skeleton-table td{padding:.75rem 1rem}@keyframes skeleton-shimmer{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
