:root{--bg-primary: #0a0b0d;--bg-card: rgba(255, 255, 255, .04);--bg-card-hover: rgba(255, 255, 255, .08);--border-card: rgba(255, 255, 255, .08);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .6);--text-tertiary: rgba(255, 255, 255, .35);--accent-blue: #3b82f6;--accent-cyan: #06b6d4;--accent-green: #10b981;--accent-orange: #f59e0b;--accent-red: #ef4444;--accent-purple: #8b5cf6;--gradient-primary: linear-gradient(135deg, #3b82f6, #06b6d4);--gradient-warm: linear-gradient(135deg, #f59e0b, #ef4444);--gradient-cool: linear-gradient(135deg, #06b6d4, #10b981);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--glass-bg: linear-gradient(135deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .04);--glass-handle: rgba(255, 255, 255, .25);--glass-icon-dim: rgba(255, 255, 255, .45);--glass-hover: rgba(255, 255, 255, .04);--glass-fan-bg: linear-gradient(135deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .03));--glass-fan-border: rgba(255, 255, 255, .1);--glass-fan-shadow: 0 4px 20px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .06);--glass-fan-text: rgba(255, 255, 255, .7);--overlay-bg: rgba(0, 0, 0, .5);--orb-opacity: .15;--landscape-bg: #0a0b0d;--ctrl-bg: rgba(255, 255, 255, .04);--ctrl-bg-hover: rgba(255, 255, 255, .08);--ctrl-bg-active: rgba(255, 255, 255, .1);--ctrl-border: rgba(255, 255, 255, .08);--ctrl-border-strong: rgba(255, 255, 255, .12);--ctrl-border-active: rgba(255, 255, 255, .2);--ctrl-text: rgba(255, 255, 255, .85);--ctrl-text-dim: rgba(255, 255, 255, .5);--ctrl-text-label: rgba(255, 255, 255, .55);--ctrl-text-bright: rgba(255, 255, 255, .9);--ctrl-thumb: rgba(255, 255, 255, .9);--ctrl-track: rgba(255, 255, 255, .06);--landscape-text: rgba(255, 255, 255, .7)}[data-theme=light]{--bg-primary: linear-gradient(180deg, #c8daf5 0%, #d5e3f6 50%, #e8dfd0 100%);--bg-card: rgba(255, 255, 255, .82);--bg-card-hover: rgba(255, 255, 255, .92);--border-card: rgba(70, 90, 150, .22);--text-primary: #1a1d2e;--text-secondary: rgba(20, 25, 45, .85);--text-tertiary: rgba(20, 25, 45, .55);--shadow-card: 0 8px 32px rgba(70, 90, 150, .18);--glass-bg: linear-gradient(135deg, rgba(255, 255, 255, .88), rgba(255, 255, 255, .7));--glass-border: rgba(70, 90, 150, .25);--glass-shadow: 0 8px 32px rgba(70, 90, 150, .2), inset 0 1px 0 rgba(255, 255, 255, .98);--glass-handle: rgba(70, 90, 150, .35);--glass-icon-dim: rgba(45, 65, 120, .7);--glass-hover: rgba(70, 90, 150, .12);--glass-fan-bg: linear-gradient(135deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .75));--glass-fan-border: rgba(70, 90, 150, .22);--glass-fan-shadow: 0 4px 24px rgba(70, 90, 150, .18), inset 0 1px 0 rgba(255, 255, 255, 1);--glass-fan-text: rgba(20, 25, 45, .88);--overlay-bg: rgba(220, 230, 245, .92);--orb-opacity: .18;--landscape-bg: linear-gradient(180deg, #c8daf5 0%, #d5e3f6 100%);--ctrl-bg: rgba(255, 255, 255, .7);--ctrl-bg-hover: rgba(255, 255, 255, .85);--ctrl-bg-active: rgba(70, 90, 150, .2);--ctrl-border: rgba(70, 90, 150, .2);--ctrl-border-strong: rgba(70, 90, 150, .3);--ctrl-border-active: rgba(70, 90, 150, .45);--ctrl-text: rgba(20, 25, 45, .95);--ctrl-text-dim: rgba(20, 25, 45, .68);--ctrl-text-label: rgba(20, 25, 45, .72);--ctrl-text-bright: rgba(20, 25, 45, 1);--ctrl-thumb: rgba(45, 65, 120, .9);--ctrl-track: rgba(70, 90, 150, .18);--landscape-text: rgba(20, 25, 45, .88)}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html,body{width:100%;min-height:100vh;background:var(--bg-primary);color:var(--text-primary);transition:background .3s ease,color .3s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{display:none;width:0;height:0}#root{min-height:100vh;min-height:100dvh}.landscape-blocker{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:var(--landscape-bg);color:var(--landscape-text);flex-direction:column;align-items:center;justify-content:center;gap:1rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:400}.landscape-blocker .rotate-icon{font-size:3rem;animation:rotateHint 2s ease-in-out infinite}@keyframes rotateHint{0%,to{transform:rotate(0)}50%{transform:rotate(-90deg)}}@media screen and (orientation:landscape)and (max-height:600px){.landscape-blocker{display:flex}}*{scrollbar-width:none}body{-ms-overflow-style:none}@keyframes hue-bulb-bounce{0%{transform:scale(.85)}20%{transform:scale(1.1)}40%{transform:scale(.95)}60%{transform:scale(1.03)}80%{transform:scale(.97)}to{transform:scale(1)}}.hue-bulb-glow{animation:hue-bulb-bounce .8s;transform-origin:center}.light-card{display:flex;flex-direction:column;align-items:stretch;padding:.9rem 1rem;gap:0;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.light-card:active{transform:scale(.96)}.light-card.light-on{background:#fbbf2412;border-color:#fbbf242e}.light-main-row{display:flex;align-items:center;gap:.65rem}.light-icon-circle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:20%;background:#ffffff14;border:1px solid rgba(255,255,255,.1);flex-shrink:0;font-size:1.1rem;line-height:1;transition:background .2s ease,border-color .2s ease,filter .2s ease}.light-on .light-icon-circle{background:#fbbf2426;border-color:#fbbf2440;filter:drop-shadow(0 0 6px rgba(251,191,36,.3))}.light-text{display:flex;flex-direction:column;gap:.1rem;text-align:left;min-width:0}.light-card-name{font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);line-height:1.25}.light-on .light-card-name{color:var(--text-primary)}.light-card-state{font-size:.62rem;font-weight:500;color:var(--text-tertiary)}.light-on .light-card-state{color:#fbbf24b3}.light-divider{display:block;width:100%;height:1px;background:var(--border-card);margin:.45rem 0 .3rem;flex-shrink:0}.light-active-label{font-size:.62rem;font-weight:500;color:#fbbf24b3}.light-active-label.light-active-hidden{visibility:hidden}.light-bottom-row{display:flex;align-items:center;justify-content:space-between}.light-last-changed{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:.8}.light-expand-hint{font-size:.58rem;font-weight:500;color:var(--text-tertiary);opacity:.6;white-space:nowrap;display:flex;align-items:center;gap:-2px}.light-expand-hint svg{margin-right:-4px}.light-expand-hint svg:last-child{margin-right:0}.light-power-btn{flex-shrink:0;margin-left:auto}.light-power-btn.climate-power-btn{width:30px;height:30px;font-size:.9rem}.light-controls-wrapper{max-height:0;overflow:hidden;will-change:max-height;contain:layout style;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.light-expanded .light-controls-wrapper{max-height:150px}.light-controls{display:flex;flex-direction:column;gap:.6rem;padding-top:0;min-height:0;opacity:0;transform:translateZ(0);transition:opacity .35s cubic-bezier(.4,0,.2,1)}.light-expanded .light-controls{padding-top:.5rem;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1)}.light-slider-group{display:flex;flex-direction:column;gap:.25rem}.light-slider-labels{display:flex;justify-content:space-between;font-size:.55rem;font-weight:500;color:var(--text-tertiary);letter-spacing:.02em}.light-slider{touch-action:none;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;padding:2px 0}.light-slider-track{position:relative;height:20px;border-radius:10px;background:var(--ctrl-track);overflow:hidden;border:1px solid var(--ctrl-track);touch-action:none}.light-slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:10px;transition:width .15s ease;will-change:width}.light-bri-fill{background:linear-gradient(90deg,#fbbf244d,#fbbf24cc)}.light-ct-track{background:linear-gradient(90deg,#78b4ff26,#ffdc9626,#ffaa5026)}.light-ct-fill{background:linear-gradient(90deg,#78b4ff99,#ffdc9699,#ffaa50b3)}.light-hue-track{background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-color:#ffffff1a}.light-hue-fill{background:transparent}.light-hue-thumb{width:12px;border-radius:6px;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 8px #0009,0 0 12px currentColor;top:-1px;bottom:-1px}.light-slider-thumb{position:absolute;top:1px;bottom:1px;transform:translate(-50%);width:5px;border-radius:2.5px;background:var(--ctrl-thumb);box-shadow:0 0 4px #0000004d;transition:left .15s ease;will-change:left;z-index:1}.light-slider:active~*{pointer-events:none}.light-card:has(.light-slider:active){transform:none!important}.light-card.light-expanded{grid-column:span 2;order:-1}[data-theme=light] .light-icon-circle{background:#0000000d;border:1px solid rgba(0,0,0,.08)}.climate-card{display:flex;flex-direction:column;align-items:stretch;padding:.9rem 1rem;gap:0;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.climate-card:active{transform:scale(.96)}.climate-card.climate-on.climate-heating{background:#f9731612;border-color:#f973162e}.climate-card.climate-on.climate-cooling{background:#3b82f612;border-color:#3b82f62e}.climate-card.climate-on{background:#9ca3af12;border-color:#9ca3af2e}.climate-main-row{display:flex;align-items:center;gap:.65rem}.climate-icon-circle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:20%;background:#ffffff14;border:1px solid rgba(255,255,255,.1);flex-shrink:0;font-size:1.1rem;line-height:1;transition:background .2s ease,border-color .2s ease,filter .2s ease}.climate-heating .climate-icon-circle{background:#f9731626;border-color:#f9731640;filter:drop-shadow(0 0 6px rgba(249,115,22,.3))}.climate-cooling .climate-icon-circle{background:#3b82f626;border-color:#3b82f640;filter:drop-shadow(0 0 6px rgba(59,130,246,.3))}.climate-text{display:flex;flex-direction:column;gap:.1rem;text-align:left;min-width:0}.climate-card-name{font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);line-height:1.25}.climate-card-state{font-size:.62rem;font-weight:500;color:var(--text-tertiary)}.climate-heating .climate-card-state{color:#f97316b3}.climate-cooling .climate-card-state{color:#60a5fab3}.climate-target-badge{margin-left:auto;flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;align-self:flex-start;padding-top:.1rem}.climate-heating .climate-target-badge{color:#f97316bf}.climate-cooling .climate-target-badge{color:#60a5fabf}.climate-power-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--ctrl-border-strong);background:var(--ctrl-bg);color:var(--text-tertiary);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.climate-power-btn.on{background:#3b82f633;border-color:#3b82f666;color:#3b9eff;box-shadow:0 0 12px #3b82f633}.climate-power-inline{flex-shrink:0;margin-left:.4rem;width:30px;height:30px;font-size:.9rem}.climate-divider{display:block;width:100%;height:1px;background:var(--border-card);margin:.45rem 0 .3rem;flex-shrink:0}.climate-bottom-row{display:flex;align-items:center;justify-content:space-between}.climate-last-changed{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:.8}.climate-expand-hint{font-size:.58rem;font-weight:500;color:var(--text-tertiary);opacity:.6;white-space:nowrap;display:flex;align-items:center;gap:-2px}.climate-expand-hint svg{margin-right:-4px}.climate-expand-hint svg:last-child{margin-right:0}.climate-controls-wrapper{max-height:0;overflow:hidden;will-change:max-height;contain:layout style;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.climate-expanded .climate-controls-wrapper{max-height:180px}.climate-controls-inner{display:flex;flex-direction:column;gap:.6rem;padding-top:0;min-height:0;opacity:0;transform:translateZ(0);transition:opacity .35s cubic-bezier(.4,0,.2,1)}.climate-expanded .climate-controls-inner{padding-top:.5rem;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1)}.climate-slider-group{display:flex;flex-direction:column;gap:.25rem}.climate-slider-labels-new{display:flex;justify-content:space-between;font-size:.55rem;font-weight:500;color:var(--text-tertiary);letter-spacing:.02em}.climate-slider-new{touch-action:none;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;padding:2px 0}.climate-slider-track-new{position:relative;height:20px;border-radius:10px;background:var(--ctrl-track);overflow:hidden;border:1px solid var(--ctrl-track);touch-action:none}.climate-slider-fill-new{position:absolute;top:0;left:0;height:100%;border-radius:10px;transition:width .15s ease;will-change:width}.climate-slider-thumb-new{position:absolute;top:1px;bottom:1px;transform:translate(-50%);width:5px;border-radius:2.5px;background:var(--ctrl-thumb);box-shadow:0 0 4px #0000004d;transition:left .15s ease;will-change:left;z-index:1}.climate-slider-new:active~*{pointer-events:none}.climate-card:has(.climate-slider-new:active){transform:none!important}.climate-mode-row{display:flex;gap:.45rem}.climate-mode-btn-new{flex:1;display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.35rem .5rem;border-radius:10px;border:1px solid var(--ctrl-border);background:var(--ctrl-bg);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.climate-mode-btn-new.active{background:var(--ctrl-bg-active);border-color:var(--ctrl-border-active);color:var(--text-primary);box-shadow:0 0 8px #ffffff0d}.climate-mode-btn-new:active{transform:scale(.95)}.climate-mode-icon-new{font-size:.85rem;line-height:1}.climate-mode-label-new{font-size:.6rem;font-weight:600;letter-spacing:.03em}.climate-card.climate-expanded{grid-column:span 2}.climate-mode-anim{display:inline-block;line-height:1}@keyframes climate-flame-flicker{0%,to{transform:scale(1) rotate(0)}15%{transform:scale(1.12) rotate(-3deg)}30%{transform:scale(.95) rotate(2deg)}50%{transform:scale(1.08) rotate(-2deg)}70%{transform:scale(.97) rotate(1deg)}85%{transform:scale(1.05) rotate(-1deg)}}.climate-anim-heat{animation:climate-flame-flicker 1.8s ease-in-out infinite;transform-origin:center bottom}@keyframes climate-snow-drift{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.climate-anim-cool{animation:climate-snow-drift 4s linear infinite}@keyframes climate-fan-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.climate-anim-fan_only{animation:climate-fan-spin 2s linear infinite}.glass-card.weather-card{padding:.25rem 1.15rem .7rem}.weather-main{display:flex;align-items:center;justify-content:space-between}.weather-left{display:flex;flex-direction:column;gap:.3rem}.weather-temp{font-size:2.4rem;font-weight:400;color:var(--text-secondary);line-height:1}.weather-temp-decimal{font-size:1.5rem;color:var(--text-secondary);font-weight:400}.weather-temp-unit{font-size:.9rem;color:var(--text-secondary);font-weight:400;vertical-align:top;position:relative;top:.15em}.weather-humidity-badge{vertical-align:top;position:relative;top:.15em;margin-left:.5rem;display:inline-block}.weather-condition{font-size:.8rem;color:var(--text-secondary);text-transform:capitalize}.weather-sun-times{display:flex;gap:1rem;font-size:.7rem;font-weight:600;letter-spacing:.03em;color:var(--text-secondary);margin-top:.25rem}.weather-icon{display:flex;align-items:center;justify-content:center}.weather-icon-svg{width:94px;height:94px}.weather-details{display:flex;align-items:center;gap:1rem;margin-top:.9rem;padding-top:.7rem;border-top:1px solid var(--border-card)}.weather-detail{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem}.weather-detail-label{font-size:.6rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.weather-detail-value{font-size:.9rem;font-weight:600}.aqi-wrapper{display:flex;flex-direction:column;align-items:center;gap:.1rem;flex-shrink:0;margin-left:auto}.aqi-badge{padding:4px 12px;border:1px solid;border-radius:12px;font-size:.7rem;font-weight:600;letter-spacing:.03em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}.sensor-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem}.sensor-card-header{display:flex;justify-content:space-between;align-items:center}.sensor-card-label{font-size:.68rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.sensor-card-icon{font-size:1.1rem;line-height:1}.sensor-card-value{font-size:1.5rem;font-weight:700;line-height:1}.sensor-card-unit{font-size:.7rem;color:var(--text-secondary);font-weight:400;margin-left:.15rem}.media-card{display:flex;flex-direction:column;padding:0;gap:0;overflow:hidden;position:relative}.mpc-main-content{opacity:1;transition:opacity .1s ease-out}.mpc-main-hidden{opacity:0;pointer-events:none}.mpc-selector{display:flex;gap:.35rem;padding:.75rem .85rem 0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mpc-selector::-webkit-scrollbar{display:none}.mpc-pill{display:flex;align-items:center;gap:.3rem;padding:.32rem .65rem;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-secondary);font-size:.62rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .2s ease;flex-shrink:0}.mpc-pill:active{transform:scale(.95)}.mpc-pill-selected{background:#6366f126;border-color:#6366f14d;color:var(--text-primary)}.mpc-pill-active .mpc-pill-label{color:#6366f1e6}.mpc-pill-icon{font-size:.8rem;line-height:1}.mpc-pill-label{line-height:1}.mpc-player{display:flex;flex-direction:column;padding:.15rem .05rem;gap:.7rem}.mpc-active-player{display:flex;align-items:center;gap:.3rem;font-size:.55rem;font-weight:600;color:#f59e0bd9;letter-spacing:.02em}.mpc-active-player-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.1em;padding:.05rem .3rem;border-radius:999px;background:#f59e0b26;color:#f59e0be6;font-size:.5rem;font-weight:700;line-height:1.2}.mpc-player-row{display:flex;gap:.75rem;align-items:flex-start;width:100%}.mpc-player-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.45rem;justify-content:center;align-items:center;text-align:center}.mpc-artwork-wrap{position:relative!important;width:100px!important;height:100px!important;flex-shrink:0!important;border-radius:14px!important;overflow:hidden!important;background:transparent!important;box-shadow:inset 0 1px #ffffff1f,0 2px 8px #00000040!important;border:1px solid rgba(255,255,255,.08)!important;line-height:0!important;padding:0!important;margin:0!important}.mpc-artwork{position:absolute!important;top:-4px!important;left:-4px!important;width:calc(100% + 8px)!important;height:calc(100% + 8px)!important;object-fit:cover!important;object-position:center!important;display:block!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important}.mpc-artwork-glass{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;border-radius:0!important;pointer-events:none!important;z-index:1!important}.mpc-artwork-placeholder{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;background:#ffffff1f!important;border-radius:0!important}.mpc-track{display:flex;flex-direction:column;gap:.1rem;width:100%;overflow:hidden}.mpc-track-title{display:block;font-size:.82rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;max-width:100%}.mpc-track-artist{display:block;font-size:.65rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;max-width:100%}@keyframes mpc-marquee{0%{transform:translate(0)}10%{transform:translate(0)}90%{transform:translate(var(--mpc-scroll-dist))}to{transform:translate(var(--mpc-scroll-dist))}}.mpc-track-title>.mpc-marquee,.mpc-track-artist>.mpc-marquee{display:inline-block;animation:mpc-marquee var(--mpc-scroll-dur, 6s) linear infinite alternate}.mpc-progress{display:flex;align-items:center;gap:.4rem;width:100%}.mpc-progress-time{font-size:.52rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:2rem}.mpc-progress-time:last-child{text-align:right}.mpc-progress-bar{flex:1;height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden}.mpc-progress-fill{height:100%;background:linear-gradient(135deg,#f59e0bcc,#fbbf2499);border-radius:2px;transition:width 1s linear}.mpc-transport{display:flex;align-items:center;justify-content:center;gap:.8rem;align-self:center}.mpc-transport-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.25rem;border-radius:50%;transition:background .15s ease,transform .15s ease}.mpc-transport-btn:active{transform:scale(.88)}.mpc-transport-play{background:#6366f12e;border:1px solid rgba(99,102,241,.3);padding:.55rem}.mpc-transport-sm{color:var(--text-tertiary)}.mpc-transport-active{color:#6366f1e6}.mpc-power-off{background:#ff3c3c1a;border-color:#ff3c3c40;color:#ff3c3ccc}.mpc-volume{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:100%}.mpc-vol-icon-row{display:flex;justify-content:space-between;width:100%}.mpc-vol-icon{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0;flex-shrink:0}.mpc-vol-track{width:100%;height:6px;background:#ffffff1a;border-radius:3px;position:relative;cursor:pointer;touch-action:none}.mpc-vol-fill{height:100%;background:linear-gradient(90deg,#f59e0b66,#fbbf24cc);border-radius:3px;pointer-events:none}.mpc-vol-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,#f59e0be6,#fbbf24);border:2px solid rgba(255,255,255,.85);transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 6px #f59e0b66}.mpc-vol-pct{font-size:.55rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums;min-width:2rem;text-align:right;flex-shrink:0}.mpc-separator{width:100%;height:1px;margin-top:.3rem;background:var(--border-card, rgba(255,255,255,.08))}.mpc-footer{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%}.mpc-footer-btn{display:flex;align-items:center;justify-content:center;gap:.25rem;flex:1;padding:.35rem 0;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-secondary);font-size:.55rem;font-weight:600;cursor:pointer;transition:all .2s ease}.mpc-footer-btn:active{transform:scale(.95)}.mpc-footer-btn:hover{background:#ffffff14;border-color:#ffffff24}.vol-list{flex:1;overflow-y:auto;padding:.4rem 0;display:flex;flex-direction:column;gap:0;-webkit-overflow-scrolling:touch}.vol-row{display:flex;flex-direction:column;gap:.35rem;padding:.55rem 1.1rem}.vol-row:not(:last-child){border-bottom:1px solid rgba(255,255,255,.04)}.vol-row-header{display:flex;align-items:center;gap:.35rem;color:var(--text-primary);font-size:.65rem;font-weight:600}.vol-row-header svg{color:var(--text-secondary)}.vol-row-name{flex:1}.vol-row-pct{font-size:.55rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.vol-row .mpc-vol-track{height:20px;border-radius:10px;background:var(--ctrl-track, rgba(255,255,255,.06));border:1px solid var(--ctrl-track, rgba(255,255,255,.06));overflow:hidden}.vol-row .mpc-vol-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,#f59e0b4d,#fbbf24cc);transition:width .15s ease;will-change:width}.vol-row .mpc-vol-thumb{width:5px;height:calc(100% - 2px);top:1px;border-radius:2.5px;background:var(--ctrl-thumb, rgba(255,255,255,.9));border:none;box-shadow:0 0 4px #0000004d;transform:translate(-50%);transition:left .15s ease;will-change:left}.pp-list{flex:1;overflow-y:auto;padding:.4rem 0;-webkit-overflow-scrolling:touch}.pp-row{display:flex;align-items:center;gap:.7rem;width:100%;padding:.65rem .85rem;background:none;border:none;color:var(--text-primary);cursor:pointer;transition:background .15s ease;text-align:left}.pp-row:active{background:#ffffff0a}.pp-row-selected{background:#6366f112}.pp-row-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#ffffff0f;color:var(--text-secondary);font-size:1rem;flex-shrink:0}.pp-row-selected .pp-row-icon{background:#6366f11f;color:#6366f1e6}.pp-row-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.pp-row-name{font-size:.7rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-row-status{font-size:.55rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-row-status-active{color:#6366f1cc}.pp-row-primary{display:inline-block;margin-left:.35rem;padding:.1rem .4rem;border-radius:999px;background:#6366f11f;color:#6366f1d9;font-size:.45rem;font-weight:700;vertical-align:middle;letter-spacing:.02em}.pp-done-btn{display:flex;align-items:center;gap:.25rem;padding:.3rem .7rem;border-radius:999px;border:1px solid rgba(99,102,241,.25);background:#6366f11f;color:#6366f1e6;font-size:.58rem;font-weight:700;cursor:pointer;transition:all .2s ease;flex-shrink:0}.pp-done-btn:active{transform:scale(.95)}.pp-done-btn:hover{background:#6366f12e;border-color:#6366f166}.mbr-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;background:var(--bg-card, rgba(255, 255, 255, .04));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:inherit;overflow:hidden;animation:overlay-fade-in .15s ease-out}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.mbr-header{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.mbr-back{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.2rem;border-radius:50%;flex-shrink:0}.mbr-back:active{transform:scale(.88)}.mbr-title{font-size:.72rem;font-weight:700;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbr-header-actions{display:flex;gap:.25rem;flex-shrink:0}.mbr-icon-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:50%}.mbr-icon-btn:active{transform:scale(.88)}.mbr-search-input{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary);font-size:.65rem;padding:.35rem .6rem;outline:none}.mbr-search-input::placeholder{color:var(--text-tertiary)}.mbr-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:.4rem 0;-webkit-overflow-scrolling:touch}.mbr-loading{display:flex;align-items:center;justify-content:center;padding:2.5rem}@keyframes mbr-spin{to{transform:rotate(360deg)}}.mbr-spinner{width:22px;height:22px;border:2px solid rgba(255,255,255,.1);border-top-color:#6366f1b3;border-radius:50%;animation:mbr-spin .7s linear infinite}.mbr-error,.mbr-empty{text-align:center;padding:2rem 1rem;font-size:.65rem;color:var(--text-tertiary)}.mbr-error{color:var(--accent-red, #ef4444)}.mbr-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .75rem;cursor:pointer;transition:background .15s ease}.mbr-item:active{background:#ffffff0a}.mbr-item-thumb{width:40px;height:40px;border-radius:6px;overflow:hidden;flex-shrink:0;background:#ffffff0d;display:flex;align-items:center;justify-content:center}.mbr-item-img{width:100%;height:100%;object-fit:cover}.mbr-item-icon{color:var(--text-tertiary)}.mbr-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.mbr-item-title{font-size:.68rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbr-item-class{font-size:.52rem;font-weight:500;color:var(--text-tertiary);text-transform:capitalize}.mbr-item-play{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#6366f126;border:1px solid rgba(99,102,241,.25);color:#6366f1e6;cursor:pointer;flex-shrink:0;transition:all .15s ease}.mbr-item-play:active{transform:scale(.88)}.mbr-item-chevron{font-size:1rem;color:var(--text-tertiary);flex-shrink:0;line-height:1}.tv-card{display:flex;flex-direction:column;padding:.65rem .75rem;gap:.4rem;cursor:pointer;position:relative;overflow:visible;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.tv-card:active{transform:scale(.97)}.tv-card.tv-on{background:#6366f10f;border-color:#6366f129}.tv-power-btn{position:absolute;top:.5rem;right:.55rem;width:28px;height:28px;font-size:.8rem;z-index:2}.tv-normal{display:flex;flex-direction:column;gap:.4rem;transition:opacity .2s ease}.tv-hidden{opacity:0;pointer-events:none}.tv-confirm{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;z-index:3;border-radius:inherit}.tv-confirm-label{font-size:.75rem;font-weight:600;color:var(--text-primary);letter-spacing:.02em}.tv-confirm-actions{display:flex;gap:.75rem}.tv-confirm-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.tv-confirm-btn:active{transform:scale(.88)}.tv-confirm-yes{background:#34d3992e;border:1px solid rgba(52,211,153,.35);color:#34d399}.tv-confirm-no{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#ef4444}.tv-top-row{display:flex;align-items:center;gap:.5rem;min-width:0}.tv-icon-area{flex-shrink:0}.tv-icon-circle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;font-size:1.1rem}.tv-svg-icon{width:87%;margin-top:-8%}.tv-text{display:flex;flex-direction:column;gap:.05rem;min-width:0;flex:1}.tv-card-name{font-size:.72rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);line-height:1.25}.tv-card-state{font-size:.55rem;font-weight:500;color:var(--text-tertiary);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-divider{display:block;width:100%;height:1px;background:var(--border-card, rgba(255,255,255,.08))}.tv-bottom-row{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-height:1.1rem}.tv-volume{display:flex;align-items:center;gap:.2rem;color:var(--text-secondary);cursor:pointer;font-size:.55rem}.tv-volume-pct{font-variant-numeric:tabular-nums}.tv-channel-capsule{background:#6366f12e;border:1px solid rgba(99,102,241,.3);color:var(--text-primary);font-size:.48rem;font-weight:600;padding:.12rem .4rem;border-radius:10px;white-space:nowrap;max-width:5.5rem;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em}.tv-last-changed{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:.8;margin-right:auto}.tv-list{display:flex;flex-direction:column;gap:.5rem}.tv-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.tv-grid>*{min-width:0;overflow:hidden}.tvr-container{display:flex;flex-direction:column;gap:1rem;padding:.25rem 0}.tvr-app-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 1rem;border-radius:16px;background:var(--ctrl-bg, rgba(255,255,255,.06));border:1px solid var(--ctrl-border-strong, rgba(255,255,255,.12))}.tvr-app-icon{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.tvr-app-name{font-size:1rem;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.tvr-status{display:flex;align-items:center;gap:.5rem;padding:0 .25rem}.tvr-state-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0;transition:background .3s ease}.tvr-state-dot.tvr-on{background:var(--accent-green, #34d399);box-shadow:0 0 6px #34d39980}.tvr-name{font-size:.75rem;font-weight:600;color:var(--text-primary)}.tvr-channel{margin-left:auto;font-size:.55rem;font-weight:500;color:var(--text-secondary);background:#6366f11f;border:1px solid rgba(99,102,241,.25);padding:.12rem .5rem;border-radius:10px;white-space:nowrap;max-width:10rem;overflow:hidden;text-overflow:ellipsis}.tvr-body{display:flex;gap:1rem;align-items:stretch;justify-content:center}.tvr-grid{display:flex;flex-direction:column;gap:.5rem}.tvr-row{display:flex;gap:1.6rem}.tvr-btn{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--ctrl-border-strong, rgba(255,255,255,.12));background:var(--ctrl-bg, rgba(255,255,255,.06));color:var(--text-primary);cursor:pointer;transition:background .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.tvr-btn:active{transform:scale(.93);background:#6366f126}.tvr-btn-inert{opacity:.25;cursor:default;background:transparent;border-color:transparent}.tvr-btn-inert:active{transform:none;background:transparent}.tvr-btn-ok{background:#6366f11f;border-color:#6366f14d;font-weight:700;font-size:.7rem;letter-spacing:.05em}.tvr-btn-ok:active{background:#6366f140}.tvr-spacer{width:52px;height:52px}.tvr-btn-emoji{font-size:1.1rem}.tvr-btn-label{font-size:.7rem;font-weight:600;letter-spacing:.03em}.tvr-divider{width:60%;height:1px;background:var(--border-card, rgba(255,255,255,.08));margin:.35rem auto}.tvr-apps{display:flex;flex-direction:column;justify-content:center;gap:.4rem;flex-shrink:0}.tvr-app-shortcut{display:flex;flex-direction:row;align-items:center;gap:6px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--ctrl-border-strong, rgba(255,255,255,.12));background:var(--ctrl-bg, rgba(255,255,255,.06));cursor:pointer;transition:background .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.tvr-app-shortcut:active{transform:scale(.95);background:#6366f126}.tvr-app-shortcut-circle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tvr-app-shortcut-icon{width:14px;height:14px;object-fit:contain}.tvr-app-shortcut-label{font-size:.65rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.25rem 0}.quick-actions::-webkit-scrollbar{display:none}.quick-action-btn{position:relative;display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.quick-action-btn:active{transform:scale(.96)}.quick-action-btn.active{background:#3b82f61a;border-color:#3b82f640}.quick-action-btn.warning{background:#f59e0b1a;border-color:#f59e0b40}.quick-action-btn.active svg{color:#3b9eff}.quick-action-btn.warning svg{color:#f59e0b}.quick-action-btn svg{flex-shrink:0;color:var(--glass-icon-dim);transition:color .2s ease,filter .2s ease}.qa-text{display:flex;flex-direction:column;gap:.1rem;text-align:left}.qa-label{font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;color:var(--text-primary)}.qa-state{font-size:.62rem;font-weight:500;color:var(--text-tertiary)}.quick-action-btn.active .qa-state{color:#3b82f6b3}.quick-action-btn.warning .qa-state{color:#f59e0bb3}.qa-divider{display:block;width:100%;height:1px;background:var(--border-card);margin:.45rem 0 .3rem;flex-shrink:0}.qa-last-changed{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:.8}.qa-battery{position:absolute;top:6px;right:8px;display:flex;align-items:center;gap:3px;font-size:.8rem;font-weight:600;opacity:.85;pointer-events:none;line-height:1}.qa-battery svg{width:18px;height:18px}.qa-battery svg.qa-signal-bars{width:18px;height:10px}.qa-battery.qa-battery-critical{background:#ef44441f;border:1px solid rgba(239,68,68,.25);border-radius:6px;padding:3px 5px;top:4px;right:6px;animation:qaBatteryCriticalBlink 1.5s ease-in-out infinite}@keyframes qaBatteryCriticalBlink{0%,to{opacity:.85;background:#ef44441f}50%{opacity:1;background:#ef444440}}.qa-normal{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;transition:opacity .2s ease}.qa-normal.qa-hidden{opacity:0;pointer-events:none;position:absolute}.qa-main-row{display:flex;align-items:center;gap:.65rem}.qa-icon-circle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.1);flex-shrink:0;color:var(--glass-icon-dim);transition:background .2s ease,color .2s ease,border-color .2s ease}.quick-action-btn.active .qa-icon-circle{background:#3b82f626;border-color:#3b82f640;color:#3b9eff;filter:drop-shadow(0 0 6px rgba(59,130,246,.3))}.quick-action-btn.warning .qa-icon-circle{background:#f59e0b26;border-color:#f59e0b40;color:#f59e0b;filter:drop-shadow(0 0 6px rgba(245,158,11,.3))}[data-theme=light] .qa-icon-circle{background:#0000000d;border:1px solid rgba(0,0,0,.08)}.qa-confirm{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem;animation:qaFadeIn .15s ease}.qa-confirm-label{font-size:.78rem;font-weight:600;color:var(--text-primary)}.qa-confirm-actions{display:flex;gap:.5rem}.qa-confirm-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;cursor:pointer;transition:transform .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.qa-confirm-btn:active{transform:scale(.88)}.qa-confirm-yes{background:#22c55e33;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.qa-confirm-no{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.25)}@keyframes qaFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.room-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.room-card{position:relative;display:flex;flex-direction:column;align-items:stretch;padding:.9rem 1rem;background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-card:active{transform:scale(.96)}.room-card.room-active{background:#3b82f61a;border-color:#3b82f640}.room-main-row{display:flex;align-items:center;gap:.65rem}.room-card-header{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.room-icon-circle{width:36px;height:36px;border-radius:20%;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:var(--glass-icon-dim);flex-shrink:0;transition:background .2s ease,color .2s ease,border-color .2s ease}.room-card.room-active .room-icon-circle{background:#3b82f626;border-color:#3b82f640;color:#3b9eff;filter:drop-shadow(0 0 6px rgba(59,130,246,.3))}.room-active-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:#3b9eff;box-shadow:0 0 6px #3b82f699}.room-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.room-name{font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.room-stats{display:flex;align-items:center;gap:.4rem;color:var(--text-tertiary)}.room-stat{display:flex;align-items:center;gap:1px;font-size:.55rem;font-weight:500}.room-stat svg{color:var(--glass-icon-dim)}.room-divider{display:block;width:100%;height:1px;background:var(--border-card);margin:.45rem 0 .3rem;flex-shrink:0}.room-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:.3rem}.room-active-label{font-size:.62rem;font-weight:500;color:#3b82f6b3}.room-active-label.room-active-hidden{visibility:hidden}.room-bottom-row .room-env-capsule .climate-badge{padding:2px 6px;font-size:.55rem;background:none;border:none;border-color:transparent}.room-bottom-row .room-env-icon{font-size:.45rem}[data-theme=light] .room-icon-circle{background:#0000000d;border:1px solid rgba(0,0,0,.08)}[data-theme=light] .room-card.room-active .room-icon-circle{background:#3b82f61a}.cover-card{position:relative;display:flex;flex-direction:column;align-items:stretch;padding:.9rem 1rem;gap:0;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.cover-card:active{transform:scale(.96)}.cover-card.cover-open{background:#3b82f612;border-color:#3b82f62e}@keyframes cover-pulse{0%,to{opacity:1}50%{opacity:.6}}.cover-card.cover-moving .cover-icon-circle,.cover-card.cover-moving .cover-card-state{animation:cover-pulse 1.5s ease-in-out infinite}.cover-main-row{display:flex;align-items:center;gap:.65rem}.cover-icon-circle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:20%;background:#ffffff14;border:1px solid rgba(255,255,255,.1);flex-shrink:0;line-height:1;color:var(--glass-icon-dim);transition:background .2s ease,border-color .2s ease,filter .2s ease,color .2s ease}.cover-open .cover-icon-circle{background:#3b82f626;border-color:#3b82f640;color:#3b9eff;filter:drop-shadow(0 0 6px rgba(59,130,246,.3))}.cover-text{display:flex;flex-direction:column;gap:.1rem;text-align:left;min-width:0}.cover-card-name{font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);line-height:1.25}.cover-card-state{font-size:.62rem;font-weight:500;color:var(--text-tertiary)}.cover-open .cover-card-state{color:#3b82f6b3}.cover-power-btn{flex-shrink:0;margin-left:auto;width:30px;height:30px;font-size:.9rem}.cover-divider{display:block;width:100%;height:1px;background:var(--border-card);margin:.45rem 0 .3rem;flex-shrink:0}.cover-bottom-row{display:flex;align-items:center;justify-content:space-between}.cover-last-changed{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:.8}.cover-expand-hint{font-size:.58rem;font-weight:500;color:var(--text-tertiary);opacity:.6;white-space:nowrap;display:flex;align-items:center;gap:0}.cover-expand-hint svg{margin-right:-4px}.cover-expand-hint svg:last-child{margin-right:0}.cover-controls-wrapper{max-height:0;overflow:hidden;will-change:max-height;contain:layout style;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.cover-expanded .cover-controls-wrapper{max-height:100px}.cover-controls{display:flex;flex-direction:column;gap:.6rem;padding-top:0;min-height:0;opacity:0;transform:translateZ(0);transition:opacity .35s cubic-bezier(.4,0,.2,1)}.cover-expanded .cover-controls{padding-top:.5rem;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1)}.cover-slider-group{display:flex;flex-direction:column;gap:.25rem}.cover-slider-labels{display:flex;justify-content:space-between;font-size:.55rem;font-weight:500;color:var(--text-tertiary);letter-spacing:.02em}.cover-slider{touch-action:none;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;padding:2px 0}.cover-slider-track{position:relative;height:20px;border-radius:10px;background:var(--ctrl-track);overflow:hidden;border:1px solid var(--ctrl-track);touch-action:none}.cover-slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:10px;background:linear-gradient(90deg,#3b82f64d,#3b82f6cc);transition:width .15s ease;will-change:width}.cover-slider-thumb{position:absolute;top:1px;bottom:1px;transform:translate(-50%);width:5px;border-radius:2.5px;background:var(--ctrl-thumb);box-shadow:0 0 4px #0000004d;transition:left .15s ease;will-change:left;z-index:1}.cover-slider:active~*{pointer-events:none}.cover-card:has(.cover-slider:active){transform:none!important}.cover-card.cover-expanded{grid-column:span 2}[data-theme=light] .cover-icon-circle{background:#0000000d;border:1px solid rgba(0,0,0,.08)}.fan-card{display:flex;flex-direction:column;align-items:stretch;padding:.9rem 1rem;gap:0;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}.fan-card:active{transform:scale(.96)}.fan-card.fan-on{background:#22c55e12;border-color:#22c55e2e}.fan-main-row{display:flex;align-items:center;gap:.65rem}.fan-icon-circle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:20%;background:#ffffff14;border:1px solid rgba(255,255,255,.1);flex-shrink:0;color:var(--glass-icon-dim);transition:background .2s ease,border-color .2s ease,filter .2s ease,color .2s ease}.fan-on .fan-icon-circle{background:#22c55e26;border-color:#22c55e40;color:#22c55e;filter:drop-shadow(0 0 6px rgba(34,197,94,.3))}.tesla-fan{will-change:transform;transform-origin:center}.tesla-fan-active{color:#5daeea;transition:color .3s ease}.tesla-fan-idle{color:#9ca2a5;transition:color .3s ease}.fan-text{display:flex;flex-direction:column;gap:.1rem;text-align:left;min-width:0}.fan-card-name{font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary);line-height:1.25}.fan-on .fan-card-name{color:var(--text-primary)}.fan-card-state{font-size:.62rem;font-weight:500;color:var(--text-tertiary)}.fan-on .fan-card-state{color:#22c55eb3}.fan-power-btn{flex-shrink:0;margin-left:auto}.fan-power-btn.climate-power-btn{width:30px;height:30px;font-size:.9rem}.fan-divider{display:block;width:100%;height:1px;background:var(--border-card);margin:.45rem 0 .3rem;flex-shrink:0}.fan-bottom-row{display:flex;align-items:center;justify-content:space-between}.fan-last-changed{display:flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:.8}.fan-expand-hint{font-size:.58rem;font-weight:500;color:var(--text-tertiary);opacity:.6;white-space:nowrap;display:flex;align-items:center;gap:-2px}.fan-expand-hint svg{margin-right:-4px}.fan-expand-hint svg:last-child{margin-right:0}.fan-controls-wrapper{max-height:0;overflow:hidden;will-change:max-height;contain:layout style;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.fan-expanded .fan-controls-wrapper{max-height:100px}.fan-controls{display:flex;flex-direction:column;gap:.6rem;padding-top:0;min-height:0;opacity:0;transform:translateZ(0);transition:opacity .35s cubic-bezier(.4,0,.2,1)}.fan-expanded .fan-controls{padding-top:.5rem;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1)}.fan-speed-fill{background:linear-gradient(90deg,#22c55e4d,#22c55ecc)}.fan-card:has(.light-slider:active){transform:none!important}.fan-card.fan-expanded{grid-column:span 2}.fan-card-dot{display:none}.room-detail{display:flex;flex-direction:column;gap:1rem}.room-env-capsule{display:flex;align-items:stretch}.room-env-capsule .climate-badge{display:flex;align-items:center;gap:3px;padding:3px 10px;font-size:.65rem;font-weight:600;color:var(--text-primary);line-height:1.4}.room-env-icon{font-size:.56rem;line-height:1}.room-env-left{border-radius:10px 0 0 10px;border-right:none;background:#ff6b351f;border-color:#ff6b354d}.room-env-right{border-radius:0 10px 10px 0;background:#38bdf81f;border-color:#38bdf84d}.room-env-solo{border-radius:10px}.room-detail-section{display:flex;flex-direction:column;gap:.5rem}.room-detail-section-title{font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0}.room-detail-grid{display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr)}.room-detail-grid.three-col{grid-template-columns:repeat(3,1fr)}.dishwasher-card{display:flex;flex-direction:column;padding:.9rem 1rem;gap:.55rem;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent;grid-column:1 / -1}.dishwasher-card:active{transform:scale(.97)}.dishwasher-card.dishwasher-running{background:#3b82f612;border-color:#3b82f62e}.dishwasher-card.dishwasher-clean{background:#22c55e12;border-color:#22c55e2e}.dishwasher-top-bar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.6rem}.dishwasher-name-row{display:flex;align-items:center;gap:.4rem}.dishwasher-name-icon{font-size:1.1rem;flex-shrink:0;line-height:1;width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;border-radius:.4rem;background:#3b82f62e;border:1px solid rgba(59,130,246,.28);box-shadow:0 0 8px #3b82f61f}.dishwasher-name-block{display:flex;flex-direction:column;gap:.05rem}.dishwasher-name-brand{font-size:.78rem;font-weight:700;color:var(--text-primary);line-height:1.2}.dishwasher-name-model{font-size:.62rem;font-weight:500;color:var(--text-tertiary);line-height:1.2}.dishwasher-badges{display:flex;gap:.35rem;flex-shrink:0}.dishwasher-badge{font-size:.6rem;font-weight:600;padding:.15rem .4rem;border-radius:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);white-space:nowrap}.dishwasher-badge-door{color:#fbbf24e6;border-color:#fbbf2433;background:#fbbf2414}.dishwasher-badge-clean{color:#4ade80e6;border-color:#22c55e33;background:#22c55e14}.dishwasher-badge-alert{color:#fb923ce6;border-color:#f9731633;background:#f9731614}.dishwasher-icon-large{width:5.4rem;height:5.4rem;display:flex;align-items:center;justify-content:center;border-radius:.75rem;background:#3b82f60f;border:2px solid rgba(59,130,246,.18);color:#60a5fae6;box-shadow:0 0 16px #3b82f61a;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.dishwasher-running .dishwasher-icon-large{position:relative;overflow:visible;background:#22c55e14;border-color:#22c55e38;color:#4ade80f2;animation:dishwasher-wash-shake 1.6s ease-in-out infinite,dishwasher-active-pulse 2s ease-in-out infinite}.dishwasher-running .dishwasher-icon-large:before{content:none}@keyframes dishwasher-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dishwasher-wash-shake{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-1.5px,.5px) rotate(-.4deg)}20%{transform:translate(1.5px,-.5px) rotate(.4deg)}30%{transform:translate(-1px,1px) rotate(-.3deg)}40%{transform:translate(1px,-1px) rotate(.3deg)}50%{transform:translate(-2px,.5px) rotate(-.5deg)}60%{transform:translate(2px,-.5px) rotate(.5deg)}70%{transform:translate(-1px,1px) rotate(-.2deg)}80%{transform:translate(1px) rotate(.2deg)}90%{transform:translate(-.5px,-.5px) rotate(-.1deg)}}.dishwasher-clean .dishwasher-icon-large{background:#22c55e14;border-color:#22c55e38;color:#4ade80f2;box-shadow:0 0 16px #22c55e1a;animation:none}.dishwasher-icon-alert{background:#fb923c14!important;border-color:#fb923c38!important;color:#fb923cf2!important;box-shadow:0 0 16px #fb923c26!important;animation:dishwasher-icon-pulse 1.8s ease-in-out infinite!important}@keyframes dishwasher-active-pulse{0%{box-shadow:0 0 8px #22c55e26;border-color:#22c55e33}50%{box-shadow:0 0 28px #22c55e73;border-color:#22c55e8c}to{box-shadow:0 0 8px #22c55e26;border-color:#22c55e33}}@keyframes dishwasher-ring-ripple{0%{transform:scale(1);opacity:.75}70%{transform:scale(1.18);opacity:0}to{transform:scale(1.18);opacity:0}}@keyframes dishwasher-icon-pulse{0%,to{opacity:.75}50%{opacity:1}}.dishwasher-state-label{font-size:.85rem;font-weight:600;color:#60a5fae6;text-transform:capitalize;text-align:center;white-space:nowrap}.dishwasher-running .dishwasher-state-label{color:#4ade80f2}.dishwasher-remaining-label{display:inline-flex;align-items:center;gap:3px;font-size:.62rem;font-weight:500;color:#60a5faf2}.dishwasher-clean .dishwasher-state-label{color:#4ade80f2}.dishwasher-progress-section{display:flex;flex-direction:column;gap:.3rem;margin-top:-.5rem}.dishwasher-progress-header{display:flex;justify-content:flex-start;align-items:center}.dishwasher-progress-track{width:100%;height:3px;border-radius:2px;background:#ffffff0f;overflow:hidden}.dishwasher-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#3b82f680,#60a5fae6);width:40%;animation:dishwasher-progress-sweep 2.5s ease-in-out infinite}@keyframes dishwasher-progress-sweep{0%,to{transform:translate(-150%);opacity:.7}50%{transform:translate(250%);opacity:1}}.dishwasher-expanded-content{margin-top:.75rem;display:flex;flex-direction:column;gap:.6rem;animation:dishwasher-expand .2s ease-out}@keyframes dishwasher-expand{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dishwasher-settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.dishwasher-setting{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.45rem .3rem;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.dishwasher-setting-label{font-size:.55rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.dishwasher-setting-value{font-size:.72rem;font-weight:600;color:var(--text-primary)}.dishwasher-actions{display:flex;gap:.45rem}.dishwasher-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:.5rem 0;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a;color:var(--text-primary);font-size:.7rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.dishwasher-btn:active:not(:disabled){transform:scale(.95)}.dishwasher-btn:disabled{opacity:.3;pointer-events:none}.dishwasher-btn-start{background:#22c55e1a;border-color:#22c55e38;color:#4ade80f2}.dishwasher-btn-start:active{background:#22c55e33}.dishwasher-btn-pause{background:#fbbf241a;border-color:#fbbf2438;color:#fde047f2}.dishwasher-btn-pause:active{background:#fbbf2433}.dishwasher-btn-cancel{background:#ef44441a;border-color:#ef444438;color:#fc8181f2}.dishwasher-btn-cancel:active{background:#ef444433}.dishwasher-btn-confirm{animation:dishwasher-confirm-pulse .6s ease-in-out infinite alternate;border-style:dashed!important}@keyframes dishwasher-confirm-pulse{0%{opacity:.85}to{opacity:1}}.vacuum-card{display:flex;flex-direction:column;padding:.9rem 1rem;gap:.55rem;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent;grid-column:1 / -1}.vacuum-card:active{transform:scale(.97)}.vacuum-card.vacuum-active{background:#22c55e12;border-color:#22c55e2e}.vacuum-card.vacuum-docked{background:#3b82f60d;border-color:#3b82f61f}.vacuum-card.vacuum-paused{background:#fbbf240f;border-color:#fbbf2429}.vacuum-card.vacuum-error{background:#ef444412;border-color:#ef44442e}.vacuum-top-bar{display:flex;align-items:center;gap:.5rem;padding:0 0 .25rem}.vacuum-name-row{display:flex;align-items:center;gap:.4rem;flex:1}.vacuum-name-icon{font-size:1.1rem;flex-shrink:0;line-height:1;width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;border-radius:.4rem;background:#3b82f62e;border:1px solid rgba(59,130,246,.28);box-shadow:0 0 8px #3b82f61f}.vacuum-name-block{display:flex;flex-direction:column;min-width:0;flex:1;gap:.05rem}.vacuum-name-brand{font-size:.78rem;font-weight:700;color:var(--text-primary);line-height:1.2}.vacuum-name-model{font-size:.62rem;font-weight:500;color:var(--text-tertiary);line-height:1.2}.vacuum-capsules{display:flex;gap:0;flex-shrink:0}.vacuum-capsule{font-size:.56rem;font-weight:600;padding:.2rem .45rem;line-height:1.2;white-space:nowrap;border:1px solid var(--ctrl-border)}.vacuum-capsule:first-child{border-radius:8px 0 0 8px}.vacuum-capsule:last-child{border-radius:0 8px 8px 0}.vacuum-capsule:only-child{border-radius:8px}.vacuum-capsule+.vacuum-capsule{border-left:1px solid rgba(255,255,255,.15)}.vacuum-capsule-ok{background:#22c55e40;color:#dcfce7f2;border-color:#22c55e59}.vacuum-capsule-warn{background:#ef444440;color:#fee2e2f2;border-color:#ef444459}.vacuum-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;align-items:stretch}.vacuum-hero-left{display:flex;flex-direction:column;align-items:center;gap:.4rem}.vacuum-icon-actions{display:flex;gap:.3rem;width:100%;margin-top:auto}.vacuum-hero-right{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:.55rem}.vacuum-info-list{display:flex;flex-direction:column;width:100%;background:var(--ctrl-bg);border:1px solid var(--ctrl-border);border-radius:14px;overflow:hidden;gap:0}.vacuum-info-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem .6rem;cursor:default}.vacuum-info-row+.vacuum-info-row{border-top:1px solid var(--border-card)}.vacuum-info-row.vacuum-info-row-tap{cursor:pointer;-webkit-tap-highlight-color:transparent}.vacuum-info-row.vacuum-info-row-tap:active{opacity:.7}.vacuum-info-row-label{font-size:.68rem;font-weight:500;color:var(--text-secondary);line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vacuum-info-row-value{flex-shrink:0;font-size:.72rem;font-weight:600;color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums}.vacuum-battery-info{display:flex;flex-direction:row;align-items:center;gap:.25rem;flex-shrink:0;margin-left:auto}.vacuum-battery-pct{font-size:.78rem;font-weight:700;letter-spacing:-.02em;line-height:1}.vacuum-btn-map{background:#ffffff0a;border-color:#ffffff14;color:var(--text-secondary)}.vacuum-btn-map-active{background:#a855f71f;border-color:#a855f740;color:#c084fcf2}.vacuum-map-container{width:100%;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.06);background:#0003;animation:vacuum-expand .2s ease-out}.vacuum-map-image{width:100%;height:auto;display:block}.vacuum-map-placeholder{padding:2rem;text-align:center;font-size:.72rem;color:var(--text-tertiary);font-weight:500}.vacuum-error-badges{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:center}.vacuum-icon-large{width:6rem;height:6rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff0a;border:2px solid rgba(255,255,255,.06);color:var(--text-secondary);transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.vacuum-active .vacuum-icon-large{background:#22c55e14;border-color:#22c55e38;color:#4ade80f2;box-shadow:0 0 24px #22c55e2e;animation:vacuum-clean-move 2.8s ease-in-out infinite}.vacuum-docked .vacuum-icon-large{background:#3b82f60f;border-color:#3b82f62e;color:#60a5fae6;box-shadow:0 0 16px #3b82f61a}.vacuum-paused .vacuum-icon-large{background:#fbbf240f;border-color:#fbbf242e;color:#fde047e6;box-shadow:0 0 16px #fbbf241a}.vacuum-error .vacuum-icon-large{background:#ef444414;border-color:#ef444438;color:#fc8181e6;box-shadow:0 0 16px #ef444426;animation:vacuum-error-shake .6s ease-in-out infinite}.vacuum-charging .vacuum-icon-large{background:#f9731614;border-color:#f973164d;color:#fb923cf2;animation:vacuum-charge-pulse 2s ease-in-out infinite}@keyframes vacuum-clean-move{0%{transform:translate(0) rotate(0)}15%{transform:translate(6px,-4px) rotate(8deg)}30%{transform:translate(-4px,-6px) rotate(-5deg)}45%{transform:translate(-7px,2px) rotate(-10deg)}60%{transform:translate(3px,5px) rotate(6deg)}75%{transform:translate(5px,-2px) rotate(-3deg)}90%{transform:translate(-3px,3px) rotate(4deg)}to{transform:translate(0) rotate(0)}}@keyframes vacuum-error-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes vacuum-charge-pulse{0%{box-shadow:0 0 8px #f9731626;border-color:#f9731633}50%{box-shadow:0 0 28px #f9731673;border-color:#f973168c}to{box-shadow:0 0 8px #f9731626;border-color:#f9731633}}.vacuum-state-label{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:capitalize}.vacuum-active .vacuum-state-label{color:#4ade80f2}.vacuum-docked .vacuum-state-label{color:#60a5fae6}.vacuum-paused .vacuum-state-label{color:#fde047e6}.vacuum-error .vacuum-state-label{color:#fc8181e6}.vacuum-badge{font-size:.6rem;font-weight:600;padding:.15rem .4rem;border-radius:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);white-space:nowrap;display:inline-flex;align-items:center;gap:2px}.vacuum-badge-error{color:#fc8181e6;border-color:#ef444433;background:#ef444414}.vacuum-running-bar{display:flex;flex-direction:column;gap:.4rem}.vacuum-cycle-info{display:flex;justify-content:space-between;align-items:center}.vacuum-cycle-label{font-size:.7rem;color:var(--text-secondary);font-weight:500}.vacuum-progress-pct{font-size:.7rem;font-weight:700;color:#4ade80f2}.vacuum-progress-track{width:100%;height:3px;border-radius:2px;background:#ffffff0f;overflow:hidden}.vacuum-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#22c55e80,#4ade80cc);animation:vacuum-pulse 2.5s ease-in-out infinite;width:40%}@keyframes vacuum-pulse{0%,to{transform:translate(-10%);opacity:.7}50%{transform:translate(150%);opacity:1}}.vacuum-clean-stats{display:flex;gap:.6rem;margin-top:.15rem}.vacuum-clean-stat{font-size:.62rem;font-weight:600;color:var(--text-tertiary)}.vacuum-actions{display:flex;gap:.4rem}.vacuum-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:.45rem 0;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a;color:var(--text-primary);font-size:.65rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.vacuum-btn:active:not(:disabled){transform:scale(.95)}.vacuum-btn:disabled{opacity:.35;pointer-events:none}.vacuum-btn-start{background:#22c55e1a;border-color:#22c55e38;color:#4ade80f2}.vacuum-btn-start:active{background:#22c55e33}.vacuum-btn-pause{background:#fbbf241a;border-color:#fbbf2438;color:#fde047f2}.vacuum-btn-pause:active{background:#fbbf2433}.vacuum-btn-stop{background:#ef44441a;border-color:#ef444438;color:#fc8181f2}.vacuum-btn-stop:active{background:#ef444433}.vacuum-btn-dock{background:#3b82f61a;border-color:#3b82f638;color:#93c5fdf2}.vacuum-btn-dock:active{background:#3b82f633}.vacuum-btn-locate{flex:1;min-width:0;background:#a855f71a;border-color:#a855f738;color:#c084fcf2}.vacuum-btn-locate:active{background:#a855f733}.vacuum-btn-confirm{animation:vacuum-confirm-pulse .6s ease-in-out infinite alternate;border-style:dashed!important}@keyframes vacuum-confirm-pulse{0%{opacity:.85}to{opacity:1}}.vacuum-expanded-content{display:flex;flex-direction:column;gap:.6rem;animation:vacuum-expand .2s ease-out}@keyframes vacuum-expand{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.vacuum-section-title{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-top:.15rem}.vacuum-section-title--rooms{margin-top:.9rem;margin-bottom:-.15rem}.vacuum-fan-speeds+.vacuum-section-title,.vacuum-fan-speeds~.vacuum-section-title{margin-top:1rem}.vacuum-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.45rem}.vacuum-stat{display:flex;flex-direction:column;align-items:center;gap:.12rem;padding:.45rem .3rem;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.vacuum-stat-label{font-size:.55rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.vacuum-stat-value{font-size:.72rem;font-weight:600;color:var(--text-primary)}.vacuum-consumables-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.vacuum-consumable{display:flex;flex-direction:column;align-items:center;gap:.12rem;padding:.4rem .3rem;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.vacuum-consumable-label{font-size:.52rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.vacuum-consumable-value{font-size:.7rem;font-weight:600}.vacuum-fan-speeds{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.5rem}.vacuum-fan-btn{flex:1;min-width:0;padding:.35rem .5rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a;color:var(--text-secondary);font-size:.62rem;font-weight:600;cursor:pointer;text-align:center;text-transform:capitalize;transition:background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.vacuum-fan-btn:active{transform:scale(.95)}.vacuum-fan-btn-active{background:#3b82f626;border-color:#3b82f64d;color:#93c5fdf2}.vacuum-room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-top:.05rem}.vacuum-room-btn{padding:.45rem .4rem;height:2.2rem;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0d;color:var(--text-secondary);font-size:.6rem;font-weight:600;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent}.vacuum-room-btn:active{transform:scale(.95);background:#8b5cf626;border-color:#8b5cf659;color:#c4b5fdf2}.vacuum-room-btn-active{background:#8b5cf62e;border-color:#8b5cf673;color:#c4b5fdf2;box-shadow:0 0 0 1px #8b5cf633}.vacuum-room-btn-disabled,.vacuum-room-btn-disabled:active{opacity:.3;pointer-events:none;filter:grayscale(.5)}.cam-grid{display:flex;flex-direction:column;gap:1rem}.cam-feed{display:flex;flex-direction:column;align-items:center}.cam-preview{position:relative;width:100%;aspect-ratio:16 / 9;background:#1a1e26;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center}.cam-feed-large .cam-preview{border-radius:16px}.cam-label{color:var(--text-secondary, #94a3b8);font-size:.75rem;font-weight:500;margin-top:6px;text-align:center}.cam-bottom-row{display:flex;gap:.5rem}.cam-bottom-row .cam-feed{flex:1 1 0;min-width:0}.cam-disconnected{width:100%;height:100%;min-height:80px;display:flex;align-items:center;justify-content:center;background:#23272f;color:#e11d48;font-size:.85rem;font-weight:500;border-radius:12px}.cam-recording-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;z-index:2}.cam-wifi-signal{display:flex;align-items:center;line-height:0;margin-left:2px}.cam-wifi-signal svg{display:block}.cam-wifi-critical{animation:cam-wifi-blink 1.5s ease-in-out infinite}@keyframes cam-wifi-blink{0%,to{opacity:1}50%{opacity:.4}}.cam-glass-badge{position:absolute;z-index:3;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ffffff1f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);color:#ffffffb3;cursor:pointer;transition:background .2s,color .2s}.cam-glass-badge:active{background:#ffffff38}.cam-glass-badge svg{display:block}.cam-motion-badge{bottom:8px;left:8px;transition:background .3s,border-color .3s,color .3s,box-shadow .3s}.cam-motion-pill{border-radius:14px;width:auto;padding:0 8px;gap:3px}.cam-motion-active{background:#fb923c40;border-color:#fb923c66;color:#fb923c;box-shadow:0 0 8px 2px #fb923c4d}.cam-fullscreen-badge{bottom:8px;right:8px}.cam-dot-recording{background:#22c55e}.cam-dot-idle{background:#e11d48}body.cam-fs-active .landscape-blocker{display:none!important}.cam-fullscreen-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000}.cam-fullscreen-modal:fullscreen{width:100vw;height:100vh;top:0;right:0;bottom:0;left:0}.cam-fullscreen-modal.cam-fs-ios{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.cam-fullscreen-stream{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background:#000;display:block;z-index:1}.cam-fs-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.cam-fs-overlay>*{pointer-events:auto}.cam-frigate-preview{width:100%;height:100%;object-fit:cover;display:block}.cam-go2rtc-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;display:block}.cam-fullscreen-label{position:absolute;bottom:12px;left:50%;transform:translate(-50%);color:#ffffffd9;font-size:.8rem;font-weight:500;text-align:center;pointer-events:none;z-index:2;padding:5px 14px;border-radius:20px;background:#ffffff1f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15)}.cam-exit-badge{position:absolute;bottom:12px;right:12px;z-index:10;width:36px;height:36px}.cam-fs-overlay>.cam-motion-badge{position:absolute;bottom:12px;left:12px;z-index:10;min-width:36px;height:36px;display:flex;align-items:center;justify-content:center}.cam-fs-overlay>.cam-motion-badge.cam-motion-pill{width:auto;padding:0 10px;gap:5px;border-radius:18px}.cam-motion-badge svg{flex-shrink:0}.cam-fs-ios .cam-fullscreen-label,.cam-fs-ios .cam-exit-badge{bottom:calc(12px + env(safe-area-inset-bottom))}.cam-fs-ios .cam-fs-overlay>.cam-motion-badge{bottom:calc(12px + env(safe-area-inset-bottom))}.alarm-card{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1.5rem 1rem 1rem}.alarm-card:active{transform:none;background:var(--bg-card)}.alarm-status{display:flex;align-items:center;gap:12px}.alarm-status-text{display:flex;flex-direction:column}.alarm-state{font-size:1.1rem;font-weight:600;letter-spacing:.02em}.alarm-entity-name{font-size:.7rem;color:var(--text-tertiary);margin-top:2px}.alarm-code-display{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:32px}.alarm-code-dots{display:flex;gap:10px}.alarm-code-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--ctrl-border-active);background:transparent;transition:background .15s ease,box-shadow .15s ease}.alarm-code-dot.filled{border-color:transparent}.alarm-error{font-size:.7rem;color:#ff6b6b;font-weight:500}.alarm-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:260px}.alarm-key{display:flex;align-items:center;justify-content:center;height:52px;border:1px solid var(--ctrl-border);border-radius:14px;background:var(--ctrl-bg);color:var(--ctrl-text);font-size:1.2rem;font-weight:500;cursor:pointer;transition:background .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.alarm-key:active{transform:scale(.92);background:#3b82f633}.alarm-key-action{color:var(--ctrl-text-dim);font-size:.85rem;font-weight:600}@media(hover:hover){.alarm-key:hover{background:var(--ctrl-bg-hover)}}.alarm-actions{display:flex;gap:8px;width:100%;max-width:260px}.alarm-action-btn{flex:1;padding:10px 0;border:1px solid rgba(59,130,246,.3);border-radius:12px;background:#3b82f61f;color:#6bb3ff;font-size:.75rem;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:background .2s ease,transform .1s ease;-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.alarm-action-btn:active{transform:scale(.95);background:#3b82f640}.alarm-disarm-btn{border-color:#ef44444d;background:#ef44441f;color:#ff6b6b}.alarm-disarm-btn:active{background:#ef444440}@media(hover:hover){.alarm-action-btn:hover{background:#3b82f633}.alarm-disarm-btn:hover{background:#ef444433}}.sensors-panel{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1rem}.sensors-panel-empty{color:var(--text-tertiary);font-size:.8rem;text-align:center;padding:2rem 1rem}.sp-category{background:var(--bg-card);border:1px solid var(--border-card);border-radius:18px;overflow:hidden}.sp-category-header{display:flex;align-items:center;gap:.4rem;padding:.7rem .8rem .35rem}.sp-category-label{flex:1;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.sp-area-cards{display:flex;flex-direction:column;gap:.55rem;padding:0 .7rem .7rem}.sp-card{background:var(--ctrl-bg);border:1px solid var(--ctrl-border);border-radius:14px;padding:0;display:flex;flex-direction:column;overflow:hidden}.sp-card-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .65rem;border-bottom:1px solid var(--border-card)}.sp-card-label{font-size:.68rem;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}.sp-card-count{font-size:.62rem;font-weight:600;color:var(--text-tertiary);background:var(--ctrl-bg);border:1px solid var(--ctrl-border);border-radius:6px;padding:.15rem .4rem;line-height:1.2;min-width:1.4rem;text-align:center}.sp-card-rows{display:flex;flex-direction:column;padding:.35rem .55rem;gap:0}.sp-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .25rem;border-radius:8px}.sp-row-icon{flex-shrink:0;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:var(--bg-card);border:1px solid var(--border-card);line-height:1}.sp-row-icon svg{display:block}.sp-row-name{flex:1;font-size:.78rem;font-weight:500;color:var(--text-secondary);line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-row-value{flex-shrink:0;font-size:.82rem;font-weight:600;color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums}.sp-row+.sp-row{border-top:1px solid var(--border-card)}.printer-panel{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1rem}.pp-section{background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:18px;overflow:hidden}.pp-section-header{display:flex;align-items:center;gap:.65rem;width:100%;padding:.7rem .8rem;background:none;border:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.pp-section-header:active{transform:scale(.97)}.pp-section-inner{display:flex;flex-direction:column;gap:.55rem;padding:0 .7rem .7rem}.pp-expand-anim{animation:pp-expand .2s ease-out}@keyframes pp-expand{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.pp-icon-wrap{position:relative;flex-shrink:0}.pp-icon-circle{width:38px;height:38px;border-radius:20%;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#ffffff80;transition:background .2s,color .2s,border-color .2s}.pp-icon-circle.printing{background:#22c55e1f;border-color:#22c55e40;color:#22c55e}.pp-icon-circle.ready{background:#3b82f61f;border-color:#3b82f640;color:#3b9eff}.pp-icon-circle.paused{background:#f59e0b1f;border-color:#f59e0b40;color:#f59e0b}.pp-icon-circle.complete{background:#a855f71f;border-color:#a855f740;color:#a855f7}.pp-icon-circle.unavailable{background:#ef444414;border-color:#ef444426;color:#ffffff4d}.pp-icon-circle.booting{background:#f59e0b1f;border-color:#f59e0b40;color:#f59e0b;animation:pp-pulse 1.5s ease-in-out infinite}.pp-badge-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:#ffffff40;box-shadow:0 0 4px #ffffff26}.pp-badge-dot.printing{background:#22c55e;box-shadow:0 0 6px #22c55e99;animation:pp-pulse 2s ease-in-out infinite}.pp-badge-dot.ready{background:#3b9eff;box-shadow:0 0 6px #3b82f699}.pp-badge-dot.paused{background:#f59e0b;box-shadow:0 0 6px #f59e0b80;animation:pp-pulse 1.5s ease-in-out infinite}.pp-badge-dot.complete{background:#a855f7;box-shadow:0 0 6px #a855f780}.pp-badge-dot.unavailable{background:#ef4444;box-shadow:0 0 4px #ef444466}.pp-badge-dot.booting{background:#f59e0b;box-shadow:0 0 6px #f59e0b80;animation:pp-pulse 1.5s ease-in-out infinite}.pp-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:#ffffff40;transition:background .3s}.pp-status-dot.printing{background:#22c55e;box-shadow:0 0 8px #22c55e80;animation:pp-pulse 2s ease-in-out infinite}.pp-status-dot.ready{background:#3b82f6}.pp-status-dot.paused{background:#f59e0b;animation:pp-pulse 1.5s ease-in-out infinite}.pp-status-dot.complete{background:#a855f7}.pp-status-dot.error,.pp-status-dot.unavailable{background:#ef4444}@keyframes pp-pulse{0%,to{opacity:1}50%{opacity:.4}}.pp-status-info{display:flex;flex-direction:column;gap:.05rem;min-width:0;flex:1;text-align:left}.pp-status-label{font-size:.9rem;font-weight:700;color:var(--text-primary)}.pp-status-sub{font-size:.65rem;color:var(--text-secondary, rgba(255, 255, 255, .5))}.pp-info-line{font-size:.65rem;color:#fff6;padding:0 .1rem}.pp-header-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0;margin-left:auto}.pp-hdr-btn{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;width:38px;height:38px;padding:0;border-radius:20%;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#ffffff73;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,border-color .15s,color .15s,transform .1s}.pp-hdr-btn.confirm{width:auto;padding:0 .45rem}.pp-hdr-btn:active{transform:scale(.9)}.pp-hdr-btn-label{font-size:.55rem;font-weight:600;white-space:nowrap;padding-right:.15rem}.pp-hdr-estop{color:#ef4444b3;border-color:#ef444426;background:#ef44440f}.pp-hdr-estop.confirm{background:#ef444433;border-color:#ef444480;color:#ef4444;animation:pp-estop-pulse .6s ease-in-out infinite alternate}@keyframes pp-estop-pulse{0%{box-shadow:0 0 #ef44444d}to{box-shadow:0 0 6px 2px #ef444440}}.pp-hdr-power.on{color:#22c55ee6;border-color:#22c55e33;background:#22c55e14}.pp-progress-ring{position:relative;flex-shrink:0;width:44px;height:44px}.pp-progress-ring svg{display:block;filter:drop-shadow(0 0 4px rgba(34,197,94,.35))}.pp-progress-ring circle:last-of-type{transition:stroke-dashoffset .6s ease}.pp-progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.pp-th-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}.pp-th-card{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .2rem;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.05);transition:border-color .25s,background .25s}.pp-th-card.active{background:#f9731614;border-color:#f9731633}.pp-th-label{font-size:.55rem;font-weight:700;color:#ffffff80;text-transform:uppercase;letter-spacing:.06em}.pp-th-card.active .pp-th-label{color:#f97316}.pp-th-temp{font-size:.8rem;font-weight:700;color:var(--text-primary);line-height:1.1}.pp-th-ext{font-size:.55rem;color:#ffffff73}.pp-th-fan{display:inline-flex;align-items:center;gap:.15rem;font-size:.55rem;color:#22c55eb3}.pp-fan-spin{animation:pp-fan-rotate 1s linear infinite}@keyframes pp-fan-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pp-th-pwr{font-size:.5rem;color:#ffffff4d}.pp-camera-container{border-radius:14px;overflow:hidden;background:#0000004d;border:1px solid rgba(255,255,255,.08);position:relative}.pp-camera-img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;background:#00000080;transform:rotate(180deg);color:transparent;font-size:0;text-indent:-9999px;overflow:hidden}.pp-camera-hidden{width:0;height:0;position:absolute;opacity:0;pointer-events:none;overflow:hidden}.pp-camera-connecting{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem 0;color:#ffffff80;font-size:.75rem;font-weight:500}.pp-camera-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.15);border-top-color:#fff9;border-radius:50%;animation:pp-cam-spin .8s linear infinite}@keyframes pp-cam-spin{to{transform:rotate(360deg)}}.pp-camera-label{position:absolute;bottom:.4rem;left:.4rem;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .4rem;border-radius:6px;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fffc}.pp-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:.55rem .6rem;display:flex;flex-direction:column;gap:.4rem}.pp-card-title{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffff59;margin:0}.pp-temp-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.pp-temp-item{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.05)}.pp-temp-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;flex-shrink:0}.pp-temp-texts{display:flex;flex-direction:column;gap:.02rem;min-width:0}.pp-temp-label{font-size:.55rem;color:var(--text-secondary, rgba(255, 255, 255, .45));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-temp-value{font-size:.85rem;font-weight:700;color:var(--text-primary);line-height:1.1}.pp-temp-target{font-size:.55rem;color:var(--text-secondary, rgba(255, 255, 255, .3));margin-left:.1rem}.pp-motion-layout{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.pp-motion-left{display:flex;flex-direction:column;gap:.45rem;align-items:flex-start;min-width:0}.pp-motion-right{display:flex;flex-direction:column;gap:.35rem;align-items:stretch;margin-left:auto}.pp-motion-btn,.pp-axis-btn{border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-primary);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,border-color .15s,transform .08s}.pp-motion-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;height:34px;min-width:82px;padding:0 .65rem;font-size:.62rem;font-weight:700;letter-spacing:.02em}.pp-axis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}.pp-axis-dpad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,42px);justify-content:center;gap:.35rem}.pp-axis-btn{display:inline-flex;align-items:center;justify-content:center;height:42px;width:42px}.pp-axis-btn.up{grid-column:2;grid-row:1}.pp-axis-btn.left{grid-column:1;grid-row:2}.pp-axis-btn.home{grid-column:2;grid-row:2}.pp-axis-btn.right{grid-column:3;grid-row:2}.pp-axis-btn.down{grid-column:2;grid-row:3}.pp-axis-btn.home{background:#3b82f624;border-color:#3b82f64d;color:#7fb6ff}.pp-step-row{margin-top:.5rem;display:flex;gap:.3rem;width:100%}.pp-step-btn{flex:1 1 0;min-width:0;height:30px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-primary);border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent;font-size:.62rem;font-weight:700;transition:background .15s,border-color .15s,transform .08s}.pp-step-btn.active{background:#3b82f629;border-color:#3b82f659;color:#8dc0ff}.pp-motion-btn:active,.pp-axis-btn:active{transform:scale(.95);background:#ffffff14;border-color:#ffffff2e}.pp-step-btn:active{transform:scale(.95)}@media(max-width:420px){.pp-motion-layout{gap:.45rem}}.pp-stats-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.35rem}.pp-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .2rem;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.05)}.pp-stat-value{font-size:.8rem;font-weight:700;color:var(--text-primary)}.pp-stat-label{font-size:.5rem;color:var(--text-secondary, rgba(255, 255, 255, .4));text-transform:uppercase;letter-spacing:.05em}.pp-controls-row{display:flex;align-items:center;gap:.5rem}.pp-ctrl-item{display:flex;align-items:center;gap:.3rem;flex:1}.pp-ctrl-item.col{flex-direction:column;gap:.1rem;align-items:center}.pp-ctrl-label{font-size:.6rem;font-weight:600;color:var(--text-primary);flex:1}.pp-ctrl-val{font-size:.65rem;font-weight:600;color:var(--text-primary)}.pp-toggle{position:relative;width:36px;height:20px;border-radius:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:background .2s;flex-shrink:0;-webkit-tap-highlight-color:transparent}.pp-toggle.on{background:#6366f159;border-color:#6366f166}.pp-toggle.on.green{background:#22c55e4d;border-color:#22c55e66}.pp-toggle-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#ffffffa6;transition:transform .2s}.pp-toggle.on .pp-toggle-knob{transform:translate(16px);background:#818cf8}.pp-toggle.on.green .pp-toggle-knob{background:#22c55e}.pp-mcu-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.35rem}.pp-mcu-item{display:flex;align-items:center;gap:.3rem;padding:.35rem .45rem;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.05)}.pp-mcu-label{font-size:.55rem;color:var(--text-secondary, rgba(255, 255, 255, .45));flex:1}.pp-mcu-value{font-size:.7rem;font-weight:600;color:var(--text-primary)}.pp-ink-grid{display:flex;flex-direction:column;gap:.45rem}.pp-ink-item{display:flex;flex-direction:column;gap:.2rem}.pp-ink-header{display:flex;justify-content:space-between;align-items:baseline}.pp-ink-label{font-size:.65rem;font-weight:600;color:var(--text-primary)}.pp-ink-pct{font-size:.65rem;font-weight:700;color:var(--text-primary)}.pp-ink-track{width:100%;height:8px;border-radius:4px;background:#ffffff14;overflow:hidden}.pp-ink-fill{height:100%;border-radius:4px;transition:width .5s ease}.network-panel{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1rem}.np-section{background:var(--bg-card);border:1px solid var(--border-card);border-radius:18px;overflow:hidden}.np-section-header{display:flex;align-items:center;gap:.65rem;width:100%;padding:.7rem .8rem;background:none;border:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.np-section-header:active{transform:scale(.97)}.np-section-inner{display:flex;flex-direction:column;gap:.55rem;padding:0 .7rem .7rem;animation:np-expand .2s ease-out}@keyframes np-expand{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.np-icon-wrap{position:relative;flex-shrink:0}.np-icon-circle{width:38px;height:38px;border-radius:20%;display:flex;align-items:center;justify-content:center;background:var(--bg-card-hover);border:1px solid var(--ctrl-border-strong);color:var(--ctrl-text-dim);transition:background .2s,color .2s,border-color .2s}.np-icon-circle.online{background:#22c55e1f;border-color:#22c55e40;color:#22c55e}.np-icon-circle.offline{background:#ef444414;border-color:#ef444426;color:var(--text-tertiary)}.np-badge-dot{position:absolute;width:8px;height:8px;border-radius:50%;bottom:-1px;right:-1px;border:2px solid var(--bg-card);background:var(--text-tertiary)}.np-badge-dot.online{background:#22c55e}.np-badge-dot.offline{background:#ef4444}.np-status-info{flex:1;display:flex;flex-direction:column;gap:.05rem;min-width:0}.np-status-label{font-size:.9rem;font-weight:600;color:var(--text-primary)}.np-status-sub{font-size:.72rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.np-version-badge{font-size:.65rem;padding:.15rem .4rem;border-radius:6px;background:var(--bg-card);border:1px solid var(--border-card);color:var(--text-tertiary);white-space:nowrap;flex-shrink:0}.np-card{background:var(--ctrl-bg);border:1px solid var(--ctrl-border);border-radius:14px;padding:.55rem .65rem}.np-card-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin:0 0 .45rem}.np-metric-grid{display:flex;flex-direction:column;gap:.35rem}.np-metric-row{display:flex;align-items:center;gap:.5rem}.np-metric-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.np-metric-label{flex:1;font-size:.78rem;color:var(--ctrl-text-label)}.np-metric-value{font-size:.82rem;font-weight:600;color:var(--ctrl-text);font-variant-numeric:tabular-nums}.np-speed-row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0}.np-speed-block{flex:1;display:flex;flex-direction:column;gap:.2rem}.np-speed-header{display:flex;justify-content:space-between;align-items:baseline}.np-speed-label{font-size:.68rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.np-speed-value{font-size:.85rem;font-weight:600;color:var(--ctrl-text-bright);font-variant-numeric:tabular-nums}.np-speed-track{height:4px;border-radius:2px;background:var(--ctrl-track);overflow:hidden}.np-speed-fill{height:100%;border-radius:2px;transition:width .5s ease}.np-vm-grid{display:flex;flex-wrap:wrap;gap:.35rem}.np-vm-pill{display:flex;align-items:center;gap:.35rem;padding:.3rem .55rem;border-radius:10px;background:var(--bg-card);border:1px solid var(--border-card);font-size:.75rem;color:var(--text-secondary)}.np-vm-dot{width:7px;height:7px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0}.np-vm-dot.running{background:#22c55e}.np-vm-dot.stopped{background:#ef4444}.np-ha-update-list{display:flex;flex-direction:column;gap:.25rem}.np-ha-update-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem .5rem;border-radius:8px;background:var(--ctrl-bg)}.np-ha-update-name{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--ctrl-text);font-weight:500}.np-ha-update-ver{font-size:.72rem;color:var(--text-tertiary);font-family:SF Mono,Menlo,monospace}.np-ha-update-dot{width:6px;height:6px;border-radius:50%;background:#f59e0b;flex-shrink:0}.np-pve-guest-grid{display:flex;flex-direction:column;gap:.4rem}.np-pve-guest{padding:.45rem .55rem;border-radius:10px;background:var(--ctrl-bg);border:1px solid var(--ctrl-border)}.np-pve-guest.running{border-color:#22c55e26}.np-pve-guest.stopped{opacity:.55}.np-pve-guest-header{display:flex;align-items:center;gap:.4rem}.np-pve-guest-name{flex:1;font-size:.78rem;font-weight:600;color:var(--ctrl-text)}.np-pve-guest-type{font-size:.62rem;padding:.1rem .35rem;border-radius:4px;background:var(--bg-card);color:var(--text-tertiary);font-weight:600;text-transform:uppercase}.np-pve-guest-stats{display:flex;flex-direction:column;gap:.25rem;margin-top:.35rem}.np-pve-mini-bar{display:flex;align-items:center;gap:.35rem}.np-pve-mini-label{font-size:.62rem;font-weight:600;color:var(--text-tertiary);width:2rem;flex-shrink:0}.np-pve-mini-track{flex:1;height:4px;background:var(--ctrl-track);border-radius:2px;overflow:hidden}.np-pve-mini-fill{height:100%;border-radius:2px;transition:width .5s ease}.np-pve-mini-value{font-size:.62rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums;width:3rem;text-align:right;flex-shrink:0}.np-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.25rem 0}.np-toggle-label{font-size:.78rem;color:var(--ctrl-text-label)}.np-toggle{width:36px;height:20px;border-radius:10px;background:var(--ctrl-border-strong);border:1px solid var(--ctrl-border-strong);position:relative;cursor:pointer;transition:background .2s,border-color .2s;flex-shrink:0}.np-toggle.on{background:#22c55e59;border-color:#22c55e80}.np-toggle-knob{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:1px;left:1px;transition:transform .2s}.np-toggle.on .np-toggle-knob{transform:translate(16px)}.np-frigate-bars{display:flex;flex-direction:column;gap:.6rem}.np-frigate-bar{display:flex;flex-direction:column;gap:.2rem}.np-frigate-bar-header{display:flex;justify-content:space-between;align-items:center}.np-frigate-bar-label{font-size:.72rem;font-weight:500;color:var(--text-secondary)}.np-frigate-bar-value{font-size:.72rem;font-weight:600;color:var(--ctrl-text);font-variant-numeric:tabular-nums}.np-frigate-bar-track{height:6px;background:var(--ctrl-track);border-radius:3px;overflow:hidden}.np-frigate-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.np-frigate-cam-grid{display:flex;flex-direction:column;gap:.35rem}.np-frigate-cam-row{display:flex;align-items:center;gap:.5rem}.np-frigate-cam-name{flex:1;font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:capitalize}.np-frigate-cam-fps{font-size:.72rem;font-weight:600;color:var(--ctrl-text);font-variant-numeric:tabular-nums}.np-frigate-cam-det{font-size:.6rem;padding:.1rem .3rem;border-radius:4px;font-weight:600}.np-frigate-cam-det.on{background:#22c55e26;color:#22c55e}.np-frigate-cam-det.off{background:#ef444426;color:#ef4444}.np-actions{display:flex;gap:.4rem}.np-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem;border-radius:10px;border:1px solid var(--border-card);background:var(--bg-card);color:var(--ctrl-text-label);font-size:.72rem;font-weight:500;cursor:pointer;transition:all .15s}.np-action-btn:active{transform:scale(.96);background:var(--bg-card-hover)}.np-graph-wrap{display:flex;flex-direction:column;gap:.4rem}.np-graph-bars{display:flex;align-items:flex-end;gap:2px;height:90px;padding-bottom:16px;position:relative}.np-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}.np-bar-stack{width:100%;border-radius:2px 2px 0 0;background:#3b82f673;position:relative;min-height:2px;transition:height .4s ease-out;overflow:hidden}.np-bar-stack.np-bar-empty{height:3px;background:var(--ctrl-border, rgba(255,255,255,.08));opacity:.5;border-radius:2px}.np-bar-blocked{position:absolute;bottom:0;left:0;right:0;background:#ef4444b3;border-radius:0}.np-bar-label{position:absolute;bottom:-16px;font-size:.55rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.np-graph-legend{display:flex;align-items:center;gap:.35rem;font-size:.62rem;color:var(--text-tertiary);justify-content:flex-end;padding-right:.15rem}.np-legend-dot{width:7px;height:7px;border-radius:2px;display:inline-block}.np-legend-dot.queries{background:#3b82f6b3;margin-left:.5rem}.np-legend-dot.blocked{background:#ef4444b3;margin-left:.5rem}.np-graph-placeholder{text-align:center;padding:1.2rem 0;font-size:.72rem;color:var(--text-tertiary)}.np-top-list{display:flex;flex-direction:column;gap:.45rem}.np-top-item{display:flex;align-items:center;gap:.5rem}.np-top-rank{width:18px;font-size:.65rem;font-weight:700;color:var(--text-tertiary);text-align:center;flex-shrink:0}.np-top-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.np-top-name{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.np-top-bar-track{height:4px;border-radius:2px;background:var(--ctrl-track);overflow:hidden}.np-top-bar-fill{height:100%;border-radius:2px;transition:width .4s ease-out;min-width:2px}.np-top-count{font-size:.68rem;font-weight:600;color:var(--ctrl-text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:28px;text-align:right}.np-shield-btn-wrap{position:relative;flex-shrink:0;z-index:10}.np-shield-btn{display:flex;align-items:center;gap:.25rem;padding:.35rem .5rem;border-radius:10px;border:1px solid var(--ctrl-border-strong);background:var(--bg-card);color:var(--ctrl-text-dim);cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.np-shield-btn:active{transform:scale(.93)}.np-shield-btn.off{background:#22c55e1f;border-color:#22c55e4d;color:#22c55e}.np-shield-countdown{font-size:.6rem;font-weight:600;color:#ef4444;font-variant-numeric:tabular-nums;white-space:nowrap}.np-shield-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--bg-card);border:1px solid var(--border-card);border-radius:14px;padding:.35rem 0;box-shadow:var(--shadow-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:np-menu-in .15s ease-out;z-index:100}@keyframes np-menu-in{0%{opacity:0;transform:translateY(-6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.np-shield-menu-title{padding:.4rem .75rem .35rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);display:flex;align-items:center}.np-shield-menu-item{display:block;width:100%;padding:.55rem .75rem;background:none;border:none;color:var(--text-secondary);font-size:.82rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s}.np-shield-menu-item:active{background:var(--bg-card-hover)}.np-shield-menu-enable{color:#22c55e;border-top:1px solid var(--border-card);margin-top:.2rem;padding-top:.6rem}.scenes-panel{padding:.25rem 0 .5rem}.scenes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.scene-item{position:relative;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;column-gap:.65rem;row-gap:.1rem;align-items:start;padding:.75rem .9rem;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:var(--text-primary, #fff);cursor:pointer;text-align:left;transition:background .18s ease,border-color .18s ease,transform .14s ease,box-shadow .18s ease;-webkit-tap-highlight-color:transparent;overflow:hidden}.scene-item:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--scene-accent, #818cf8) 12%,transparent),transparent 70%);opacity:0;transition:opacity .2s ease;pointer-events:none}.scene-item:active{transform:scale(.96)}.scene-item--active{background:color-mix(in srgb,var(--scene-accent, #818cf8) 10%,rgba(255,255,255,.04));border-color:color-mix(in srgb,var(--scene-accent, #818cf8) 40%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--scene-accent, #818cf8) 18%,transparent)}.scene-item--active:before{opacity:1}.scene-item--unavailable{opacity:.4;cursor:default}.scene-item-icon{grid-column:1;grid-row:1 / 3;align-self:center;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:2.8rem;line-height:1;transition:filter .18s ease}.scene-item--active .scene-item-icon{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--scene-accent, #818cf8) 45%,transparent))}.scene-item-name{grid-column:2;grid-row:1;align-self:start;justify-self:end;font-size:.78rem;font-weight:600;letter-spacing:.01em;line-height:1.3;color:var(--text-primary, rgba(255, 255, 255, .9));overflow-wrap:break-word;word-break:break-word;white-space:normal;text-align:right}.scene-item-state{grid-column:2;grid-row:2;align-self:end;justify-self:end;font-size:.6rem;font-weight:600;color:var(--text-tertiary, rgba(255, 255, 255, .45));letter-spacing:.04em;text-transform:capitalize;transition:color .18s ease,background .18s ease;background:#ffffff12;border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:.15rem .5rem;white-space:nowrap}.scene-item--active .scene-item-state{color:color-mix(in srgb,var(--scene-accent, #818cf8) 90%,white);background:color-mix(in srgb,var(--scene-accent, #818cf8) 15%,transparent);border-color:color-mix(in srgb,var(--scene-accent, #818cf8) 35%,transparent)}.scenes-loading,.scenes-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:3rem 1.5rem;color:#ffffff59;text-align:center}.scenes-loading{flex-direction:row;gap:.5rem;font-size:.85rem}.scenes-empty p{margin:0;font-size:.82rem;line-height:1.5}.scenes-empty strong{color:#ffffffa6}.scenes-empty-hint{font-size:.72rem!important;color:#ffffff40!important;max-width:220px}.bottom-nav{position:fixed;left:50%;transform:translate(-50%);bottom:env(safe-area-inset-bottom,0px);width:calc(100% - 32px);max-width:480px;z-index:100;pointer-events:auto}.bottom-nav-inner{display:flex;justify-content:space-around;align-items:center;padding:8px 6px;background:var(--glass-bg);border-radius:20px;backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 14px;border:none;background:transparent;border-radius:14px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.bottom-nav-icon{font-size:1.2rem;line-height:1;color:var(--glass-icon-dim);transition:transform .2s ease,filter .2s ease,color .2s ease}.bottom-nav-label{font-size:.6rem;font-weight:500;color:var(--glass-icon-dim);letter-spacing:.02em;transition:color .2s ease}.bottom-nav-item.active{background:linear-gradient(135deg,#3b82f640,#06b6d433);box-shadow:0 4px 16px #3b82f626,inset 0 1px #3b82f614}.bottom-nav-item.active .bottom-nav-icon{transform:scale(1.1);filter:drop-shadow(0 0 6px rgba(59,130,246,.4));color:#3b9eff}.bottom-nav-item.active .bottom-nav-label{color:var(--ctrl-text-bright);font-weight:600}.bottom-nav-item:not(.active):active{transform:scale(.93);background:var(--glass-hover)}@media(hover:hover){.bottom-nav-item:not(.active):hover{background:var(--glass-hover)}.bottom-nav-item:not(.active):hover .bottom-nav-label{color:var(--ctrl-text-label)}}.settings-fan-menu{position:absolute;right:12px;bottom:calc(100% + 12px);display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.settings-fan-menu.open{pointer-events:auto}.settings-user-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);box-shadow:var(--glass-shadow);color:var(--ctrl-text-bright);white-space:nowrap;opacity:0;transform:translateY(16px) scale(.9);transition:opacity .25s ease,transform .25s ease;will-change:opacity,transform}.settings-user-card.open{opacity:1;transform:translateY(0) scale(1)}.settings-user-ring{position:relative;width:48px;height:48px;min-width:48px;border-radius:999px;padding:3px;background:conic-gradient(#4285f4,#4285f4 90deg,#ea4335 90deg,#ea4335 180deg,#fbbc05 180deg,#fbbc05 270deg,#34a853 270deg,#34a853 360deg);display:flex;align-items:center;justify-content:center}.settings-user-ring:before{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:999px;background:conic-gradient(#4285f4,#4285f4 90deg,#ea4335 90deg,#ea4335 180deg,#fbbc05 180deg,#fbbc05 270deg,#34a853 270deg,#34a853 360deg);filter:blur(12px);opacity:.55;animation:google-ring-pulse 2.8s ease-in-out infinite;z-index:-1}@keyframes google-ring-pulse{0%,to{opacity:.35;filter:blur(10px)}50%{opacity:.8;filter:blur(16px)}}.settings-user-avatar{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block}.settings-user-badge{position:absolute;top:6px;right:6px;width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:2.5px solid rgba(255,255,255,.22);box-shadow:0 2px 10px #0000008c,inset 0 0 0 1px #ffffff14;z-index:2;transition:transform .2s ease,box-shadow .2s ease}.settings-user-badge.badge-home{box-shadow:0 2px 10px #34a85373}.settings-user-badge.badge-away{box-shadow:0 2px 10px #0006}.settings-user-badge.badge-zone{box-shadow:0 2px 10px #4285f473}.settings-user-icon{width:100%;height:100%;border-radius:999px;background:#0c0e1aeb;display:flex;align-items:center;justify-content:center;color:#ffffffbf}.settings-user-name{font-size:.82rem;font-weight:600;letter-spacing:.01em}.settings-fan-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);box-shadow:var(--glass-shadow);color:var(--glass-fan-text);cursor:pointer;white-space:nowrap;opacity:0;transform:translateY(16px) scale(.9);transition:opacity .25s ease,transform .25s ease,background .2s ease;-webkit-tap-highlight-color:transparent;will-change:opacity,transform}.settings-fan-menu.open .settings-fan-item{opacity:1;transform:translateY(0) scale(1)}.settings-fan-item:active{transform:scale(.95)!important;background:#3b82f626}@media(hover:hover){.settings-fan-item:hover{background:var(--ctrl-bg-hover);color:var(--ctrl-text-bright)}}.settings-fan-item svg{flex-shrink:0}.settings-fan-label{font-size:.75rem;font-weight:500;letter-spacing:.02em}.about-logout-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 28px;border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);box-shadow:var(--glass-shadow);color:var(--glass-fan-text);font-size:.78rem;font-weight:600;letter-spacing:.04em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .2s ease,transform .15s ease;margin-top:.25rem}.about-logout-btn:active{transform:scale(.95);background:#ea43352e;color:#ff6b6b;border-color:#ea433559}@media(hover:hover){.about-logout-btn:hover{background:var(--ctrl-bg-hover);color:var(--ctrl-text-bright)}}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--overlay-bg);opacity:0;transition:opacity .32s ease;pointer-events:none;-webkit-tap-highlight-color:transparent}.bottom-sheet-overlay.active{opacity:1;pointer-events:auto}.bottom-sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:600px;z-index:95;background:var(--glass-bg);border-top-left-radius:20px;border-top-right-radius:20px;border:1px solid var(--glass-border);border-bottom:none;backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);box-shadow:var(--glass-shadow);overflow:hidden;display:flex;flex-direction:column;will-change:height}.bottom-sheet-handle-area{display:flex;flex-direction:column;align-items:center;padding:12px .5rem 8px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;flex-shrink:0}.bottom-sheet-handle-area:active{cursor:grabbing}.bottom-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--glass-handle);margin-bottom:8px}.bottom-sheet-title-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding-bottom:4px;border-bottom:1px solid var(--glass-border);gap:.5rem}.bottom-sheet-title{font-size:1.5rem;font-weight:400;color:var(--text-secondary);text-align:left;flex:1;min-width:0}.bottom-sheet-header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.bottom-sheet-content{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;padding:.75rem .5rem 7rem;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none;-ms-overflow-style:none}.bottom-sheet-content::-webkit-scrollbar{display:none}.dashboard{position:relative;min-height:100vh;padding:1rem;padding-top:calc(env(safe-area-inset-top,0px) + 5.7rem);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 5.5rem);opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}.dashboard.mounted{opacity:1;transform:translateY(0)}.bg-orbs{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:var(--orb-opacity)}.orb-1{width:300px;height:300px;background:var(--accent-blue);top:-80px;right:-60px;animation:orbFloat1 20s ease-in-out infinite}.orb-2{width:250px;height:250px;background:var(--accent-purple);bottom:20%;left:-50px;animation:orbFloat2 25s ease-in-out infinite}.orb-3{width:200px;height:200px;background:var(--accent-cyan);top:50%;right:20%;animation:orbFloat3 18s ease-in-out infinite}@keyframes orbFloat1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,40px) scale(1.1)}66%{transform:translate(20px,-20px) scale(.9)}}@keyframes orbFloat2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-30px) scale(1.15)}66%{transform:translate(-20px,20px) scale(.85)}}@keyframes orbFloat3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-40px,-30px) scale(1.2)}}.dash-header{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:600px;z-index:50;padding:calc(env(safe-area-inset-top,0px) + 1rem) 1rem .75rem;display:flex;align-items:center;justify-content:space-between;background:transparent;border-bottom:1px solid transparent;transition:all .3s ease}.dash-header-scrolled{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px) saturate(130%);backdrop-filter:blur(16px) saturate(130%);border-bottom-color:var(--glass-border);box-shadow:var(--glass-shadow)}.header-greeting{display:flex;flex-direction:column;gap:.25rem}.greeting-label{font-size:.9rem;color:var(--text-secondary);font-weight:400;letter-spacing:.02em}.greeting-line{display:flex;align-items:baseline;gap:.3rem}.greeting-hello{font-size:1.5rem;color:var(--text-secondary);font-weight:400}.greeting-name{font-size:1.5rem;font-weight:600;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.copilot-badge{flex-shrink:0;width:56px;height:56px;border-radius:50%;background:#7c5bf026;border:1px solid rgba(124,91,240,.35);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 0 16px #7c5bf033,inset 0 0 10px #7c5bf014;transition:box-shadow .3s ease}.copilot-badge:hover{box-shadow:0 0 24px #7c5bf059,inset 0 0 14px #7c5bf01f}.dash-content{position:relative;z-index:1;display:flex;flex-direction:column;gap:1.75rem}.card-section{display:flex;flex-direction:column;gap:.75rem}.section-title{font-size:.75rem;font-weight:600;color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase;padding-left:.25rem}.card-grid{display:grid;gap:.75rem}.card-grid.two-col{grid-template-columns:1fr 1fr}.card-grid.three-col{grid-template-columns:1fr 1fr 1fr}.card-grid>*{min-width:0;overflow:hidden}.glass-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-md);padding:1rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.glass-card:active{transform:scale(.97);background:var(--bg-card-hover)}.glass-card.climate-card:active{transform:none;background:var(--bg-card)}@media(max-width:380px){.card-grid.three-col{grid-template-columns:1fr 1fr}}@media(min-width:768px){.dashboard{max-width:600px;margin:0 auto;padding:2rem}}.ai-summary-content{color:var(--text-secondary);font-size:.85rem;line-height:1.7;margin-top:.5rem}.ai-summary-content strong{color:var(--text-primary);font-weight:600}.ai-summary-content em{font-style:italic;opacity:.85}.ai-summary-content .ai-alert{color:#ff6b6b;background:#ff6b6b1f;border:1px solid rgba(255,107,107,.25);border-radius:6px;padding:1px 6px;font-weight:600;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ai-summary-content .ai-warn{color:#ffb347;background:#ffb3471f;border:1px solid rgba(255,179,71,.25);border-radius:6px;padding:1px 6px;font-weight:600;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ai-summary-content h2,.ai-summary-content h3,.ai-summary-content h4{color:var(--text-primary);font-weight:600;margin-top:.75rem;margin-bottom:.25rem}.ai-summary-content h2{font-size:1.1rem}.ai-summary-content h3{font-size:.95rem}.ai-summary-content h4{font-size:.88rem}
