@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url(./Outfit-Variable-latin-ext-BMnJGVZj.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url(./Outfit-Variable-latin-D6ftewdU.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}::selection{background:var(--accent-a30);color:var(--text-primary)}:root{caret-color:var(--accent-primary)}:root,[data-theme=dark]{--bg-primary:#121214;--bg-secondary:#1a1a1e;--bg-elevated:#222228;--bg-gradient:linear-gradient(160deg, #121214 0%, #16161a 40%, #1a1a1e 100%);--bg-card:#1a1a1e;--bg-card-hover:#222228;--bg-card-active:#2a2a30;--bg-card-border:#ffffff0f;--bg-card-shadow:0 1px 3px #0000000a, 0 4px 12px #0000000f;--bg-sidebar:#ffffff05;--bg-sidebar-hover:#ffffff0d;--bg-sidebar-active:#e8943a14;--bg-topbar:#121214eb;--text-primary:#f0f0f2;--text-secondary:#9898a0;--text-tertiary:#6c6c74;--accent-primary:#e8943a;--accent-primary-dim:#e8943a1f;--accent-primary-glow:#e8943a40;--accent-a4:#e8943a0a;--accent-a6:#e8943a0f;--accent-a8:#e8943a14;--accent-a10:#e8943a1a;--accent-a15:#e8943a26;--accent-a18:#e8943a2e;--accent-a20:#e8943a33;--accent-a30:#e8943a4d;--accent-a50:#e8943a80;--accent-light:#e8943a;--accent-light-glow:#e8943a33;--accent-climate:#4fc3f7;--accent-climate-glow:#4fc3f733;--accent-media:#845ec2;--accent-fan:#00c2a8;--accent-switch:#64b5f6;--color-on:#e8943a;--color-on-glow:#e8943a4d;--color-off:#ffffff26;--color-unavailable:#ffffff14;--color-error:#ff3b30;--color-error-bg:#ff3b301a;--color-warning:#ff6b35;--color-warning-bg:#ff6b351a;--color-info:#74c0fc;--color-info-bg:#74c0fc1a;--color-success:#32d74b;--color-success-bg:#32d74b1a;--slider-track:#ffffff14;--slider-track-fill:var(--accent-primary);--slider-thumb:#fff;--badge-bg:#ffffff0d;--separator-color:#ffffff0f;--border-glow:#e8943a33;--border-subtle:#ffffff0f;--border-primary:#ffffff1a;--shadow-card:0 1px 4px #0000000f, 0 4px 16px #00000014;--shadow-card-hover:0 4px 12px #00000014, 0 12px 32px #0000001f;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 32px #00000026;--glass-tint:#ffffff08;--glass-tint-strong:#ffffff0d;--glass-gradient:linear-gradient(170deg, var(--glass-tint) 0%, transparent 40%);--glass-gradient-strong:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 40%);--glass-bg:#ffffff08;--glass-bg-hover:#ffffff0f;--glass-bg-active:#ffffff14;--glass-border:#ffffff0f;--glass-border-hover:#ffffff14;--glass-edge:#ffffff0a;--glass-edge-strong:#ffffff0f;--glass-tint-hover:#ffffff0f;--temp-cold:#4fc3f7;--temp-cool:#81d4fa;--temp-comfort:#32d74b;--temp-warm:#ff6b35;--temp-hot:#ff3b30;--humidity-low:#ff6b35;--humidity-normal:#32d74b;--humidity-high:#4fc3f7;--co2-good:#32d74b;--co2-moderate:#ff6b35;--co2-bad:#ff3b30;--energy-low:#32d74b;--energy-moderate:#ff6b35;--energy-high:#ff3b30;--battery-full:#32d74b;--battery-mid:#ff6b35;--battery-low:#ff3b30;--room-salon:#e8943a80;--room-bureau:#64b5f680;--room-chambre:#845ec280;--room-cuisine:#ff6b3580;--room-salle-a-manger:#32d74b80;--room-salle-de-bain:#4fc3f780;--room-toilettes:#a0a0a566;--room-entree:#ffb80080;--room-buanderie:#00c2a880}[data-theme=light]{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-elevated:#f0f0f2;--bg-gradient:linear-gradient(160deg, #f5f5f7 0%, #f2f2f4 40%, #eeeeef 100%);--bg-card:#fff;--bg-card-hover:#f5f5f7;--bg-card-active:#eee;--bg-card-border:#00000012;--bg-card-shadow:0 1px 3px #0000000a, 0 4px 12px #0000000f;--bg-sidebar:#00000005;--bg-sidebar-hover:#0000000a;--bg-sidebar-active:#a86a1214;--bg-topbar:#f5f5f7eb;--text-primary:#1a1a1d;--text-secondary:#5c5c62;--text-tertiary:#757579;--accent-primary:#a86a12;--accent-primary-dim:#a86a121a;--accent-primary-glow:#a86a1226;--accent-a4:#a86a120a;--accent-a6:#a86a120f;--accent-a8:#a86a1214;--accent-a10:#a86a121a;--accent-a15:#a86a1226;--accent-a18:#a86a122e;--accent-a20:#a86a1233;--accent-a30:#a86a124d;--accent-a50:#a86a1280;--accent-light:#a86a12;--accent-light-glow:#a86a1226;--accent-climate:#0288d1;--accent-climate-glow:#0288d11f;--accent-media:#6b3fa0;--accent-fan:#008c7a;--accent-switch:#1565c0;--color-on:#a86a12;--color-on-glow:#a86a1233;--color-off:#00000026;--color-unavailable:#00000014;--color-error:#d32f2f;--color-error-bg:#d32f2f14;--color-warning:#bf4a0a;--color-warning-bg:#bf4a0a14;--color-info:#1565c0;--color-info-bg:#1565c014;--color-success:#2e7d32;--color-success-bg:#2e7d3214;--slider-track:#00000014;--slider-track-fill:var(--accent-primary);--slider-thumb:#fff;--badge-bg:#0000000d;--separator-color:#00000012;--border-glow:#a86a1226;--border-subtle:#0000000f;--border-primary:#0000001a;--shadow-card:0 1px 4px #0000000d, 0 4px 16px #00000012;--shadow-card-hover:0 4px 12px #00000014, 0 12px 32px #0000001f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001f;--glass-tint:#fff9;--glass-tint-strong:#ffffffb3;--glass-gradient:linear-gradient(170deg, var(--glass-tint) 0%, transparent 40%);--glass-gradient-strong:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 40%);--glass-bg:#00000005;--glass-bg-hover:#0000000a;--glass-bg-active:#0000000f;--glass-border:#00000014;--glass-border-hover:#0000001f;--glass-edge:#ffffff80;--glass-edge-strong:#fff9;--glass-tint-hover:#0000000a;--temp-cold:#0288d1;--temp-cool:#0277bd;--temp-comfort:#2e7d32;--temp-warm:#bf4a0a;--temp-hot:#d32f2f;--humidity-low:#bf4a0a;--humidity-normal:#2e7d32;--humidity-high:#0288d1;--co2-good:#2e7d32;--co2-moderate:#bf4a0a;--co2-bad:#d32f2f;--energy-low:#2e7d32;--energy-moderate:#bf4a0a;--energy-high:#d32f2f;--battery-full:#2e7d32;--battery-mid:#bf4a0a;--battery-low:#d32f2f;--room-salon:#c07a1866;--room-bureau:#1565c066;--room-chambre:#6b3fa066;--room-cuisine:#bf4a0a66;--room-salle-a-manger:#2e7d3266;--room-salle-de-bain:#0288d166;--room-toilettes:#6b6b7059;--room-entree:#c8960066;--room-buanderie:#008c7a66}:root{--white:#fff;--black-a10:#0000001a;--black-a12:#0000001f;--black-a15:#00000026;--black-a20:#0003;--black-a30:#0000004d;--black-a40:#0006;--black-a50:#00000080;--black-a60:#0009;--white-a02:#ffffff05;--white-a025:#ffffff06;--white-a035:#ffffff09;--white-a15:#ffffff26;--white-a20:#fff3;--radius-xs:4px;--radius-sm:6px;--radius-badge:8px;--radius-button:10px;--radius-slider:10px;--radius-md:12px;--radius-card:14px;--radius-lg:20px;--radius-pill:20px;--radius-modal:24px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.35s;--duration-reveal:.5s;--ease-smooth:ease;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition-fast:var(--duration-fast) var(--ease-smooth);--transition-normal:var(--duration-normal) var(--ease-smooth);--transition-slow:var(--duration-slow) var(--ease-smooth);--transition-reveal:var(--duration-reveal) var(--ease-spring);--font-display:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", "SF Pro Display", Roboto, Helvetica, Arial, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", "SF Pro Display", Roboto, Helvetica, Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", monospace;--font-family:var(--font-body);--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-md:.875rem;--font-size-base:.875rem;--font-size-lg:1rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--sidebar-width:240px;--topbar-height:56px;--mobile-nav-height:52px}@media (prefers-reduced-motion:reduce){:root{--duration-fast:10ms;--duration-normal:10ms;--duration-slow:10ms;--duration-reveal:10ms}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;font-size:16px;overflow:hidden}@media (prefers-color-scheme:dark){html,body{--lightningcss-light: ;--lightningcss-dark:initial}}button,[role=button],a,input,select,textarea{touch-action:manipulation}:where(button,[role=button],a,input,select,textarea,[tabindex]):focus{outline:none}:where(button,[role=button],a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-xs)}@keyframes value-flash{0%{background-color:var(--accent-a15)}to{background-color:#0000}}.value-changed{animation:value-flash var(--duration-reveal) var(--ease-smooth) forwards;border-radius:var(--radius-xs)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--badge-bg) 25%, var(--bg-card-hover,#ffffff0f) 50%, var(--badge-bg) 75%);border-radius:var(--radius-xs);-webkit-user-select:none;user-select:none;background-size:200% 100%;min-width:48px;min-height:1.2em;animation:1.5s infinite shimmer;color:#0000!important}.skeleton-line{border-radius:var(--radius-xs);height:12px;margin-bottom:var(--space-sm)}.agenda-skeleton,.chart-skeleton{padding:var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}.chart-skeleton{justify-content:center;align-items:center;height:100%}.device-card.loading{pointer-events:none}.device-card.loading .card-name,.device-card.loading .card-state,.device-card.loading .card-pct,.device-card.loading .sub-value{background:linear-gradient(90deg, var(--badge-bg) 25%, var(--bg-card-hover) 50%, var(--badge-bg) 75%);border-radius:var(--radius-xs);background-size:200% 100%;min-width:3em;animation:1.5s infinite shimmer;display:inline-block;color:#0000!important}.device-card.loading .card-name{min-width:8em;height:1em}.device-card.loading .icon,.device-card.loading .icon-slot{background:var(--badge-bg);border-radius:var(--radius-sm);color:#0000!important}.device-card.loading .brightness-fill{animation:1.5s infinite shimmer;background:var(--badge-bg)!important;width:45%!important}.device-card.loading .power-btn,.device-card.loading .color-circle{opacity:.2;pointer-events:none}.device-card.loading .sparkline-wrap,.device-card.loading .sub-badges{opacity:0}.device-card .card-name,.device-card .card-state,.device-card .card-pct,.device-card .sub-value{transition:color var(--transition-normal), background var(--transition-normal)}#app{grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"sidebar topbar""sidebar content";height:100dvh;display:grid;overflow:hidden}#app:before{content:"";z-index:9999;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");position:fixed;inset:0}[data-theme=light] #app:before{opacity:.025}@media (prefers-reduced-motion:reduce){#app:before{display:none}}#topbar{background:var(--bg-topbar);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--separator-color);padding:0 var(--space-lg);padding-top:env(safe-area-inset-top,0px);padding-left:max(var(--space-lg), env(safe-area-inset-left,0px));padding-right:max(var(--space-lg), env(safe-area-inset-right,0px));min-height:calc(var(--topbar-height) + env(safe-area-inset-top,0px));z-index:100;grid-area:topbar;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}#topbar h1{font-size:1.2rem;font-weight:600;font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:10px;transition:opacity .12s;display:flex}#topbar .brand-mark{border-radius:7px;flex-shrink:0;width:28px;height:28px}#topbar .brand-title{transition:opacity .12s}.topbar-actions{align-items:center;gap:var(--space-md);display:flex}#theme-toggle{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);width:44px;height:44px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}#theme-toggle:hover{background:var(--bg-card-hover);color:var(--accent-primary)}.status-dot{border-radius:var(--radius-full);background:var(--color-off);width:8px;height:8px;transition:all var(--transition-fast);position:relative}.status-dot.connected{background:var(--color-success);box-shadow:0 0 6px #32d74b66}.status-dot.connecting{background:var(--color-warning);animation:1.5s infinite pulse-dot}.status-dot.disconnected,.status-dot.auth_error{background:var(--color-error)}.status-dot.error{background:var(--color-error);animation:1.5s forwards error-flash}@keyframes error-flash{0%,30%{box-shadow:0 0 8px #ff3b3099}to{box-shadow:none}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}#sidebar-toggle{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);width:44px;height:44px;transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:none}#sidebar-toggle:hover{background:var(--bg-card-hover)}#content{padding:0 var(--space-xl) var(--space-2xl);scrollbar-width:thin;scrollbar-color:var(--text-tertiary) transparent;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;--room-accent-rgb:232, 148, 58;grid-area:content;overflow:hidden auto}#content.view-exit{opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);transform:translateY(5px)}#content.view-enter{opacity:1;transition:opacity var(--transition-normal), transform var(--transition-normal);transform:translateY(0)}#content.view-exit-left{opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);transform:translate(-40px)}#content.view-exit-right{opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);transform:translate(40px)}#content.view-enter-left{opacity:0;transform:translate(40px)}#content.view-enter-right{opacity:0;transform:translate(-40px)}#content.view-enter-left.view-settle,#content.view-enter-right.view-settle{opacity:1;transition:opacity var(--transition-normal), transform var(--transition-normal);transform:translate(0)}#content>*{max-width:1200px;margin-left:auto;margin-right:auto}#content::-webkit-scrollbar{width:4px}#content::-webkit-scrollbar-track{background:0 0}#content::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:var(--radius-full)}.card-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.scene-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}#update-banner{background:var(--accent-primary);color:var(--bg-primary);z-index:99999;justify-content:center;align-items:center;gap:12px;padding:10px 16px;font-size:.85rem;font-weight:600;transition:transform .3s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}#update-banner.visible{transform:translateY(0)}#update-banner button{background:var(--black-a20);color:inherit;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:4px 12px;font-weight:600}body.offline .device-card input[type=range],body.offline .device-card button,body.offline .device-card select,body.offline .scene-btn{pointer-events:none;opacity:.4}#sidebar{background:var(--bg-sidebar);border-right:1px solid var(--separator-color);scrollbar-width:thin;scrollbar-color:var(--text-tertiary) transparent;padding:var(--space-lg) 0;flex-direction:column;grid-area:sidebar;gap:2px;display:flex;overflow:hidden auto}.sidebar-section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);padding:var(--space-xl) var(--space-md) var(--space-sm);font-size:.65rem;font-weight:600;font-family:var(--font-mono);align-items:center;gap:var(--space-sm);display:flex}.sidebar-section-label:after{content:"";background:linear-gradient(to right, var(--separator-color), transparent);height:1px;margin-right:var(--space-md);flex:1}.sidebar-item{align-items:center;gap:var(--space-sm);padding:10px var(--space-md);cursor:pointer;border-radius:var(--radius-button);min-height:44px;margin:0 var(--space-sm);transition:background var(--transition-normal), color var(--transition-normal), transform var(--transition-fast);color:var(--text-secondary);font-size:var(--font-size-sm);font-family:var(--font-body);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-weight:400;text-decoration:none;display:flex;position:relative}.sidebar-item:after{content:"";right:var(--space-md);border-radius:var(--radius-full);background:rgba(var(--room-accent-rgb,232, 148, 58), .15);width:6px;height:6px;transition:all var(--transition-normal);position:absolute;top:50%;transform:translateY(-50%)}.sidebar-item[data-room=home]:after{display:none}.sidebar-item:hover{background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 50%), var(--bg-sidebar-hover);color:var(--text-primary)}.sidebar-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px;color:var(--text-primary)}.sidebar-item.active{background:linear-gradient(170deg, rgba(var(--room-accent-rgb,232, 148, 58), .08) 0%, transparent 50%), rgba(var(--room-accent-rgb,232, 148, 58), .1);color:rgba(var(--room-accent-rgb,232, 148, 58), 1);box-shadow:inset 0 1px 0 rgba(var(--room-accent-rgb,232, 148, 58), .06);font-weight:600}.sidebar-item .icon{opacity:.6;width:20px;height:20px;transition:opacity var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-item:hover .icon{opacity:1}.sidebar-item.active .icon{opacity:1;filter:drop-shadow(0 0 4px rgba(var(--room-accent-rgb,232, 148, 58), .4))}.sidebar-item .icon svg{width:20px;height:20px}.sidebar-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar-item .badge{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:2px var(--space-sm);font-size:var(--font-size-xs);color:var(--text-tertiary);font-family:var(--font-mono);margin-left:auto}.nav-issue-badge{border-radius:var(--radius-badge);background:var(--color-error-bg);min-width:18px;height:18px;color:var(--color-error);font-size:.65rem;line-height:1;font-family:var(--font-mono);border:1px solid #ff3b3047;justify-content:center;align-items:center;padding:0 5px;font-weight:700;display:none}.sidebar-item.has-issues .nav-issue-badge{cursor:pointer;margin-left:auto;margin-right:14px;display:inline-flex}.sidebar-item[data-room=home].has-issues .nav-issue-badge{margin-right:0}.sidebar-item.has-issues:after{right:calc(var(--space-md) + 30px)}.sidebar-item.has-transient-issues .nav-issue-badge{background:var(--color-info-bg);color:var(--color-info);border-color:#74c0fc47}.sidebar-item.room-on:before{content:"";background:rgba(var(--room-accent-rgb,232, 148, 58), .5);width:3px;box-shadow:0 0 6px rgba(var(--room-accent-rgb,232, 148, 58), .2);transition:all var(--transition-fast);border-radius:0 2px 2px 0;position:absolute;top:25%;bottom:25%;left:0}.sidebar-item.room-on.active:before{background:rgba(var(--room-accent-rgb,232, 148, 58), .8);box-shadow:0 0 10px rgba(var(--room-accent-rgb,232, 148, 58), .35)}.sidebar-item.room-on:after{background:rgba(var(--room-accent-rgb,232, 148, 58), .6);box-shadow:0 0 6px rgba(var(--room-accent-rgb,232, 148, 58), .3)}.sidebar-item.active:before{content:"";border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:rgba(var(--room-accent-rgb,232, 148, 58), .7);width:3px;position:absolute;top:15%;bottom:15%;left:0}.room-section.collapsed .card-grid{display:none}.room-section-header .section-chevron{transition:transform var(--transition-normal);color:var(--text-tertiary);align-items:center;display:flex}.room-section.collapsed .section-chevron{transform:rotate(-90deg)}.room-section-header .section-count{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);background:var(--glass-bg);border-radius:var(--radius-badge);padding:2px var(--space-sm);border:1px solid var(--glass-border);transition:all var(--transition-fast);margin-left:auto}.room-section-header .section-count.has-active{color:rgba(var(--room-accent-rgb,232, 148, 58), 1);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .25);background:linear-gradient(170deg, rgba(var(--room-accent-rgb,232, 148, 58), .06) 0%, transparent 50%), rgba(var(--room-accent-rgb,232, 148, 58), .12)}.sidebar-footer{padding:var(--space-lg) var(--space-md) var(--space-sm);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);opacity:.5;text-align:center;margin-top:auto}.device-card{background:var(--glass-gradient), var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);padding:var(--space-md);transition:all var(--transition-normal);contain:layout style paint;animation:card-reveal var(--duration-reveal) var(--ease-spring) backwards;position:relative;overflow:hidden}.device-card:hover{background:var(--glass-gradient-strong), var(--bg-card-hover);box-shadow:var(--shadow-card-hover), inset 0 1px 0 var(--glass-edge-strong);transform:translateY(-2px)}.device-card:active{transition:transform var(--duration-slow) var(--ease-spring);transform:translateY(-1px)scale(.98)}@media (hover:none){.device-card:hover{box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);transform:none}.device-card:active{background:var(--glass-gradient-strong), var(--bg-card-hover);transition:transform var(--duration-reveal) var(--ease-spring);transform:scale(.96)}}.device-card:focus-visible,.alert-card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.device-card.card-error{opacity:.5;justify-content:center;align-items:center;min-height:60px;display:flex}[data-card-type].action-pending{cursor:progress}.device-card.action-pending,.scene-btn.action-pending{border-color:rgba(var(--room-accent-rgb), .35);box-shadow:var(--shadow-card), 0 0 0 1px rgba(var(--room-accent-rgb), .16), inset 0 1px 0 var(--glass-edge)}.device-card.action-error,.scene-btn.action-error{border-color:var(--color-error);animation:.45s ease-out 2 action-error-pulse}.device-card.card-unavailable,.compact-row.card-unavailable,.compact-row-wrap.card-unavailable{opacity:.78;background:linear-gradient(170deg, #a0a0a50a 0%, transparent 45%), var(--bg-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);border-color:#a0a0a52e}.device-card.card-unavailable:hover,.compact-row.card-unavailable:hover{background:linear-gradient(170deg, #a0a0a50a 0%, transparent 45%), var(--bg-card);transform:none}.device-card.card-unavailable button,.device-card.card-unavailable input,.device-card.card-unavailable select,.compact-row.card-unavailable .toggle-switch{cursor:not-allowed}.device-card.card-unavailable .toggle-switch,.compact-row.card-unavailable .toggle-switch{box-shadow:inset 0 1px 3px var(--black-a12);background:#a0a0a51f}.device-card.card-unavailable .toggle-switch:after,.compact-row.card-unavailable .toggle-switch:after{box-shadow:none;background:#a0a0a570;transform:translate(0)}.device-card.card-unavailable .card-state,.device-card.card-unavailable .state-text,.device-card.card-unavailable .vacuum-state-text,.device-card.card-unavailable .consumption{color:var(--text-tertiary)}.device-card.card-unavailable .card-name,.compact-row.card-unavailable .compact-name{color:var(--text-secondary)}.connection-status-card{gap:var(--space-md);min-height:168px;display:grid}.connection-status-card .card-header{align-items:center}.connection-status-pill{border-radius:var(--radius-badge);border:1px solid var(--glass-border);min-height:26px;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;margin-left:auto;padding:0 10px;font-weight:700;display:inline-flex}.connection-status-pill.ok{color:var(--color-success);background:var(--color-success-bg);border-color:#32d74b42}.connection-status-pill.warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:#ff6b3542}.connection-status-pill.error{color:var(--color-error);background:var(--color-error-bg);border-color:#ff3b3042}.connection-status-body{gap:var(--space-sm);display:grid}.connection-status-primary{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.35}.connection-status-card.connection-stale .connection-status-primary{color:var(--color-warning)}.connection-status-grid{gap:8px var(--space-md);padding-top:var(--space-xs);border-top:1px solid var(--glass-border);grid-template-columns:minmax(0,1fr) auto;display:grid}.connection-status-grid span,.connection-status-grid strong{min-width:0;font-family:var(--font-mono);font-size:var(--font-size-xs)}.connection-status-grid span{color:var(--text-tertiary)}.connection-status-grid strong{color:var(--text-secondary);text-align:right;font-weight:700}.connection-status-grid strong.ok{color:var(--color-success)}.connection-status-grid strong.blocked{color:var(--color-warning)}@keyframes action-error-pulse{0%,to{transform:translate(0)}35%{transform:translate(-2px)}70%{transform:translate(2px)}}@keyframes card-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.card-grid .device-card:first-child{animation-delay:0s}.card-grid .device-card:nth-child(2){animation-delay:20ms}.card-grid .device-card:nth-child(3){animation-delay:40ms}.card-grid .device-card:nth-child(4){animation-delay:60ms}.card-grid .device-card:nth-child(5){animation-delay:80ms}.card-grid .device-card:nth-child(6){animation-delay:.1s}.card-grid .device-card:nth-child(7){animation-delay:.12s}.card-grid .device-card:nth-child(8){animation-delay:.14s}.card-grid .device-card:nth-child(9){animation-delay:.16s}.card-grid .device-card:nth-child(10){animation-delay:.18s}.card-grid .device-card:nth-child(11){animation-delay:.2s}.card-grid .device-card:nth-child(12),.card-grid .device-card:nth-child(n+13){animation-delay:.22s}.device-card .card-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.device-card .card-header .icon{color:var(--color-off);transition:all var(--transition-normal);flex-shrink:0;justify-content:center;align-items:center;display:flex}.device-card .card-header .icon.on{color:rgb(var(--room-accent-rgb));filter:drop-shadow(0 0 6px rgba(var(--room-accent-rgb), .3))}.device-card .card-header .card-name{font-size:var(--font-size-sm);font-weight:400;font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.device-card .card-header .card-state{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary)}.slider-card{background:var(--bg-card);position:relative;overflow:visible}.slider-card-ambient{border-radius:inherit;opacity:0;transition:opacity var(--transition-slow), background var(--transition-slow);pointer-events:none;z-index:0;position:absolute;inset:0}.slider-card>.card-header,.slider-card>.brightness-bar-wrap,.slider-card>.sub-badges{z-index:1;position:relative}.slider-card .card-header{margin-bottom:var(--space-sm)}.slider-card .card-header .icon{background:var(--glass-bg);border-radius:var(--radius-full);width:32px;height:32px;transition:all var(--transition-normal);padding:4px}.slider-card.card-on .card-header .icon{background:rgba(var(--room-accent-rgb), .1)}.slider-card .card-header-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.slider-card .card-header-text .card-name{font-size:var(--font-size-sm);font-weight:400;font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slider-card .card-header-text .card-state{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.slider-card .card-pct{font-size:1.3rem;font-family:var(--font-display);color:rgb(var(--room-accent-rgb));font-variant-numeric:tabular-nums;min-width:0;transition:color var(--transition-slow);flex-shrink:0;font-weight:600}.power-btn,.media-power-btn{border-radius:var(--radius-full);background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.power-btn{width:34px;height:34px;transition:all var(--transition-normal)}.power-btn.on,.media-power-btn.on{background:rgba(var(--room-accent-rgb), .12);color:rgb(var(--room-accent-rgb));border-color:rgba(var(--room-accent-rgb), .2);box-shadow:0 0 10px rgba(var(--room-accent-rgb), .1)}.power-btn:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);color:var(--text-secondary)}.power-btn.on:hover{background:rgba(var(--room-accent-rgb), .18)}.power-btn .icon,.media-power-btn .icon{justify-content:center;align-items:center;line-height:0;display:flex}@media (hover:none),(pointer:coarse){.power-btn,.media-power-btn{width:44px;height:44px}}.slider-card .color-circle.pulse{animation:2.5s ease-in-out infinite color-circle-pulse}@keyframes color-circle-pulse{0%,to{box-shadow:0 0 #ffffff1a}50%{box-shadow:0 0 0 3px var(--glass-bg-hover)}}.brightness-bar-wrap{height:32px;margin-top:var(--space-xs);position:relative}.brightness-bar{background:var(--slider-track);border-radius:var(--radius-slider);pointer-events:none;box-shadow:inset 0 1px 3px var(--black-a12);position:absolute;inset:0;overflow:visible}.brightness-fill{background:linear-gradient(90deg, rgba(var(--room-accent-rgb), .2), rgba(var(--room-accent-rgb), .5));border-radius:var(--radius-slider);width:0%;height:100%;transition:width var(--transition-fast);position:relative}.brightness-fill:before{content:attr(data-value);background:var(--bg-elevated);color:rgb(var(--room-accent-rgb));font-family:var(--font-mono);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;border-radius:var(--radius-badge);border:1px solid var(--glass-border);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);z-index:3;padding:2px 8px;position:absolute;top:-28px;right:0;transform:translate(50%)translateY(4px)}.slider-dragging .brightness-fill:before{opacity:1;transform:translate(50%)translateY(0)}.slider-dragging .brightness-fill{box-shadow:4px 0 12px rgba(var(--room-accent-rgb), .3)}.slider-card.card-on .brightness-fill:after{content:"";border-radius:var(--radius-full);background:var(--slider-thumb);width:18px;height:18px;box-shadow:0 1px 4px var(--black-a30), 0 0 10px rgba(var(--room-accent-rgb), .2);transition:all var(--duration-slow) var(--ease-spring);position:absolute;top:50%;right:0;transform:translateY(-50%)}.brightness-input{appearance:none;cursor:pointer;opacity:0;z-index:2;touch-action:pan-y;background:0 0;width:100%;height:100%;margin:0;position:absolute;inset:0}.brightness-input::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);cursor:pointer;background:0 0;width:32px;height:32px}.brightness-input::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;width:32px;height:32px}.slider-card .color-circle{border-radius:var(--radius-full);border:2px solid var(--bg-card-border);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);flex-shrink:0}.slider-card .color-circle:hover{border-color:var(--text-secondary);transform:scale(1.15)}@media (hover:none),(pointer:coarse){.brightness-bar-wrap{height:44px}.slider-card .color-circle{width:44px;height:44px}.brightness-input::-webkit-slider-thumb{width:44px;height:44px}.brightness-input::-moz-range-thumb{width:44px;height:44px}}.sub-badges{gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.sub-badge{align-items:center;gap:var(--space-xs);background:var(--glass-bg);border-radius:var(--radius-badge);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary);transition:all var(--transition-fast);border:1px solid var(--glass-border);display:flex}.sub-badge:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.sub-badge .icon{justify-content:center;align-items:center;width:14px;height:14px;display:flex}.sub-badge .icon svg{width:14px;height:14px}.sub-badge .mini-bar{background:var(--slider-track);border-radius:var(--radius-sm);flex-shrink:0;width:32px;height:3px;overflow:hidden}.sub-badge .mini-bar-fill{border-radius:var(--radius-sm);height:100%;transition:width var(--duration-reveal) var(--ease-smooth), background-color var(--transition-slow);background:var(--accent-primary)}.compact-row{align-items:center;gap:var(--space-sm);height:48px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-card);border:1px solid var(--glass-border);background:var(--glass-gradient), var(--bg-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);display:flex}.compact-row.has-detail{height:auto;min-height:64px}.compact-row:hover{background:var(--glass-gradient-strong), var(--bg-card-hover);box-shadow:var(--shadow-card-hover), inset 0 1px 0 var(--glass-edge-strong);transform:translateY(-1px)}@media (hover:none){.compact-row:hover{background:var(--glass-gradient), var(--bg-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);transform:none}.compact-row:active{background:var(--glass-gradient-strong), var(--bg-card-hover);transition:transform var(--duration-reveal) var(--ease-spring);transform:scale(.96)}}.compact-row.card-on{background:linear-gradient(170deg, rgba(var(--room-accent-rgb), .06) 0%, transparent 40%), rgba(var(--room-accent-rgb), .04);border-color:rgba(var(--room-accent-rgb), .15)}.compact-row .icon{width:28px;height:28px;color:var(--color-off);transition:all var(--transition-normal);background:var(--glass-bg);border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;padding:5px;display:flex}.compact-row.card-on .icon{background:rgba(var(--room-accent-rgb), .1)}.compact-row .icon.on{color:rgb(var(--room-accent-rgb));filter:drop-shadow(0 0 6px rgba(var(--room-accent-rgb), .3))}.compact-row .icon svg{width:18px;height:18px}.compact-row .compact-text{flex:1;gap:2px;min-width:0;display:grid}.compact-row .compact-name{font-size:var(--font-size-sm);font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.compact-row .compact-detail{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.compact-row .consumption{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);flex-shrink:0}.compact-row .state-dot{flex-shrink:0}.compact-row .state-text{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);transition:color var(--transition-normal);flex-shrink:0}.compact-row.card-on .state-text{color:rgb(var(--room-accent-rgb))}.compact-row-wrap{background:var(--glass-gradient), var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);overflow:hidden}.compact-row-wrap .compact-row{box-shadow:none;border:none;border-radius:0}.compact-row-wrap .compact-row:hover{box-shadow:none;transform:none}.compact-row-wrap .sub-badges{padding:0 14px var(--space-xs)}.compact-row:not(.compact-row-wrap .compact-row){animation:card-reveal var(--duration-reveal) var(--ease-spring) backwards}.toggle-switch{background:var(--slider-track);border-radius:var(--radius-full);cursor:pointer;width:48px;height:28px;transition:all var(--transition-normal);box-shadow:inset 0 1px 3px var(--black-a15);flex-shrink:0;position:relative;overflow:hidden}.toggle-switch.on{background:rgb(var(--room-accent-rgb));box-shadow:inset 0 1px 3px var(--black-a10), 0 0 12px rgba(var(--room-accent-rgb), .2)}.toggle-switch:after{content:"";border-radius:var(--radius-full);background:var(--white);width:22px;height:22px;transition:transform var(--duration-slow) var(--ease-spring);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000040,0 0 0 1px #0000000a}.toggle-switch.on:after{transform:translate(20px)}.toggle-card .consumption{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary)}@keyframes icon-state-bounce{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.compact-row .icon.just-changed{animation:icon-state-bounce .4s var(--ease-spring)}.sensor-card{position:relative;overflow:hidden}.sensor-card-tint{transition:background var(--duration-reveal) var(--ease-smooth);pointer-events:none;z-index:0;border-radius:inherit;position:absolute;inset:0}.sensor-card>.card-header,.sensor-card>.sensor-value-row,.sensor-card>.sub-divider,.sensor-card>.sub-badges{z-index:1;position:relative}.sensor-value-row{align-items:baseline;gap:var(--space-xs);display:flex}.sensor-card .sensor-value{font-size:var(--font-size-3xl);font-family:var(--font-display);margin:var(--space-xs) 0;font-variant-numeric:tabular-nums;transition:color var(--transition-slow);font-weight:700;line-height:1}.sensor-card .sensor-val-num{transition:color var(--transition-reveal)}.sensor-card .sensor-unit{font-size:var(--font-size-base);color:var(--text-tertiary);font-weight:400;font-family:var(--font-mono);letter-spacing:.02em;opacity:.5}.sensor-card .sensor-trend{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-family:var(--font-mono);background:var(--glass-bg);border:1px solid var(--glass-border);transition:all var(--transition-normal);flex-shrink:0;align-items:center;padding:2px 6px;display:inline-flex}.sensor-card .sensor-trend:empty{display:none}.sensor-card .sensor-trend.trend-up{color:var(--color-warning);background:#ff6b350f;border-color:#ff6b3533}.sensor-card .sensor-trend.trend-down{color:var(--accent-climate);background:#4fc3f70f;border-color:#4fc3f733}.sensor-card .sub-divider{background:var(--separator-color);height:1px;margin:var(--space-sm) 0}.sensor-card.warning{border-left:3px solid var(--color-warning);background:linear-gradient(170deg, #ff6b350f 0%, transparent 40%), var(--color-warning-bg)}.sensor-card.error{border-left:3px solid var(--color-error);background:linear-gradient(170deg, #ff3b300f 0%, transparent 40%), var(--color-error-bg)}.sensor-card.card-unavailable .sensor-value{color:var(--text-tertiary);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:500}.sparkline-container{z-index:0;min-height:40px;position:absolute;bottom:0;left:0;right:0}.sparkline-wrap{opacity:0;width:100%;height:40px;animation:sparkline-fade var(--duration-slow) var(--ease-smooth) forwards;-webkit-mask-image:linear-gradient(to top, var(--black-a50) 0%, transparent 100%);mask-image:linear-gradient(to top, var(--black-a50) 0%, transparent 100%);-webkit-mask-image:linear-gradient(to top, var(--black-a50) 0%, transparent 100%)}.sparkline-wrap svg{width:100%;height:100%;display:block}@keyframes sparkline-fade{to{opacity:1}}.state-dot{border-radius:var(--radius-full);border:2px solid var(--color-off);width:12px;height:12px;transition:all var(--transition-normal);background:0 0;flex-shrink:0;position:relative}.state-dot.on{border-color:rgb(var(--room-accent-rgb));background:rgb(var(--room-accent-rgb));box-shadow:0 0 8px rgba(var(--room-accent-rgb), .4)}.state-dot.on:after{content:"";border-radius:var(--radius-full);border:1.5px solid rgb(var(--room-accent-rgb));opacity:0;width:20px;height:20px;animation:2s infinite pulse-ring;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulse-ring{0%{opacity:.5;transform:translate(-50%,-50%)scale(.5)}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}.media-card{padding:0;position:relative;overflow:hidden}.media-card .media-accent{background:var(--accent-primary);z-index:2;height:2px;position:absolute;top:0;left:0;right:0}.media-card .media-art{object-fit:cover;z-index:0;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.media-card .media-art-overlay{z-index:1;pointer-events:none;background:linear-gradient(to bottom, var(--black-a10) 0%, var(--black-a60) 35%, #000000eb 100%);display:none;position:absolute;inset:0}.media-card.has-art .media-art,.media-card.has-art .media-art-overlay{display:block}.media-card.has-art .media-accent{display:none}.media-card.idle .media-accent{border-radius:0 var(--radius-xs) var(--radius-xs) 0;opacity:.6;width:3px;height:calc(100% - 16px);top:8px;left:0}.media-card.has-art .media-hero,.media-card.has-art .media-volume-bar,.media-card.has-art .media-info,.media-card.has-art .media-apps,.media-card.has-art .media-source,.media-card.has-art .media-idle-row{z-index:2;position:relative}.media-card.has-art .media-title{color:var(--white)}.media-card.has-art .media-artist{color:#ffffffb3}.media-card.has-art .media-source{color:#ffffff80}.media-card.has-art .media-idle-name{color:var(--white)}.media-card.has-art .media-idle-source{color:#fff9}.media-card.has-art .media-idle-state{color:#ffffff80}.media-card.has-art .media-volume-bar input[type=range]{background:var(--white-a20)}.media-card.has-art .media-app-btn{border-color:var(--white-a15);background:var(--glass-bg-active);color:#ffffffb3}.media-card.has-art .media-app-btn:hover{background:var(--white-a15);color:var(--white);border-color:#ffffff4d}.media-card.has-art .media-app-btn.active{border-color:rgb(var(--room-accent-rgb));background:rgba(var(--room-accent-rgb), .12);color:rgb(var(--room-accent-rgb))}.media-idle-art{border-radius:var(--radius-sm);object-fit:cover;width:44px;height:44px;box-shadow:0 2px 8px var(--black-a15);flex-shrink:0;display:none}.media-card.has-art .media-idle-art{display:block}.media-card.has-art .media-idle-row .icon{display:none}.media-card .media-hero{background:var(--bg-elevated);min-height:120px;position:relative;overflow:hidden}.media-card.has-art .media-hero{background:0 0;min-height:160px}.media-card .media-transport{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;background:var(--black-a30);-webkit-backdrop-filter:blur(8px);display:flex;position:absolute;bottom:0;left:0;right:0}.media-card .media-transport button{color:var(--white);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-sm);min-width:44px;min-height:44px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.media-card .media-transport button:hover{background:var(--color-off)}@media (hover:none){.sidebar-item:hover{color:var(--text-secondary);background:0 0}.sidebar-item:active{background:var(--bg-sidebar-hover);color:var(--text-primary)}.media-card .media-transport button:hover{background:0 0}.media-card .media-transport button:active{background:var(--color-off)}}.media-card .media-volume-bar{padding:var(--space-xs) var(--space-md) 0}.media-card .media-volume-bar input[type=range]{appearance:none;background:var(--slider-track);border-radius:var(--radius-slider);outline:none;width:100%;height:3px}.media-card .media-volume-bar input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);background:var(--slider-thumb);cursor:pointer;width:12px;height:12px;box-shadow:0 1px 4px var(--black-a30)}.media-card .media-volume-bar input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);background:var(--slider-thumb);cursor:pointer;border:none;width:12px;height:12px}.media-card .media-info{padding:var(--space-xs) var(--space-md) var(--space-sm)}.media-card .media-title{font-size:var(--font-size-sm);font-weight:700;font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.media-card .media-artist{font-size:var(--font-size-xs);color:var(--text-secondary);font-family:var(--font-body)}.media-card .media-source{font-size:var(--font-size-xs);color:var(--text-tertiary);padding:0 var(--space-md) var(--space-sm);font-family:var(--font-mono)}.media-power-btn{width:32px;height:32px;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge)}.media-power-btn:hover{border-color:var(--border-primary);background:var(--glass-bg-hover)}.media-card .active-power{top:var(--space-sm);right:var(--space-sm);z-index:3;background:var(--black-a40);border-color:var(--white-a20);color:#fffc;width:28px;height:28px;position:absolute}.media-card .active-power:hover{background:var(--black-a60)}.media-card.has-art .idle-power{background:var(--black-a40);border-color:var(--white-a20);color:#fffc}.media-card.has-art .idle-power.on{background:var(--accent-primary-dim);color:var(--accent-primary);border-color:var(--accent-primary)}.media-card .media-idle-row{align-items:center;gap:var(--space-sm);padding:var(--space-md);min-height:64px;transition:opacity var(--transition-slow), transform var(--transition-slow);display:none;position:relative}.media-card .media-idle-info{flex:1;min-width:0}.media-card .media-idle-name{font-size:var(--font-size-sm);font-family:var(--font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.media-card .media-idle-source{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.media-card .media-idle-source:empty{display:none}.media-card .media-idle-state{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);border-radius:var(--radius-full);background:var(--glass-bg);border:1px solid var(--glass-border);flex-shrink:0;padding:2px 8px}.media-card.media-off{opacity:.5}.media-card.media-off .media-power-btn{opacity:1}.media-card.media-active .media-idle-row{opacity:0;pointer-events:none;transform:translateY(4px)}.media-apps{gap:var(--space-xs);padding:0 var(--space-md) var(--space-sm);flex-wrap:wrap;display:flex}.media-app-btn{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-tertiary);cursor:pointer;font-size:var(--font-size-xs);font-family:var(--font-mono);transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);display:flex}.media-app-btn:hover{border-color:var(--border-primary);color:var(--text-secondary);background:var(--glass-bg-hover)}.media-app-btn.active{border-color:rgba(var(--room-accent-rgb), .3);background:linear-gradient(170deg, rgba(var(--room-accent-rgb), .06) 0%, transparent 50%), rgba(var(--room-accent-rgb), .12);color:rgb(var(--room-accent-rgb));box-shadow:0 0 8px rgba(var(--room-accent-rgb), .1)}.media-app-icon{flex-shrink:0;width:14px;height:14px}.media-app-label{white-space:nowrap}.media-card.media-active .media-hero,.media-card.media-active .media-volume-bar,.media-card.media-active .media-info,.media-card.media-active .media-source{display:block}.media-card.media-active .media-idle-row,.media-card.idle .media-hero,.media-card.idle .media-volume-bar,.media-card.idle .media-info,.media-card.idle .media-source{display:none}.media-card.idle .media-idle-row{display:flex}.media-card:not(.media-active) .media-hero,.media-card:not(.media-active) .media-volume-bar,.media-card:not(.media-active) .media-info,.media-card:not(.media-active) .media-source{display:none}.media-card:not(.media-active) .media-idle-row{display:flex}.scene-btn{background:var(--glass-gradient), var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-button);padding:var(--space-sm) var(--space-md);cursor:pointer;align-items:center;gap:var(--space-sm);min-height:44px;font-size:var(--font-size-sm);font-family:var(--font-body);color:var(--text-primary);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-width:0;box-shadow:inset 0 1px 0 var(--glass-edge);display:flex;position:relative;overflow:hidden}.scene-btn:hover{background:var(--glass-gradient-strong), var(--bg-card-hover);box-shadow:var(--shadow-card-hover), inset 0 1px 0 var(--glass-edge-strong);transform:translateY(-2px)}.scene-btn .icon{background:rgba(var(--room-accent-rgb), .12);border-radius:var(--radius-full);width:28px;height:28px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.scene-copy{align-items:baseline;gap:var(--space-sm);flex:1;min-width:0;display:flex}.scene-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.scene-status{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:auto;overflow:hidden}.scene-status.hidden{display:none}.scene-btn:hover .icon{color:rgb(var(--room-accent-rgb));background:rgba(var(--room-accent-rgb), .2);filter:drop-shadow(0 0 4px rgba(var(--room-accent-rgb), .2))}.scene-btn:active{box-shadow:none;transform:translate(0)}.scene-btn.card-unavailable,.scene-btn:disabled{cursor:not-allowed;opacity:.72;color:var(--text-tertiary);background:linear-gradient(170deg, #a0a0a50a 0%, transparent 45%), var(--bg-card)}.scene-btn.card-unavailable:hover,.scene-btn:disabled:hover{box-shadow:inset 0 1px 0 var(--glass-edge);transform:none}.scene-btn.card-unavailable .icon,.scene-btn:disabled .icon{color:var(--text-tertiary);background:var(--glass-bg);filter:none}.scene-btn.card-unavailable .scene-copy,.scene-btn:disabled .scene-copy{flex-direction:column;align-items:flex-start;gap:2px}.scene-btn.card-unavailable .scene-status,.scene-btn:disabled .scene-status{margin-left:0}.scene-btn.card-unavailable:before,.scene-btn:disabled:before{background:#a0a0a538}.scene-btn:after{content:"";border-radius:var(--radius-full);background:rgba(var(--room-accent-rgb), .15);opacity:0;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (hover:none){.scene-btn:hover{box-shadow:none;transform:none}.scene-btn:active{background:var(--bg-card-hover);transition:transform var(--duration-reveal) var(--ease-spring);transform:scale(.94)}}.scene-btn.activated{background:linear-gradient(170deg, rgba(var(--room-accent-rgb), .08) 0%, transparent 40%), rgba(var(--room-accent-rgb), .12);border-color:rgb(var(--room-accent-rgb));color:rgb(var(--room-accent-rgb));box-shadow:0 0 16px rgba(var(--room-accent-rgb), .15), inset 0 1px 0 rgba(var(--room-accent-rgb), .1)}.scene-btn.activated:after{animation:scene-ripple var(--duration-reveal) var(--ease-smooth) forwards}@keyframes scene-ripple{0%{opacity:.4;width:0;height:0}to{opacity:0;width:200px;height:200px}}.scene-btn[data-mood=warm]{--mood-rgb:232, 148, 58}.scene-btn[data-mood=cool]{--mood-rgb:100, 181, 246}.scene-btn[data-mood=neutral]{--mood-rgb:160, 160, 165}.scene-btn[data-mood] .icon{background:rgba(var(--mood-rgb), .1);color:rgba(var(--mood-rgb), 1)}.scene-btn[data-mood]:hover .icon{background:rgba(var(--mood-rgb), .18);color:rgba(var(--mood-rgb), 1);filter:drop-shadow(0 0 4px rgba(var(--mood-rgb), .25))}.scene-btn[data-mood].activated{background:linear-gradient(170deg, rgba(var(--mood-rgb), .08) 0%, transparent 40%), rgba(var(--mood-rgb), .1);border-color:rgba(var(--mood-rgb), .5);color:rgba(var(--mood-rgb), 1)}.scene-btn[data-mood]:before{content:"";border-radius:var(--radius-full);background:rgba(var(--mood-rgb), .25);height:2px;transition:all var(--transition-normal);position:absolute;bottom:0;left:20%;right:20%}.scene-btn[data-mood]:hover:before{background:rgba(var(--mood-rgb), .5);left:10%;right:10%}.vacuum-card .vacuum-status{align-items:center;gap:var(--space-sm);margin:var(--space-sm) 0;font-family:var(--font-mono);font-size:var(--font-size-sm);display:flex}.vacuum-card .vacuum-actions{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.vacuum-card .vacuum-actions button{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-button);min-height:44px;padding:var(--space-sm);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-xs);font-family:var(--font-body);justify-content:center;align-items:center;gap:var(--space-xs);transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);flex:1;display:flex}.vacuum-card .vacuum-actions button:hover{background:var(--glass-bg-hover);box-shadow:var(--shadow-card-hover), inset 0 1px 0 var(--glass-edge-strong);border-color:rgba(var(--room-accent-rgb), .3);color:rgb(var(--room-accent-rgb));transform:translateY(-1px)}.vacuum-card .vacuum-actions button:active{box-shadow:none;transform:translate(0)}.timer-card .timer-display{font-size:var(--font-size-xl);font-family:var(--font-mono);text-align:center;margin:var(--space-sm) 0;font-weight:500}.timer-card .timer-presets{gap:var(--space-sm);flex-wrap:wrap;display:flex}.timer-card .timer-presets button{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-button);min-width:50px;padding:var(--space-xs) var(--space-sm);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-xs);font-family:var(--font-body);transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);flex:1}.timer-card .timer-presets button:hover{background:var(--glass-bg-hover);border-color:rgba(var(--room-accent-rgb), .3);box-shadow:inset 0 1px 0 var(--glass-edge-strong)}.timer-card .timer-presets button.cancel{color:var(--color-error)}.select-card select{width:100%;margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-button);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-body);cursor:pointer;appearance:none;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23888' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;outline:none}.select-card select:focus{border-color:rgb(var(--room-accent-rgb));box-shadow:0 0 0 2px rgba(var(--room-accent-rgb), .12), inset 0 1px 0 var(--glass-edge)}.plant-card .plant-sensors{gap:var(--space-xs);margin-top:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.plant-card .plant-metric{align-items:center;gap:var(--space-xs);background:var(--glass-bg);border-radius:var(--radius-badge);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary);transition:all var(--transition-fast);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-edge);display:flex}.plant-card .plant-metric.warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning)}.plant-card .plant-metric.error{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error)}.health-card{grid-column:1/-1}.health-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.health-icon{color:var(--accent-primary);display:flex}.health-title-wrap{flex-direction:column;gap:1px;display:flex}.health-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600}.health-subtitle{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.health-toolbar{justify-content:flex-end;align-items:center;gap:var(--space-xs);margin-left:auto;display:flex}.health-sync-chip{border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:rgba(var(--room-accent-rgb,232, 148, 58), .08);min-height:32px;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;padding:0 10px;display:inline-flex}.health-sync-chip.home_assistant{color:var(--color-info);border-color:var(--color-info);background:var(--color-info-bg)}.health-reset-ignored{align-items:center;gap:var(--space-xs);border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:var(--bg-elevated);min-height:32px;color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);padding:0 10px;display:inline-flex}.health-reset-ignored:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--bg-card-hover)}.health-contract{gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:linear-gradient(135deg, rgba(var(--room-accent-rgb,232, 148, 58), .06), transparent 48%), var(--glass-bg);display:grid}.health-contract-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.health-contract-title{font-family:var(--font-display);font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.health-contract-score{border-radius:var(--radius-badge);font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-success);background:var(--color-success-bg);border:1px solid #32d74b2e;padding:3px 8px}.health-contract-score.broken{color:var(--color-error);background:var(--color-error-bg);border-color:#ff3b302e}.health-contract-lifecycle{align-items:center;gap:var(--space-sm);min-width:0;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid rgba(var(--room-accent-rgb,232, 148, 58), .18);background:linear-gradient(90deg, rgba(var(--room-accent-rgb,232, 148, 58), .08), transparent 64%), var(--white-a025);grid-template-columns:minmax(180px,.8fr) minmax(260px,1.4fr) auto;display:grid}.health-contract-lifecycle.package-ok{background:linear-gradient(90deg, #32d74b14, transparent 64%), var(--white-a025);border-color:#32d74b2e}.health-contract-lifecycle.package,.health-contract-lifecycle.package-update{background:linear-gradient(90deg, #ff3b3014, transparent 64%), var(--white-a025);border-color:#ff3b3038}.health-contract-lifecycle.loading{opacity:.72}.health-contract-lifecycle-body{gap:2px;min-width:0;display:grid}.health-contract-lifecycle-title{color:var(--text-primary);font-size:var(--font-size-xs);font-weight:700}.health-contract-lifecycle-detail{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);overflow-wrap:anywhere}.health-contract-lifecycle-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0;display:grid}.health-contract-lifecycle-fact{border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--white-a035);gap:2px;min-width:0;padding:6px 8px;display:grid}.health-contract-lifecycle-fact strong{color:var(--text-tertiary);text-transform:uppercase;font-size:.66rem;font-weight:700}.health-contract-lifecycle-fact code{min-width:0;color:var(--text-secondary);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;background:0 0;font-size:.68rem;overflow:hidden}.health-contract-lifecycle-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;min-width:0;display:inline-flex}.health-contract-list{gap:var(--space-xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.health-contract-row{align-items:center;gap:var(--space-xs);border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--white-a025);grid-template-columns:auto minmax(0,1fr) auto;min-height:52px;padding:8px;display:grid}.health-contract-row.broken{background:var(--color-error-bg);border-color:#ff3b3033}.health-contract-row.transient{background:var(--color-warning-bg);border-color:#ff6b3533}.health-contract-icon{width:28px;height:28px;color:var(--accent-primary);justify-content:center;align-items:center;display:inline-flex}.health-contract-body{gap:2px;min-width:0;display:grid}.health-contract-name,.health-contract-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.health-contract-name{color:var(--text-primary);font-size:var(--font-size-xs);font-weight:600}.health-contract-detail{color:var(--text-tertiary);font-family:var(--font-mono);font-size:.68rem}.health-contract-badge{border-radius:var(--radius-badge);font-family:var(--font-mono);color:var(--color-success);background:var(--color-success-bg);padding:2px 7px;font-size:.68rem}.health-contract-badge.broken{color:var(--color-error);background:#ff3b3024}.health-contract-badge.transient{color:var(--color-warning);background:#ff6b3524}.health-contract-actions{justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:inline-flex}.health-contract-action{border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:var(--bg-elevated);min-width:36px;min-height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:.68rem;font-weight:700;display:inline-flex}.health-contract-action:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--bg-card-hover)}.health-contract-action.install{color:var(--color-error);background:#ff3b301a;border-color:#ff3b3033}.health-contract-action.copied{color:var(--color-success);background:var(--color-success-bg);border-color:#32d74b47}.health-contract-repair{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);background:linear-gradient(90deg, #ff3b3014, transparent 58%), var(--white-a025);border:1px solid #ff3b3033;grid-template-columns:minmax(0,1fr) minmax(260px,1.2fr) auto;display:grid}.health-contract-repair-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;min-width:0;display:inline-flex}.health-contract-repair-body{gap:2px;min-width:0;display:grid}.health-contract-repair-title{color:var(--text-primary);font-size:var(--font-size-xs);font-weight:700}.health-contract-repair-detail{color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);overflow-wrap:anywhere}.health-contract-repair-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0;display:grid}.health-contract-repair-step{border-radius:var(--radius-sm);background:var(--white-a035);border:1px solid var(--glass-border);gap:2px;min-width:0;padding:6px 8px;display:grid}.health-contract-repair-step strong{color:var(--text-tertiary);text-transform:uppercase;font-size:.66rem;font-weight:700}.health-contract-repair-step code{min-width:0;color:var(--text-secondary);font-size:.68rem;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;background:0 0;overflow:hidden}.health-summary{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.health-summary-pill{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm);background:var(--glass-bg);color:var(--text-secondary);gap:2px;min-width:0;display:grid}.health-summary-pill.broken{color:var(--color-error);background:var(--color-error-bg);border-color:#ff3b3033}.health-summary-pill.transient{color:var(--color-warning);background:var(--color-warning-bg);border-color:#ff6b352e}.health-summary-pill.expected{color:var(--color-info);background:var(--color-info-bg);border-color:#74c0fc2e}.health-summary-value{font-family:var(--font-display);font-size:var(--font-size-xl);font-variant-numeric:tabular-nums;font-weight:700}.health-summary-pill span:last-child{font-size:var(--font-size-xs);color:currentColor;opacity:.72}.health-rooms{gap:var(--space-xs);display:grid}.health-room-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);border-left-width:3px;grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.health-room-row.broken{background:linear-gradient(90deg, #ff3b3014, transparent 52%), var(--glass-bg);border-color:#ff3b3038}.health-room-row.transient{background:linear-gradient(90deg, #ff6b3512, transparent 52%), var(--glass-bg);border-color:#ff6b3538}.health-room-row.expected{background:linear-gradient(90deg, #74c0fc0f, transparent 52%), var(--glass-bg);border-color:#74c0fc2e}.health-room-row.expanded{border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);grid-template-columns:minmax(0,1fr) auto}.health-room-title{gap:2px;min-width:0;display:grid}.health-room-name{font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.health-room-note{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.health-room-counts{justify-content:flex-end;gap:var(--space-xs);flex-wrap:wrap;display:flex}.health-count{border-radius:var(--radius-badge);background:var(--bg-elevated);color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;padding:2px 7px}.health-count.ok{color:var(--color-success)}.health-count.unavailable,.health-count.unknown{color:var(--color-warning)}.health-count.missing{color:var(--color-error)}.health-group-action,.health-ref-action{border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:var(--bg-elevated);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.health-group-action:hover,.health-ref-action:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--bg-card-hover)}.health-ref-action.copied{color:var(--color-success);background:var(--color-success-bg);border-color:#32d74b47}.health-ref-action.ignore:hover{color:var(--color-info);background:var(--color-info-bg);border-color:#74c0fc47}@media (hover:none),(pointer:coarse){.health-contract-action,.health-group-action,.health-ref-action{width:44px;min-width:44px;height:44px;min-height:44px}}.health-action-icon,.health-group-action .icon,.health-ref-action .icon{justify-content:center;align-items:center;width:14px;height:14px;display:flex}.health-empty,.health-room-details{color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono);grid-column:1/-1}.health-room-details{gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--separator-color);display:grid}.health-ref-row{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);background:var(--white-a02);border:1px solid var(--glass-border);grid-template-columns:auto minmax(0,1fr) minmax(140px,.7fr) auto;padding:6px 8px;display:grid}.health-ref-row.broken{border-color:#ff3b302e}.health-ref-row.transient{border-color:#ff6b352e}.health-ref-status{border-radius:var(--radius-badge);background:var(--bg-elevated);color:var(--text-secondary);padding:2px 6px;font-size:.68rem}.health-ref-row.broken .health-ref-status{color:var(--color-error);background:var(--color-error-bg)}.health-ref-row.transient .health-ref-status{color:var(--color-warning);background:var(--color-warning-bg)}.health-ref-label,.health-ref-entity{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.health-ref-label{color:var(--text-secondary)}.health-ref-entity{color:var(--text-tertiary);font-family:var(--font-mono);background:0 0}.health-ref-actions{justify-content:flex-end;gap:var(--space-xs);display:flex}.health-ref-more{color:var(--text-secondary);padding:4px 8px}.section-separator{align-items:center;gap:var(--space-sm);margin:var(--space-xl) 0 var(--space-md);color:var(--text-secondary);display:flex}.section-separator .icon{color:rgb(var(--room-accent-rgb));opacity:.5;display:flex}.section-separator .separator-label{font-size:var(--font-size-lg);font-weight:600;font-family:var(--font-display)}.section-separator:after{content:"";background:var(--separator-color);flex:1;height:1px}@media (prefers-reduced-motion:reduce){.device-card{animation:none}}.energy-chart-error{color:var(--color-warning);padding:var(--space-sm) 0 var(--space-xs);font-size:.85rem;line-height:1.35}.energy-chart-card.energy-chart-unavailable{border-color:#ff6b3542}.plant-card{gap:var(--space-xs);flex-direction:column;display:flex}.plant-card .plant-photo{margin:calc(var(--space-md) * -1) calc(var(--space-md) * -1) var(--space-xs);border-radius:var(--radius-card) var(--radius-card) 0 0;aspect-ratio:16/9;background:var(--bg-elevated);overflow:hidden}.plant-card .plant-photo img{object-fit:cover;width:100%;height:100%;display:block}.plant-card .plant-species{font-size:var(--font-size-xs);color:var(--text-tertiary);font-style:italic}.plant-card .plant-problems{gap:2px;margin:0;padding:0;list-style:none;display:grid}.plant-card .plant-problem{font-size:var(--font-size-xs);color:var(--color-warning);line-height:1.35}.plant-card .card-state.plant-state-ok{color:var(--color-success)}.plant-card .card-state.plant-state-problem{color:var(--color-warning)}.plant-card .card-state.plant-state-unavailable{color:var(--text-tertiary)}.plant-card.plant-has-problem{border-color:#ff6b3542}.plant-card .plant-metric.metric-unavailable{color:var(--text-tertiary)}.energy-card.energy-no-data .energy-power,.energy-card.energy-no-data .energy-monthly{color:var(--color-warning)}.energy-card.energy-no-data{border-color:#ff6b3542}.alert-card{border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);align-items:center;gap:var(--space-sm);cursor:pointer;min-height:40px;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:400;font-family:var(--font-body);animation:card-reveal var(--duration-reveal) var(--ease-spring) backwards;-webkit-tap-highlight-color:transparent;border-left:3px solid #0000;display:flex}.alert-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.alert-card.error{background:linear-gradient(170deg, #ff3b300f 0%, transparent 40%), var(--color-error-bg);border:1px solid #ff3b3033;border-left:3px solid var(--color-error);color:var(--color-error);box-shadow:inset 0 1px #ff3b300d}.alert-card.error .icon{animation:2s infinite pulse-dot}.alert-card.warning{background:linear-gradient(170deg, #ff6b350f 0%, transparent 40%), var(--color-warning-bg);border:1px solid #ff6b3533;border-left:3px solid var(--color-warning);color:var(--color-warning);box-shadow:inset 0 1px #ff6b350d}.alert-card.info{background:linear-gradient(170deg, #74c0fc0f 0%, transparent 40%), var(--color-info-bg);border:1px solid #74c0fc33;border-left:3px solid var(--color-info);color:var(--color-info);box-shadow:inset 0 1px #74c0fc0d}.alert-card.hidden{display:none}.alerts-empty{color:var(--text-tertiary);font-family:var(--font-body);font-size:var(--font-size-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);align-items:center;min-height:40px;display:flex}.alerts-empty.hidden{display:none}.alert-content{gap:1px;min-width:0;display:grid}.alert-label,.alert-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alert-detail{font-size:var(--font-size-xs);font-family:var(--font-mono);opacity:.78;font-variant-numeric:tabular-nums}@keyframes hero-glow-drift{0%,to{opacity:.8;transform:translate(0)scale(1)}33%{opacity:1;transform:translate(5%,8%)scale(1.1)}66%{opacity:.9;transform:translate(-3%,-5%)scale(1.05)}}.home-hero{padding:var(--space-sm) 0 var(--space-xs);margin-bottom:var(--space-sm);position:relative}.home-hero:before{content:"";background:radial-gradient(ellipse at 15% 40%, var(--hero-glow,transparent) 0%, transparent 70%);pointer-events:none;will-change:transform;animation:25s ease-in-out infinite hero-glow-drift;position:absolute;inset:0}.home-hero[data-time=morning]{--hero-glow:#e8a8500f}.home-hero[data-time=afternoon]{--hero-glow:#64b5f608}.home-hero[data-time=evening]{--hero-glow:#e8822814}.home-hero[data-time=night]{--hero-glow:#4f64c80d}[data-theme=light] .home-hero[data-time=morning]{--hero-glow:#e8a85014}[data-theme=light] .home-hero[data-time=afternoon]{--hero-glow:#64b5f60a}[data-theme=light] .home-hero[data-time=evening]{--hero-glow:#e882280f}[data-theme=light] .home-hero[data-time=night]{--hero-glow:#4f64c80a}@media (prefers-reduced-motion:reduce){.home-hero:before{animation:none}}.hero-content{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);display:flex;position:relative}.hero-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:0;font-size:clamp(1.15rem,.9rem + 1vw,1.6rem);font-weight:600;line-height:1.1}.hero-sub{font-size:var(--font-size-base);color:var(--text-secondary);font-family:var(--font-mono);margin-top:6px;display:block}.hero-weather{align-items:center;gap:var(--space-sm);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 50%), var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-md) var(--space-xs) var(--space-sm);box-shadow:var(--shadow-card);animation:card-reveal var(--duration-reveal) var(--ease-spring) .1s backwards;flex-shrink:0;display:flex}.hero-weather .icon{width:20px;height:20px;color:var(--accent-climate)}.hero-weather-temp{font-size:var(--font-size-lg);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600;font-family:var(--font-mono)}.hero-weather-desc{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:capitalize}.alerts-row,.home-status-strip{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.home-status-chip{align-items:center;gap:var(--space-xs);min-height:44px;padding:var(--space-xs) var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-button);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 45%), var(--bg-card);color:var(--text-secondary);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);font-family:var(--font-body);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;display:inline-flex}button.home-status-chip{cursor:pointer}button.home-status-chip:hover{color:var(--text-primary);border-color:var(--border-primary);background:var(--glass-gradient-strong), var(--bg-card-hover);transform:translateY(-1px)}.home-status-chip .icon{flex:none;width:16px;height:16px}.home-status-text{gap:1px;min-width:0;display:grid}.home-status-label,.home-status-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-status-label{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.home-status-detail{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.home-status-chip.active.info{color:var(--color-info);background:linear-gradient(170deg, #74c0fc14 0%, transparent 45%), var(--color-info-bg);border-color:#74c0fc3d}.home-status-chip.active.warning,.home-status-chip.confirming{color:var(--color-warning);background:linear-gradient(170deg, #ff6b3514 0%, transparent 45%), var(--color-warning-bg);border-color:#ff6b3542}.home-status-chip.active.error{color:var(--color-error);background:linear-gradient(170deg, #ff3b3014 0%, transparent 45%), var(--color-error-bg);border-color:#ff3b3042}.home-status-chip.running{cursor:progress}.home-status-chip.unavailable,.home-status-chip:disabled{opacity:.72;cursor:not-allowed;color:var(--text-tertiary);transform:none}.home-brief{gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 42%), rgba(var(--room-accent-rgb,232, 148, 58), .03);box-shadow:inset 0 1px 0 var(--glass-edge);display:grid}.home-brief-header{align-items:center;gap:var(--space-sm);grid-template-columns:auto minmax(0,1fr) auto auto auto;display:grid}.home-brief-icon,.home-brief-item-icon{color:var(--accent-primary);justify-content:center;align-items:center;display:inline-flex}.home-brief-title-wrap{gap:1px;min-width:0;display:grid}.home-brief-title{font-size:var(--font-size-base);font-family:var(--font-display);color:var(--text-primary);font-weight:600}.home-brief-subtitle{color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono)}.home-brief-meter{height:3px;margin:0 var(--space-md) var(--space-sm);background:color-mix(in srgb, var(--text-tertiary) 18%, transparent);border-radius:99px;overflow:hidden}.home-brief-meter.hidden{display:none}.home-brief-meter-fill{border-radius:inherit;background:var(--accent-primary);width:0;height:100%;display:block}.home-brief-count{border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:var(--bg-elevated);min-width:34px;min-height:28px;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.home-brief:not(.empty) .home-brief-count{color:var(--accent-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--accent-primary-dim)}.home-brief-context-btn,.home-brief-assistant-btn{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--glass-bg);width:44px;height:44px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.home-brief-context-btn:hover,.home-brief-assistant-btn:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--glass-bg-hover)}.home-brief-assistant-btn.missing{color:var(--color-warning);background:#ff6b3512;border-color:#ff6b3538}.home-brief-assistant-btn.ready{color:var(--color-info);background:var(--color-info-bg);border-color:#4fc3f738}.home-brief-context-btn.running,.home-brief-assistant-btn.running{cursor:progress;color:var(--accent-primary)}.home-brief-context-btn.done,.home-brief-assistant-btn.done{color:var(--color-success);background:var(--color-success-bg);border-color:#32d74b47}.home-assistant-review{gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--glass-border);display:grid}.home-assistant-review.hidden{display:none}.home-assistant-review-bar{align-items:center;gap:var(--space-xs);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.home-assistant-review-title{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:650}.home-assistant-review-provider{max-width:180px;color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-assistant-review-close,.home-assistant-review-run{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--glass-bg);min-height:44px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.home-assistant-review-close{width:44px}.home-assistant-review-run{font-size:var(--font-size-sm);padding:0 14px;font-weight:600}.home-assistant-review-close:hover,.home-assistant-review-run:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--glass-bg-hover)}.home-assistant-review-run.running,.home-assistant-review-run:disabled{cursor:progress;opacity:.78}.home-assistant-review-controls{gap:var(--space-xs);grid-template-columns:minmax(0,1fr) auto;display:grid}.home-assistant-review-input{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--white-a025);min-height:54px;max-height:112px;color:var(--text-primary);font-family:var(--font-body);font-size:var(--font-size-sm);resize:vertical;padding:10px 12px;line-height:1.35}.home-assistant-review-input:focus{border-color:rgba(var(--room-accent-rgb,232, 148, 58), .36);background:#ffffff0a;outline:none}.home-assistant-review-output{border-left:3px solid var(--color-info);min-height:42px;color:var(--text-secondary);font-size:var(--font-size-sm);overflow-wrap:anywhere;white-space:pre-wrap;padding:9px 10px;line-height:1.4}.home-assistant-review[data-state=running] .home-assistant-review-output{color:var(--accent-primary)}.home-assistant-review[data-state=error] .home-assistant-review-output{border-left-color:var(--color-error);color:var(--color-error)}.home-assistant-review[data-state=done] .home-assistant-review-output{border-left-color:var(--color-success)}.home-brief-list{gap:var(--space-xs);display:grid}.home-brief-health-driver{align-items:center;gap:var(--space-sm);border:1px solid var(--glass-border);border-left:3px solid var(--accent-primary);border-radius:var(--radius-badge);background:var(--white-a02);min-height:42px;color:var(--text-secondary);cursor:pointer;text-align:left;transition:border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);grid-template-columns:auto minmax(0,1fr) auto;padding:7px 8px;display:grid}.home-brief-health-driver:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);border-left-color:var(--accent-primary);background:var(--bg-card-hover)}.home-brief-health-driver.hidden{display:none}.home-brief-health-driver.error{border-left-color:var(--color-error)}.home-brief-health-driver.warning{border-left-color:var(--color-warning)}.home-brief-health-driver.info{border-left-color:var(--color-info)}.home-brief-health-driver.success{border-left-color:var(--color-success)}.home-brief-health-driver-icon{color:var(--accent-primary);justify-content:center;align-items:center;display:inline-flex}.home-brief-health-driver.error .home-brief-health-driver-icon{color:var(--color-error)}.home-brief-health-driver.warning .home-brief-health-driver-icon{color:var(--color-warning)}.home-brief-health-driver.info .home-brief-health-driver-icon{color:var(--color-info)}.home-brief-health-driver.success .home-brief-health-driver-icon{color:var(--color-success)}.home-brief-health-driver-text{gap:1px;min-width:0;display:grid}.home-brief-health-driver-title,.home-brief-health-driver-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-brief-health-driver-title{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:650}.home-brief-health-driver-detail{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.home-brief-health-driver-score{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--bg-elevated);min-height:26px;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:center;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}.home-brief-item{align-items:center;gap:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--white-a02);border-left-width:3px;grid-template-columns:auto minmax(0,1fr) auto;min-height:46px;padding:7px 8px;display:grid}.home-brief-item.warning{border-color:#ff6b3533;border-left-color:var(--color-warning)}.home-brief-item.error{border-color:#ff3b3038;border-left-color:var(--color-error)}.home-brief-item.info{border-color:#74c0fc2e;border-left-color:var(--color-info)}.home-brief-item.warning .home-brief-item-icon{color:var(--color-warning)}.home-brief-item.error .home-brief-item-icon{color:var(--color-error)}.home-brief-item.info .home-brief-item-icon{color:var(--color-info)}.home-brief-item.is-next{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 35%, transparent)}.home-brief-item-text{gap:1px;min-width:0;display:grid}.home-brief-item-title,.home-brief-item-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-brief-item-title{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.home-brief-item-detail,.home-brief-empty{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.home-brief-action{border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:var(--bg-elevated);min-height:34px;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.home-brief-action:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--bg-card-hover)}.home-brief-action.confirming{color:var(--color-warning);background:var(--color-warning-bg);border-color:#ff6b3547}.home-brief-action.running{cursor:progress;border-color:rgba(var(--room-accent-rgb,232, 148, 58), .35)}.home-brief-action.unavailable,.home-brief-action:disabled{cursor:not-allowed;color:var(--text-tertiary);opacity:.72}.home-brief-empty{min-height:42px;padding:0 var(--space-xs);align-items:center;display:flex}.home-health-map{gap:var(--space-sm);margin-bottom:var(--space-lg);display:grid}.home-health-map.hidden{display:none}.home-health-header{align-items:center;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.home-health-title-wrap{gap:1px;min-width:0;display:grid}.home-health-title{color:var(--text-primary);font-family:var(--font-display);font-size:var(--font-size-base);font-weight:600}.home-health-subtitle{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.home-health-overview,.home-health-action{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--bg-elevated);min-height:34px;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.home-health-overview{padding:0 12px}.home-health-action{padding:0 11px}.home-health-overview:hover,.home-health-action:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--bg-card-hover)}@media (hover:none),(pointer:coarse){.home-brief-action,.home-brief-health-driver,.home-health-overview,.home-health-action{min-height:44px}}.home-health-list{gap:var(--space-xs);display:grid}.home-health-row{align-items:center;gap:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--white-a02);border-left-width:3px;grid-template-columns:auto minmax(0,1fr) auto auto;min-height:48px;padding:8px;display:grid}.home-health-row.broken{border-color:#ff3b3038;border-left-color:var(--color-error)}.home-health-row.transient{border-color:#74c0fc2e;border-left-color:var(--color-info)}.home-health-row-icon{color:var(--text-tertiary);justify-content:center;align-items:center;display:inline-flex}.home-health-row.broken .home-health-row-icon{color:var(--color-error)}.home-health-row.transient .home-health-row-icon{color:var(--color-info)}.home-health-row-text{gap:1px;min-width:0;display:grid}.home-health-row-name,.home-health-row-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-health-row-name{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.home-health-row-detail{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.home-health-row-counts{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.home-health-chip{border-radius:var(--radius-badge);background:var(--bg-elevated);min-height:24px;color:var(--text-tertiary);border:1px solid var(--glass-border);font-family:var(--font-mono);white-space:nowrap;align-items:center;padding:0 7px;font-size:.68rem;display:inline-flex}.home-health-chip.missing,.home-health-chip.unavailable{color:var(--color-error);background:var(--color-error-bg);border-color:#ff3b302e}.home-health-chip.unknown{color:var(--color-warning);background:var(--color-warning-bg);border-color:#ff6b352e}.home-actions-row{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:center;display:flex}.home-action-btn{border-radius:var(--radius-button);border:1px solid var(--glass-border);background:var(--glass-gradient), var(--bg-card);min-height:44px;color:var(--text-secondary);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);transition:all var(--transition-fast);display:inline-flex}.home-action-btn .icon{width:16px;height:16px}.home-action-btn:hover{color:var(--text-primary);border-color:var(--border-primary);background:var(--glass-gradient-strong), var(--bg-card-hover);transform:translateY(-1px)}.home-action-btn.info{color:var(--color-info)}.home-action-btn.warning{color:var(--color-warning)}.home-action-btn.confirming{color:var(--color-warning);background:linear-gradient(170deg, #ff6b351a 0%, transparent 45%), var(--color-warning-bg);border-color:#ff6b3547}.home-action-btn.running{cursor:progress;border-color:rgba(var(--room-accent-rgb), .35)}.home-action-btn.shortcut-focus{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb), .45);box-shadow:0 0 0 3px rgba(var(--room-accent-rgb), .18), var(--shadow-card), inset 0 1px 0 var(--glass-edge)}.home-action-btn.is-primary:not(.unavailable):not(:disabled){color:var(--text-primary);border-color:color-mix(in srgb, var(--accent-primary) 50%, var(--glass-border));background:linear-gradient(170deg, color-mix(in srgb, var(--accent-primary) 16%, transparent) 0%, transparent 50%), var(--bg-card)}.home-action-btn.done{color:var(--color-success,#6fcf97);border-color:color-mix(in srgb, var(--color-success,#6fcf97) 35%, var(--glass-border))}.home-action-btn.unavailable,.home-action-btn:disabled{opacity:.72;cursor:not-allowed;color:var(--text-tertiary);background:linear-gradient(170deg, #a0a0a50a 0%, transparent 45%), var(--bg-card);transform:none}.home-actions-status{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);padding:0 var(--space-xs);flex-basis:100%}.home-actions-status[data-tone=warning]{color:var(--color-warning)}.home-actions-status[data-tone=success]{color:var(--color-success,#6fcf97)}.home-actions-status.hidden{display:none}.maison-action-trail{gap:var(--space-xs);margin-bottom:var(--space-lg);color:var(--text-secondary);display:grid}.maison-action-trail-header{align-items:center;gap:var(--space-xs);color:var(--text-tertiary);display:flex}.maison-action-trail-icon{display:inline-flex}.maison-action-trail-title{font-size:var(--font-size-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.maison-action-trail-list{gap:4px;display:grid}.maison-action-trail-item{align-items:center;gap:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--white-a02);grid-template-columns:auto minmax(0,1fr) auto;min-height:36px;padding:6px 8px;display:grid}.maison-action-trail-status{border-radius:var(--radius-badge);background:var(--color-success-bg);color:var(--color-success);font-family:var(--font-mono);padding:2px 7px;font-size:.68rem}.maison-action-trail-item.running .maison-action-trail-status{background:var(--color-info-bg);color:var(--color-info)}.maison-action-trail-text{gap:1px;min-width:0;display:grid}.maison-action-trail-label,.maison-action-trail-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.maison-action-trail-label{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.maison-action-trail-detail,.maison-action-trail-time,.maison-action-trail-empty{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.maison-action-trail-time{white-space:nowrap}.maison-action-trail-empty{min-height:34px;padding:0 var(--space-xs);border:1px dashed var(--glass-border);border-radius:var(--radius-badge);align-items:center;display:flex}.home-control-grid{gap:var(--space-lg);margin-bottom:var(--space-lg);display:grid}.home-control-primary,.home-control-secondary{min-width:0}@media (width>=1100px) and (width<=1279px){#content>.home-hero,#content>.home-status-strip,#content>.alerts-row,#content>.home-control-grid{max-width:min(100%, calc(100vw - var(--sidebar-width) - 56px))}.home-hero{padding:var(--space-lg) 0 var(--space-sm);margin-bottom:var(--space-sm)}.home-status-strip,.alerts-row{margin-bottom:var(--space-md)}.home-control-grid{gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(300px,.56fr);align-items:start}.home-control-secondary{top:calc(var(--topbar-height) + var(--space-md));position:sticky}.home-health-map{margin-bottom:0}.home-health-list{max-height:calc(100dvh - var(--topbar-height) - 190px);scrollbar-width:thin;padding-right:2px;overflow:auto}.home-control-grid:has(.home-health-map.hidden){grid-template-columns:minmax(0,1fr)}}@media (width>=1100px) and (width<=1279px) and (orientation:landscape) and (pointer:coarse){.home-hero{margin-bottom:0;padding:4px 0 0}.hero-content{align-items:center}.hero-title{font-size:1.7rem;line-height:1.05}.hero-sub{font-size:var(--font-size-sm);margin-top:2px}.hero-weather{min-height:44px;padding:var(--space-xs) var(--space-sm)}.home-status-strip,.alerts-row{overscroll-behavior-inline:contain;scrollbar-width:none;gap:var(--space-xs);flex-wrap:nowrap;margin-bottom:2px;padding-bottom:2px;overflow-x:auto}.home-status-strip::-webkit-scrollbar{display:none}.alerts-row::-webkit-scrollbar{display:none}.home-status-chip,.alert-card{flex:none}.home-actions-row,.home-brief,.maison-action-trail,.activity-feed{margin-bottom:4px}.home-control-grid{gap:var(--space-sm)}}@media (width>=1280px){#content>.home-hero,#content>.home-status-strip,#content>.alerts-row,#content>.home-control-grid{max-width:min(1440px, calc(100vw - var(--sidebar-width) - 96px))}.home-hero{padding:var(--space-xl) 0 var(--space-md);margin-bottom:var(--space-md)}.home-status-strip,.alerts-row{margin-bottom:var(--space-md)}.home-control-grid{grid-template-columns:minmax(0,.92fr) minmax(380px,.58fr);align-items:start}.home-control-secondary{top:calc(var(--topbar-height) + var(--space-lg));position:sticky}.home-health-map{margin-bottom:0}.home-health-list{max-height:calc(100dvh - var(--topbar-height) - 220px);scrollbar-width:thin;padding-right:2px;overflow:auto}.home-control-grid:has(.home-health-map.hidden){grid-template-columns:minmax(0,960px)}}@media (width>=1680px){#content>.home-hero,#content>.home-status-strip,#content>.alerts-row,#content>.home-control-grid{max-width:min(1520px, calc(100vw - var(--sidebar-width) - 128px))}}.activity-feed{gap:var(--space-sm);margin:var(--space-sm) 0 var(--space-lg);padding:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-card);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 45%), var(--bg-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);display:grid}.activity-header{align-items:center;gap:var(--space-sm);display:flex}.activity-header-icon,.activity-header .icon{width:18px;height:18px;color:var(--text-primary);flex-shrink:0}.activity-title-wrap{min-width:0}.activity-title{color:var(--text-primary);font-size:var(--font-size-md);margin:0;font-weight:700;line-height:1.1}.activity-subtitle{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);margin:2px 0 0}.activity-filters{gap:var(--space-xs);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.activity-filters::-webkit-scrollbar{display:none}.activity-filter-chip{border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 50%), var(--bg-card);min-height:38px;color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);flex:none;padding:6px 12px}.activity-filter-label,.activity-filter-count{align-items:center;display:inline-flex}.activity-filter-count{border-radius:var(--radius-badge);min-width:18px;min-height:18px;color:var(--text-tertiary);font-variant-numeric:tabular-nums;background:#ffffff0f;justify-content:center;margin-left:6px;padding:0 5px;font-size:.68rem}.activity-filter-chip[data-filter=important]:not(.empty){color:var(--color-warning);background:linear-gradient(170deg,#ff6b3514 0%,#0000 50%),#ff6b3514;border-color:#ff6b3538}.activity-filter-chip.empty{opacity:.72}.activity-filter-chip:hover{color:var(--text-primary);background:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 50%), var(--bg-card-hover)}.activity-filter-chip.active{color:var(--color-info);background:linear-gradient(170deg,#44aaff14 0%,#0000 50%),#44aaff1f;border-color:#44aaff4d}.activity-filter-chip[data-filter=important].active:not(.empty){color:var(--color-warning);background:linear-gradient(170deg,#ff6b3521 0%,#0000 50%),#ff6b351f;border-color:#ff6b3557}.activity-digest{align-items:center;gap:var(--space-sm);border-radius:var(--radius-badge);background:linear-gradient(90deg, #ff6b3512, transparent 62%), var(--white-a025);border:1px solid #ff6b3529;grid-template-columns:minmax(0,1fr) auto auto;min-height:42px;padding:7px 9px 7px 11px;display:grid}.activity-digest.hidden{display:none}.activity-digest-status{min-width:0;color:var(--text-primary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.activity-digest-meta{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-digest-action{border-radius:var(--radius-badge);min-height:32px;color:var(--color-warning);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-xs);white-space:nowrap;transition:all var(--transition-fast);background:#ff6b3514;border:1px solid #ff6b3538;padding:0 11px;font-weight:650}.activity-digest-action:hover{color:var(--text-primary);background:#ff6b3521}.activity-list{scrollbar-width:thin;flex-direction:column;gap:4px;max-height:320px;display:flex;overflow-y:auto}.activity-item{align-items:center;gap:var(--space-sm);border-radius:var(--radius-badge);background:var(--white-a02);border:1px solid var(--glass-border);min-height:48px;animation:fadeIn var(--duration-normal) var(--ease-out);grid-template-columns:18px minmax(0,1fr) auto;padding:7px 10px;display:grid}.activity-item.important{background:linear-gradient(90deg, #ff6b350f, transparent 58%), var(--white-a02);border-color:#ff6b352e}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.activity-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;display:flex}.activity-content{flex-direction:column;gap:2px;min-width:0;display:flex}.activity-text{min-width:0;font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-explanation,.activity-trace,.activity-cause,.activity-next-step{min-width:0;color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-trace{color:var(--text-secondary)}.activity-cause{color:var(--color-info)}.activity-next-step{color:var(--color-warning)}.activity-time{font-size:var(--font-size-xs);color:var(--text-tertiary);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-shrink:0}.activity-action{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--bg-elevated);min-height:32px;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);flex-shrink:0;align-self:center;padding:0 10px}.activity-action:hover{color:var(--text-primary);background:var(--bg-card-hover);border-color:#ff6b353d}.activity-item.important .activity-action{color:var(--color-warning);background:#ff6b3512;border-color:#ff6b3533}.activity-empty{min-height:42px;padding:0 var(--space-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-badge);color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);align-items:center;display:flex}@media (hover:none),(pointer:coarse){.activity-filter-chip,.activity-digest-action,.activity-action{min-height:44px}}.room-card{background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 40%), var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);padding:var(--space-md);transition:all var(--transition-normal);cursor:pointer;animation:card-reveal var(--duration-reveal) var(--ease-spring) backwards;position:relative;overflow:hidden}.room-card:hover{background:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 40%), var(--bg-card-hover);box-shadow:var(--shadow-card-hover), inset 0 1px 0 var(--glass-edge-strong);transform:translateY(-2px)}@media (hover:none){.room-card:hover{box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);transform:none}.room-card:active{background:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 40%), var(--bg-card-hover);transform:scale(.98)}}.room-card .room-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.room-card .room-header .icon{color:var(--text-secondary);transition:all var(--transition-normal);display:flex}.room-card .room-header .icon.on{color:var(--color-on)}.room-card .room-name{font-size:var(--font-size-base);font-weight:700;font-family:var(--font-body)}.room-card .room-temp{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary);background:var(--glass-bg);border-radius:var(--radius-badge);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-edge);margin-left:auto;padding:3px 10px}.room-card .room-temp:empty{display:none}.room-card .room-status-badges{gap:var(--space-xs);flex-wrap:wrap;min-height:0;display:flex}.room-card .room-status-badges:empty{display:none}.room-status-badge{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--accent-primary);background:var(--accent-primary-dim);border-radius:var(--radius-badge);align-items:center;gap:3px;padding:2px 7px;line-height:1;display:inline-flex}.room-status-badge .icon{width:12px;height:12px;color:var(--accent-primary);justify-content:center;align-items:center;display:flex}.room-status-badge .icon svg{width:12px;height:12px}.room-status-badge .rsb-count{font-variant-numeric:tabular-nums}.room-card .room-slider-row{align-items:center;gap:var(--space-sm);margin:var(--space-sm) 0;display:flex}.room-card .slider-value{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);text-align:right;min-width:32px}.room-card .room-slider-row input[type=range]{appearance:none;background:var(--slider-track);border-radius:var(--radius-slider);height:4px;transition:height var(--transition-fast);outline:none;flex:1}.room-card .room-slider-row input[type=range]:hover{height:6px}.room-card .room-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);background:var(--slider-thumb);cursor:pointer;width:14px;height:14px;box-shadow:0 1px 4px var(--black-a30)}.room-card .room-slider-row input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);background:var(--slider-thumb);cursor:pointer;border:none;width:14px;height:14px}.room-card .room-quick-actions{gap:var(--space-xs);display:flex}.room-card .room-quick-actions button{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-badge);padding:var(--space-xs) var(--space-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-xs);font-family:var(--font-body);align-items:center;gap:var(--space-xs);transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);display:flex}.room-card .room-quick-actions button:hover{background:var(--glass-bg-hover);border-color:var(--border-primary);color:var(--text-primary)}.room-card.room-primary-unavailable .room-slider-row,.room-card .room-quick-actions button.unavailable,.room-card .room-quick-actions button:disabled{opacity:.58;cursor:not-allowed}.room-card .room-quick-actions button.on{color:var(--color-on);border-color:var(--accent-primary-glow);background:linear-gradient(170deg, var(--accent-a6) 0%, transparent 50%), var(--accent-primary-dim);box-shadow:0 0 8px var(--accent-a10), inset 0 1px 0 var(--accent-a6)}.room-card[data-room=salon]{border-top:2px solid var(--room-salon)}.room-card[data-room=bureau]{border-top:2px solid var(--room-bureau)}.room-card[data-room=chambre]{border-top:2px solid var(--room-chambre)}.room-card[data-room=cuisine]{border-top:2px solid var(--room-cuisine)}.room-card[data-room=salle-a-manger]{border-top:2px solid var(--room-salle-a-manger)}.room-card[data-room=salle-de-bain]{border-top:2px solid var(--room-salle-de-bain)}.room-card[data-room=toilettes]{border-top:2px solid var(--room-toilettes)}.room-card[data-room=entree]{border-top:2px solid var(--room-entree)}.room-card[data-room=buanderie]{border-top:2px solid var(--room-buanderie)}.room-card .activity-dot{border-radius:var(--radius-full);background:var(--color-on);opacity:0;width:6px;height:6px;transition:opacity var(--transition-normal);flex-shrink:0}.room-card .activity-dot.active{opacity:1;animation:2s infinite pulse-dot}.hdmi-selector{flex-direction:column;display:flex}.hdmi-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.hdmi-icon{color:var(--text-tertiary)}.hdmi-title{font-family:var(--font-body);font-size:var(--font-size-md);color:var(--text-primary);flex:1}.hdmi-toggles{gap:var(--space-xs);display:flex}.hdmi-toggle-pill{border-radius:var(--radius-full);border:1px solid var(--glass-border);background:var(--glass-bg);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);justify-content:center;align-items:center;display:flex}.hdmi-toggle-pill.on{background:rgba(var(--room-accent-rgb), .12);color:rgb(var(--room-accent-rgb));border-color:rgba(var(--room-accent-rgb), .3);box-shadow:0 0 8px rgba(var(--room-accent-rgb), .12)}.hdmi-toggle-pill:hover{border-color:var(--border-primary);background:var(--glass-bg-hover)}.hdmi-toggle-pill.unavailable,.hdmi-toggle-pill:disabled,.hdmi-btn.unavailable,.hdmi-btn:disabled{opacity:.55;cursor:not-allowed}.hdmi-grid{gap:var(--space-sm);flex:1;grid-template-columns:1fr 1fr;display:grid}.hdmi-btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-button);border:1px solid var(--glass-border);background:var(--glass-bg);min-height:44px;color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-body);transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);display:flex}.hdmi-btn:hover{border-color:var(--border-primary);background:var(--glass-bg-hover)}.hdmi-btn:disabled:hover{border-color:var(--glass-border);background:var(--glass-bg)}.hdmi-btn.active{border-color:rgba(var(--room-accent-rgb), .3);background:linear-gradient(170deg, rgba(var(--room-accent-rgb), .06) 0%, transparent 50%), rgba(var(--room-accent-rgb), .12);color:rgb(var(--room-accent-rgb));box-shadow:0 0 8px rgba(var(--room-accent-rgb), .1), inset 0 1px 0 rgba(var(--room-accent-rgb), .06)}.hdmi-btn-icon{flex-shrink:0;width:18px;height:18px}.hdmi-btn-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.hdmi-btn-dot{background:var(--text-tertiary);opacity:.3;width:6px;height:6px;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0}.hdmi-btn-dot.connected{background:var(--color-success);opacity:1}.alert-card.alert-covered-by-brief{display:none}.light-panel-backdrop{background:var(--black-a60);-webkit-backdrop-filter:blur(16px)saturate(1.3);z-index:1000;opacity:0;pointer-events:none;transition:opacity var(--transition-slow);position:fixed;inset:0}.light-panel-backdrop:after{content:"";background:var(--lp-ambient-color,transparent);opacity:0;transition:opacity var(--duration-reveal) var(--ease-smooth), background var(--duration-reveal) var(--ease-smooth);pointer-events:none;position:absolute;inset:0}.light-panel-backdrop.visible{opacity:1;pointer-events:all}.light-panel-backdrop.visible:after{opacity:1}.light-panel{--lp-color-rgb:232, 148, 58;background:linear-gradient(170deg, rgba(var(--lp-color-rgb), .04) 0%, transparent 50%), var(--bg-secondary);border:1px solid rgba(var(--lp-color-rgb), .12);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:400px;box-shadow:0 -8px 40px var(--black-a40), 0 0 40px rgba(var(--lp-color-rgb), .08), inset 0 1px 0 rgba(var(--lp-color-rgb), .08);z-index:1001;transition:transform var(--duration-reveal) var(--ease-spring), border-color var(--duration-reveal) var(--ease-smooth), box-shadow var(--duration-reveal) var(--ease-smooth);padding:0 var(--space-lg) calc(28px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-bottom:none;max-height:90dvh;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.light-panel.visible{transform:translateY(0)}@media (width>=768px){.light-panel{border-radius:var(--radius-modal);border-bottom:1px solid rgba(var(--lp-color-rgb), .12);width:620px;max-width:620px;box-shadow:0 24px 80px var(--black-a50), 0 0 60px rgba(var(--lp-color-rgb), .12), inset 0 1px 0 rgba(var(--lp-color-rgb), .08);opacity:0;transition:transform var(--duration-reveal) var(--ease-spring), opacity var(--transition-slow), border-color var(--duration-reveal) var(--ease-smooth), box-shadow var(--duration-reveal) var(--ease-smooth);max-height:85vh;margin:0;padding:0 28px 32px;inset:50% auto auto 50%;transform:translate(-50%,-50%)scale(.92)}.light-panel.visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.light-panel-handle{display:none}.light-panel-body{gap:var(--space-lg) var(--space-xl);grid-template-columns:auto 1fr;align-items:start;display:grid}.lp-wheel-section{grid-area:1/1/span 3;align-self:center}.lp-wheel-canvas{width:280px;height:280px}.lp-temp-section,.lp-brightness-section,.lp-adaptive-section{grid-column:2}.light-panel:not(.has-wheel) .light-panel-body{grid-template-columns:1fr}.light-panel:not(.has-wheel) .lp-temp-section,.light-panel:not(.has-wheel) .lp-brightness-section,.light-panel:not(.has-wheel) .lp-adaptive-section{grid-column:1}}.light-panel-handle{border-radius:var(--radius-full);background:var(--text-tertiary);opacity:.3;cursor:grab;width:36px;height:4px;margin:10px auto 14px}.light-panel-header{align-items:center;gap:12px;padding:14px 0 20px;display:flex}.lp-header-color-dot{width:14px;height:14px;transition:background var(--duration-reveal) var(--ease-smooth), box-shadow var(--duration-reveal) var(--ease-smooth);border:2px solid var(--white-a15);border-radius:50%;flex-shrink:0}.light-panel-name{font-size:1rem;font-weight:500;font-family:var(--font-display);color:var(--text-primary);text-transform:uppercase;letter-spacing:.06em;flex:1}.light-panel-close{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-full);width:28px;height:28px;transition:all var(--transition-fast);opacity:.6;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;display:flex}.light-panel-close:hover{background:var(--glass-bg-active);color:var(--text-primary);opacity:1}.light-panel-section{margin-bottom:var(--space-lg)}.lp-section-label{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-sm);font-weight:500}.light-panel .lp-wheel-section,.light-panel .lp-temp-section,.light-panel .lp-brightness-section,.light-panel .lp-adaptive-section{opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);transform:translateY(8px)}.light-panel.visible .lp-wheel-section{opacity:1;transition-delay:80ms;transform:translateY(0)}.light-panel.visible .lp-temp-section{opacity:1;transition-delay:.14s;transform:translateY(0)}.light-panel.visible .lp-brightness-section{opacity:1;transition-delay:.18s;transform:translateY(0)}.light-panel.visible .lp-adaptive-section{opacity:1;transition-delay:.22s;transform:translateY(0)}.chart-panel-backdrop{background:var(--black-a50);-webkit-backdrop-filter:blur(12px)saturate(1.2);z-index:200;opacity:0;pointer-events:none;transition:opacity var(--transition-normal);position:fixed;inset:0}.chart-panel-backdrop.visible{opacity:1;pointer-events:auto}.chart-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:min(440px,90vw);max-height:80vh;box-shadow:var(--shadow-lg);z-index:201;opacity:0;pointer-events:none;transition:opacity var(--transition-normal), transform var(--transition-normal);position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.95)}.chart-panel.visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.chart-panel-handle{display:none}.chart-panel-header{padding:16px 20px 8px}.chart-panel-title-row{justify-content:space-between;align-items:center;display:flex}.chart-panel-name{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);font-size:1.3rem}.chart-panel-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.5rem;line-height:1}.chart-panel-close:hover{color:var(--text-primary)}.chart-panel-current{align-items:baseline;gap:8px;margin-top:4px;display:flex}.chart-current-value{color:var(--text-primary);font-size:1.6rem;font-weight:600}.chart-current-trend{color:var(--text-tertiary);font-size:1rem}.chart-panel-body{padding:0 20px 20px}.chart-range-tabs{gap:var(--space-xs);margin-bottom:var(--space-sm);display:flex}.chart-range-tab{border-radius:var(--radius-pill,20px);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.8rem;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:4px 12px}.chart-range-tab:hover{background:var(--glass-tint-hover)}.chart-range-tab.active{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.chart-svg-wrap{aspect-ratio:5/2;width:100%;color:var(--text-tertiary);justify-content:center;align-items:center;font-size:.85rem;display:flex}.chart-svg-wrap svg{width:100%;height:100%}.chart-axis-label{fill:var(--text-tertiary);font-size:8px;font-family:var(--font-body)}.chart-crosshair-text{font-size:9px;font-family:var(--font-body)}.chart-stats-row{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);justify-content:space-around;display:flex}.chart-stat{text-align:center}.chart-stat-value{font-size:1.1rem;font-weight:600;display:block}.chart-stat-unit{opacity:.6;margin-left:2px;font-size:.75rem;font-weight:400}.chart-stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-size:.7rem;display:block}@media (width<=768px){.chart-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:70vh;padding-bottom:env(safe-area-inset-bottom,0px);top:auto;bottom:0;left:0;transform:translateY(100%)}.chart-panel.visible{transform:translateY(0)}.chart-panel-handle{background:var(--text-tertiary);opacity:.3;border-radius:2px;width:36px;height:4px;margin:8px auto 4px;display:block}}.lp-wheel-section{justify-content:center;align-items:center;display:flex;position:relative}.lp-wheel-canvas{cursor:crosshair;touch-action:none;width:280px;height:280px;filter:drop-shadow(0 2px 12px var(--black-a15))}.lp-temp-wrap{position:relative}.lp-temp-bar{border-radius:var(--radius-slider);background:linear-gradient(90deg, #ff8a2b, #ffcc80, var(--white), #bdd7ff, #a8c4f7);height:32px;box-shadow:inset 0 1px 2px #ffffff1a, 0 2px 8px var(--black-a15);position:relative;overflow:visible}.lp-temp-thumb{border-radius:var(--radius-full);background:var(--white);width:24px;height:24px;box-shadow:0 1px 4px var(--black-a30), 0 0 0 2px var(--white-a15), 0 0 16px rgba(var(--lp-color-rgb), .3);pointer-events:none;z-index:2;transition:left var(--transition-fast), box-shadow var(--transition-slow);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lp-temp-input{appearance:none;cursor:pointer;opacity:0;z-index:3;background:0 0;width:100%;height:32px;margin:0;position:absolute;top:0;left:0}.lp-temp-input::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);cursor:pointer;background:0 0;width:32px;height:32px}.lp-temp-input::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;width:32px;height:32px}.lp-temp-labels{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);justify-content:space-between;margin-top:6px;display:flex}.lp-temp-value{color:var(--text-secondary);font-weight:500}.lp-brightness-wrap{position:relative}.lp-brightness-bar{background:var(--slider-track);border-radius:var(--radius-slider);pointer-events:none;height:36px;box-shadow:inset 0 1px 3px var(--black-a10);position:relative;overflow:hidden}.lp-brightness-fill{background:linear-gradient(90deg, rgba(var(--lp-color-rgb), .25), rgba(var(--lp-color-rgb), .6));border-radius:var(--radius-slider);width:0%;height:100%;transition:width var(--transition-fast);position:relative}.lp-brightness-fill:after{content:"";border-radius:var(--radius-full);background:var(--slider-thumb);width:22px;height:22px;box-shadow:0 1px 4px var(--black-a30), 0 0 12px rgba(var(--lp-color-rgb), .4);position:absolute;top:50%;right:0;transform:translateY(-50%)}.lp-brightness-input{appearance:none;cursor:pointer;opacity:0;z-index:2;background:0 0;width:100%;height:36px;margin:0;position:absolute;top:0;left:0}.lp-brightness-input::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-full);cursor:pointer;background:0 0;width:36px;height:36px}.lp-brightness-input::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;width:36px;height:36px}.lp-brightness-value{text-align:right;font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:6px;display:block}.lp-adaptive-row{align-items:center;gap:var(--space-sm);padding:12px var(--space-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:border-color var(--transition-normal), background var(--transition-slow);display:flex}.lp-adaptive-row.active{background:var(--accent-a8);border-color:var(--accent-a15)}.lp-adaptive-row:hover{border-color:var(--glass-border-hover)}.lp-adaptive-row .icon{color:var(--accent-primary);opacity:.7;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lp-adaptive-label{font-size:var(--font-size-sm);font-family:var(--font-body);flex:1}.lp-adaptive-status{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);transition:color var(--transition-slow)}.lp-adaptive-row.active .lp-adaptive-status{color:var(--accent-primary)}.lp-adaptive-toggle{border-radius:var(--radius-full);background:var(--glass-bg-active);cursor:pointer;width:40px;height:24px;transition:background var(--transition-slow), box-shadow var(--transition-slow);flex-shrink:0;position:relative}.lp-adaptive-toggle.on{background:var(--color-on);box-shadow:0 0 12px var(--accent-a20)}.lp-adaptive-toggle:after{content:"";border-radius:var(--radius-full);background:var(--white);width:18px;height:18px;box-shadow:0 1px 3px var(--black-a20);transition:transform var(--duration-slow) var(--ease-spring);position:absolute;top:3px;left:3px}.lp-adaptive-toggle.on:after{transform:translate(16px)}.weather-card{grid-column:1/-1}.weather-current{justify-content:space-between;align-items:center;display:flex}.weather-main{gap:var(--space-sm);align-items:center;display:flex}.weather-icon{width:32px;height:32px}.weather-condition{font-family:var(--font-body);color:var(--text-secondary);font-size:var(--font-size-md)}.weather-temp{font-family:var(--font-display);color:var(--text-primary);font-size:2.5rem}.weather-details{gap:var(--space-sm) var(--space-lg);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);padding-top:var(--space-sm);border-top:1px solid var(--glass-border);flex-wrap:wrap;display:flex}.weather-forecast{padding-top:var(--space-md);margin-top:var(--space-md);border-top:1px solid var(--glass-border);justify-content:space-between;display:flex}.weather-forecast-day{align-items:center;gap:var(--space-xs);text-align:center;flex-direction:column;display:flex}.forecast-day-name{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);text-transform:uppercase}.forecast-icon{width:20px;height:20px}.forecast-temps{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-secondary)}.person-card{justify-content:space-between;align-items:center;display:flex}.person-info{gap:var(--space-sm);align-items:center;display:flex}.person-icon{width:24px;height:24px}.person-name{font-family:var(--font-body);font-size:var(--font-size-md);color:var(--text-primary)}.person-status{gap:var(--space-xs);align-items:center;display:flex}.person-dot{width:8px;height:8px;transition:background var(--transition-fast);border-radius:50%}.person-card.person-home .person-dot{background:var(--color-success)}.person-card.person-away .person-dot{background:var(--color-warning)}.person-state{font-size:var(--font-size-sm);color:var(--text-secondary)}.energy-card{grid-column:1/-1}.energy-header{gap:var(--space-md);margin-bottom:var(--space-md);align-items:center;display:flex}.energy-icon{width:24px;height:24px;color:var(--color-warning)}.energy-totals{gap:var(--space-lg);flex-wrap:wrap;align-items:baseline;row-gap:2px;min-width:0;display:flex}.energy-power{font-family:var(--font-display);color:var(--text-primary);font-size:1.8rem}.energy-card.energy-high .energy-power{color:var(--color-error)}.energy-monthly{font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--text-tertiary)}.energy-alert{min-height:38px;margin:0 0 var(--space-md);padding:0 var(--space-sm);border:1px solid #ff6b353d;border-left:3px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning);font-size:var(--font-size-sm);align-items:center;font-weight:600;display:flex}.energy-alert.hidden{display:none}.energy-plugs{gap:var(--space-sm);flex-direction:column;display:flex}.energy-insights{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.energy-insight{min-width:0;padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);gap:2px;display:grid}.energy-insight span{color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono)}.energy-insight strong{color:var(--text-primary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.energy-insight.warning{background:var(--color-warning-bg);border-color:#ff6b3538}.energy-rooms{gap:var(--space-xs);margin:0 0 var(--space-md);flex-wrap:wrap;display:flex}.energy-room-chip{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--glass-bg);color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);padding:3px 8px}.energy-plug{gap:var(--space-sm);font-size:var(--font-size-sm);grid-template-columns:120px 1fr 60px 80px;align-items:center;display:grid}.energy-plug-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.energy-plug-bar{background:var(--bg-elevated);border-radius:var(--radius-full);height:6px;box-shadow:inset 0 1px 2px var(--black-a12);overflow:hidden}.energy-plug-fill{background:var(--color-warning);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.energy-plug.high .energy-plug-fill{background:var(--color-error)}.energy-plug.unavailable{opacity:.78}.energy-plug.unavailable .energy-plug-fill{width:0!important}.energy-plug-watts{font-family:var(--font-mono);color:var(--text-primary);text-align:right;text-overflow:ellipsis;min-width:0;overflow:hidden}.energy-plug-monthly{font-family:var(--font-mono);color:var(--text-tertiary);text-align:right}.energy-chart-card{padding:var(--space-md);grid-column:1/-1;position:relative}.energy-chart-card .chart-svg-wrap{aspect-ratio:20/9;width:100%}.energy-chart-card .chart-svg-wrap svg{width:100%;height:100%}.energy-chart-stats{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);justify-content:space-around;display:flex}.energy-chart-stat{text-align:center}.energy-chart-stat-value{color:var(--text-primary);font-size:1.1rem;font-weight:600;display:block}.energy-chart-stat-unit{opacity:.6;margin-left:2px;font-size:.75rem;font-weight:400}.energy-chart-stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-size:.7rem;display:block}.energy-chart-stat-value.delta-positive{color:var(--color-error)}.energy-chart-stat-value.delta-negative{color:var(--color-on)}.energy-chart-tooltip{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);z-index:10;pointer-events:none;box-shadow:var(--shadow-md);min-width:120px;padding:8px 12px;font-size:.8rem;position:absolute}.energy-chart-tooltip-title{color:var(--text-primary);margin-bottom:4px;font-weight:600}.energy-chart-tooltip-row{justify-content:space-between;gap:var(--space-sm);color:var(--text-secondary);display:flex}.climate-chart-card{padding:var(--space-md);grid-column:1/-1}.climate-chart-card .card-header{margin-bottom:var(--space-xs)}.climate-chart-card .chart-range-tabs{margin-bottom:var(--space-sm)}.climate-chart-card .chart-svg-wrap{aspect-ratio:2;width:100%}.climate-chart-card .chart-svg-wrap svg{width:100%;height:100%}.climate-chart-legend{gap:var(--space-xs) var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-xs);flex-wrap:wrap;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:4px;font-size:.75rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.climate-chart-stats{gap:2px var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);grid-template-columns:auto repeat(3,1fr);font-size:.75rem;display:grid}.climate-chart-stats .stats-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.climate-chart-stats .stats-label{color:var(--text-secondary)}.climate-chart-stats .stats-value{text-align:right;color:var(--text-primary);font-variant-numeric:tabular-nums}.calendar-card{padding:var(--space-md);grid-column:1/-1}.calendar-card .card-header{margin-bottom:var(--space-sm)}.agenda-list{gap:var(--space-xs);flex-direction:column;display:flex}.agenda-item{align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(84px,auto) minmax(0,1fr) auto;display:grid}.agenda-item:last-child{border-bottom:none}.agenda-time{font-family:var(--font-mono);color:var(--accent-primary);white-space:nowrap;min-width:100px;font-size:.8rem}.agenda-summary{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;overflow:hidden}.agenda-action{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--bg-elevated);min-height:34px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-xs);white-space:nowrap;transition:all var(--transition-fast);padding:0 11px;font-weight:650}.agenda-action:hover{color:var(--text-primary);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:var(--bg-card-hover)}.agenda-action.running{cursor:progress;color:var(--accent-primary)}.agenda-action.done{color:var(--color-success);background:var(--color-success-bg);border-color:#32d74b47}.agenda-action.unavailable,.agenda-action:disabled{cursor:not-allowed;color:var(--text-tertiary);opacity:.72}@media (hover:none),(pointer:coarse){.agenda-action{min-height:44px}}.agenda-empty,.agenda-next{color:var(--text-tertiary);padding:var(--space-xs) 0;font-size:.85rem}.agenda-error{color:var(--color-warning);padding:var(--space-xs) 0;font-size:.85rem;line-height:1.35}.calendar-card.agenda-unavailable{border-color:#ff6b3542}.no-results{text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--text-tertiary);font-size:var(--font-size-sm)}.agenda-next{color:var(--text-secondary)}.update-tracker-card{padding:var(--space-md);grid-column:1/-1}.update-group{margin-bottom:var(--space-sm)}.update-group:last-child{margin-bottom:0}.update-group-header{align-items:center;gap:var(--space-xs);padding:var(--space-xs) 0;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}@media (hover:none),(pointer:coarse){.update-group-header{min-height:44px}}.update-group-header .icon{flex-shrink:0}.update-group-label{color:var(--text-primary);flex:1;font-size:.9rem;font-weight:600}.update-group-badge{border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.update-group-badge.up-to-date{color:var(--color-on);background:#4caf501f}.update-group-badge.has-updates{background:var(--accent-primary-dim);color:var(--accent-primary)}.update-group-items{padding-left:var(--space-md);overflow:hidden}.update-group-items.collapsed{display:none}.update-item{align-items:center;gap:var(--space-xs);padding:4px 0;font-size:.8rem;display:flex}.update-item-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.update-item-dot.current{background:var(--color-on)}.update-item-dot.available{background:var(--accent-primary)}.update-item-dot.unavailable{background:var(--text-tertiary)}.update-item-name{color:var(--text-secondary);flex:1}.update-item-version{font-family:var(--font-mono);color:var(--text-tertiary);font-size:.75rem}.update-item.has-update .update-item-version{color:var(--accent-primary)}.battery-card{grid-column:1/-1}.battery-header{gap:var(--space-sm);margin-bottom:var(--space-md);align-items:center;display:flex}.battery-icon{width:24px;height:24px}.battery-title{font-family:var(--font-body);font-size:var(--font-size-md);color:var(--text-primary);flex:1}.battery-alert-count{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-warning)}.battery-list{gap:var(--space-xs);flex-direction:column;display:flex}.battery-item{gap:var(--space-sm);font-size:var(--font-size-sm);grid-template-columns:1fr 120px 40px;align-items:center;display:grid}.battery-item-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.battery-item-bar{background:var(--bg-elevated);border-radius:var(--radius-full);height:4px;box-shadow:inset 0 1px 2px var(--black-a12);overflow:hidden}.battery-item-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.battery-critical .battery-item-fill{background:var(--color-error)}.battery-warning .battery-item-fill{background:var(--color-warning)}.battery-ok .battery-item-fill{background:var(--color-success)}.battery-item-level{font-family:var(--font-mono);text-align:right}.battery-critical .battery-item-level{color:var(--color-error)}.battery-warning .battery-item-level{color:var(--color-warning)}.battery-expand{color:var(--text-tertiary);font-size:var(--font-size-xs);cursor:pointer;min-height:44px;padding:var(--space-xs) 0;margin-top:var(--space-xs);background:0 0;border:none;align-items:center;display:inline-flex}.battery-expand:hover{color:var(--text-secondary)}.room-hero{padding:var(--space-lg) var(--space-xl) var(--space-md);z-index:10;background:radial-gradient(ellipse at 10% 60%, rgba(var(--room-accent-rgb,232, 148, 58), .06) 0%, transparent 55%), var(--bg-primary);position:sticky;top:0}#content>.room-hero{max-width:none;margin:0 calc(-1 * var(--space-xl)) var(--space-lg)}.room-hero-main{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.room-hero-icon{border-radius:var(--radius-card);background:linear-gradient(170deg, rgba(var(--room-accent-rgb,232, 148, 58), .08) 0%, transparent 40%), var(--bg-card);border:1px solid var(--glass-border);border-top:2px solid rgba(var(--room-accent-rgb,232, 148, 58), .5);width:52px;height:52px;box-shadow:0 0 20px rgba(var(--room-accent-rgb,232, 148, 58), .12), var(--shadow-card), inset 0 1px 0 var(--glass-edge-strong);color:rgba(var(--room-accent-rgb,232, 148, 58), 1);transition:box-shadow var(--transition-normal);flex-shrink:0;justify-content:center;align-items:center;display:flex}.room-hero-text{flex:1;min-width:0}.room-hero-title{font-size:1.6rem;font-weight:600;font-family:var(--font-display);line-height:1}.room-hero-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:400;font-family:var(--font-mono);margin-top:4px}.room-hero-temp{font-size:var(--font-size-lg);font-family:var(--font-mono);color:var(--text-secondary);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 50%), var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-badge);padding:var(--space-xs) var(--space-md);font-variant-numeric:tabular-nums;transition:color var(--transition-reveal);box-shadow:inset 0 1px 0 var(--glass-edge);flex-shrink:0;font-weight:500}.room-hero-temp.unavailable{color:var(--text-tertiary);background:linear-gradient(170deg, #a0a0a50a 0%, transparent 45%), var(--bg-card);border-color:#a0a0a52e}.room-quick-toggle{border-radius:var(--radius-button);background:var(--glass-bg);border:1px solid var(--glass-border);width:44px;height:44px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);flex-shrink:0;justify-content:center;align-items:center;display:flex}.room-quick-toggle:hover{background:var(--glass-bg-hover);color:var(--text-secondary)}.room-quick-toggle.unavailable,.room-quick-toggle:disabled{opacity:.65;cursor:not-allowed;color:var(--text-tertiary);background:var(--glass-bg)}.room-quick-toggle.unavailable:hover,.room-quick-toggle:disabled:hover{background:var(--glass-bg);color:var(--text-tertiary)}.room-quick-toggle.on{color:rgba(var(--room-accent-rgb,232, 148, 58), 1);background:rgba(var(--room-accent-rgb,232, 148, 58), .1);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .25);box-shadow:0 0 12px rgba(var(--room-accent-rgb,232, 148, 58), .1)}.room-quick-toggle.loading{animation:.6s ease-in-out qt-pulse}@keyframes qt-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.section-tabs{gap:var(--space-xs);scrollbar-width:none;padding:2px 0;display:flex;position:relative;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000)}.section-tabs::-webkit-scrollbar{display:none}.section-tab{align-items:center;gap:var(--space-xs);min-height:34px;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-badge);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 50%), var(--bg-card);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);flex-shrink:0;font-weight:500;display:flex}.section-tab:hover{background:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 50%), var(--bg-card-hover);color:var(--text-primary)}.section-tab.active{background:linear-gradient(170deg, rgba(var(--room-accent-rgb,232, 148, 58), .08) 0%, transparent 50%), rgba(var(--room-accent-rgb,232, 148, 58), .12);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .3);color:rgba(var(--room-accent-rgb,232, 148, 58), 1);box-shadow:0 0 8px rgba(var(--room-accent-rgb,232, 148, 58), .1), inset 0 1px 0 rgba(var(--room-accent-rgb,232, 148, 58), .06)}.section-tab .tab-icon{opacity:.7;align-items:center;width:14px;height:14px;display:flex}.section-tab.active .tab-icon{opacity:1}@media (hover:none),(pointer:coarse){.section-tab{min-height:46px}}.room-section{margin-bottom:var(--space-lg);scroll-margin-top:140px}.room-section-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);padding-left:var(--space-md);border-left:3px solid rgba(var(--room-accent-rgb,232, 148, 58), .35);display:flex}.room-section-header[role=button]{min-height:44px;padding:var(--space-xs) var(--space-sm) var(--space-xs) var(--space-md);border-radius:var(--radius-card);-webkit-user-select:none;user-select:none}.room-section-header[role=button]:hover{background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 55%), var(--bg-card)}.room-section-header[role=button]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.room-section-header .section-icon{color:rgba(var(--room-accent-rgb,232, 148, 58), .7);flex-shrink:0;align-items:center;display:flex}.room-section-header .section-label{font-size:var(--font-size-lg);color:var(--text-secondary);font-weight:600;font-family:var(--font-display);min-width:0}.room-tools{gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column;display:flex}.room-search{padding:0}.room-search-input{width:100%;min-height:44px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-card);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 40%), var(--bg-card);border:1px solid var(--glass-border);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-body);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);outline:none}.room-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim)}.room-search-input::placeholder{color:var(--text-tertiary)}.room-filters{gap:var(--space-xs);scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:1px;display:flex;overflow-x:auto}.room-filters::-webkit-scrollbar{display:none}.room-filter-chip{align-items:center;gap:var(--space-xs);border-radius:var(--radius-badge);border:1px solid var(--glass-border);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 50%), var(--bg-card);min-height:38px;color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);white-space:nowrap;cursor:pointer;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--glass-edge);flex-shrink:0;padding:6px 10px;display:inline-flex}.room-filter-chip:hover{color:var(--text-primary);background:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 50%), var(--bg-card-hover)}.room-filter-chip.active{color:rgba(var(--room-accent-rgb,232, 148, 58), 1);border-color:rgba(var(--room-accent-rgb,232, 148, 58), .3);background:linear-gradient(170deg, rgba(var(--room-accent-rgb,232, 148, 58), .08) 0%, transparent 50%), rgba(var(--room-accent-rgb,232, 148, 58), .12);box-shadow:0 0 8px rgba(var(--room-accent-rgb,232, 148, 58), .1), inset 0 1px 0 rgba(var(--room-accent-rgb,232, 148, 58), .06)}.room-filter-chip .icon,.room-filter-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.room-filter-count{border-radius:var(--radius-badge);background:var(--glass-bg);border:1px solid var(--glass-border);min-width:20px;color:var(--text-tertiary);text-align:center;padding:1px 6px}.room-filter-chip.active .room-filter-count{color:inherit;border-color:rgba(var(--room-accent-rgb,232, 148, 58), .28);background:rgba(var(--room-accent-rgb,232, 148, 58), .1)}@media (hover:none),(pointer:coarse){.room-filter-chip{min-height:44px}}.automation-audit{gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-card);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 45%), var(--bg-card);box-shadow:var(--shadow-card), inset 0 1px 0 var(--glass-edge);display:grid}.automation-audit-header{align-items:center;gap:var(--space-sm);grid-template-columns:auto minmax(0,1fr);display:grid}.automation-audit-icon{color:rgba(var(--room-accent-rgb,232, 148, 58), .9);display:inline-flex}.automation-audit-title-wrap{gap:1px;min-width:0;display:grid}.automation-audit-title{color:var(--text-primary);font-family:var(--font-display);font-size:var(--font-size-base);font-weight:600}.automation-audit-subtitle{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs)}.automation-audit-metrics{gap:var(--space-xs);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.automation-audit-metric{min-width:0;padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);gap:1px;display:grid}.automation-audit-metric strong{color:var(--text-primary);font-size:var(--font-size-lg);line-height:1;font-family:var(--font-mono)}.automation-audit-metric span{color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.automation-audit-metric.active strong,.automation-audit-metric.recent strong{color:rgb(var(--room-accent-rgb,232, 148, 58))}.automation-audit-metric.problem{background:var(--color-error-bg);border-color:#ff3b3038}.automation-audit-metric.problem strong{color:var(--color-error)}.automation-audit-details{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.automation-audit-block{gap:3px;min-width:0;display:grid}.automation-audit-block-title{color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.automation-audit-line{color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}@keyframes cp-enter{0%{opacity:0;transform:translate(-50%)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes cp-exit{0%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(.96)}}@keyframes cp-backdrop-enter{0%{opacity:0}to{opacity:1}}.command-palette{z-index:10000;display:none;position:fixed;inset:0}.command-palette.visible{display:block}.cp-backdrop{-webkit-backdrop-filter:blur(12px)saturate(1.2);animation:cp-backdrop-enter var(--duration-normal) var(--ease-smooth) both;background:#0000008c;position:absolute;inset:0}.command-palette.closing .cp-backdrop{opacity:0;transition:opacity var(--transition-fast)}.cp-dialog{background:linear-gradient(170deg, var(--glass-tint-strong) 0%, transparent 30%), var(--bg-secondary);border:1px solid var(--glass-border);width:min(420px,100% - 32px);box-shadow:0 24px 80px var(--black-a50), 0 0 0 1px #ffffff0a, inset 0 1px 0 var(--glass-edge-strong);animation:cp-enter var(--duration-normal) var(--ease-spring) both;border-radius:16px;position:absolute;top:18%;left:50%;overflow:hidden;transform:translate(-50%)}.command-palette.closing .cp-dialog{animation:cp-exit var(--duration-fast) var(--ease-smooth) both}.cp-search-wrap{align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border-subtle);padding:14px 16px;display:flex}.cp-search-wrap .icon{color:var(--text-tertiary);flex-shrink:0}.cp-hint{color:var(--text-tertiary);opacity:.5;flex-shrink:0;padding:2px 6px;font-size:10px}.cp-input{font-size:1rem;font-family:var(--font-body);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:4px 0}.cp-input::placeholder{color:var(--text-tertiary)}.cp-tabs{border-bottom:1px solid var(--border-subtle);scrollbar-width:none;gap:4px;padding:8px 16px;display:flex;overflow-x:auto}.cp-tabs::-webkit-scrollbar{display:none}.cp-tab{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-tertiary);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:4px 10px;display:flex}.cp-tab:hover{color:var(--text-secondary);background:var(--glass-bg)}.cp-tab.active{color:var(--accent-primary);background:var(--glass-bg-active);border-color:var(--glass-border)}.cp-tab-count{opacity:.5}.cp-quick-actions{border-bottom:1px solid var(--border-subtle);gap:8px;padding:10px 16px;display:flex}.cp-quick-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px;display:flex}.cp-quick-btn:hover{background:var(--glass-bg-hover);color:var(--text-primary);border-color:var(--glass-border-hover)}.cp-quick-icon{color:var(--text-tertiary);display:flex}.cp-section-header{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:8px 16px 4px;font-size:10px;font-weight:600;display:flex}.cp-section-count{color:var(--text-tertiary);opacity:.5;font-size:10px}.cp-results{scrollbar-width:thin;scrollbar-color:var(--text-tertiary) transparent;max-height:380px;margin:0;padding:6px 0;list-style:none;overflow-y:auto}.cp-result{cursor:pointer;transition:background var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:10px;padding:8px 16px;display:flex}.cp-result:hover{background:var(--glass-bg-hover)}.cp-result.selected{background:var(--glass-bg-active);border-left-color:var(--accent-primary)}.cp-result[data-type=lens]{background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 46%), var(--white-a02);min-height:54px}.cp-result[data-type=lens] .cp-result-icon{color:var(--accent-primary)}.cp-result.confirming{background:var(--color-warning-bg);border-left-color:var(--color-warning)}.cp-result.disabled{cursor:not-allowed;opacity:.58}.cp-result-icon{color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;width:18px;display:flex}.cp-result.selected .cp-result-icon{color:var(--text-secondary)}.cp-result.confirming-action{border-left-color:var(--color-warning)}.cp-result-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cp-result-name{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cp-result-meta{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:5px;display:flex}.cp-result-reason{min-width:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;line-height:1.25;overflow:hidden}.cp-result.confirming .cp-result-reason,.cp-result.confirming-action .cp-result-reason{color:var(--color-warning)}.cp-result-room{opacity:.5}.cp-result-room:before{content:"·";margin-right:5px}.cp-color-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 6px}.cp-result-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;max-width:190px;display:flex}.cp-result-action{border:1px solid var(--glass-border);border-radius:var(--radius-badge);background:var(--white-a035);min-height:30px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-xs);white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;gap:5px;padding:0 9px;line-height:1;display:inline-flex}.cp-result-action:hover{color:var(--text-primary);background:#44aaff14;border-color:#44aaff47}.cp-result-action.confirming{color:var(--color-warning);background:#ff6b351c;border-color:#ff6b3557}.cp-result-action:disabled{cursor:not-allowed;opacity:.48}.cp-result-action-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.cp-result-toggle{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cp-result-toggle:hover{background:var(--glass-bg-hover);color:var(--text-primary);border-color:var(--glass-border-hover)}.cp-result-badge{font-family:var(--font-mono);color:var(--text-tertiary);opacity:.5;flex-shrink:0;font-size:10px}@media (width>=721px){.cp-dialog{width:min(640px,100% - 48px)}.cp-result[data-type=lens]{align-items:flex-start}.cp-result[data-type=lens] .cp-result-reason{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.cp-result[data-type=lens] .cp-result-actions{max-width:210px}.cp-result[data-type=lens].long-reason{flex-wrap:wrap}.cp-result[data-type=lens].long-reason .cp-result-info{flex-basis:calc(100% - 34px)}.cp-result[data-type=lens].long-reason .cp-result-actions{justify-content:flex-start;width:100%;max-width:none;padding-left:28px}}.cp-command-badge{color:var(--accent-primary);opacity:1;font-weight:600}.cp-confirm-badge{color:var(--color-warning);opacity:1;font-weight:700}.cp-disabled-badge{color:var(--text-tertiary);opacity:.85}@media (width<=560px){.cp-result[data-type=lens]{flex-wrap:wrap;align-items:flex-start}.cp-result[data-type=lens] .cp-result-info{flex-basis:calc(100% - 36px)}.cp-result-reason{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.cp-result-actions{justify-content:flex-start;width:100%;max-width:none;padding-left:28px}}@media (hover:none),(pointer:coarse){.cp-result-action{min-height:44px}}.help-overlay{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.help-content{background:var(--bg-card);border-radius:var(--radius-card);box-shadow:0 16px 48px var(--black-a30);padding:var(--space-xl);width:calc(100% - 32px);max-width:720px;max-height:80vh;overflow-y:auto}.help-content h3{font-family:var(--font-display);font-size:var(--font-size-2xl);color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 20px}.help-columns{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.help-col h4{font-family:var(--font-display);font-size:var(--font-size-base);color:var(--accent-primary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px}.help-col dl{grid-template-columns:auto 1fr;align-items:baseline;gap:6px 12px;margin:0 0 16px;display:grid}.help-col dt{text-align:right}.help-col dd{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}kbd{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);text-align:center;min-width:20px;padding:2px 6px;display:inline-block}.help-dismiss{text-align:center;font-size:var(--font-size-xs);color:var(--text-tertiary);margin:20px 0 0}.help-version{text-align:center;font-size:var(--font-size-xs);color:var(--text-tertiary);opacity:.5;margin:8px 0 0}.remote-panel-backdrop{background:var(--black-a60);-webkit-backdrop-filter:blur(12px)saturate(1.2);z-index:1002;opacity:0;pointer-events:none;transition:opacity var(--transition-slow);position:fixed;inset:0}.remote-panel-backdrop.visible{opacity:1;pointer-events:all}.remote-panel{background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 40%), var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:300px;box-shadow:0 -8px 40px var(--black-a40), inset 0 1px 0 var(--glass-edge-strong);z-index:1003;transition:transform var(--duration-reveal) var(--ease-spring);padding:0 var(--space-lg) calc(28px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-bottom:none;max-height:90dvh;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.remote-panel.visible{transform:translateY(0)}@media (width>=768px){.remote-panel{border-radius:var(--radius-modal);border-bottom:1px solid var(--glass-border);max-width:300px;box-shadow:0 24px 80px var(--black-a50), 0 0 0 1px var(--glass-edge), inset 0 1px 0 var(--glass-edge-strong);opacity:0;transition:transform var(--duration-reveal) var(--ease-spring), opacity var(--transition-slow);max-height:85vh;margin:0;padding:0 28px 32px;inset:50% auto auto 50%;transform:translate(-50%,-50%)scale(.92)}.remote-panel.visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.remote-panel-handle{display:none}}.remote-panel-handle{border-radius:var(--radius-full);background:var(--text-tertiary);opacity:.3;cursor:grab;width:36px;height:4px;margin:10px auto 14px}.remote-status-bar{justify-content:center;padding:6px 0 0;display:flex}.remote-status-dot{border-radius:var(--radius-full);background:var(--text-tertiary);opacity:.3;width:6px;height:6px;transition:all var(--transition-reveal)}.remote-status-dot.on{background:var(--accent-primary);opacity:1;box-shadow:0 0 8px var(--accent-primary-glow), 0 0 20px var(--accent-a15)}.remote-panel-header{justify-content:space-between;align-items:center;padding:12px 0 16px;display:flex}.remote-panel-name{font-size:.8125rem;font-weight:500;font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.remote-panel-close{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-full);width:28px;height:28px;transition:all var(--transition-fast);opacity:.6;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.remote-panel-close:hover{background:var(--glass-bg-active);color:var(--text-primary);opacity:1}.remote-panel-body{flex-direction:column;align-items:center;gap:20px;display:flex}.remote-divider{background:var(--border-subtle);opacity:.6;width:40px;height:1px}.remote-touchpad{border-radius:var(--radius-full);background:radial-gradient(circle at 40% 35%, var(--glass-tint) 0%, transparent 60%), var(--bg-elevated);border:1px solid var(--glass-border);width:200px;height:200px;box-shadow:inset 0 2px 4px var(--glass-edge), inset 0 -2px 8px var(--black-a15), 0 4px 16px var(--black-a20);position:relative}.remote-touch-btn{cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast), transform var(--transition-fast);z-index:2;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.remote-touch-btn:hover{color:var(--text-primary)}.remote-touch-btn:active,.remote-touch-btn.pressed{color:var(--accent-primary);transform:scale(.88)}.touch-up{border-radius:50% 50% 40% 40%;width:60px;height:50px;padding-top:4px;top:8px;left:50%;translate:-50%}.touch-down{border-radius:40% 40% 50% 50%;width:60px;height:50px;padding-bottom:4px;bottom:8px;left:50%;translate:-50%}.touch-left{border-radius:50% 40% 40% 50%;width:50px;height:60px;padding-left:4px;top:50%;left:8px;translate:0 -50%}.touch-right{border-radius:40% 50% 50% 40%;width:50px;height:60px;padding-right:4px;top:50%;right:8px;translate:0 -50%}.remote-touch-center{border-radius:var(--radius-full);background:radial-gradient(circle at 40% 35%, var(--glass-tint-strong) 0%, transparent 70%), var(--bg-card);border:1px solid var(--glass-border-hover);width:64px;height:64px;box-shadow:inset 0 1px 2px var(--glass-edge), 0 2px 8px var(--black-a20);cursor:pointer;transition:all var(--transition-fast);z-index:3;position:absolute;top:50%;left:50%;translate:-50% -50%}.remote-touch-center:hover{border-color:var(--border-primary);box-shadow:inset 0 1px 2px var(--glass-edge-strong), 0 2px 12px #00000040}.remote-touch-center:active,.remote-touch-center.pressed{background:radial-gradient(circle at 50% 50%, var(--accent-primary-dim) 0%, transparent 70%), var(--bg-card-active);border-color:var(--accent-primary);box-shadow:0 0 12px var(--accent-primary-glow), inset 0 0 6px var(--accent-a8);transform:scale(.92)translate(-50%,-50%)}.remote-actions{justify-content:center;align-items:stretch;gap:var(--space-md);width:100%;display:flex}.remote-action-btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;flex-direction:column;min-width:56px;display:flex}.remote-action-btn:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);color:var(--text-primary)}.remote-action-btn:active,.remote-action-btn.pressed{background:var(--glass-bg-active);transform:scale(.94)}.action-label{font-size:var(--font-size-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);transition:color var(--transition-fast)}.remote-action-btn:hover .action-label{color:var(--text-secondary)}.remote-power-btn.on{color:var(--accent-primary);border-color:var(--accent-a20);background:var(--accent-primary-dim)}.remote-power-btn.on:hover{background:var(--accent-a18)}.remote-transport{align-items:center;gap:8px;display:flex}.remote-transport-btn{border-radius:var(--radius-full);width:44px;height:44px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.remote-transport-btn:hover{color:var(--text-primary);background:var(--glass-bg)}.remote-transport-btn:active,.remote-transport-btn.pressed{color:var(--accent-primary);transform:scale(.9)}.remote-transport-btn.transport-play{background:var(--glass-bg);border:1px solid var(--glass-border);width:52px;height:52px}.remote-transport-btn.transport-play:hover{background:var(--glass-bg-hover);border-color:var(--border-primary)}.remote-transport-btn.transport-play:active,.remote-transport-btn.transport-play.pressed{background:var(--accent-primary-dim);border-color:var(--accent-primary);color:var(--accent-primary)}.remote-panel .remote-touchpad,.remote-panel .remote-actions,.remote-panel .remote-transport,.remote-panel .remote-divider{opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);transform:translateY(8px)}.remote-panel.visible .remote-touchpad{opacity:1;transition-delay:.1s;transform:translateY(0)}.remote-panel.visible .remote-divider:first-of-type{opacity:1;transition-delay:.15s;transform:translateY(0)}.remote-panel.visible .remote-actions{opacity:1;transition-delay:.18s;transform:translateY(0)}.remote-panel.visible .remote-divider:last-of-type{opacity:1;transition-delay:.22s;transform:translateY(0)}.remote-panel.visible .remote-transport{opacity:1;transition-delay:.25s;transform:translateY(0)}@media (hover:none){.remote-touchpad{width:220px;height:220px}.remote-touch-center{width:72px;height:72px}.remote-touch-btn{min-width:56px;min-height:56px}.remote-action-btn{padding:var(--space-sm) var(--space-md);min-width:60px}.remote-transport-btn{width:48px;height:48px}.remote-transport-btn.transport-play{width:56px;height:56px}}[data-theme=light] .light-panel-backdrop{background:var(--black-a30)}[data-theme=light] .light-panel{box-shadow:0 -8px 40px var(--black-a15), 0 0 40px rgba(var(--lp-color-rgb), .06), inset 0 1px 0 rgba(var(--lp-color-rgb), .08)}@media (width>=768px){[data-theme=light] .light-panel{box-shadow:0 24px 80px var(--black-a20), 0 0 60px rgba(var(--lp-color-rgb), .08), inset 0 1px 0 rgba(var(--lp-color-rgb), .08)}}[data-theme=light] .login-card{background:#ffffffd9}[data-theme=light] .device-card.card-on{background:linear-gradient(170deg, rgba(var(--room-accent-rgb), .08) 0%, transparent 40%), rgba(var(--room-accent-rgb), .06);border-color:rgba(var(--room-accent-rgb), .18)}#crash-toast{bottom:calc(env(safe-area-inset-bottom,0px) + 24px);background:var(--bg-card);border:1px solid var(--color-error);border-radius:var(--radius-lg);z-index:100000;opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);color:var(--text-primary);box-shadow:0 8px 32px var(--black-a30);align-items:center;gap:12px;padding:12px 20px;font-size:.85rem;display:flex;position:fixed;left:50%;transform:translate(-50%)translateY(20px)}#crash-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}#crash-toast button{background:var(--color-error);color:var(--white);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:.8rem;font-weight:600}#stale-banner{background:var(--color-warning);color:var(--bg-primary);text-align:center;z-index:99999;transition:transform var(--transition-slow);padding:4px 16px;font-size:.75rem;font-weight:600;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}#stale-banner.visible{transform:translateY(0)}.toast-container{bottom:calc(env(safe-area-inset-bottom,0px) + 80px);z-index:99999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--bg-card);border-radius:var(--radius-lg);color:var(--text-primary);box-shadow:0 8px 32px var(--black-a30);opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);white-space:nowrap;pointer-events:auto;padding:10px 18px;font-size:.85rem;transform:translateY(12px)}.toast.visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.loader-spinner{animation-duration:.8s!important;animation-iteration-count:infinite!important}.status-dot.connecting{animation-duration:1.5s!important;animation-iteration-count:infinite!important}}#mobile-nav{height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--bg-primary) 92%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.2);border-top:1px solid var(--glass-border);z-index:300;padding:0 var(--space-sm);padding-bottom:env(safe-area-inset-bottom,0px);display:none;position:fixed;bottom:0;left:0;right:0}#mobile-nav .nav-items{height:var(--mobile-nav-height);justify-content:space-around;align-items:center;max-width:500px;margin:0 auto;display:flex}#mobile-nav .nav-item{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);min-height:44px;color:var(--text-tertiary);font-size:.7rem;font-weight:500;font-family:var(--font-body);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:1px;text-decoration:none;display:flex;position:relative}#mobile-nav .nav-item:active{background:var(--bg-card-hover);transform:scale(.95)}#mobile-nav .nav-item .icon{width:24px;height:24px;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}#mobile-nav .nav-item .icon svg{width:24px;height:24px}#mobile-nav .nav-item .nav-issue-badge{border-radius:var(--radius-badge);background:var(--color-error-bg);min-width:16px;height:16px;color:var(--color-error);font-size:.6rem;line-height:1;font-family:var(--font-mono);border:1px solid #ff3b3047;justify-content:center;align-items:center;padding:0 4px;font-weight:700;display:none;position:absolute;top:4px;right:calc(50% - 25px)}#mobile-nav .nav-item.has-issues .nav-issue-badge{cursor:pointer;display:inline-flex}#mobile-nav .nav-item.has-transient-issues .nav-issue-badge{background:var(--color-info-bg);color:var(--color-info);border-color:#74c0fc47}#mobile-nav .nav-item.active{color:var(--accent-primary)}#mobile-nav .nav-item.active:after{content:"";background:var(--accent-primary);border-radius:var(--radius-full);width:20px;height:2px;position:absolute;top:2px;left:50%;transform:translate(-50%)}#mobile-nav .nav-item.active .icon{transform:scale(1.1)}@media (display-mode:standalone){:root{--mobile-nav-height:50px}#mobile-nav{height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px))}#mobile-nav .nav-items{height:var(--mobile-nav-height)}#mobile-nav .nav-item{min-height:44px;padding:2px var(--space-md);gap:1px;font-size:.65rem}#mobile-nav .nav-item .icon,#mobile-nav .nav-item .icon svg{width:23px;height:23px}}@media (width<=1024px){#app{grid-template:"topbar""content"1fr/1fr}#topbar h1{cursor:pointer}#sidebar{width:var(--sidebar-width);z-index:200;visibility:hidden;pointer-events:none;transition:transform var(--transition-normal), visibility 0s linear var(--transition-normal);background:var(--bg-primary);box-shadow:8px 0 32px var(--black-a30);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;top:0;bottom:0;left:0;transform:translate(calc(-100% - 40px))}#sidebar.open{visibility:visible;pointer-events:auto;transition:transform var(--transition-normal), visibility 0s linear 0s;transform:translate(0)}#sidebar-toggle{display:flex}.sidebar-backdrop{background:var(--black-a50);z-index:199;opacity:0;pointer-events:none;transition:opacity var(--transition-normal);position:fixed;inset:0}.sidebar-backdrop.visible{opacity:1;pointer-events:all}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (height<=520px) and (orientation:landscape) and (pointer:coarse){#content{padding:0 var(--space-md) var(--space-md)}.home-hero{margin-bottom:2px;padding:2px 0 0}.hero-title{font-size:1.55rem;line-height:1.05}.hero-sub{font-size:var(--font-size-xs);margin-top:1px}.hero-weather{padding:3px 10px 3px 8px}.hero-weather-temp{font-size:var(--font-size-base)}.home-status-strip,.alerts-row{overscroll-behavior-inline:contain;scrollbar-width:none;gap:var(--space-xs);flex-wrap:nowrap;margin-bottom:2px;padding-bottom:2px;overflow-x:auto}.home-status-strip::-webkit-scrollbar{display:none}.alerts-row::-webkit-scrollbar{display:none}.home-status-chip{flex:none}.alert-card,.activity-filter-chip,.home-brief-action,.home-health-overview,.home-health-action,.room-filter-chip,.room-hero-temp{min-height:44px}.section-tab{min-height:46px}.home-brief,.home-health-map,.home-actions-row,.maison-action-trail{margin-bottom:var(--space-xs)}.home-actions-row{gap:var(--space-xs)}.home-action-btn{padding:0 10px}.room-hero{padding:var(--space-xs) var(--space-md) var(--space-sm)}#content>.room-hero{margin:0 calc(-1 * var(--space-md)) var(--space-sm)}.room-hero-main{gap:var(--space-sm);margin-bottom:var(--space-xs)}.room-hero-icon{width:38px;height:38px}.room-hero-icon svg{width:22px;height:22px}.room-hero-title{font-size:1.28rem}.section-tabs{gap:var(--space-xs)}.card-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (width<=768px){#content{padding:0 var(--space-md) calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px) + var(--space-lg))}.home-hero{padding:var(--space-sm) 0 var(--space-xs);margin-bottom:var(--space-xs)}.hero-title{font-size:clamp(1.65rem,1.35rem + 2vw,2rem);line-height:1.05}.hero-sub{font-size:var(--font-size-sm);margin-top:2px}.home-status-strip{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;gap:var(--space-xs);margin-bottom:var(--space-xs);margin-inline:calc(var(--space-md) * -1);padding-bottom:2px;padding-inline:var(--space-md);flex-wrap:nowrap;overflow-x:auto}.alerts-row{overscroll-behavior-inline:contain;scrollbar-width:none;gap:var(--space-xs);margin-bottom:var(--space-xs);margin-inline:calc(var(--space-md) * -1);padding-bottom:2px;padding-inline:var(--space-md);flex-wrap:nowrap;overflow-x:auto}.alerts-row::-webkit-scrollbar{display:none}.home-status-strip::-webkit-scrollbar{display:none}.home-status-chip{scroll-snap-align:start;flex:0 0 min(38vw,148px)}.alert-card,.alerts-empty{flex:none}.home-actions-row{gap:var(--space-xs);margin-bottom:var(--space-sm)}.home-action-btn{padding:0 10px}#sidebar-toggle{display:none}#mobile-nav{display:block}.card-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.connection-status-card{grid-column:1/-1}#topbar h1{font-size:1.2rem}.room-hero{border-bottom:1px solid var(--separator-color);padding:var(--space-xs) var(--space-md) var(--space-sm)}#content>.room-hero{margin:0 calc(-1 * var(--space-md)) var(--space-sm)}.room-hero-icon{width:38px;height:38px}.room-hero-icon svg{width:22px;height:22px}.room-hero-title{font-size:1.28rem}.room-hero-main{gap:var(--space-sm);margin-bottom:var(--space-xs)}.room-quick-toggle{width:44px;height:44px}.section-tabs{gap:var(--space-xs)}.section-tab{min-height:46px;font-size:var(--font-size-xs);padding:6px 12px}.hero-content{align-items:flex-start;gap:var(--space-xs);flex-direction:column}.brightness-bar-wrap{height:44px}.power-btn,.media-power-btn,.slider-card .color-circle{width:44px;height:44px}.brightness-input::-webkit-slider-thumb{width:44px;height:44px}.brightness-input::-moz-range-thumb{width:44px;height:44px}.device-card{padding:var(--space-md) var(--space-md)}.room-section{scroll-margin-top:100px}}@media (width<=480px){.energy-plug{grid-template-columns:80px 1fr 50px}.energy-totals{flex-direction:column;align-items:flex-start;gap:0}.energy-insights,.automation-audit-metrics,.health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.health-contract-list,.health-contract-lifecycle{grid-template-columns:1fr}.health-contract-lifecycle-actions{justify-content:flex-start}.health-contract-lifecycle-facts,.health-contract-repair{grid-template-columns:1fr}.health-contract-repair-actions{justify-content:flex-start}.health-contract-repair-steps,.automation-audit-details,.health-room-row,.health-room-row.expanded{grid-template-columns:1fr}.health-room-counts{justify-content:flex-start}.health-toolbar{justify-content:flex-start;width:100%;margin-left:0}.health-sync-chip,.health-reset-ignored,.health-contract-action{min-height:44px}.health-ref-row{grid-template-columns:1fr;gap:4px}.health-group-action,.health-ref-action{width:46px;height:46px}.health-ref-actions{justify-content:flex-start}.energy-plug-monthly{display:none}#content{padding:0 var(--space-lg) calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px) + var(--space-md))}.home-hero{padding:6px 0 2px}.home-brief{padding:var(--space-sm)}.home-brief-item{grid-template-columns:auto minmax(0,1fr) auto}.home-brief-action{white-space:nowrap;justify-self:end;min-height:44px}.home-health-header{grid-template-columns:1fr}.home-health-overview,.home-health-action{min-height:44px}.home-health-overview{justify-self:start}.home-health-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:start}.home-health-row-counts{grid-column:2/-1;justify-content:flex-start}.home-health-action{grid-area:1/3}.maison-action-trail-item{grid-template-columns:1fr auto;align-items:start}.maison-action-trail-status{grid-column:1/-1;justify-self:start}.hdmi-grid{gap:var(--space-xs);grid-template-columns:1fr}.hdmi-toggle-pill{width:28px;height:28px;font-size:.65rem}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-btn{padding-inline:var(--space-sm)}.card-grid{gap:var(--space-sm);grid-template-columns:repeat(2,1fr)}.card-grid>.slider-card,.card-grid>.media-card,.card-grid>.vacuum-card,.card-grid>.select-card,.card-grid>.plant-card{grid-column:1/-1}.card-grid>.toggle-card:has(.compact-detail){grid-column:1/-1}.card-grid>.toggle-card,.card-grid>.sensor-card,.card-grid>.binary-sensor-card{padding:var(--space-sm)}.compact-row .compact-name{font-size:var(--font-size-xs)}.room-hero{padding:6px var(--space-sm) var(--space-xs)}#content>.room-hero{margin:0 calc(-1 * var(--space-lg)) var(--space-sm)}.room-hero-main{gap:var(--space-sm);flex-wrap:nowrap}.room-hero-temp{min-height:44px;font-size:var(--font-size-sm);align-items:center;padding:0 10px;display:inline-flex}.room-quick-toggle{width:44px;height:44px}.activity-list{max-height:240px}.activity-digest{grid-template-columns:minmax(0,1fr) auto}.activity-digest-meta{order:3;grid-column:1/-1}.activity-item{min-height:44px;padding:7px 10px}}.swipe-peek{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:linear-gradient(170deg, var(--glass-tint) 0%, transparent 40%), var(--bg-elevated);border:1px solid var(--glass-border-hover);border-radius:var(--radius-card);box-shadow:0 8px 32px var(--black-a30), inset 0 1px 0 var(--glass-edge-strong);-webkit-backdrop-filter:blur(8px);opacity:.6;z-index:210;pointer-events:none;font-size:var(--font-size-sm);color:var(--text-secondary);animation:peek-fade var(--duration-fast) var(--ease-smooth) forwards;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.peek-icon{align-items:center;display:flex}.peek-label{white-space:nowrap}.peek-temp{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-tertiary);margin-left:2px}@keyframes peek-fade{0%{opacity:0;transform:translateY(-50%)scale(.9)}to{opacity:.6;transform:translateY(-50%)scale(1)}}@keyframes login-enter{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes login-shake{0%,to{transform:translate(0)}15%{transform:translate(-10px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(4px)}75%{transform:translate(-2px)}}@keyframes login-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}@keyframes login-glow-drift{0%,to{opacity:.5;transform:translate(-50%,-50%)scale(1)}50%{opacity:.7;transform:translate(-50%,-50%)scale(1.15)}}.login-page{min-height:100dvh;padding:var(--space-xl);background:var(--bg-primary);flex-direction:column;grid-area:1/1/-1/-1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(circle, var(--accent-primary-glow) 0%, transparent 70%);pointer-events:none;z-index:0;border-radius:50%;width:500px;height:500px;animation:8s ease-in-out infinite login-glow-drift;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.login-brand{text-align:center;z-index:1;animation:login-enter var(--duration-reveal) var(--ease-out) both;margin-bottom:32px;position:relative}.login-title{font-family:var(--font-display);letter-spacing:0;color:var(--text-primary);font-size:2.5rem;font-weight:700;line-height:1}.login-subtitle{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--text-tertiary);margin-top:6px;display:block}.login-card{background:var(--glass-tint-strong);border:1px solid var(--glass-border);border-radius:var(--radius-modal);width:100%;max-width:360px;box-shadow:var(--shadow-card), 0 0 80px -20px var(--accent-primary-glow);-webkit-backdrop-filter:blur(20px);z-index:1;animation:login-enter var(--duration-reveal) var(--ease-out) .1s both;padding:28px 28px 24px;position:relative}.login-form{flex-direction:column;gap:12px;display:flex}.login-form.shake{animation:login-shake var(--duration-slow) var(--ease-smooth)}.login-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-input{width:100%;font-family:var(--font-body);font-size:var(--font-size-base);color:var(--text-primary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-button);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background var(--transition-normal);outline:none;padding:13px 16px}.login-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim);background:var(--glass-bg-hover)}.login-input::placeholder{color:var(--text-tertiary)}.login-btn{padding:13px var(--space-lg);font-family:var(--font-display);font-size:var(--font-size-base);letter-spacing:.02em;color:var(--bg-primary);background:var(--accent-primary);border-radius:var(--radius-button);cursor:pointer;transition:all var(--transition-normal);border:none;margin-top:4px;font-weight:600}.login-btn:hover{filter:brightness(1.08);box-shadow:0 4px 20px var(--accent-primary-glow)}.login-btn:active{transform:scale(.98)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{font-size:var(--font-size-sm);color:var(--color-error);text-align:left;overflow-wrap:anywhere;animation:login-enter var(--duration-slow) var(--ease-smooth) both;margin-top:4px;line-height:1.4}.login-health{font-size:var(--font-size-xs);color:var(--text-tertiary);opacity:.5;z-index:1;animation:login-enter var(--duration-reveal) var(--ease-out) .2s both;justify-content:center;align-items:center;gap:6px;margin-top:24px;display:flex;position:relative}.login-health.is-blocked,.login-health.is-offline{opacity:1}.login-health.is-blocked{color:var(--color-error)}.login-health-dot{background:var(--text-tertiary);width:6px;height:6px;transition:background var(--duration-reveal) var(--ease-smooth);border-radius:50%}.login-health-dot.connected{background:var(--color-success);animation:2s infinite login-pulse}.login-health-dot.offline,.login-health-dot.blocked{background:var(--color-error)}#logout-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);width:44px;height:44px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}#logout-btn:hover{color:var(--color-error);background:var(--color-error-bg)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#app-loader{background:var(--bg-base);z-index:99999;transition:opacity var(--duration-normal) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#app-loader.hidden{opacity:0;pointer-events:none;visibility:hidden}.loader-spinner{border:3px solid var(--glass-border);border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-slot,.icon-slot-sub,.cp-search-icon,.cp-result-icon:empty,.peek-icon:empty{border-radius:var(--radius-sm);background:linear-gradient(90deg, transparent 25%, var(--glass-tint) 50%, transparent 75%);background-size:200% 100%;min-width:1em;min-height:1em;animation:1.5s infinite icon-shimmer}.cp-result-icon:not(:empty),.peek-icon:not(:empty){background:0 0;animation:none}.icon-slot:has(.icon){background:0 0;animation:none}.icon-slot-sub:has(.icon){background:0 0;animation:none}.cp-search-icon:has(.icon){background:0 0;animation:none}@keyframes icon-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-contrast:more){:root{--text-primary:var(--white);--text-secondary:#e0e0e0;--text-tertiary:silver;--bg-card:#1a1a1c;--separator-color:#555;--glass-border:#666}[data-theme=light]{--text-primary:#000;--text-secondary:#1a1a1a;--text-tertiary:#333;--bg-card:var(--white);--separator-color:#999;--glass-border:#888}.device-card,.scene-btn,.alert-card{border-width:2px}}.device-card:focus-visible,.scene-btn:focus-visible,.alert-card:focus-visible,.room-card:focus-visible,.compact-row-wrap:focus-visible,.section-tab:focus-visible,.room-filter-chip:focus-visible,.nav-item:focus-visible,.sidebar-item:focus-visible,#theme-toggle:focus-visible,#logout-btn:focus-visible,.lp-adaptive-toggle:focus-visible,.power-btn:focus-visible,.media-power-btn:focus-visible,.toggle-switch:focus-visible,.remote-action-btn:focus-visible,.remote-transport-btn:focus-visible,.remote-touch-btn:focus-visible,.remote-touch-center:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.brightness-input:focus-visible~.brightness-bar,.lp-brightness-input:focus-visible~.lp-brightness-bar,.lp-temp-input:focus-visible~.lp-temp-bar{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-slider)}.login-input:focus-visible{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim)}.room-search-input:focus-visible{box-shadow:0 0 0 2px var(--accent-primary);border-color:var(--accent-primary)}@media (width<=768px){.section-tab{min-height:46px}.room-filter-chip,.alert-card{min-height:44px}}:root{--lg-blur:20px;--lg-saturate:180%;--lg-brightness:1.08;--lg-tint:#1a1a1e8c;--lg-tint-strong:#121214b8;--lg-rim:#ffffff1f;--lg-highlight:inset 0 1px 0 #ffffff38;--lg-underside:inset 0 -1px 0 #00000040;--lg-float:0 8px 30px #00000059}[data-theme=light]{--lg-tint:#fff9;--lg-tint-strong:#ffffffc7;--lg-rim:#00000014;--lg-highlight:inset 0 1px 0 #ffffffbf;--lg-underside:inset 0 -1px 0 #0000000f;--lg-float:0 8px 30px #0000001f}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){#sidebar,#topbar,#mobile-nav,.command-palette{background:var(--lg-tint);-webkit-backdrop-filter:blur(var(--lg-blur)) saturate(var(--lg-saturate)) brightness(var(--lg-brightness));backdrop-filter:blur(var(--lg-blur)) saturate(var(--lg-saturate)) brightness(var(--lg-brightness))}#topbar{border-bottom:1px solid var(--lg-rim);box-shadow:var(--lg-highlight)}#sidebar{border-right:1px solid var(--lg-rim);box-shadow:var(--lg-highlight)}#mobile-nav{border-top:1px solid var(--lg-rim);box-shadow:var(--lg-highlight), var(--lg-float)}.command-palette{background:var(--lg-tint-strong);border:1px solid var(--lg-rim);box-shadow:var(--lg-highlight), var(--lg-underside), var(--lg-float)}}@media (prefers-reduced-transparency:reduce){#sidebar,#topbar,#mobile-nav,.command-palette{background:var(--bg-secondary);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){#sidebar,#topbar,#mobile-nav,.command-palette{background:var(--bg-primary);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:#ffffff73}}@media (hover:none),(pointer:coarse){.hdmi-toggle-pill,.media-power-btn{min-width:44px;min-height:44px}}.house-operations{margin-top:var(--space-lg);min-width:0}.house-operations>*,.house-tool{margin-bottom:var(--space-lg)}.house-tool,.home-schedules,.home-maintenance,.temporary-modes,.energy-cost,.timed-off-controls{color:var(--text-primary);font-size:var(--font-size-sm)}.house-tool h3,.home-schedules h3{font-size:var(--font-size-base);margin:0 0 var(--space-sm)}.house-tool summary,.temporary-modes summary,.home-maintenance summary,.energy-cost summary{cursor:pointer;min-height:44px;padding:12px 0}.house-tool p,.temporary-modes p,.energy-cost p,.timed-off-current{color:var(--text-secondary);line-height:1.6}.house-tool label,.energy-cost label{gap:var(--space-xs);margin:var(--space-sm) 0;display:grid}.operation-button,.house-tool select,.house-tool input,.temporary-modes select,.energy-cost select,.energy-cost input,.timed-off-controls select{font:inherit;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--text-secondary);border-radius:var(--radius-button);min-width:44px;max-width:100%;min-height:44px;padding:8px 12px}.house-tool select,.house-tool input,.energy-cost select,.energy-cost input{width:100%}.house-tool select,.temporary-modes select,.energy-cost select,.timed-off-controls select{appearance:none;min-height:44px}.operation-button{cursor:pointer}.operation-button:hover:not(:disabled){background:var(--bg-card-active)}.operation-button:disabled{cursor:not-allowed;color:var(--text-secondary)}.house-operations :focus-visible,.timed-off-controls :focus-visible,.vacuum-areas :focus-visible,.energy-cost :focus-visible{outline:2px solid var(--text-primary);outline-offset:3px}.operation-row{align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--separator-color);justify-content:space-between;padding:12px 0;display:flex}.operation-row>span{overflow-wrap:anywhere;min-width:0;line-height:1.5}.operation-row button{flex-shrink:0}.operation-actions{gap:var(--space-sm);margin:var(--space-sm) 0;flex-wrap:wrap;display:flex}.temporary-modes select{margin:4px 4px 4px 0}.timed-off-controls{margin:var(--space-md) 0;gap:var(--space-sm);border:0;flex-wrap:wrap;padding:0;display:flex}.timed-off-controls legend{padding:var(--space-sm) 0}.timed-off-current{flex-basis:100%}.timed-off-current button{margin-left:var(--space-sm)}.vacuum-areas{margin:var(--space-md) 0 0}.vacuum-area-option{align-items:center;min-height:44px;gap:12px!important;display:flex!important}.vacuum-area-option input{width:22px;height:22px;accent-color:var(--accent-primary)}.energy-cost{margin-top:var(--space-md)}.energy-cost progress{width:100%;accent-color:var(--accent-primary)}.energy-cost .energy-cost-value{font-size:var(--font-size-lg);color:var(--text-primary)}.maintenance-history{margin-top:var(--space-md)}.maintenance-history li{margin-bottom:var(--space-md);overflow-wrap:anywhere;line-height:1.5}.maintenance-history small{color:var(--text-secondary);white-space:pre-line;display:block}@media (pointer:coarse){.house-tool input,.house-tool select,.temporary-modes select,.energy-cost input,.energy-cost select,.timed-off-controls select{font-size:16px}}@media (width<=480px){.house-operations{margin-top:var(--space-md)}.operation-row{flex-wrap:wrap}.operation-row>span{flex:180px}}.music-page{--music-accent-text:var(--accent-primary);max-width:1280px;margin:0 auto}[data-theme=light] .music-page{--music-accent-text:#86530b}.music-page [hidden]{display:none!important}.music-heading{margin:4px 0 24px;font-size:24px;font-weight:600;line-height:1.3}.music-page p{overflow-wrap:anywhere;line-height:1.5}.music-page h3{font-size:15px;font-weight:500;line-height:1.4}.music-grid{grid-template-columns:minmax(0,1fr) 250px;grid-template-areas:"player queue""catalog queue""saved queue";align-items:start;gap:24px;display:grid}.music-player{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:16px;grid-area:player;grid-template-columns:140px minmax(0,1fr) auto;grid-template-areas:"art track output""art transport transport""art volume volume";align-items:center;gap:14px 20px;min-width:0;padding:20px;display:grid}.music-art{background:var(--bg-elevated);width:48px;height:48px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;place-items:center;display:grid;position:relative;overflow:hidden}.music-art img{object-fit:cover;width:100%;height:100%;position:absolute}.music-player-art{border-radius:10px;grid-area:art;width:140px;height:170px}.music-track{grid-area:track;min-width:0}.music-player-title{overflow-wrap:anywhere;font-size:18px!important;font-weight:600!important}.music-player-artist,.music-player-state{color:var(--text-secondary);font-size:12px}.music-player-state{margin-top:4px}.music-output{grid-area:output;align-items:center;min-width:0;max-width:250px;display:flex;position:relative}.music-page select{appearance:none;height:44px;min-height:44px;font:inherit;border:1px solid var(--border-primary);color:var(--text-primary);background:var(--bg-elevated);cursor:pointer;border-radius:8px;min-width:0;max-width:100%;padding:8px 30px 8px 12px;font-size:14px}.music-output select{width:100%}.music-output-chevron{pointer-events:none;color:var(--text-secondary);display:flex;position:absolute;right:50px}.music-icon-button{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--text-primary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;display:inline-grid}.music-icon-button>span{align-items:center;display:flex}.music-icon-button:hover:not(:disabled),.music-text-button:hover:not(:disabled){background:var(--bg-card-active)}.music-icon-button:disabled,.music-text-button:disabled{color:var(--text-secondary);cursor:not-allowed;opacity:.65}.music-icon-button[aria-pressed=true]{color:var(--music-accent-text);background:var(--accent-a10)}.music-transport{grid-area:transport;justify-content:center;align-items:center;gap:14px;display:flex}.music-play-toggle{border:1px solid var(--accent-primary);color:var(--music-accent-text);border-radius:50%;width:48px;height:48px}.music-volume{grid-area:volume;align-items:center;gap:4px;display:flex}.music-volume input{width:100%;min-width:0;min-height:44px;accent-color:var(--accent-primary)}.music-volume-value{text-align:right;font-variant-numeric:tabular-nums;min-width:42px;color:var(--text-secondary);font-size:12px}.music-queue-panel{border:1px solid var(--border-primary);background:var(--bg-card);border-radius:14px;grid-area:queue;min-width:0;padding:12px 16px 18px}.music-section-heading{justify-content:space-between;align-items:center;display:flex}.music-queue{color:var(--text-secondary);font-size:13px}.music-queue-count{margin-bottom:10px}.music-queue-row{border-top:1px solid var(--separator-color);padding:12px 0}.music-queue-row span{font-size:11px}.music-queue-row p{color:var(--text-primary);margin-top:4px}.music-catalog{grid-area:catalog;min-width:0}.music-search{border:1px solid var(--text-secondary);background:var(--bg-card);border-radius:10px;align-items:center;gap:4px;padding:0 4px 0 14px;display:flex}.music-search input{width:100%;min-width:0;min-height:46px;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:none;font-size:15px}.music-search input::placeholder{color:var(--text-secondary);opacity:1}.music-search:focus-within{outline:2px solid var(--accent-primary);outline-offset:3px}.music-catalog-heading{align-items:center;gap:4px;margin:8px 0 12px;display:flex}.music-catalog-status{min-width:0;color:var(--text-secondary);flex:1;font-size:12px}.music-catalog-heading select{background:0 0;border-color:#0000;width:auto;max-width:160px;padding:8px}.music-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.music-result{border:1px solid var(--border-primary);background:var(--bg-card);border-radius:12px;grid-template-columns:44px minmax(0,1fr) auto 44px;align-items:center;gap:10px;min-width:0;padding:10px;display:grid;position:relative}.music-result .music-art{width:44px;height:48px}.music-result-info{min-width:0}.music-result-info h3{overflow-wrap:anywhere;font-size:14px}.music-result-type,.music-result-detail{color:var(--text-secondary);font-size:11px}.music-result>.music-icon-button{width:44px;min-width:44px}.music-text-button{border:1px solid var(--border-primary);min-height:44px;color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:12px;line-height:1.4;display:inline-flex}.music-radio-button{border-color:var(--accent-primary);color:var(--music-accent-text)}.music-radio-button .icon{width:15px}.music-more-actions{z-index:5;border:1px solid var(--text-secondary);background:var(--bg-secondary);border-radius:10px;gap:4px;max-width:calc(100% - 16px);padding:8px;display:grid;position:absolute;top:calc(100% - 4px);right:8px}.music-more-actions .music-text-button{text-align:left;border-color:#0000;justify-content:start}.music-saved{grid-area:saved;gap:20px;min-width:0;display:grid}.music-saved h3{margin-bottom:10px}.music-saved-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.music-saved-radio,.music-saved-favorite{border:1px solid var(--border-primary);background:var(--bg-card);min-height:64px;color:var(--text-primary);font:inherit;border-radius:12px;align-items:center;gap:10px;min-width:0;padding:8px;font-size:13px;display:flex}.music-saved-radio{text-align:left;cursor:pointer}.music-saved-radio>span,.music-saved-favorite>span{overflow-wrap:anywhere;flex:1;min-width:0}.music-empty{color:var(--text-secondary);font-size:13px}.music-feedback:empty,.music-connection:empty{display:none}.music-feedback,.music-connection{color:var(--text-secondary);margin:0 0 16px;font-size:13px}.music-feedback{z-index:80;bottom:calc(88px + env(safe-area-inset-bottom,0px));border:1px solid var(--border-primary);background:var(--bg-secondary);pointer-events:none;border-radius:10px;width:max-content;max-width:min(600px,100vw - 32px);padding:12px 16px;position:fixed;left:50%;transform:translate(-50%)}.music-feedback[data-state=error],.music-feedback[data-state=confirmed]{color:var(--text-primary)}.music-page [aria-busy=true]{cursor:progress}.music-page button{transition:transform .12s ease-out,background-color .12s ease-out}.music-page button:active:not(:disabled){transform:scale(.96)}.music-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}.music-more-results{margin-top:12px}.music-page :focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.music-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.music-page-link{min-height:44px;color:var(--accent-primary);text-underline-offset:3px;align-items:center;display:inline-flex}[data-theme=light] .music-page-link{color:#86530b}@media (width<=1450px){.music-results{grid-template-columns:minmax(0,1fr)}}@media (width<=1250px){.music-player{grid-template-columns:105px minmax(0,1fr);grid-template-areas:"art track""art output""transport transport""volume volume"}.music-player-art{width:105px;height:122px}}@media (width<=1100px){.music-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"player""catalog""saved""queue";gap:20px}.music-player{grid-template-columns:120px minmax(0,1fr) auto;grid-template-areas:"art track output""art transport transport""art volume volume"}.music-player-art{width:120px;height:160px}.music-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.music-results{grid-template-columns:minmax(0,1fr)}.music-player{grid-template-columns:86px minmax(0,1fr);grid-template-areas:"art track""art output""transport transport""volume volume";gap:10px 14px;padding:14px}.music-player-art{width:86px;height:106px}.music-player-title{font-size:16px!important}.music-transport{gap:12px}.music-output{max-width:100%}.music-output select{font-size:16px}.music-heading{margin-bottom:16px;font-size:22px}.music-search input{font-size:16px}.music-result{grid-template-columns:40px minmax(0,1fr) auto 44px;gap:6px;padding:8px}.music-radio-button{padding-inline:7px}.music-radio-button .icon{display:none}.music-result .music-art{width:40px;height:46px}}@media (prefers-reduced-motion:reduce){.music-page button{transition:none}.music-page button:active:not(:disabled){transform:none}}:root,[data-theme=dark]{--surface-accent-text:#efab63;--surface-border:#39393f;--surface-paper:#faf6ed}[data-theme=light]{--surface-accent-text:#86530b;--surface-border:#d1d1d8;--surface-paper:#faf6ed}.maison-content{background:var(--bg-primary)}#content>*{max-width:1280px}#content.calm-home{width:auto;max-width:none;margin:0}#content.calm-home>*{max-width:1100px;margin-left:auto;margin-right:auto}#content>.room-hero{width:100%;margin:0 auto 24px;padding:0;position:static;top:auto}#content>.room-hero:focus{outline:none}.room-section-header:before,.room-section-header:after{display:none}.section-label{font-family:var(--font-body)}.calm-home .hero-sub{font-family:var(--font-body);letter-spacing:0}.sidebar-section-label{font-family:var(--font-body);letter-spacing:.04em}#app:before,#content:before,.room-hero:before,.room-hero:after,.home-hero:before,.home-hero:after{display:none}#topbar,#sidebar,#mobile-nav{-webkit-backdrop-filter:none;background:var(--bg-secondary)}#content{padding:28px 32px 40px}#content button,#content select,#content summary{min-width:44px;min-height:44px}#content>.surface-page,.calm-home{max-width:1280px;margin-inline:auto}#content.surface-room{max-width:none}:is(.surface-page,.surface-room,.calm-home) h2{font-size:26px;font-weight:600;line-height:1.25}:is(.surface-page,.surface-room,.calm-home) h3{font-size:17px;font-weight:550;line-height:1.4}.surface-heading,.surface-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.surface-heading h2{margin:0}:is(.surface-page,.surface-room) select,.surface-button,.coupe-toolbar button{font:inherit;min-width:44px;min-height:44px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--surface-border);border-radius:9px;max-width:100%;padding:9px 12px;font-size:14px}:is(.surface-page,.surface-room) select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23888888' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}:is(.surface-page,.surface-room,.calm-home) :focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.surface-link{border:1px solid var(--surface-border);min-width:0;min-height:60px;color:var(--text-primary);background:var(--bg-card);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;text-decoration:none;display:flex}.surface-link>span{overflow-wrap:anywhere;min-width:0}.surface-link .icon{color:var(--text-secondary);flex-shrink:0}.surface-link:hover{background:var(--bg-card-hover);border-color:var(--text-secondary)}.surface-link small{color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:1.4;display:block}.surface-section-heading .surface-link{min-height:44px;color:var(--surface-accent-text);background:0 0;border:0;padding:0 8px;font-size:13px}.room-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.utility-group{margin-top:28px}.utility-group>h3{margin-bottom:12px}.utility-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.attention-summary{border:1px solid var(--accent-primary);background:var(--accent-a4);border-radius:12px;margin-block:20px 26px;padding:14px 18px}.attention-summary h3{margin-bottom:6px;font-size:15px}.attention-summary .surface-link{border:0;border-top:1px solid var(--surface-border);background:0 0;border-radius:0;min-height:48px;padding:10px 0;font-size:14px}.attention-summary .surface-link:first-child{border-top:0}[hidden]{display:none!important}#app-loader.hidden{display:none}.sensor-unit{color:var(--text-secondary)}.calm-home .home-hero{box-shadow:none;background:0 0;border:0;min-height:0;margin:0 0 14px;padding:0;animation:none}.calm-home .hero-title{letter-spacing:-.02em;font-size:26px;font-weight:600}.calm-home .hero-sub{max-width:70ch;color:var(--text-secondary);font-size:13px}.calm-home .hero-content{align-items:start}.calm-home .hero-weather{box-shadow:none;background:0 0;border:0}.calm-home .home-status-strip{background:0 0;border:0;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:0;display:flex}.calm-home .home-status-chip{border:1px solid var(--surface-border);background:var(--bg-card);min-height:44px;box-shadow:none;border-radius:9px;flex:0 auto;padding:6px 10px}.calm-home .home-status-label{font-size:12px}.calm-home .home-status-detail{font-size:11px;font-family:var(--font-body);color:var(--text-secondary)}.calm-home .home-actions{flex-wrap:wrap;gap:8px;margin:0;display:flex}.calm-home .home-action-btn{background:var(--bg-card);border:1px solid var(--surface-border);min-height:48px;box-shadow:none;border-radius:10px}.calm-home .home-action-btn:before,.calm-home .home-action-btn:after{display:none}.calm-home .home-action-btn[data-action=depart],.calm-home .home-action-btn[data-action=retour],.calm-home .home-action-btn[data-action=night]{border-color:var(--accent-primary)}.calm-home .home-rooms{margin-block:24px}.calm-home .running-activities{margin-top:26px}.running-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.home-secondary-links{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.home-secondary-links .surface-link{min-height:44px;padding:8px 12px;font-size:13px}.home-mode-menu>summary,.home-more-actions>summary{border:1px solid var(--surface-border);background:var(--bg-card);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;min-height:44px;padding:10px 14px;font-size:13px;display:flex}.home-mode-options,.home-more-actions-list{flex-wrap:wrap;gap:8px;padding:10px 0;display:flex}.home-mode-menu[open],.home-more-actions[open]{flex-basis:100%}.home-mode-options .home-status-chip{flex:140px}.mode-controls{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:24px;padding:0;display:grid}.calm-home .home-actions-row{flex-wrap:wrap;gap:10px;margin-bottom:22px;display:flex}.calm-home .home-actions-row>.home-action-btn{flex:140px}.calm-home .home-actions-row>.home-more-actions{flex:0 auto}.home-actions-status{flex-basis:100%;min-height:24px;font-size:13px;line-height:1.5}.home-status-strip .home-status-chip,.home-actions button,.room-overview-item{animation:none}.sidebar-utilities{margin-top:2px}.sidebar-utilities>summary{min-height:44px;color:var(--text-secondary);cursor:pointer;align-items:center;padding:8px 16px;font-size:13px;display:flex}.sidebar-item{min-height:44px;box-shadow:none;border-radius:9px}.sidebar-item.active{color:var(--surface-accent-text);border:1px solid var(--accent-a30);background:var(--accent-a10)}.sidebar-item:before{display:none}.sidebar-item:hover{transform:none}.room-hero{box-shadow:none;background:0 0;border:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:0;margin:0 0 24px;padding:0;display:flex}.room-hero-main{gap:12px}.room-hero-icon{width:30px;height:30px;box-shadow:none;color:var(--text-primary);background:0 0;border:0;padding:0}.room-hero-sub{display:none}.room-hero-title{font-size:26px}.room-hero-temp{font-size:14px;color:var(--text-secondary)!important}.section-selector{max-width:min(270px,100%)}.room-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:28px;max-width:1280px;margin-inline:auto;display:grid}.physical-room .room-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.room-controls{min-width:0}.physical-room .room-controls{flex-direction:column;display:flex}.physical-room .room-controls>.room-section[data-section-name=Scenes]{order:-2}.room-music{order:-3;margin-bottom:24px;padding:16px}.room-music-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.room-music-header h3{margin:0}.room-music-header select{min-width:0;max-width:65%}.room-music-title{overflow-wrap:anywhere;margin:14px 0 3px;font-size:16px}.room-music-artist,.room-music-source,.room-music-status{color:var(--text-secondary);margin:4px 0;font-size:12px}.room-music-status:empty,.room-music-artist:empty{display:none}.room-music-controls{align-items:center;gap:6px;margin:12px 0;display:flex}.room-music-controls input{width:100%;min-width:40px;min-height:44px;accent-color:var(--accent-primary)}.room-music-controls output{text-align:right;min-width:42px;font-size:12px}.room-music-controls button{flex-shrink:0;padding:8px}.room-music-controls .is-playing{color:var(--surface-accent-text);border-color:var(--accent-primary)}.room-music .surface-link{justify-content:center;min-height:44px;padding:8px;font-size:13px}.room-music [aria-disabled=true]{opacity:.5;cursor:not-allowed}.music-room-return{min-height:44px;color:var(--surface-accent-text);align-items:center;margin-bottom:12px;text-decoration:none;display:inline-flex}.room-section{margin:0 0 24px}.room-section-header{color:var(--text-primary);margin-bottom:12px;padding:0}.room-section-header .section-label{text-transform:none;letter-spacing:0;font-size:15px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.physical-room .card-grid{grid-template-columns:minmax(0,1fr)}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.device-card{background:var(--bg-card);border:1px solid var(--surface-border);box-shadow:none;border-radius:12px;min-width:0;animation:none}.device-card:before,.device-card:after{display:none}.device-card:hover{box-shadow:none;transform:none}.device-card.card-on{background:var(--bg-card);border-color:var(--accent-a50)}.device-card .card-name,.compact-name{font-size:14px;font-weight:550}.device-card .icon.just-changed{animation:none}.slider-card-ambient{display:none}.slider-card{min-height:114px;padding:16px}.slider-card .card-header{gap:8px;margin-bottom:10px}.slider-card .brightness-bar-wrap{min-height:44px;margin:0}.slider-card .brightness-bar{height:6px;box-shadow:none;border-radius:4px;top:19px;bottom:auto}.slider-card .brightness-fill{box-shadow:none;border-radius:4px}.slider-card.card-on .brightness-fill:after{width:16px;height:16px;transition:transform .16s;box-shadow:0 1px 3px #0003}.slider-card.card-on .slider-dragging .brightness-fill:after{width:18px;height:18px;box-shadow:0 1px 3px #0003}.slider-card .power-btn{border:1px solid var(--surface-border);background:var(--bg-elevated);border-radius:10px;width:44px;min-width:44px;height:44px}.slider-card .power-btn.on{background:var(--accent-primary);color:#171719;border-color:var(--accent-primary)}.slider-card .color-circle{border-radius:10px;width:44px;min-width:44px;height:44px}.compact-row{min-height:68px;padding:12px 16px}.sensor-card{min-height:110px;padding:16px}.sensor-card-tint{display:none}.sensor-val-num{color:var(--text-primary)!important}.sensor-unit{color:var(--text-secondary);opacity:1;font-size:13px}.sensor-card .card-header .icon{color:var(--text-secondary);opacity:1}.energy-insight,.energy-room-chip,.energy-monthly{font-family:var(--font-body);letter-spacing:0;color:var(--text-secondary)}.room-section-header{border:0}.room-section-header .section-icon{display:none}.chart-svg-wrap{height:260px;min-height:180px;max-height:300px}.chart-range-tab{min-width:44px;min-height:44px;font-family:var(--font-body)}.chart-measures>summary{cursor:pointer;min-height:44px;color:var(--text-secondary);align-items:center;font-size:13px;display:flex}.sensor-card .sensor-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:550}.scene-card{background:var(--bg-card);min-height:48px;box-shadow:none;border:1px solid var(--surface-border);border-radius:10px;padding:10px 12px}.scene-card:before,.scene-card:after{display:none}.scene-card:hover{box-shadow:none;transform:none}.scene-card .scene-name{font-size:13px}.media-card{min-height:130px}.media-card .media-art-overlay{background:linear-gradient(#00000059,#000c)}.media-card .media-accent{display:none}.room-tools{flex-wrap:wrap;align-items:start;gap:12px;margin-bottom:20px;display:flex}.room-search{flex:1;min-width:min(240px,100%)}.room-search-input{font:inherit;border:1px solid var(--surface-border);background:var(--bg-card);width:100%;color:var(--text-primary);border-radius:9px;min-height:44px;padding:10px 12px}.room-filters{flex-wrap:wrap;gap:6px;display:flex}.room-filter-chip{border-radius:9px;min-height:44px;font-size:12px}.room-filter-icon{display:none}.automation-audit-disclosure{border-bottom:1px solid var(--surface-border);margin-bottom:20px}.automation-audit-disclosure summary{cursor:pointer;min-height:44px;padding:10px 0}[data-room=automations] .card-grid{grid-template-columns:minmax(0,1fr)}[data-room=automations] .toggle-card{min-height:74px}[data-room=automations] .compact-detail{color:var(--text-secondary);font-size:12px}[data-room=systeme] .card-grid,[data-room=energie] .card-grid,[data-room=climat] .card-grid{grid-template-columns:minmax(0,1fr)}.utility-room .room-layout{max-width:1100px}.utility-room .health-card{max-width:100%}.energy-card{padding:20px}.energy-header{margin-bottom:16px}.energy-power{font-size:30px}.energy-insights{margin-block:12px}.energy-rooms{gap:8px}.energy-room-chip{border-radius:8px;min-height:44px}.energy-cost{background:0 0;border:0;padding:16px 0 0}.energy-cost p{font-size:13px}.energy-cost details{margin-top:12px}.energy-cost details>summary{min-height:44px}.health-card .health-header{margin-bottom:12px}.management-page{max-width:960px!important}.system-page>.surface-link,.system-page>.connection-status-card,.network-page>.connection-status-card{margin-bottom:20px}.system-disclosure{border-bottom:1px solid var(--surface-border);margin-top:20px;padding-bottom:16px}.system-disclosure>summary{cursor:pointer;align-items:center;min-height:48px;font-size:16px;font-weight:550;display:flex}.system-disclosure>.card-grid{margin-top:12px}.system-page .card-grid{grid-template-columns:minmax(0,1fr)}.system-page .health-card{max-width:100%}.surface-feedback{color:var(--text-secondary);margin:10px 0;font-size:13px}.presence-summary{border:1px solid var(--surface-border);background:var(--bg-card);border-radius:10px;margin-bottom:20px;padding:14px 16px}.person-card{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;display:grid}.person-evidence{color:var(--text-secondary);grid-column:1/-1;font-size:12px;line-height:1.5}.climate-readings{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.climate-page>.card-grid{margin-bottom:28px}.climate-trends{margin-top:28px}.climate-readings .sensor-card{min-height:132px}.climate-trends .device-card{width:100%}.management-page>.house-tool{margin-block:20px}.house-tool{border:1px solid var(--surface-border);background:var(--bg-card);border-radius:12px;padding:16px}.house-tool h3{margin-bottom:12px}.house-tool input,.house-tool select,.operation-button{min-height:44px}.house-tool button,.operation-button{font:inherit;border:1px solid var(--surface-border);color:var(--text-primary);background:var(--bg-elevated);border-radius:9px;min-height:44px;padding:8px 12px;font-size:13px}.house-tool p{color:var(--text-secondary);font-size:13px;line-height:1.5}.house-tool form{flex-wrap:wrap;gap:8px;margin-block:16px;display:flex}.house-tool label{max-width:100%}.house-tool input{font:inherit;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--surface-border);border-radius:8px;max-width:100%;padding:8px 10px}.operation-row{border-bottom:1px solid var(--surface-border);min-height:60px;padding:10px 0}.plant-card{padding:16px}.plant-card .plant-photo{float:left;border-radius:9px;width:68px;height:68px;margin:0 14px 10px 0;overflow:hidden}.plant-photo img{object-fit:cover;width:100%;height:100%}.plant-species{font-size:12px}.plant-sensors{clear:both}.vacuum-card{padding:20px}.vacuum-actions{flex-wrap:wrap;gap:8px;margin-block:16px;display:flex}.vacuum-actions button{min-width:90px;min-height:48px;font:inherit;border:1px solid var(--surface-border);border-radius:9px}.vacuum-actions .start-btn{background:var(--accent-primary);color:#171719;font-weight:550}.vacuum-areas{clear:both;margin-top:16px}.coupe{background:var(--bg-card);border:1px solid var(--surface-border);border-radius:14px;min-width:0;overflow:hidden}.coupe-stage{aspect-ratio:4/3;background:var(--surface-paper);touch-action:pan-y;position:relative;overflow:hidden}.coupe-stage.is-zoomed{touch-action:none}.coupe-stage:has(.is-dragging){touch-action:none}.coupe-image{transform-origin:50%;width:100%;height:100%;transition:transform .28s var(--motion-ease);position:relative}.coupe-image.is-dragging{transition:none}.coupe-image>img,.coupe-image>canvas,.coupe-markers{width:100%;height:100%;position:absolute;inset:0}.coupe-image>img{object-fit:contain}.coupe.is-composited .coupe-image>img{visibility:hidden}[data-theme=dark] .coupe-stage{background:#000}[data-theme=dark] .coupe-image>img{-webkit-mask-image:var(--coupe-matte);mask-image:var(--coupe-matte);-webkit-mask-image:var(--coupe-matte);-webkit-mask-size:100% 100%;mask-size:100% 100%}[data-theme=dark] .coupe:not(.matte-ready) .coupe-image>img{visibility:hidden}.coupe-markers{pointer-events:none}.coupe-marker{pointer-events:auto;color:#171719;width:44px;min-width:44px;height:44px;transform:translate(-50%,-50%);transform:translate(-50%,-50%) scale(calc(1 / var(--coupe-scale,1)));background:#ffefc9;border:2px solid #ad650e;border-radius:50%;font-size:24px;position:absolute}.coupe-toolbar{border-top:1px solid var(--surface-border);flex-wrap:wrap;align-items:center;gap:6px;padding:10px;display:flex}.coupe-toolbar select{flex:110px;min-width:0;max-width:180px}.coupe-toolbar button{flex:0 auto;font-size:12px}.coupe-toolbar button[aria-pressed=true]{color:var(--surface-accent-text);border-color:var(--accent-primary)}.coupe-note{color:var(--text-secondary);padding:0 12px 10px;font-size:12px;line-height:1.4}.coupe-note:empty{display:none}.plan-overview{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);align-items:start;gap:24px;margin-top:16px;display:grid}.plan-room-list .room-overview{grid-template-columns:minmax(0,1fr);margin-top:12px}.entity-panel{border:1px solid var(--surface-border);background:var(--bg-secondary);width:min(560px,100vw - 24px);max-height:calc(100dvh - 40px);color:var(--text-primary);border-radius:16px;margin:auto;padding:20px;overflow:auto}.entity-panel::backdrop{background:#00000080}.entity-panel>button{margin-bottom:16px}:where(.surface-room,.surface-page,.calm-home) .card-state,.surface-link small{color:var(--text-secondary)}:where(.surface-room,.surface-page,.calm-home) button:disabled{cursor:not-allowed}:where(.surface-room,.surface-page,.calm-home) .pulse,:where(.surface-room,.surface-page,.calm-home) .state-dot{animation:none}:where(.surface-room,.surface-page,.calm-home) .card-unavailable{opacity:1;color:var(--text-secondary)}@media (width>=1300px){.physical-room .room-layout>.coupe{position:sticky;top:0}}@media (width<=1100px){#content{padding:24px}.physical-room .room-layout,.plan-overview{grid-template-columns:minmax(0,1fr)}.physical-room .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.physical-room .coupe{width:100%;max-width:720px}.plan-room-list .room-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.climate-readings{grid-template-columns:repeat(2,minmax(0,1fr))}#content{padding:18px 16px calc(100px + env(safe-area-inset-bottom))}:is(.surface-page,.surface-room,.calm-home) h2,.calm-home .hero-title{font-size:23px}.surface-heading,.room-hero{margin-bottom:18px}.utility-grid,.running-list,.card-grid,.physical-room .card-grid,.room-overview{grid-template-columns:minmax(0,1fr)}.room-overview-item{min-height:66px}.utility-group{margin-top:24px}.utility-grid .surface-link{min-height:58px}.attention-summary{margin-block:18px 24px;padding:10px 14px}.calm-home .hero-weather{display:none}.calm-home .home-status-strip{gap:6px}.calm-home .home-status-chip{flex:1 0 auto;min-width:0;max-width:100%}.calm-home .home-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.calm-home .home-action-btn{min-width:0;padding:8px;font-size:12px}.home-action-status{grid-column:1/-1}.calm-home .home-actions-row{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-more-actions,.home-actions-status{grid-column:1/-1}.calm-home .home-action-btn .icon{width:18px;height:18px}.room-hero{align-items:start}.room-hero-main{flex:180px}.section-selector{width:100%;max-width:none}.plan-room-list .room-overview{grid-template-columns:minmax(0,1fr)}.coupe-toolbar{gap:4px}.coupe-toolbar select{font-size:16px}.coupe-toolbar button{padding-inline:9px;font-size:12px}.room-search-input,.surface-page input,.surface-page select{font-size:16px}.surface-heading>.surface-button{font-size:12px}.energy-card,.vacuum-card{padding:16px}.surface-heading{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.coupe-image{transition:none}}:root{--motion-press:.1s;--motion-state:.18s;--motion-panel:.28s;--motion-ease:cubic-bezier(.16,1,.3,1)}.motion-panel{transition:none!important;animation:none!important}.motion-panel:not(.visible){visibility:hidden;pointer-events:none}.motion-panel.visible{visibility:visible}.motion-panel.motion-closing{pointer-events:none}.motion-panel :is(button,summary,select,input[type=range]){min-width:44px;min-height:44px}.motion-backdrop{opacity:0;transition:opacity .19s!important;animation:none!important}.motion-backdrop.visible{opacity:1}.motion-panel.visible :is(.lp-wheel-section,.lp-temp-section,.lp-brightness-section,.lp-adaptive-section,.remote-touchpad,.remote-actions,.remote-transport,.remote-divider){animation:none!important}@media (width<=767px){:is(.light-panel-handle,.remote-panel-handle,.chart-panel-handle){background:0 0;border-radius:0;flex-shrink:0;width:100%;height:44px;margin:0;display:block;position:relative}:is(.light-panel-handle,.remote-panel-handle,.chart-panel-handle):before{content:"";background:var(--text-tertiary);pointer-events:none;border-radius:2px;width:36px;height:4px;position:absolute;top:17px;left:calc(50% - 18px)}}.plan-transition .coupe-stage{view-transition-name:maison-coupe}::view-transition-group(maison-coupe){animation-duration:.28s;animation-timing-function:cubic-bezier(.16,1,.3,1)}.plan-transition::view-transition-old(root){animation:none}.plan-transition::view-transition-new(root){animation:none}:is(button,a,summary,[role=switch],[role=button]){transition:background-color var(--motion-state) ease, color var(--motion-state) ease, border-color var(--motion-state) ease, opacity var(--motion-state) ease, transform var(--motion-press) var(--motion-ease)}:is(button,a,summary,[role=switch],[role=button]).is-pressed:not(:disabled){transform:scale(.975)}:is(.toggle-switch,.power-btn,.brightness-fill,.state-dot){transition:transform var(--motion-state) var(--motion-ease), background-color var(--motion-state) ease, opacity var(--motion-state) ease}.brightness-bar-wrap.slider-dragging .brightness-fill{transition:none}.command-feedback{max-width:calc(100% - 24px);color:var(--text-secondary);pointer-events:none;background:var(--bg-card);border-radius:4px;padding-inline:4px;font-size:11px;line-height:16px;position:absolute;bottom:3px;right:12px}.command-feedback:empty{display:none}.command-feedback[data-status=error],.command-feedback[data-status=unverified]{color:var(--text-primary)}[data-command-status=pending]{cursor:progress}[data-command-status=confirmed]{outline:1px solid var(--accent-primary);outline-offset:-1px}.device-card,.house-tool,.operation-row{position:relative}@media (prefers-reduced-motion:reduce){:is(button,a,summary,[role=switch],[role=button],.toggle-switch,.power-btn,.brightness-fill,.state-dot){transition:none!important}.is-pressed{transform:none!important}}
