:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#eef3f8;background:#0b1017;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% -20%,#1e3944 0,transparent 34%),#0b1017}header,main,nav{max-width:1180px;margin:auto}header{padding:32px 22px 18px;display:flex;align-items:end;justify-content:space-between;gap:16px}.eyebrow{font-size:12px;letter-spacing:.18em;color:#6fc6ad;font-weight:800}h1{margin:4px 0 0;font-size:36px}h2{font-size:22px}h3{margin-top:0}button{border:1px solid #283542;background:#151d27;color:#eef3f8;border-radius:12px;padding:11px 14px;font-weight:700;cursor:pointer}button:hover{background:#1b2632}.primary{background:#d9f4e9;color:#0a2019;border-color:#d9f4e9}.primary:hover{background:#bfe9d9}nav{padding:0 22px 18px;display:flex;gap:8px;overflow:auto}.tab{white-space:nowrap}.tab.active{background:#eef3f8;color:#10151b}main{padding:0 22px 60px}.hidden{display:none!important}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 26px}.stat,.card,.room,.device{background:rgba(20,27,36,.88);border:1px solid #26323f;border-radius:18px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.stat strong{font-size:28px;display:block}.stat span,.muted,p{color:#93a1b1}.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.room h3{margin:0 0 6px}.devices{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.device-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.pill{font-size:11px;border-radius:999px;padding:5px 8px;background:#222f3b;color:#a8b8c8}.pill.ready{background:#13392f;color:#8ce0c3}.pill.warn{background:#423314;color:#f1cf78}.device h3{margin:7px 0 3px}.meta{font-size:12px;color:#8a98a8;line-height:1.6}.switch{width:56px;height:32px;border-radius:18px;padding:3px;background:#28333f;border:0}.switch i{display:block;width:26px;height:26px;border-radius:50%;background:#dce4eb;transition:.18s}.switch.on{background:#5ad0a7}.switch.on i{transform:translateX(24px);background:#071a13}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.card{margin-bottom:14px}.row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;color:#aeb9c5;font-size:13px;margin:13px 0}input{display:block;width:100%;margin-top:6px;background:#0f151d;border:1px solid #2b3846;border-radius:11px;padding:12px;color:#eef3f8;font:inherit}.toggleline input{display:inline;width:auto;margin:0 7px 0 0}#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(30px);opacity:0;background:#eaf6f2;color:#0b2019;padding:11px 15px;border-radius:12px;font-weight:700;transition:.2s;z-index:20;max-width:90vw}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:700px){header{padding-top:22px}h1{font-size:30px}.summary{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.devices{grid-template-columns:1fr}.room,.device,.card{border-radius:15px}header .primary{font-size:12px;padding:10px}}
select{display:block;width:100%;margin-top:6px;background:#0f151d;border:1px solid #2b3846;border-radius:11px;padding:10px;color:#eef3f8;font:inherit}

.scan-report{border-color:#365367}.scan-report strong{font-size:22px;color:#eef3f8}.scan-report p{margin-bottom:8px}
.brandline{display:flex;align-items:center;gap:10px}.version-badge{font-size:11px;font-weight:800;letter-spacing:.04em;padding:4px 7px;border-radius:999px;background:#18242e;border:1px solid #2c3d4b;color:#a9bac8}.integration-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.integration-head h3{margin-bottom:5px}.integration-head p{margin-top:0}.integration-info{margin-top:14px;padding-top:12px;border-top:1px solid #26323f;color:#93a1b1;font-size:13px;line-height:1.55}.integration-info:empty{display:none}.ewelink-card .pill.ready{white-space:nowrap}.ewelink-card .pill.warn{white-space:nowrap}a{color:#9bd8c5}
.tado-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.tado-zone{background:rgba(20,27,36,.9);border:1px solid #26323f;border-radius:18px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.zone-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.zone-top h3{margin:8px 0 3px}.current-temp{font-size:32px;font-weight:800;white-space:nowrap}.zone-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.zone-metrics>div{background:#101720;border:1px solid #26323f;border-radius:12px;padding:11px}.zone-metrics span{display:block;color:#8fa0b1;font-size:11px;margin-bottom:5px}.zone-metrics strong{font-size:14px}.temp-control{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin:12px 0}.temp-control input{margin:0;text-align:center;min-width:80px}.temp-control button{min-width:44px}.window-alert{padding:10px 12px;border-radius:11px;background:#423314;color:#f1cf78;margin:10px 0;font-size:13px;font-weight:700}.auth-box{margin:14px 0;padding:16px;border:1px solid #365367;border-radius:14px;background:#101923}.auth-code-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#8fa0b1}.auth-code{font-size:32px;font-weight:900;letter-spacing:.08em;margin:5px 0 12px}.button-link{display:inline-block;text-decoration:none;background:#d9f4e9;color:#0a2019;border-radius:12px;padding:11px 14px;font-weight:800}.mini-temp{text-align:right}.mini-temp strong{display:block;font-size:18px}.mini-temp span{display:block;color:#8fa0b1;font-size:11px;margin-top:3px}@media(max-width:700px){.tado-zones{grid-template-columns:1fr}.tado-zone{border-radius:15px}.temp-control{grid-template-columns:44px 1fr 44px}.temp-control .primary{grid-column:1/-1}.zone-metrics{grid-template-columns:1fr 1fr}.current-temp{font-size:27px}}
.nest-devices{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.nest-device{background:rgba(20,27,36,.9);border:1px solid #26323f;border-radius:18px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.nest-device h3{margin:8px 0 3px}.nest-capability{display:flex;flex-direction:column;gap:5px;margin-top:16px;padding:12px;background:#101720;border:1px solid #26323f;border-radius:12px}.nest-capability span{font-size:12px;color:#8fa0b1}.nest-range{margin:5px 0 12px}.nest-card .pill{white-space:nowrap}.nest-temp{margin-top:14px}@media(max-width:700px){.nest-devices{grid-template-columns:1fr}.nest-device{border-radius:15px}}
.cast-head{margin-top:32px}.cast-devices{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.cast-device{background:rgba(20,27,36,.9);border:1px solid #26323f;border-radius:18px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.cast-device h3{margin:8px 0 3px}.cast-volume-big{font-size:28px;font-weight:800;white-space:nowrap}.cast-now{display:flex;flex-direction:column;gap:4px;background:#101720;border:1px solid #26323f;border-radius:12px;padding:11px;margin:15px 0}.cast-now span{font-size:11px;color:#8fa0b1}.cast-range{padding:0;height:32px;accent-color:#d9f4e9}.cast-card .pill{white-space:nowrap}@media(max-width:700px){.cast-devices{grid-template-columns:1fr}.cast-device{border-radius:15px}.cast-head{align-items:flex-start;gap:10px;flex-direction:column}}
.backup-card{border-color:#365367}.backup-card h4{margin:20px 0 10px}.backup-list{display:flex;flex-direction:column;gap:8px}.backup-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#101720;border:1px solid #26323f;border-radius:12px}.backup-item .meta{line-height:1.4}.backup-item button{flex:0 0 auto}.backup-warning{padding:10px 12px;border-radius:11px;background:#423314;color:#f1cf78;margin-top:12px;font-size:13px}.backup-ok{padding:10px 12px;border-radius:11px;background:#13392f;color:#8ce0c3;margin-top:12px;font-size:13px}@media(max-width:700px){.backup-item{align-items:flex-start;flex-direction:column}.backup-item button{width:100%}}

.nest-camera-box{margin-top:14px}.nest-camera-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nest-video{width:100%;max-height:520px;margin-top:12px;background:#050709;border:1px solid #26323f;border-radius:14px;aspect-ratio:16/9;object-fit:contain}.stream-error{color:#ff9d9d!important}.nest-camera button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.nest-video{border-radius:12px}.nest-camera-toolbar{align-items:stretch}.nest-camera-toolbar button{flex:1}}
.camera-devices{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.camera-device{background:rgba(20,27,36,.9);border:1px solid #26323f;border-radius:18px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.camera-device h3{margin:8px 0 3px}.camera-preview-wrap{margin:14px 0;background:#050709;border:1px solid #26323f;border-radius:14px;overflow:hidden;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}.camera-preview{display:block;width:100%;height:100%;object-fit:contain;background:#050709}.camera-no-preview{margin:14px 0;padding:16px;border:1px dashed #365367;border-radius:14px;color:#93a1b1;background:#101720}.onvif-hit{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #26323f}.onvif-hit:first-of-type{margin-top:10px}.camera-card{border-color:#365367}@media(max-width:700px){.camera-devices{grid-template-columns:1fr}.camera-device{border-radius:15px}.onvif-hit{align-items:flex-start;flex-direction:column}.onvif-hit button{width:100%}}
.enphase-card{border-color:#365367}.enphase-token-box{margin-top:16px;padding:14px;background:#101720;border:1px solid #26323f;border-radius:14px}.enphase-token-box h4{margin:0 0 6px}.energy-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}.energy-tile{background:rgba(20,27,36,.92);border:1px solid #26323f;border-radius:18px;padding:18px;min-height:128px;display:flex;flex-direction:column;gap:7px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.energy-tile span{font-size:13px;color:#9aacbd;font-weight:700}.energy-tile strong{font-size:29px}.energy-tile small{color:#7f90a1}.energy-chart{width:100%;overflow:hidden}.energy-chart svg{width:100%;height:auto;display:block;background:#0e151d;border:1px solid #26323f;border-radius:14px}.energy-chart path{fill:none;stroke-width:4;vector-effect:non-scaling-stroke}.chart-prod{stroke:#8ce0c3}.chart-load{stroke:#f1cf78}.chart-grid{stroke:#8eb9ef}.chart-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:10px;color:#9aacbd;font-size:12px}.chart-legend span:before{content:'';display:inline-block;width:16px;height:3px;margin-right:6px;vertical-align:middle;border-radius:3px}.legend-prod:before{background:#8ce0c3}.legend-load:before{background:#f1cf78}.legend-grid:before{background:#8eb9ef}.chart-range{margin-left:auto}.chart-range:before{display:none!important}.inverter-head{margin-top:28px}.inverter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.inverter{background:rgba(20,27,36,.9);border:1px solid #26323f;border-radius:16px;padding:16px}.inverter h3{margin:7px 0 3px}.inverter>strong{display:block;font-size:24px;margin-top:14px}.inverter small{display:block;color:#7f90a1;margin-top:5px;line-height:1.4}@media(max-width:700px){.energy-flow{grid-template-columns:1fr 1fr}.energy-tile{min-height:110px}.energy-tile strong{font-size:24px}.inverter-grid{grid-template-columns:1fr}.chart-range{width:100%;margin-left:0}}@media(max-width:430px){.energy-flow{grid-template-columns:1fr}}
.lg-card{border-color:#365367}.lg-tvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}.lg-tv{background:rgba(20,27,36,.92);border:1px solid #26323f;border-radius:18px;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.16)}.lg-tv h3{margin:8px 0 3px}.lg-tv-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.lg-volume{font-size:28px;font-weight:850;white-space:nowrap}.lg-now{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.lg-now>div{background:#101720;border:1px solid #26323f;border-radius:12px;padding:10px}.lg-now span{display:block;font-size:11px;color:#8fa0b1;margin-bottom:4px}.lg-remote{display:grid;grid-template-columns:repeat(3,58px);justify-content:center;gap:8px;margin:16px 0}.lg-remote button{min-height:50px}.lg-remote .blank{visibility:hidden}.lg-actions{display:flex;gap:8px;flex-wrap:wrap}.lg-selects{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lg-pair-box{margin:12px 0;padding:12px;border:1px solid #365367;border-radius:12px;background:#101923}.lg-pin-row{display:flex;gap:8px;align-items:end}.lg-pin-row label{flex:1;margin:0}.lg-tv select{margin-top:6px}.lg-volume-range{padding:0;height:32px;accent-color:#d9f4e9}.lg-notify{display:flex;gap:8px;margin-top:12px}.lg-notify input{margin:0}.lg-notify button{flex:0 0 auto}@media(max-width:700px){.lg-tvs{grid-template-columns:1fr}.lg-tv{border-radius:15px}.lg-selects{grid-template-columns:1fr}.lg-now{grid-template-columns:1fr 1fr}.lg-notify{flex-direction:column}.lg-notify button{width:100%}}

/* ServiceAnt Home PWA v0.1.14 */
html{-webkit-text-size-adjust:100%;overscroll-behavior-y:none}body{padding-top:env(safe-area-inset-top);-webkit-tap-highlight-color:transparent}button,.tab,.button-link{touch-action:manipulation}.header-actions{display:flex;gap:9px;align-items:center}.install-button{border-color:#365367;background:#101923;color:#b9d9cf}.system-banner{position:sticky;top:0;z-index:60;max-width:none;width:100%;padding:10px max(16px,env(safe-area-inset-left));display:flex;gap:12px;justify-content:center;align-items:center;font-size:13px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.system-banner.offline{background:rgba(87,44,25,.96);color:#ffd7bd}.system-banner.update{background:rgba(19,57,47,.97);color:#bff1df}.system-banner button{padding:7px 10px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.16)}.pwa-install-card{border-color:#365367;display:flex;justify-content:space-between;align-items:center;gap:20px}.pwa-install-card h3{margin:5px 0}.pwa-install-card p{margin:0}.pwa-install-card button{flex:0 0 auto}.pwa-sheet{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.58);display:flex;align-items:flex-end;justify-content:center;padding:20px max(14px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.pwa-sheet-card{width:min(560px,100%);background:#151d27;border:1px solid #2b3947;border-radius:24px;padding:14px 20px 20px;box-shadow:0 24px 70px rgba(0,0,0,.48)}.pwa-sheet-handle{width:44px;height:5px;border-radius:999px;background:#485563;margin:0 auto 16px}.pwa-sheet-card h2{margin:0 0 12px}.pwa-sheet-card ol{padding-left:24px;color:#dce6ef;line-height:1.65}.pwa-sheet-card button{width:100%;margin-top:6px}.pwa-standalone header{padding-top:20px}.pwa-standalone body{min-height:100svh}.is-offline button:not(#pwaInstallClose):not(#pwaUpdateNow){opacity:.72}

@media(max-width:700px){
 body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
 header{padding:18px 16px 12px;align-items:center}
 header h1{font-size:27px}
 header .primary{font-size:11px;padding:9px 10px}
 .header-actions{gap:6px}
 .install-button{font-size:12px;padding:9px 10px}
 main{padding:0 14px 24px}
 nav{position:fixed;z-index:55;left:0;right:0;bottom:0;max-width:none;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));gap:0;background:rgba(11,16,23,.94);border-top:1px solid #25313d;box-shadow:0 -10px 30px rgba(0,0,0,.2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);scrollbar-width:none}
 nav::-webkit-scrollbar{display:none}
 .tab{min-width:70px;min-height:54px;padding:7px 9px;border:0;background:transparent;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;color:#8fa0b1}
 .tab::before{display:block;font-size:19px;line-height:20px;color:#aebcc9}
 .tab[data-view="home"]::before{content:"⌂"}.tab[data-view="devices"]::before{content:"◉"}.tab[data-view="heating"]::before{content:"♨"}.tab[data-view="energy"]::before{content:"⚡"}.tab[data-view="nest"]::before{content:"●"}.tab[data-view="cameras"]::before{content:"◍"}.tab[data-view="tv"]::before{content:"▣"}.tab[data-view="scenes"]::before{content:"✦"}.tab[data-view="settings"]::before{content:"⚙"}
 .tab.active{background:#18242e;color:#eef3f8}.tab.active::before{color:#8ce0c3}
 #toast{bottom:calc(76px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}
 .pwa-install-card{flex-direction:column;align-items:stretch}.pwa-install-card button{width:100%}
 input,select{font-size:16px}
 .section-head{align-items:flex-start;gap:10px}.section-head>button{flex:0 0 auto}
}

/* ServiceAnt Home v0.1.15: Projekty 2 i 4 odwzorowane jako pelne motywy */
:root{--ease-spring:cubic-bezier(.2,.8,.2,1)}
body{transition:background .22s ease,color .22s ease}.device-icon-svg{width:1.35em;height:1.35em;display:block}.home-section{margin:26px 0}.home-section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:13px}.home-section-head h2{margin:0}.home-section-note{font-size:12px;opacity:.66}.home-scenes{display:flex;gap:10px;overflow:auto;padding:2px 1px 6px;scrollbar-width:none}.home-scenes::-webkit-scrollbar{display:none}.home-scene{min-width:116px;display:flex;align-items:center;gap:9px}.home-scene>span{width:31px;height:31px;border-radius:10px;display:grid;place-items:center}.home-scene .device-icon-svg{width:18px;height:18px}.home-device-grid{display:grid;gap:14px}.smart-device-card{position:relative;overflow:hidden;min-width:0;transition:transform .18s var(--ease-spring),box-shadow .18s ease,border-color .18s ease,opacity .18s ease}.smart-device-card:hover{transform:translateY(-1px)}.smart-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:3}.device-title-wrap{display:flex;gap:11px;align-items:center;min-width:0}.device-title-wrap>div{min-width:0}.device-title-wrap h3{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-title-wrap h3+span{display:block;margin-top:2px;font-size:12px;opacity:.62}.device-icon-badge{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center}.device-icon-badge .device-icon-svg{width:23px;height:23px}.card-more{border:0!important;background:transparent!important;padding:3px 4px!important;min-width:auto!important;letter-spacing:2px;opacity:.55}.visual{position:relative;z-index:2}.visual strong{display:block}.visual small{display:block}.switch-visual{min-height:158px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px}.switch-visual>.device-icon-svg{width:62px;height:62px}.designer-switch{position:relative;width:118px;height:50px;border-radius:999px!important;padding:4px 6px!important;display:flex;align-items:center;justify-content:flex-start;gap:8px;overflow:hidden}.designer-switch span{font-size:17px;font-weight:900;letter-spacing:.02em;flex:1;text-align:center}.designer-switch i{width:40px;height:40px;border-radius:50%;display:block;transition:transform .2s var(--ease-spring),background .18s}.designer-switch.on i{transform:translateX(0)}.switch-visual>small{text-transform:uppercase;letter-spacing:.06em;font-weight:750;font-size:11px}.blinds-visual{min-height:168px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;align-items:center;gap:0 16px;padding-top:12px}.blind-window{width:100%;max-width:190px;height:112px;position:relative;border-radius:8px;overflow:hidden;align-self:center}.blind-slat{position:absolute;left:5%;right:5%;height:8px;border-radius:3px;z-index:2}.blind-slat.sl1{top:12%}.blind-slat.sl2{top:28%}.blind-slat.sl3{top:44%}.blind-slat.sl4{top:60%}.blind-slat.sl5{top:76%}.blind-open{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(148,191,163,.16),rgba(141,171,137,.38));z-index:1}.blinds-visual>strong{font-size:30px;align-self:center}.blinds-visual>small{grid-column:2;font-weight:700;opacity:.65;margin-top:-40px}.thermostat-visual{min-height:168px;display:flex;align-items:center;justify-content:center;gap:13px;position:relative}.thermo-ring{width:142px;height:142px;border-radius:50%;display:grid;place-content:center;text-align:center;position:relative}.thermo-ring:before{content:"";position:absolute;inset:0;border-radius:inherit}.thermo-ring:after{content:"";position:absolute;inset:10px;border-radius:50%}.thermo-ring strong,.thermo-ring small{position:relative;z-index:2}.thermo-ring strong{font-size:31px;font-weight:600}.thermo-ring small{font-size:10px;margin-top:3px;opacity:.65}.thermo-target{position:absolute;right:8px;bottom:23px;font-size:14px;font-weight:800}.heat-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:11px;font-weight:800;white-space:nowrap}.motion-visual{min-height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.motion-radar{width:105px;height:105px;border-radius:50%;display:grid;place-items:center;position:relative;margin-bottom:8px}.motion-radar:before,.motion-radar:after,.motion-radar span{content:"";position:absolute;border-radius:50%;inset:14px;border:1px solid currentColor;opacity:.2}.motion-radar:after{inset:2px;opacity:.1}.motion-radar span{inset:28px;opacity:.35}.motion-radar .device-icon-svg{width:42px;height:42px;z-index:2}.motion-visual strong{font-size:14px}.motion-visual small{font-size:10px;margin-top:4px;opacity:.65}.motion-visual.detected .motion-radar:after{animation:motionPulse 1.8s infinite ease-out}@keyframes motionPulse{0%{transform:scale(.72);opacity:.45}100%{transform:scale(1.08);opacity:0}}.aquarium-visual{min-height:180px;border-radius:17px;margin-top:13px;overflow:hidden;padding:18px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;align-items:end;position:relative}.aquarium-visual:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 16%,rgba(255,255,255,.22),transparent 24%),linear-gradient(180deg,rgba(65,187,255,.35),rgba(2,76,137,.62) 55%,rgba(3,36,76,.9));z-index:-2}.aquarium-visual:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:radial-gradient(ellipse at 15% 100%,#1e7358 0 8%,transparent 9%),radial-gradient(ellipse at 42% 100%,#17664d 0 8%,transparent 9%),radial-gradient(ellipse at 83% 100%,#2e7a5f 0 8%,transparent 9%);z-index:-1;opacity:.75}.waterline{position:absolute;top:9px;left:0;right:0;height:2px;background:rgba(255,255,255,.32);box-shadow:0 5px 14px rgba(93,210,255,.6)}.fish{position:absolute;opacity:.82}.fish .device-icon-svg{width:38px;height:38px}.fish.f1{left:24%;top:37%;transform:scaleX(-1)}.fish.f2{left:54%;top:26%;transform:scale(.72)}.aquarium-metric{position:absolute;right:15px;top:17px;text-align:right}.aquarium-metric strong{font-size:24px}.aquarium-metric small{font-size:9px;opacity:.72}.aquarium-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;position:relative;z-index:2}.aquarium-controls span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;font-weight:800}.aquarium-controls small{font-size:9px}.heating-visual{min-height:168px;display:grid;grid-template-columns:1fr 1fr;align-items:center;position:relative}.heat-icon .device-icon-svg{width:74px;height:74px}.heating-visual>strong{font-size:31px;align-self:end;margin-bottom:46px}.heating-visual>small{position:absolute;right:0;top:58%;font-size:10px;opacity:.65}.heat-waves{position:absolute;right:11px;bottom:7px;font-size:27px;letter-spacing:3px}.simple-visual,.energy-visual{min-height:164px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center}.simple-visual>.device-icon-svg,.energy-visual>.device-icon-svg{width:69px;height:69px}.simple-visual strong,.energy-visual strong{font-size:25px}.simple-visual small,.energy-visual small{font-size:11px;opacity:.7}.fan-visual.spin>.device-icon-svg{animation:fanSpin 2.2s linear infinite}@keyframes fanSpin{to{transform:rotate(360deg)}}.energy-bars{display:flex;align-items:end;gap:3px;height:30px}.energy-bars i{display:block;width:5px;border-radius:4px;height:30%;background:currentColor}.energy-bars i:nth-child(2){height:55%}.energy-bars i:nth-child(3){height:83%}.energy-bars i:nth-child(4){height:68%}.energy-bars i:nth-child(5){height:100%}.device-meta-line{font-size:11px;opacity:.55;margin:12px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-config{display:grid;grid-template-columns:1fr 1fr;gap:10px}.device-config label{margin:9px 0 0}.key-row{margin-top:11px}.room{width:100%;text-align:left;display:flex;align-items:center;gap:12px}.room>div:nth-child(2){flex:1}.room>div:nth-child(2)>span{font-size:12px;opacity:.64}.room>b{font-size:23px}.room-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:21px}.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.theme-option{text-align:left;display:grid;grid-template-columns:150px 1fr;gap:15px;align-items:center;padding:14px}.theme-option-copy{display:flex;flex-direction:column;gap:3px}.theme-option-copy strong{font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.56}.theme-option-copy b{font-size:18px}.theme-option-copy small{line-height:1.35;opacity:.68}.theme-preview{height:90px;border-radius:17px;padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.theme-preview i{display:block;border-radius:8px}.soft-preview{background:#f6f2ea;border:1px solid #e9e2d5}.soft-preview i{background:#fff;box-shadow:0 3px 8px rgba(85,70,47,.09)}.soft-preview i:first-child{box-shadow:0 0 0 1px #bfd8a6 inset,0 4px 12px rgba(130,164,93,.15)}.soft-preview i:nth-child(2){background:#eff2e7}.soft-preview i:nth-child(3){background:#f6eee3}.soft-preview i:nth-child(4){background:#eef5ea}.playful-preview{background:#081526;border:1px solid #24324e}.playful-preview i:nth-child(1){background:linear-gradient(135deg,#5b4318,#f7b722)}.playful-preview i:nth-child(2){background:linear-gradient(135deg,#29264f,#7666ff)}.playful-preview i:nth-child(3){background:linear-gradient(135deg,#45272d,#ff6848)}.playful-preview i:nth-child(4){background:linear-gradient(135deg,#153938,#27d28b)}.theme-option.selected{outline:3px solid currentColor;outline-offset:2px}.icon-library-settings{display:grid;grid-template-columns:220px 1fr;gap:20px;margin-top:20px;padding-top:18px;border-top:1px solid currentColor}.icon-library-settings h4{margin:0 0 5px}.settings-icon-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px}.library-icon{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 5px;border-radius:13px}.library-icon span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center}.library-icon .device-icon-svg{width:23px;height:23px}.library-icon small{font-size:10px;text-align:center}.type-light{--accent:#f6bd32;--accent-rgb:246,189,50}.type-blinds{--accent:#7867ff;--accent-rgb:120,103,255}.type-thermostat,.type-heating{--accent:#ff6848;--accent-rgb:255,104,72}.type-motion{--accent:#34d391;--accent-rgb:52,211,145}.type-aquarium{--accent:#39a9ff;--accent-rgb:57,169,255}.type-tv{--accent:#a878ff;--accent-rgb:168,120,255}.type-camera{--accent:#42c8d5;--accent-rgb:66,200,213}.type-energy{--accent:#ffc83d;--accent-rgb:255,200,61}.type-fan,.type-speaker{--accent:#5ca7ff;--accent-rgb:92,167,255}.type-outlet{--accent:#657dff;--accent-rgb:101,125,255}.type-scene{--accent:#e461d3;--accent-rgb:228,97,211}.type-generic{--accent:#8391a4;--accent-rgb:131,145,164}

/* Projekt 2: Soft Light */
body[data-theme="soft-light"]{--bg:#f8f5ef;--surface:#fffdfa;--surface-2:#f5f1e9;--text:#202824;--muted:#7c817c;--border:#e9e2d7;--green:#86a96c;--green-dark:#587646;--shadow:0 12px 32px rgba(80,66,44,.09);background:radial-gradient(circle at 88% -10%,rgba(211,222,196,.45),transparent 29%),linear-gradient(180deg,#faf8f4,#f4f0e8 80%);color:var(--text);color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
body[data-theme="soft-light"] header,body[data-theme="soft-light"] main,body[data-theme="soft-light"] nav{max-width:1240px}body[data-theme="soft-light"] header{padding-top:27px}body[data-theme="soft-light"] .eyebrow{color:#768b72}body[data-theme="soft-light"] h1{font-weight:650;letter-spacing:-.035em}body[data-theme="soft-light"] h2,body[data-theme="soft-light"] h3{font-weight:650;letter-spacing:-.015em}body[data-theme="soft-light"] p,body[data-theme="soft-light"] .muted{color:var(--muted)}body[data-theme="soft-light"] button,body[data-theme="soft-light"] .button-link{background:#fff;border:1px solid #e5dfd5;color:#283028;box-shadow:0 4px 12px rgba(93,78,55,.06);border-radius:15px}body[data-theme="soft-light"] button:hover{background:#faf7f0}body[data-theme="soft-light"] .primary,body[data-theme="soft-light"] .button-link{background:#8cac71;border-color:#8cac71;color:white}body[data-theme="soft-light"] nav{gap:7px}body[data-theme="soft-light"] .tab{background:transparent;box-shadow:none;border-color:transparent;color:#737b73}body[data-theme="soft-light"] .tab.active{background:#eff4e8;color:#5f7d4d;border-color:#d8e4cc;box-shadow:0 5px 13px rgba(105,136,79,.09)}body[data-theme="soft-light"] .version-badge{background:#f1eee8;border-color:#dfd9cf;color:#7c817c}body[data-theme="soft-light"] .summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:7px 0 18px}body[data-theme="soft-light"] .stat,body[data-theme="soft-light"] .card,body[data-theme="soft-light"] .tado-zone,body[data-theme="soft-light"] .nest-device,body[data-theme="soft-light"] .cast-device,body[data-theme="soft-light"] .camera-device,body[data-theme="soft-light"] .energy-tile,body[data-theme="soft-light"] .inverter,body[data-theme="soft-light"] .lg-tv{background:rgba(255,253,250,.95);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text)}body[data-theme="soft-light"] .stat{border-radius:18px;padding:14px 17px}body[data-theme="soft-light"] .stat span{font-size:11px;color:#888e88;text-transform:uppercase;letter-spacing:.06em;font-weight:700}body[data-theme="soft-light"] .stat strong{font-size:26px;margin:2px 0}body[data-theme="soft-light"] .stat small{color:#a0a39e;font-size:10px}.home-device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body[data-theme="soft-light"] .smart-device-card{background:#fff;border:1px solid #ebe4da;border-radius:22px;padding:18px;box-shadow:0 8px 24px rgba(81,67,45,.08);color:#252c27;min-height:276px}body[data-theme="soft-light"] .smart-device-card.is-active{border-color:rgba(132,167,103,.47);box-shadow:0 0 0 1px rgba(139,174,107,.13),0 12px 26px rgba(109,145,79,.12)}body[data-theme="soft-light"] .smart-device-card.is-offline{opacity:.58}body[data-theme="soft-light"] .device-icon-badge{background:#f5f1e8;color:#72846d}body[data-theme="soft-light"] .type-light .device-icon-badge{background:#fff8df;color:#e2aa32;box-shadow:0 0 22px rgba(232,185,70,.24)}body[data-theme="soft-light"] .type-blinds .device-icon-badge{color:#978d7a}body[data-theme="soft-light"] .type-thermostat .device-icon-badge,body[data-theme="soft-light"] .type-heating .device-icon-badge{color:#9e927f;background:#f4efe6}body[data-theme="soft-light"] .type-motion.is-active .device-icon-badge{color:#6f9658;background:#edf5e8}body[data-theme="soft-light"] .card-more{color:#686e68;box-shadow:none!important}body[data-theme="soft-light"] .visual{color:#65735f}body[data-theme="soft-light"] .smart-device-card.is-active .visual{color:#789b5e}body[data-theme="soft-light"] .designer-switch{background:#f0eee9!important;border-color:#e4ded3!important;color:#8b9089;box-shadow:inset 0 1px 3px rgba(65,54,40,.09)!important}body[data-theme="soft-light"] .designer-switch i{background:#fff;box-shadow:0 2px 7px rgba(56,49,38,.16)}body[data-theme="soft-light"] .designer-switch.on{background:linear-gradient(180deg,#93b277,#82a867)!important;color:white;border-color:#7fa364!important;box-shadow:0 5px 15px rgba(115,151,82,.25)!important}body[data-theme="soft-light"] .designer-switch.on i{background:white}body[data-theme="soft-light"] .type-light .designer-switch.on{background:linear-gradient(180deg,#9dbb7f,#83aa68)!important}body[data-theme="soft-light"] .blind-window{background:linear-gradient(180deg,#f2eee7,#e7eee2)}body[data-theme="soft-light"] .blind-slat{background:linear-gradient(180deg,#d9ccb8,#c5b79f);box-shadow:0 1px 2px rgba(80,64,40,.16)}body[data-theme="soft-light"] .thermo-ring:before{background:conic-gradient(#8cab72 0 66%,#e9e1d6 66% 100%)}body[data-theme="soft-light"] .thermo-ring:after{background:#fff}body[data-theme="soft-light"] .thermo-target{color:#719355}body[data-theme="soft-light"] .heat-label{color:#7f9f66}body[data-theme="soft-light"] .motion-radar{background:radial-gradient(circle,rgba(139,177,108,.16),transparent 68%);color:#74975c}body[data-theme="soft-light"] .motion-visual.detected{color:#6f9658}body[data-theme="soft-light"] .aquarium-visual{box-shadow:inset 0 0 0 1px rgba(119,142,118,.14);color:#344c40}body[data-theme="soft-light"] .aquarium-controls span{background:rgba(255,255,255,.76);border:1px solid rgba(206,218,201,.72)}body[data-theme="soft-light"] .heating-visual{color:#897c68}body[data-theme="soft-light"] .is-active.type-heating .heating-visual{color:#7c9c61}body[data-theme="soft-light"] .home-scene{background:#fff;border-color:#e8e1d5;color:#303730;box-shadow:0 6px 17px rgba(83,69,47,.07)}body[data-theme="soft-light"] .home-scene>span{background:#f3f0e9;color:#747c72}body[data-theme="soft-light"] .home-scene.featured{background:#f3f7e9;border-color:#dbe7ca;color:#607d4c}body[data-theme="soft-light"] .home-scene.featured>span{background:#e6efd9;color:#6f9456}body[data-theme="soft-light"] .rooms{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}body[data-theme="soft-light"] .room{background:#fff;border:1px solid #e9e2d7;color:#293029;border-radius:19px;box-shadow:0 7px 20px rgba(83,69,47,.07)}body[data-theme="soft-light"] .room-icon{background:#f2efe8;color:#7e8e76}body[data-theme="soft-light"] .room span{color:#858b84}body[data-theme="soft-light"] .devices{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}body[data-theme="soft-light"] .smart-device-card.management{min-height:auto}body[data-theme="soft-light"] .device-config select,body[data-theme="soft-light"] input,body[data-theme="soft-light"] select{background:#fbfaf6;border-color:#e5dfd5;color:#293029}body[data-theme="soft-light"] label{color:#737a73}body[data-theme="soft-light"] .device-meta-line,body[data-theme="soft-light"] .meta{color:#91958f}body[data-theme="soft-light"] .pill{background:#f0eee8;color:#767c76}body[data-theme="soft-light"] .pill.ready{background:#edf5e8;color:#5f8449}body[data-theme="soft-light"] .pill.warn{background:#fff2d9;color:#987023}body[data-theme="soft-light"] .zone-metrics>div,body[data-theme="soft-light"] .nest-capability,body[data-theme="soft-light"] .cast-now,body[data-theme="soft-light"] .backup-item,body[data-theme="soft-light"] .enphase-token-box,body[data-theme="soft-light"] .lg-now>div,body[data-theme="soft-light"] .lg-pair-box{background:#f8f6f1;border-color:#e9e2d7}body[data-theme="soft-light"] .energy-chart svg{background:#fbfaf6;border-color:#e9e2d7}body[data-theme="soft-light"] .theme-option{background:#fff;color:#293029;border-color:#e9e2d7}body[data-theme="soft-light"] .theme-option.selected{outline-color:#8bac70}body[data-theme="soft-light"] .icon-library-settings{border-top-color:#ebe4d9}body[data-theme="soft-light"] .library-icon{background:#faf8f3;color:#697967}body[data-theme="soft-light"] .library-icon span{background:#fff;border:1px solid #e8e2d8}body[data-theme="soft-light"] .pwa-sheet-card{background:#fffdf9;border-color:#e4ded4;color:#293029}body[data-theme="soft-light"] .pwa-sheet-card ol{color:#4e554e}body[data-theme="soft-light"] #toast{background:#283226;color:#fff}

/* Projekt 4: Playful Rounded */
body[data-theme="playful-rounded"]{--bg:#071321;--surface:#101c30;--surface-2:#14223a;--text:#f7f9ff;--muted:#9aa7bd;--border:#263550;--shadow:0 18px 45px rgba(0,0,0,.28);background:radial-gradient(ellipse at -4% -8%,rgba(255,93,78,.32),transparent 26%),radial-gradient(ellipse at 104% -9%,rgba(48,119,255,.34),transparent 28%),linear-gradient(180deg,#071321,#081426 60%,#07101c);color:#f7f9ff;color-scheme:dark;font-family:ui-rounded,"SF Pro Rounded",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body[data-theme="playful-rounded"] header,body[data-theme="playful-rounded"] main,body[data-theme="playful-rounded"] nav{max-width:1260px}body[data-theme="playful-rounded"] .eyebrow{background:linear-gradient(90deg,#b381ff,#ff7085,#ffb33c);-webkit-background-clip:text;background-clip:text;color:transparent}body[data-theme="playful-rounded"] h1{font-weight:850;letter-spacing:-.045em}body[data-theme="playful-rounded"] h2,body[data-theme="playful-rounded"] h3{font-weight:780;letter-spacing:-.02em}body[data-theme="playful-rounded"] p,body[data-theme="playful-rounded"] .muted{color:#96a5bb}body[data-theme="playful-rounded"] button,body[data-theme="playful-rounded"] .button-link{background:#14223a;color:#f8faff;border-color:#2b3a59;border-radius:17px;box-shadow:none}body[data-theme="playful-rounded"] button:hover{background:#192945}body[data-theme="playful-rounded"] .primary,body[data-theme="playful-rounded"] .button-link{background:linear-gradient(135deg,#f3f7ff,#d8fff3);border-color:transparent;color:#142132}body[data-theme="playful-rounded"] .version-badge{background:#14233b;border-color:#2b3b59;color:#bdc9dc}body[data-theme="playful-rounded"] .tab{background:transparent;border-color:transparent;color:#95a4b9}body[data-theme="playful-rounded"] .tab.active{background:#172641;color:#fff;border-color:#304364}body[data-theme="playful-rounded"] .summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:7px 0 18px}body[data-theme="playful-rounded"] .stat,body[data-theme="playful-rounded"] .card,body[data-theme="playful-rounded"] .tado-zone,body[data-theme="playful-rounded"] .nest-device,body[data-theme="playful-rounded"] .cast-device,body[data-theme="playful-rounded"] .camera-device,body[data-theme="playful-rounded"] .energy-tile,body[data-theme="playful-rounded"] .inverter,body[data-theme="playful-rounded"] .lg-tv{background:linear-gradient(150deg,rgba(20,34,58,.96),rgba(11,23,41,.97));border:1px solid #293a58;box-shadow:0 17px 42px rgba(0,0,0,.25);color:#f7f9ff}body[data-theme="playful-rounded"] .stat{border-radius:22px;padding:14px 17px}body[data-theme="playful-rounded"] .stat span{font-size:11px;color:#9cabc0;text-transform:uppercase;letter-spacing:.06em;font-weight:750}body[data-theme="playful-rounded"] .stat strong{font-size:28px;margin:2px 0}body[data-theme="playful-rounded"] .stat small{color:#718199;font-size:10px}body[data-theme="playful-rounded"] .home-device-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body[data-theme="playful-rounded"] .smart-device-card{background:linear-gradient(145deg,#172641,#101c30);border:1px solid #2a3a58;border-radius:27px;padding:18px;box-shadow:0 18px 42px rgba(0,0,0,.28);color:#f7f9ff;min-height:282px}body[data-theme="playful-rounded"] .smart-device-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 6%,rgba(var(--accent-rgb),.17),transparent 44%);pointer-events:none}body[data-theme="playful-rounded"] .smart-device-card.is-active{border-color:rgba(var(--accent-rgb),.38);box-shadow:0 14px 36px rgba(0,0,0,.3),0 0 28px rgba(var(--accent-rgb),.11)}body[data-theme="playful-rounded"] .smart-device-card.type-light.is-active{background:radial-gradient(circle at 20% 18%,rgba(255,190,35,.29),transparent 52%),linear-gradient(145deg,#3a2c17,#182033);border-color:#dd9f29;box-shadow:0 0 30px rgba(255,187,31,.26),0 19px 42px rgba(0,0,0,.3)}body[data-theme="playful-rounded"] .smart-device-card.type-blinds.is-active{background:radial-gradient(circle at 22% 20%,rgba(120,103,255,.28),transparent 55%),linear-gradient(145deg,#232341,#141d34)}body[data-theme="playful-rounded"] .smart-device-card.type-thermostat.is-active,body[data-theme="playful-rounded"] .smart-device-card.type-heating.is-active{background:radial-gradient(circle at 22% 20%,rgba(255,99,65,.24),transparent 55%),linear-gradient(145deg,#3a252b,#1d1d31)}body[data-theme="playful-rounded"] .smart-device-card.type-motion.is-active{background:radial-gradient(circle at 60% 50%,rgba(46,216,139,.25),transparent 58%),linear-gradient(145deg,#153232,#142238)}body[data-theme="playful-rounded"] .smart-device-card.type-aquarium{background:linear-gradient(180deg,#113963,#102341);grid-column:span 2}body[data-theme="playful-rounded"] .smart-device-card.is-offline{filter:saturate(.35);opacity:.56}body[data-theme="playful-rounded"] .device-icon-badge{background:rgba(var(--accent-rgb),.95);color:white;box-shadow:0 6px 18px rgba(var(--accent-rgb),.22)}body[data-theme="playful-rounded"] .card-more{color:#aab5c9}.device-title-wrap h3{font-size:17px}.device-title-wrap h3+span{color:inherit}body[data-theme="playful-rounded"] .visual{color:var(--accent)}body[data-theme="playful-rounded"] .designer-switch{background:#1a263d!important;border-color:#3a4760!important;color:#8e9ab0}body[data-theme="playful-rounded"] .designer-switch i{background:#8390a6;box-shadow:0 2px 6px rgba(0,0,0,.35)}body[data-theme="playful-rounded"] .designer-switch.on{background:linear-gradient(180deg,rgba(var(--accent-rgb),.98),rgba(var(--accent-rgb),.74))!important;color:white;border-color:rgba(var(--accent-rgb),.9)!important;box-shadow:0 0 20px rgba(var(--accent-rgb),.45)!important}body[data-theme="playful-rounded"] .designer-switch.on i{background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.18)}body[data-theme="playful-rounded"] .blind-window{background:linear-gradient(180deg,#15233a,#10284a)}body[data-theme="playful-rounded"] .blind-slat{background:linear-gradient(180deg,#7c68ff,#4e55d8);box-shadow:0 2px 5px rgba(45,35,116,.5)}body[data-theme="playful-rounded"] .thermo-ring:before{background:conic-gradient(from 215deg,#ff8b22 0 42%,#ff4f4d 42% 74%,rgba(255,255,255,.09) 74% 100%);box-shadow:0 0 22px rgba(255,100,61,.17)}body[data-theme="playful-rounded"] .thermo-ring:after{background:#152035}body[data-theme="playful-rounded"] .thermo-target,body[data-theme="playful-rounded"] .heat-label{color:#ff8450}body[data-theme="playful-rounded"] .motion-radar{background:radial-gradient(circle,rgba(54,225,145,.23),rgba(54,225,145,.04) 55%,transparent 70%);color:#48e09c}body[data-theme="playful-rounded"] .motion-visual.detected strong{color:#53e6a3}body[data-theme="playful-rounded"] .aquarium-visual{margin-left:-2px;margin-right:-2px;color:#75caff;background:transparent;box-shadow:inset 0 0 0 1px rgba(89,177,255,.16)}body[data-theme="playful-rounded"] .aquarium-controls span{background:rgba(8,28,54,.72);border:1px solid rgba(100,179,255,.18);color:#d6edff}body[data-theme="playful-rounded"] .heating-visual{color:#ff7654}body[data-theme="playful-rounded"] .home-scene{background:#14223a;border-color:#2b3a58;color:#f4f7ff;box-shadow:0 10px 24px rgba(0,0,0,.2)}body[data-theme="playful-rounded"] .home-scene>span{background:#1e2d49;color:#aebad0}body[data-theme="playful-rounded"] .home-scene.featured{background:linear-gradient(145deg,#273251,#16243e);border-color:#745e4c;color:#ffd66c}body[data-theme="playful-rounded"] .home-scene.featured>span{background:#3a352d;color:#ffd34f}body[data-theme="playful-rounded"] .room{background:linear-gradient(145deg,#14223a,#0e1c31);border:1px solid #293b59;color:#f4f7ff;border-radius:23px;box-shadow:0 10px 27px rgba(0,0,0,.2)}body[data-theme="playful-rounded"] .room-icon{background:#1f3150;color:#85a7ff}body[data-theme="playful-rounded"] .room span{color:#8190a8}body[data-theme="playful-rounded"] .devices{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}body[data-theme="playful-rounded"] .smart-device-card.management{min-height:auto}body[data-theme="playful-rounded"] input,body[data-theme="playful-rounded"] select{background:#0c182a;border-color:#2c3d5b;color:#f4f7ff;border-radius:14px}body[data-theme="playful-rounded"] label{color:#9aa8bc}body[data-theme="playful-rounded"] .device-meta-line,body[data-theme="playful-rounded"] .meta{color:#7f90a9}body[data-theme="playful-rounded"] .pill{background:#1b2b46;color:#9fb0c7}body[data-theme="playful-rounded"] .pill.ready{background:#103a31;color:#72e9bb}body[data-theme="playful-rounded"] .pill.warn{background:#4a321a;color:#ffd47d}body[data-theme="playful-rounded"] .zone-metrics>div,body[data-theme="playful-rounded"] .nest-capability,body[data-theme="playful-rounded"] .cast-now,body[data-theme="playful-rounded"] .backup-item,body[data-theme="playful-rounded"] .enphase-token-box,body[data-theme="playful-rounded"] .lg-now>div,body[data-theme="playful-rounded"] .lg-pair-box{background:#0c182a;border-color:#293b59}body[data-theme="playful-rounded"] .energy-chart svg{background:#091525;border-color:#293b59}body[data-theme="playful-rounded"] .theme-option{background:#101d31;color:#f5f8ff;border-color:#2a3b59}body[data-theme="playful-rounded"] .theme-option.selected{outline-color:#7e71ff}body[data-theme="playful-rounded"] .icon-library-settings{border-top-color:#2b3a58}body[data-theme="playful-rounded"] .library-icon{background:#0d1a2d;color:var(--accent)}body[data-theme="playful-rounded"] .library-icon span{background:rgba(var(--accent-rgb),.13);border:1px solid rgba(var(--accent-rgb),.2)}body[data-theme="playful-rounded"] .pwa-sheet-card{background:#101d31;border-color:#2a3b59;color:#f5f8ff}body[data-theme="playful-rounded"] .pwa-sheet-card ol{color:#c3cde0}body[data-theme="playful-rounded"] #toast{background:#f4f7ff;color:#152039}

@media(max-width:1000px){body[data-theme="playful-rounded"] .home-device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-theme="playful-rounded"] .smart-device-card.type-aquarium{grid-column:span 2}.home-device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-picker{grid-template-columns:1fr}.icon-library-settings{grid-template-columns:1fr}}
@media(max-width:700px){
 .summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}.stat{min-width:0}.stat strong{font-size:22px!important}.stat span{font-size:9px!important}.stat small{display:none}
 .home-section{margin:20px 0}.home-section-head{margin-bottom:10px}.home-section-head h2{font-size:17px}.home-section-note{font-size:10px}
 .home-device-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.smart-device-card{padding:13px!important;border-radius:20px!important;min-height:218px!important}.smart-device-card.type-aquarium{grid-column:span 2}.smart-card-head{gap:5px}.device-title-wrap{gap:7px}.device-title-wrap h3{font-size:13px}.device-title-wrap h3+span{font-size:10px}.device-icon-badge{width:34px;height:34px}.device-icon-badge .device-icon-svg{width:19px;height:19px}.card-more{font-size:10px!important;padding:0!important}.switch-visual,.blinds-visual,.thermostat-visual,.motion-visual,.heating-visual,.simple-visual,.energy-visual{min-height:142px}.switch-visual>.device-icon-svg{width:45px;height:45px}.designer-switch{width:96px;height:42px;padding:3px 5px!important}.designer-switch i{width:34px;height:34px}.designer-switch span{font-size:14px}.blind-window{height:78px}.blinds-visual>strong{font-size:23px}.blinds-visual>small{font-size:9px;margin-top:-25px}.thermo-ring{width:112px;height:112px}.thermo-ring strong{font-size:25px}.thermo-target{font-size:11px;right:1px}.heat-label{font-size:9px}.motion-radar{width:82px;height:82px}.motion-radar .device-icon-svg{width:32px;height:32px}.aquarium-visual{min-height:184px;margin-top:10px}.aquarium-metric strong{font-size:20px}.aquarium-controls span{font-size:12px}.aquarium-controls small{font-size:8px}.heat-icon .device-icon-svg{width:50px;height:50px}.heating-visual>strong{font-size:25px;margin-bottom:37px}.heat-waves{font-size:20px}.simple-visual>.device-icon-svg,.energy-visual>.device-icon-svg{width:50px;height:50px}.simple-visual strong,.energy-visual strong{font-size:20px}
 .home-scenes{gap:8px}.home-scene{min-width:95px;padding:9px 10px!important;border-radius:16px!important;font-size:11px}.home-scene>span{width:27px;height:27px}.rooms{grid-template-columns:1fr 1fr!important;gap:9px}.room{padding:12px!important}.room-icon{width:34px;height:34px}.room h3{font-size:14px!important}.room .eyebrow{font-size:8px}.room span{font-size:9px!important}.room>b{display:none}
 .devices{grid-template-columns:1fr!important}.smart-device-card.management{min-height:auto!important}.smart-device-card.management .visual{min-height:154px}.device-config{grid-template-columns:1fr 1fr}
 .theme-option{grid-template-columns:105px 1fr;padding:10px!important}.theme-preview{height:74px}.settings-icon-library{grid-template-columns:repeat(4,1fr)}
 body[data-theme="soft-light"] nav{background:rgba(250,248,243,.94);border-top-color:#e6dfd3;box-shadow:0 -8px 25px rgba(80,65,43,.08)}body[data-theme="soft-light"] .tab{color:#8a8e88}body[data-theme="soft-light"] .tab.active{background:transparent;color:#719456}body[data-theme="soft-light"] .tab.active::before{color:#719456}
 body[data-theme="playful-rounded"] nav{background:rgba(7,19,33,.94);border-top-color:#263550}body[data-theme="playful-rounded"] .tab.active{background:transparent;color:#fff}body[data-theme="playful-rounded"] .tab.active::before{color:#7e8cff}
}
@media(max-width:420px){.summary{gap:7px}.stat{padding:10px 11px!important}.home-device-grid{gap:8px}.smart-device-card{padding:11px!important}.device-title-wrap h3{font-size:12px}.thermo-ring{width:100px;height:100px}.settings-icon-library{grid-template-columns:repeat(3,1fr)}}

/* v0.1.16 living visuals */
.smart-device-card.type-awning{--accent:#d7933a;--accent-rgb:215,147,58}
.smart-device-card.type-aquarium{grid-column:span 2}
.blinds-visual.enhanced,.awning-visual{min-height:186px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;gap:10px 16px;align-items:center;padding-top:8px}
.blind-window{position:relative;overflow:hidden;border-radius:18px;height:122px;max-width:none}
.blind-frame{position:absolute;inset:0;border-radius:18px;border:4px solid rgba(255,255,255,.78);box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);z-index:6;pointer-events:none}
.blind-view{position:absolute;inset:8px;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,#dff4ff,#c7e6ff 44%,#eef7d4 44%,#b7d08f 100%)}
.blind-landscape{position:absolute;inset:0;background:radial-gradient(circle at 20% 18%,rgba(255,244,190,.9),transparent 14%),linear-gradient(180deg,transparent 48%,rgba(70,120,52,.22) 48%),radial-gradient(circle at 22% 76%,#6fa761 0 10%,transparent 11%),radial-gradient(circle at 41% 80%,#4e7f45 0 8%,transparent 9%),radial-gradient(circle at 74% 82%,#5f9752 0 9%,transparent 10%),linear-gradient(180deg,transparent 68%,rgba(188,213,151,.86) 69%,rgba(171,198,130,.92) 100%)}
.blind-curtain{position:absolute;left:8px;right:8px;top:8px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(234,240,248,.95));border-radius:12px 12px 10px 10px;box-shadow:0 14px 20px rgba(59,73,92,.12);z-index:3;transition:height .35s ease}
.blind-rail{position:absolute;left:0;right:0;top:0;height:14px;border-radius:18px 18px 0 0;background:linear-gradient(180deg,rgba(60,66,72,.15),rgba(255,255,255,.2));z-index:5}
.blind-slat{left:14px;right:14px;height:9px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(215,225,236,.98));box-shadow:0 1px 1px rgba(0,0,0,.05);z-index:4}
.cover-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.cover-side strong{font-size:32px;line-height:1}
.cover-side small{font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;opacity:.7}
.cover-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mini-pill{border:0;padding:10px 8px;border-radius:14px;font-size:12px;font-weight:800;letter-spacing:.02em;cursor:default}
.mini-pill.on{transform:translateY(-1px)}
.awning-scene{position:relative;height:124px;border-radius:22px;overflow:hidden;background:linear-gradient(180deg,#ecf4ff 0 56%,#d9c3a2 56% 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.awning-wall{position:absolute;inset:0 0 42% 0;background:linear-gradient(180deg,#f7f1e8,#efe4d6)}
.awning-window{position:absolute;left:10%;top:22%;width:34%;height:44%;border-radius:14px;background:linear-gradient(180deg,#bbe2ff,#dbf1ff);box-shadow:inset 0 0 0 5px rgba(255,255,255,.85)}
.awning-floor{position:absolute;left:0;right:0;bottom:0;height:44%;background:linear-gradient(180deg,#d9c4a7,#b99e79)}
.awning-canopy,.awning-stripe{position:absolute;left:18%;top:18%;height:18px;border-radius:999px 8px 8px 999px;transform-origin:left center;transition:width .35s ease}
.awning-canopy{background:linear-gradient(180deg,#efc165,#cf8c33);box-shadow:0 10px 18px rgba(128,83,18,.18)}
.awning-stripe{height:6px;top:22.5%}
.awning-stripe.stripe-1{background:rgba(255,255,255,.78)}
.awning-stripe.stripe-2{background:rgba(163,75,13,.22);top:27%}
.awning-arm{position:absolute;top:28%;height:6px;border-radius:99px;background:linear-gradient(180deg,#938b83,#6f6962);transform-origin:left center;transition:width .35s ease}
.awning-arm.left{left:18%;transform:rotate(26deg)}
.awning-arm.right{left:18%;top:34%;transform:rotate(12deg)}
.awning-shadow{position:absolute;left:22%;right:16%;top:46%;height:24px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(76,51,20,.44),transparent 74%);filter:blur(7px);transition:opacity .35s ease}
.awning-pot{position:absolute;bottom:8px;width:18px;height:22px;border-radius:7px 7px 5px 5px;background:linear-gradient(180deg,#b56f37,#80481f)}
.awning-pot.one{left:16%}.awning-pot.two{right:14%}
.aquarium-visual{min-height:218px;border-radius:26px;margin-top:13px;padding:18px 18px 16px;grid-template-columns:1fr auto;grid-template-rows:1fr auto;align-items:end;overflow:hidden}
.aquarium-visual:before{background:radial-gradient(circle at 76% 14%,rgba(255,255,255,.22),transparent 22%),linear-gradient(180deg,rgba(152,230,255,.26),rgba(25,126,196,.48) 36%,rgba(6,87,146,.72) 60%,rgba(3,39,83,.96))}
.aquarium-visual:after{height:38%;background:radial-gradient(ellipse at 10% 100%,#2c8969 0 9%,transparent 10%),radial-gradient(ellipse at 36% 100%,#207658 0 10%,transparent 11%),radial-gradient(ellipse at 72% 100%,#2b7a5f 0 9%,transparent 10%),linear-gradient(180deg,transparent 0 24%,rgba(19,73,86,.18) 24% 100%)}
.aquarium-visual.lights-on{box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),0 0 32px rgba(118,210,255,.2)}
.aquarium-visual.lights-off{filter:saturate(.74) brightness(.82)}
.aquarium-visual.lights-on .waterline{box-shadow:0 5px 18px rgba(111,216,255,.78)}
.aquarium-plant,.aquarium-castle,.bubble-column,.filter-stream,.heater-glow{position:absolute}
.aquarium-plant{bottom:28px;width:34px;height:74px;border-radius:40px 40px 8px 8px;background:radial-gradient(circle at 50% 100%,rgba(0,0,0,0),rgba(0,0,0,0) 38%,transparent 39%),linear-gradient(180deg,#8ce471,#167f54);clip-path:path('M18 74 C8 63, 2 48, 6 34 C9 24, 18 18, 18 0 C22 18, 30 24, 29 38 C28 52, 22 62, 18 74 Z')}
.aquarium-plant.p1{left:18px;transform:scale(.95)}
.aquarium-plant.p2{left:64px;height:84px;transform:scaleX(-1) rotate(4deg)}
.aquarium-castle{left:106px;bottom:24px;width:68px;height:62px;border-radius:18px 18px 10px 10px;background:linear-gradient(180deg,#dccfb9,#9b8e7e);box-shadow:inset 0 0 0 2px rgba(91,76,60,.12)}
.aquarium-castle:before,.aquarium-castle:after{content:"";position:absolute;top:-18px;width:18px;height:24px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#e5d8c3,#a59784)}
.aquarium-castle:before{left:8px}.aquarium-castle:after{right:8px}
.aquarium-castle{clip-path:polygon(0 100%,0 30%,10% 30%,10% 0,35% 0,35% 18%,65% 18%,65% 0,90% 0,90% 30%,100% 30%,100% 100%,60% 100%,60% 62%,40% 62%,40% 100%)}
.bubble-column{bottom:26px;width:36px;height:112px;opacity:0}
.bubble-column:before,.bubble-column:after{content:"";position:absolute;bottom:0;width:9px;height:9px;border-radius:50%;background:rgba(214,244,255,.88);box-shadow:0 -18px 0 2px rgba(214,244,255,.68),4px -40px 0 0 rgba(214,244,255,.74),-2px -60px 0 1px rgba(214,244,255,.52),3px -86px 0 0 rgba(214,244,255,.42)}
.bubble-column.b1{left:30px}.bubble-column.b2{left:188px}
.aquarium-visual.pump-on .bubble-column{opacity:1;animation:bubblesUp 2.8s linear infinite}
.aquarium-visual.pump-on .bubble-column.b2{animation-duration:3.4s;animation-delay:.4s}
@keyframes bubblesUp{0%{transform:translateY(18px);opacity:0}20%{opacity:1}100%{transform:translateY(-18px);opacity:1}}
.filter-stream{right:24px;top:44px;width:88px;height:38px;border-radius:0 24px 24px 24px;background:linear-gradient(90deg,rgba(190,233,255,.08),rgba(210,243,255,.78) 40%,rgba(190,233,255,.08));opacity:0;filter:blur(.2px)}
.aquarium-visual.filter-on .filter-stream{opacity:1;animation:filterFlow 1.8s linear infinite}
@keyframes filterFlow{0%{transform:translateX(0);opacity:.4}50%{transform:translateX(6px);opacity:1}100%{transform:translateX(0);opacity:.4}}
.heater-glow{right:20px;bottom:30px;width:44px;height:72px;border-radius:16px;background:radial-gradient(ellipse at center,rgba(255,158,92,.56),transparent 72%);opacity:0}
.aquarium-visual.heater-on .heater-glow{opacity:1;animation:heatPulse 2s ease-in-out infinite}
@keyframes heatPulse{0%,100%{transform:scale(.96);opacity:.56}50%{transform:scale(1.06);opacity:1}}
.fish{display:block}
.fish .device-icon-svg{width:40px;height:40px;filter:drop-shadow(0 6px 8px rgba(0,0,0,.18))}
.fish.f1{left:34%;top:38%;transform:scaleX(-1);animation:fishSwim 8s ease-in-out infinite}
.fish.f2{left:57%;top:22%;transform:scale(.82);animation:fishSwim2 9s ease-in-out infinite}
@keyframes fishSwim{0%,100%{transform:translateX(0) scaleX(-1)}50%{transform:translateX(16px) scaleX(-1)}}
@keyframes fishSwim2{0%,100%{transform:translateX(0) scale(.82)}50%{transform:translateX(-14px) scale(.82)}}
.aquarium-metric{right:16px;top:14px;padding:8px 10px;border-radius:14px;background:rgba(3,21,44,.2);backdrop-filter:blur(5px)}
.aquarium-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.aqua-switch{border:0;border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:3px;font-weight:800;cursor:default;background:rgba(255,255,255,.16);color:#e7f8ff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.aqua-switch>span{font-size:16px;line-height:1}.aqua-switch small{font-size:10px;opacity:.82}.aqua-switch.on{background:linear-gradient(180deg,rgba(173,239,255,.98),rgba(114,209,255,.92));color:#0b4469;box-shadow:0 8px 18px rgba(95,205,255,.28)}
body[data-theme="soft-light"] .smart-device-card.type-awning.is-active{background:radial-gradient(circle at 12% 12%,rgba(243,186,94,.18),transparent 40%),linear-gradient(180deg,#fffdf8,#fff7ec);border-color:#e7c990}
body[data-theme="soft-light"] .device-icon-badge{box-shadow:0 8px 18px rgba(var(--accent-rgb),.17)}
body[data-theme="soft-light"] .blind-window{background:#f3eee3;box-shadow:inset 0 0 0 1px rgba(175,163,145,.2),0 12px 24px rgba(120,105,84,.08)}
body[data-theme="soft-light"] .cover-side strong{color:#28384a}body[data-theme="soft-light"] .cover-side small{color:#6f7a83}
body[data-theme="soft-light"] .mini-pill{background:#fff;border:1px solid #e5d8c3;color:#63717d;box-shadow:0 7px 16px rgba(93,79,50,.08)}
body[data-theme="soft-light"] .mini-pill.on{background:linear-gradient(180deg,#d9edcf,#bfd8a6);color:#35522a;border-color:#bfd8a6;box-shadow:0 10px 18px rgba(153,189,125,.22)}
body[data-theme="soft-light"] .aquarium-visual{box-shadow:inset 0 0 0 1px rgba(96,159,193,.18),0 16px 34px rgba(26,87,122,.12)}
body[data-theme="soft-light"] .aqua-switch{background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.24)}
body[data-theme="playful-rounded"] .smart-device-card.type-awning{background:linear-gradient(145deg,#233148,#141d31)}
body[data-theme="playful-rounded"] .smart-device-card.type-awning.is-active{background:radial-gradient(circle at 14% 14%,rgba(247,183,34,.24),transparent 45%),linear-gradient(145deg,#3a2f1f,#162134);border-color:#e1ad3b;box-shadow:0 0 28px rgba(247,183,34,.18),0 18px 42px rgba(0,0,0,.3)}
body[data-theme="playful-rounded"] .blind-window{background:linear-gradient(180deg,#15233a,#10284a);box-shadow:inset 0 0 0 1px rgba(143,164,214,.1)}
body[data-theme="playful-rounded"] .blind-frame{border-color:rgba(189,204,235,.36)}
body[data-theme="playful-rounded"] .blind-curtain{background:linear-gradient(180deg,rgba(138,122,255,.95),rgba(81,91,217,.92));box-shadow:0 14px 20px rgba(26,31,72,.28)}
body[data-theme="playful-rounded"] .blind-slat{background:linear-gradient(180deg,#8f81ff,#5d63df)}
body[data-theme="playful-rounded"] .mini-pill{background:#0f1d31;border:1px solid #2f4466;color:#d5dff4;box-shadow:0 8px 18px rgba(0,0,0,.17)}
body[data-theme="playful-rounded"] .mini-pill.on{background:linear-gradient(180deg,rgba(var(--accent-rgb),.96),rgba(var(--accent-rgb),.72));color:#fff;border-color:rgba(var(--accent-rgb),.86);box-shadow:0 0 18px rgba(var(--accent-rgb),.34)}
body[data-theme="playful-rounded"] .awning-scene{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
body[data-theme="playful-rounded"] .aqua-switch{background:rgba(8,28,54,.72);border:1px solid rgba(100,179,255,.18);color:#d6edff}
body[data-theme="playful-rounded"] .aqua-switch.on{background:linear-gradient(180deg,#4dbdff,#1782da);color:#faffff;box-shadow:0 10px 22px rgba(61,173,255,.25)}
@media(max-width:760px){
  .blinds-visual.enhanced,.awning-visual{min-height:170px;gap:8px 10px}
  .blind-window,.awning-scene{height:98px}
  .cover-side strong{font-size:24px}
  .cover-actions{gap:6px}
  .mini-pill{font-size:10px;padding:8px 4px}
  .aquarium-visual{min-height:208px;padding:14px 14px 12px}
  .aquarium-controls{gap:6px}
  .aqua-switch{padding:9px 4px;border-radius:14px}
}

/* v0.1.17 Tado humidity */
.thermostat-visual{padding-bottom:18px}
.thermo-side-stats{display:flex;flex-direction:column;gap:8px;min-width:112px;align-self:center}
.thermo-side-stats>div{display:flex;align-items:center;gap:8px;border-radius:14px;padding:8px 10px}
.thermo-side-stats small{font-size:9px;letter-spacing:.03em;text-transform:uppercase;opacity:.65;display:block}
.thermo-side-stats b{font-size:15px;line-height:1.1;display:block;margin-top:2px}
.thermo-target{position:static!important;font-size:inherit!important}
.thermo-target span{font-size:9px;letter-spacing:.03em;text-transform:uppercase;opacity:.65;display:block}
.thermo-target b{font-size:17px}
.thermo-humidity .humidity-drop{font-size:20px;filter:drop-shadow(0 3px 7px rgba(42,152,218,.2))}
.thermo-power>span{font-size:18px}
body[data-theme="soft-light"] .thermo-side-stats>div{background:#f7f5ef;border:1px solid #e9e2d5;color:#44555c;box-shadow:0 6px 14px rgba(72,84,70,.06)}
body[data-theme="soft-light"] .thermo-humidity.has-value{background:linear-gradient(180deg,#eff8fb,#e7f3f7);border-color:#c9e3ec;color:#3b6772}
body[data-theme="soft-light"] .thermo-power{background:linear-gradient(180deg,#fff4ea,#faeadb)!important;border-color:#efd2b4!important;color:#9b6031!important}
body[data-theme="playful-rounded"] .thermo-side-stats>div{background:#111d31;border:1px solid #2d3b58;color:#d7e0ef;box-shadow:0 8px 18px rgba(0,0,0,.16)}
body[data-theme="playful-rounded"] .thermo-humidity.has-value{background:linear-gradient(145deg,#14354c,#10253c);border-color:#2d779d;color:#75d8ff;box-shadow:0 0 18px rgba(69,184,241,.12)}
body[data-theme="playful-rounded"] .thermo-power{background:linear-gradient(145deg,#442a2a,#2d202b)!important;border-color:#704239!important;color:#ff9b68!important;box-shadow:0 0 18px rgba(255,108,65,.1)!important}
@media(max-width:760px){.thermo-side-stats{min-width:94px;gap:5px}.thermo-side-stats>div{padding:6px 7px;border-radius:11px}.thermo-side-stats b{font-size:12px}.thermo-target b{font-size:14px}.thermo-humidity .humidity-drop{font-size:16px}.thermo-ring{width:104px!important;height:104px!important}.thermostat-visual{gap:7px}}

/* v0.1.18 humidity directly on thermostat dial */
.thermo-ring{padding-bottom:24px;box-sizing:border-box}
.thermo-ring-humidity{position:absolute;left:50%;bottom:19px;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;white-space:nowrap;font-size:11px;font-weight:850;line-height:1}
.thermo-ring-humidity span{font-size:12px;line-height:1}.thermo-ring-humidity b{font-size:11px;line-height:1}
body[data-theme="soft-light"] .thermo-ring-humidity{background:rgba(232,247,251,.94);border:1px solid #c5e1e9;color:#397083;box-shadow:0 4px 12px rgba(71,143,163,.12)}
body[data-theme="playful-rounded"] .thermo-ring-humidity{background:linear-gradient(145deg,rgba(18,61,84,.96),rgba(13,42,66,.96));border:1px solid #347aa1;color:#77d8ff;box-shadow:0 0 14px rgba(63,181,238,.16)}
body[data-theme="playful-rounded"] .thermo-ring-humidity.has-value{box-shadow:0 0 18px rgba(63,181,238,.24)}
@media(max-width:760px){.thermo-ring-humidity{bottom:14px;padding:3px 6px;font-size:10px}.thermo-ring-humidity span,.thermo-ring-humidity b{font-size:10px}.thermo-ring{padding-bottom:20px}}

/* v0.1.19: Tado humidity directly inside thermostat card in Devices */
.thermo-ring-humidity>div{display:flex;flex-direction:column;align-items:flex-start;gap:0;line-height:1}
.thermo-ring-humidity>div small{font-size:7px!important;text-transform:uppercase;letter-spacing:.04em;margin:0!important;opacity:.7}
.thermo-ring-humidity>div b{font-size:12px;line-height:1.05}
.smart-device-card.management.type-thermostat .thermostat-visual{min-height:188px}
.smart-device-card.management.type-thermostat .thermo-ring-humidity{bottom:15px}
@media(max-width:760px){
 .thermo-ring-humidity>div small{font-size:6px!important}
 .thermo-ring-humidity>div b{font-size:10px}
 .smart-device-card.management.type-thermostat .thermostat-visual{min-height:172px!important}
}

/* v0.1.20 Presence */
.presence-summary{margin-bottom:18px}.presence-config-card,.presence-discovery-card{margin-bottom:16px}.presence-config-card small,.presence-person-grid small{display:block;font-size:10px;opacity:.62;margin-top:2px}.presence-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;margin-bottom:18px}.presence-person{position:relative;padding:18px;border-radius:24px;border:1px solid var(--line);overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease,background .2s ease}.presence-person:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55}.presence-person.home:before{background:radial-gradient(circle at 0 0,rgba(73,193,126,.16),transparent 48%)}.presence-person.away:before{background:radial-gradient(circle at 0 0,rgba(133,145,158,.10),transparent 48%)}.presence-person-head{display:flex;gap:11px;align-items:center;position:relative;z-index:1}.presence-person-head>div:nth-child(2){min-width:0;flex:1}.presence-person-head h3{margin:0 0 3px}.presence-avatar{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;font-size:23px;font-weight:900}.presence-state{padding:7px 10px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}.presence-state.home{background:rgba(57,190,121,.14);color:#28965e}.presence-state.away{background:rgba(119,132,145,.12);color:#687581}.presence-state.unknown{background:rgba(223,166,60,.13);color:#a97923}.presence-pending{position:relative;z-index:1;margin:12px 0 0;padding:8px 10px;border-radius:12px;font-size:11px;font-weight:700}.presence-person-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.presence-person-grid>div,.presence-person-grid>label{padding:10px 11px;border-radius:15px;margin:0}.presence-person-grid>div span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.6}.presence-person-grid>div strong{display:block;margin-top:3px;font-size:13px}.presence-person-grid input,.presence-person-grid select{margin-top:5px}.presence-person-actions{position:relative;z-index:1;margin-top:13px}.presence-scan-results{display:grid;gap:8px;margin-top:13px}.presence-client{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:16px}.presence-client>div{min-width:0}.presence-client strong{display:block}.presence-client span{display:block;font-size:11px;opacity:.62;margin-top:2px}.presence-client.used{opacity:.6}.presence-events{display:grid;gap:3px}.presence-event{display:flex;align-items:flex-start;gap:10px;padding:10px 4px;border-bottom:1px solid rgba(127,127,127,.12)}.presence-event:last-child{border-bottom:0}.presence-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex:0 0 auto}.presence-dot.home{background:#3abb79;box-shadow:0 0 0 5px rgba(58,187,121,.11)}.presence-dot.away{background:#8a949e}.presence-event strong,.presence-event small{display:block}.presence-event small{font-size:11px;opacity:.62;margin-top:2px}
body[data-theme="soft-light"] .presence-person,body[data-theme="soft-light"] .presence-client{background:#fff;border:1px solid #ebe4d7;box-shadow:0 12px 28px rgba(80,66,43,.07)}body[data-theme="soft-light"] .presence-person.home{border-color:#bcd9b5;box-shadow:0 13px 30px rgba(102,157,92,.12)}body[data-theme="soft-light"] .presence-avatar{background:#eef5ea;color:#4b8654}body[data-theme="soft-light"] .presence-person.away .presence-avatar{background:#f0f1f0;color:#7b858a}body[data-theme="soft-light"] .presence-pending,body[data-theme="soft-light"] .presence-person-grid>div,body[data-theme="soft-light"] .presence-person-grid>label{background:#f8f6f0;border:1px solid #eee7db}body[data-theme="soft-light"] .presence-home-stat{box-shadow:0 0 0 1px #bdd8b5 inset,0 8px 24px rgba(101,151,87,.1)}
body[data-theme="playful-rounded"] .presence-person,body[data-theme="playful-rounded"] .presence-client{background:linear-gradient(145deg,#16243c,#0e1b30);border:1px solid #2a3b58;box-shadow:0 15px 36px rgba(0,0,0,.23);color:#f7f9ff}body[data-theme="playful-rounded"] .presence-person.home{border-color:rgba(72,221,147,.38);box-shadow:0 18px 40px rgba(0,0,0,.28),0 0 25px rgba(72,221,147,.09)}body[data-theme="playful-rounded"] .presence-avatar{background:#153d35;color:#5de1a8;box-shadow:0 0 18px rgba(65,213,142,.12)}body[data-theme="playful-rounded"] .presence-person.away .presence-avatar{background:#202d42;color:#8290a7;box-shadow:none}body[data-theme="playful-rounded"] .presence-pending,body[data-theme="playful-rounded"] .presence-person-grid>div,body[data-theme="playful-rounded"] .presence-person-grid>label{background:#0c182a;border:1px solid #293b59}body[data-theme="playful-rounded"] .presence-state.home{background:#123a30;color:#72e9bb}body[data-theme="playful-rounded"] .presence-state.away{background:#1e2a3d;color:#93a1b4}body[data-theme="playful-rounded"] .presence-state.unknown{background:#48341b;color:#ffd17c}body[data-theme="playful-rounded"] .presence-pending{color:#f5cd7d;background:#30271d;border-color:#594527}body[data-theme="playful-rounded"] .presence-client button{background:#1b2b46;color:#d9e4f7;border-color:#334969}
@media(max-width:760px){.presence-people{grid-template-columns:1fr}.presence-person{padding:14px;border-radius:20px}.presence-person-grid{grid-template-columns:1fr 1fr;gap:7px}.presence-person-grid>div,.presence-person-grid>label{padding:9px}.presence-person-actions{display:grid;grid-template-columns:1fr 1fr}.presence-person-actions button:first-child{grid-column:1/-1}.presence-client{align-items:flex-start}.presence-client button{white-space:nowrap}}
.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:16px}.scene-card{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.scene-card-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-size:24px}.scene-card-copy h3{margin:0}.scene-card-copy p{margin:4px 0 0;font-size:12px;opacity:.65}.scene-card-actions{grid-column:1/-1;display:flex;gap:8px}.scene-editor{margin-top:14px}.scene-device-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px;margin:14px 0}.scene-device-row{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:15px;margin:0}.scene-device-row>span{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;flex:1;min-width:0}.scene-device-row svg{grid-row:1/3;width:24px;height:24px}.scene-device-row b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-device-row small{font-size:10px;opacity:.62}.scene-device-row select{width:100px;flex:0 0 auto;margin:0}body[data-theme="soft-light"] .scene-card-icon{background:#eef5ea;color:#59835a}body[data-theme="soft-light"] .scene-device-row{background:#faf8f3;border:1px solid #ece5d8}body[data-theme="playful-rounded"] .scene-card-icon{background:#222f4a;color:#ffd15d}body[data-theme="playful-rounded"] .scene-device-row{background:#0c182a;border:1px solid #293b59}@media(max-width:760px){.scene-grid{grid-template-columns:1fr}.scene-device-actions{grid-template-columns:1fr}.scene-device-row select{width:92px}}

/* v0.1.21 Weather */
.weather-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(340px,1fr);gap:18px;margin:10px 0 22px;padding:22px 24px;border-radius:28px;min-height:178px;isolation:isolate;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.weather-card:before,.weather-card:after{content:"";position:absolute;pointer-events:none;z-index:-1}.weather-card:before{inset:0;background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 48%)}.weather-card:after{width:180px;height:180px;border-radius:50%;right:-48px;top:-70px;background:rgba(255,255,255,.18);filter:blur(2px)}
.weather-main{display:flex;align-items:center;gap:18px;min-width:0}.weather-symbol{width:94px;height:94px;border-radius:30px;display:grid;place-items:center;font-size:56px;line-height:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 15px 30px rgba(0,0,0,.10)}.weather-temp{font-size:54px;font-weight:700;line-height:.95;letter-spacing:-.05em;margin:5px 0}.weather-desc{font-size:16px;font-weight:850}.weather-feels{font-size:11px;margin-top:3px;opacity:.68}.weather-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-content:center}.weather-metrics>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;padding:10px 12px;border-radius:16px;backdrop-filter:blur(8px)}.weather-metrics span{grid-row:1/3;font-size:21px;align-self:center}.weather-metrics b{font-size:16px;line-height:1.1}.weather-metrics small{font-size:9px;opacity:.68;margin-top:2px}.weather-foot{grid-column:1/-1;display:flex;align-items:center;gap:14px;font-size:11px;font-weight:750;opacity:.78}.weather-foot button{margin-left:auto;padding:6px 10px!important;min-width:auto!important;border-radius:12px!important}.weather-unconfigured,.weather-error{display:flex;align-items:center;justify-content:space-between;min-height:105px}.weather-unconfigured h3,.weather-error h3{margin:3px 0 2px}.weather-unconfigured p,.weather-error p{margin:0;opacity:.68}.weather-setup{flex:0 0 auto}.weather-settings-card{margin-bottom:14px}
body[data-theme="soft-light"] .weather-card{color:#304052;border:1px solid rgba(185,201,181,.62);background:linear-gradient(135deg,#f7fbf1,#eef6e8 55%,#e7f2ee);box-shadow:0 18px 42px rgba(91,114,83,.12)}body[data-theme="soft-light"] .weather-card.weather-sun{background:linear-gradient(135deg,#fff9e9,#f5f4dc 52%,#e9f4df)}body[data-theme="soft-light"] .weather-card.weather-rain,body[data-theme="soft-light"] .weather-card.weather-storm{background:linear-gradient(135deg,#eef5f7,#e0edf1 54%,#d8e5e9)}body[data-theme="soft-light"] .weather-card.weather-night{background:linear-gradient(135deg,#e9edf5,#dfe6f0 58%,#d8e2e8)}body[data-theme="soft-light"] .weather-symbol,body[data-theme="soft-light"] .weather-metrics>div{background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.65)}body[data-theme="soft-light"] .weather-metrics b{color:#344954}
body[data-theme="playful-rounded"] .weather-card{color:#f7fbff;border:1px solid #304968;background:radial-gradient(circle at 14% 20%,rgba(65,180,255,.22),transparent 42%),linear-gradient(145deg,#16345b,#102742 62%,#0d1d34);box-shadow:0 20px 46px rgba(0,0,0,.26),0 0 28px rgba(77,177,255,.08)}body[data-theme="playful-rounded"] .weather-card.weather-sun{background:radial-gradient(circle at 13% 18%,rgba(255,195,57,.30),transparent 38%),linear-gradient(145deg,#3c351f,#1c3151 60%,#10223d);border-color:#72613a}body[data-theme="playful-rounded"] .weather-card.weather-night{background:radial-gradient(circle at 14% 20%,rgba(128,112,255,.25),transparent 42%),linear-gradient(145deg,#22284c,#111c38 62%,#0b172d);border-color:#4a4e7d}body[data-theme="playful-rounded"] .weather-card.weather-rain{background:radial-gradient(circle at 14% 20%,rgba(63,169,255,.22),transparent 42%),linear-gradient(145deg,#17314d,#11263e 62%,#0b1a2f)}body[data-theme="playful-rounded"] .weather-card.weather-storm{background:radial-gradient(circle at 13% 18%,rgba(167,107,255,.24),transparent 38%),linear-gradient(145deg,#2f274a,#1a2340 62%,#10182e)}body[data-theme="playful-rounded"] .weather-symbol{background:rgba(10,25,46,.42);border:1px solid rgba(130,193,255,.18);box-shadow:0 12px 30px rgba(0,0,0,.25),0 0 24px rgba(85,178,255,.14)}body[data-theme="playful-rounded"] .weather-metrics>div{background:rgba(7,22,42,.45);border:1px solid rgba(124,181,232,.14)}
@media(max-width:760px){.weather-card{grid-template-columns:1fr;padding:17px;border-radius:22px;gap:12px}.weather-main{gap:12px}.weather-symbol{width:72px;height:72px;border-radius:23px;font-size:43px}.weather-temp{font-size:44px}.weather-metrics{grid-template-columns:repeat(2,1fr)}.weather-foot{margin-top:-2px}.weather-unconfigured,.weather-error{display:grid;grid-template-columns:1fr;gap:10px}.weather-setup{justify-self:start}}
.weather-find-progress{opacity:.78}.weather-find-ok{border-left:4px solid #55b879;padding-left:10px}.weather-find-error{border-left:4px solid #d65a57;padding-left:10px}.weather-find-error strong{color:#bd3f3a}body[data-theme="playful-rounded"] .weather-find-error strong{color:#ff8d88}body[data-theme="playful-rounded"] .weather-find-ok{border-left-color:#57df9d}


/* v0.1.24 Weather Pro */
.weather-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(260px,1.08fr) minmax(360px,1fr);gap:20px;margin:10px 0 22px;padding:24px 24px 20px;border-radius:30px;min-height:210px;isolation:isolate;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.weather-card:before,.weather-card:after{content:"";position:absolute;pointer-events:none;z-index:-1}.weather-card:before{inset:0;background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 42%)}.weather-card:after{width:220px;height:220px;border-radius:50%;right:-52px;top:-84px;background:rgba(255,255,255,.12);filter:blur(6px)}
.weather-main{display:flex;align-items:center;gap:20px;min-width:0}.weather-symbol{width:130px;height:130px;border-radius:34px;display:grid;place-items:center;line-height:1;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 18px 34px rgba(0,0,0,.12)}
.weather-scene{position:relative;width:100%;height:100%;overflow:hidden;border-radius:32px;background:linear-gradient(180deg,#8ed8ff,#d6f2ff 54%,#ecf9ff)}
.weather-scene.is-night{background:linear-gradient(180deg,#20315a,#142644 56%,#102039)}
.weather-aura,.weather-celestial,.weather-rays,.weather-cloud,.weather-precip,.weather-lightning,.weather-fog,.weather-snow{position:absolute}
.weather-aura{inset:auto auto 8px 8px;width:120px;height:60px;background:radial-gradient(ellipse at center,rgba(255,255,255,.18),transparent 70%)}
.weather-celestial{top:14px;right:16px;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fffbe0 0 35%,#fbd34d 55%,#ffb300 100%);box-shadow:0 0 26px rgba(255,208,57,.45)}
.weather-scene.is-night .weather-celestial{background:radial-gradient(circle at 35% 35%,#f7f5ff 0 30%,#d8d2ff 55%,#b3aaff 100%);box-shadow:0 0 24px rgba(179,170,255,.38)}
.weather-scene.is-night .weather-celestial:after{content:"";position:absolute;inset:7px 0 0 9px;width:33px;height:33px;border-radius:50%;background:linear-gradient(180deg,#20315a,#142644)}
.weather-rays{top:7px;right:9px;width:58px;height:58px;border-radius:50%;background:conic-gradient(from 0deg,rgba(255,214,92,.0) 0 10%,rgba(255,214,92,.42) 10% 16%,rgba(255,214,92,0) 16% 22%,rgba(255,214,92,.42) 22% 28%,rgba(255,214,92,0) 28% 34%,rgba(255,214,92,.42) 34% 40%,rgba(255,214,92,0) 40% 46%,rgba(255,214,92,.42) 46% 52%,rgba(255,214,92,0) 52% 58%,rgba(255,214,92,.42) 58% 64%,rgba(255,214,92,0) 64% 70%,rgba(255,214,92,.42) 70% 76%,rgba(255,214,92,0) 76% 82%,rgba(255,214,92,.42) 82% 88%,rgba(255,214,92,0) 88% 100%);filter:blur(.4px);opacity:.92}
.weather-scene.is-night .weather-rays{display:none}
.weather-cloud{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(233,242,255,.96));border-radius:999px;box-shadow:0 10px 18px rgba(70,105,137,.12)}
.weather-cloud:before,.weather-cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}
.weather-cloud.cloud-back{width:60px;height:21px;left:18px;top:46px;opacity:.78}
.weather-cloud.cloud-back:before{width:22px;height:22px;left:7px;top:-10px}.weather-cloud.cloud-back:after{width:26px;height:26px;left:29px;top:-13px}
.weather-cloud.cloud-mid{width:72px;height:25px;left:38px;top:60px;opacity:.96}
.weather-cloud.cloud-mid:before{width:28px;height:28px;left:8px;top:-14px}.weather-cloud.cloud-mid:after{width:30px;height:30px;left:34px;top:-16px}
.weather-cloud.cloud-front{width:82px;height:29px;left:22px;top:74px;opacity:1}
.weather-cloud.cloud-front:before{width:30px;height:30px;left:7px;top:-15px}.weather-cloud.cloud-front:after{width:34px;height:34px;left:38px;top:-19px}
.weather-card.weather-sun .cloud-back,.weather-card.weather-sun .cloud-mid{opacity:.65}
.weather-card.weather-sun .cloud-front{opacity:.18}
.weather-card.weather-night .cloud-front,.weather-card.weather-night .cloud-mid,.weather-card.weather-night .cloud-back{background:linear-gradient(180deg,rgba(229,236,255,.92),rgba(173,188,227,.88));box-shadow:0 10px 20px rgba(0,0,0,.16)}
.weather-precip.rain{top:78px;left:18px;width:88px;height:34px;opacity:0}
.weather-precip.rain:before,.weather-precip.rain:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,transparent 0 12px,rgba(112,196,255,.0) 12px 16px,rgba(112,196,255,.96) 16px 18px,transparent 18px 30px)}
.weather-card.weather-rain .weather-precip.rain,.weather-card.weather-storm .weather-precip.rain{opacity:1;animation:rainShift 1.05s linear infinite}.weather-card.weather-rain .weather-precip.rain.r2,.weather-card.weather-storm .weather-precip.rain.r2{animation-delay:.35s;opacity:.65}
@keyframes rainShift{from{transform:translateY(-6px)}to{transform:translateY(10px)}}
.weather-snow{font-size:10px;color:#eef8ff;opacity:0;text-shadow:0 0 10px rgba(255,255,255,.5)}
.weather-snow.s1{left:30px;top:76px}.weather-snow.s2{left:58px;top:90px}.weather-snow.s3{left:86px;top:82px}
.weather-card.weather-snow .weather-snow{opacity:1;animation:snowFloat 2.6s ease-in-out infinite}
.weather-card.weather-snow .weather-snow.s2{animation-delay:.5s}.weather-card.weather-snow .weather-snow.s3{animation-delay:1s}
@keyframes snowFloat{0%{transform:translateY(0)}50%{transform:translateY(8px)}100%{transform:translateY(16px)}}
.weather-lightning{opacity:0;width:0;height:0;border-left:9px solid transparent;border-right:6px solid transparent;border-top:0;border-bottom:28px solid #fff4ab;filter:drop-shadow(0 0 12px rgba(255,234,123,.9))}
.weather-lightning:after{content:"";position:absolute;left:-3px;top:18px;width:0;height:0;border-left:5px solid transparent;border-right:9px solid transparent;border-top:22px solid #ffd43b}
.weather-lightning.l1{right:26px;top:56px;transform:rotate(8deg)}.weather-lightning.l2{right:48px;top:70px;transform:scale(.72) rotate(-2deg)}
.weather-card.weather-storm .weather-lightning{opacity:1;animation:flashBolt 1.9s steps(1,end) infinite}
.weather-card.weather-storm .weather-lightning.l2{animation-delay:.7s}
@keyframes flashBolt{0%,42%,100%{opacity:0}43%,46%{opacity:1}47%,50%{opacity:.1}51%,54%{opacity:1}55%{opacity:0}}
.weather-fog{left:14px;right:14px;height:11px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.78),rgba(255,255,255,.08));opacity:0;filter:blur(1px)}
.weather-fog.f1{top:64px}.weather-fog.f2{top:88px}
.weather-card.weather-fog .weather-fog{opacity:.9;animation:fogDrift 5s ease-in-out infinite}
.weather-card.weather-fog .weather-fog.f2{animation-delay:1.2s}
@keyframes fogDrift{0%,100%{transform:translateX(-3px)}50%{transform:translateX(6px)}}
.weather-temp{font-size:58px;font-weight:780;line-height:.95;letter-spacing:-.05em;margin:5px 0}.weather-desc{font-size:17px;font-weight:850}.weather-feels{font-size:11px;margin-top:4px;opacity:.7}.weather-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:center}.weather-metrics>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;padding:10px 12px;border-radius:16px;backdrop-filter:blur(10px)}.weather-metrics span{grid-row:1/3;font-size:22px;align-self:center}.weather-metrics b{font-size:16px;line-height:1.1}.weather-metrics small{font-size:9px;opacity:.72;margin-top:2px}.weather-foot{grid-column:1/-1;display:flex;align-items:center;gap:14px;font-size:11px;font-weight:760;opacity:.82}.weather-foot button{margin-left:auto;padding:7px 10px!important;min-width:auto!important;border-radius:12px!important}
body[data-theme="soft-light"] .weather-card{color:#304052;border:1px solid rgba(185,201,181,.62);background:linear-gradient(135deg,#f7fbf1,#eef6e8 55%,#e7f2ee);box-shadow:0 18px 42px rgba(91,114,83,.12)}
body[data-theme="soft-light"] .weather-card.weather-sun{background:linear-gradient(135deg,#fff8e3,#f8f0cb 50%,#eef8de)}
body[data-theme="soft-light"] .weather-card.weather-cloud{background:linear-gradient(135deg,#f4f8fb,#eaf1f7 56%,#deebf1)}
body[data-theme="soft-light"] .weather-card.weather-rain{background:linear-gradient(135deg,#eef5f8,#ddeaf0 54%,#d1e1ea)}
body[data-theme="soft-light"] .weather-card.weather-storm{background:linear-gradient(135deg,#e8eef6,#dce5ef 54%,#d0d9e6)}
body[data-theme="soft-light"] .weather-card.weather-snow{background:linear-gradient(135deg,#f9fcff,#eef6fb 54%,#e6f0f7)}
body[data-theme="soft-light"] .weather-card.weather-fog{background:linear-gradient(135deg,#f0f3f6,#e4eaee 54%,#dbe3e8)}
body[data-theme="soft-light"] .weather-card.weather-night{background:linear-gradient(135deg,#e6ecf5,#dde5f0 58%,#d7e0e8)}
body[data-theme="soft-light"] .weather-symbol,body[data-theme="soft-light"] .weather-metrics>div{background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.65)}
body[data-theme="playful-rounded"] .weather-card{color:#f7fbff;border:1px solid #304968;background:radial-gradient(circle at 14% 20%,rgba(65,180,255,.22),transparent 42%),linear-gradient(145deg,#16345b,#102742 62%,#0d1d34);box-shadow:0 20px 46px rgba(0,0,0,.26),0 0 28px rgba(77,177,255,.08)}
body[data-theme="playful-rounded"] .weather-card.weather-sun{background:radial-gradient(circle at 13% 18%,rgba(255,195,57,.34),transparent 38%),linear-gradient(145deg,#4b3a1d,#21395b 60%,#11233d);border-color:#7d6331}
body[data-theme="playful-rounded"] .weather-card.weather-cloud{background:radial-gradient(circle at 14% 20%,rgba(148,194,230,.18),transparent 42%),linear-gradient(145deg,#26374b,#162740 62%,#102039)}
body[data-theme="playful-rounded"] .weather-card.weather-night{background:radial-gradient(circle at 14% 20%,rgba(128,112,255,.25),transparent 42%),linear-gradient(145deg,#22284c,#111c38 62%,#0b172d);border-color:#4a4e7d}
body[data-theme="playful-rounded"] .weather-card.weather-rain{background:radial-gradient(circle at 14% 20%,rgba(63,169,255,.22),transparent 42%),linear-gradient(145deg,#17314d,#11263e 62%,#0b1a2f)}
body[data-theme="playful-rounded"] .weather-card.weather-storm{background:radial-gradient(circle at 13% 18%,rgba(167,107,255,.24),transparent 38%),linear-gradient(145deg,#2f274a,#1a2340 62%,#10182e)}
body[data-theme="playful-rounded"] .weather-card.weather-snow{background:radial-gradient(circle at 13% 18%,rgba(184,224,255,.26),transparent 38%),linear-gradient(145deg,#28415d,#14283f 62%,#10233a)}
body[data-theme="playful-rounded"] .weather-card.weather-fog{background:radial-gradient(circle at 13% 18%,rgba(188,214,232,.16),transparent 38%),linear-gradient(145deg,#334355,#212e3d 62%,#192330)}
body[data-theme="playful-rounded"] .weather-symbol{background:rgba(10,25,46,.42);border:1px solid rgba(130,193,255,.18);box-shadow:0 12px 30px rgba(0,0,0,.25),0 0 24px rgba(85,178,255,.14)}body[data-theme="playful-rounded"] .weather-metrics>div{background:rgba(7,22,42,.45);border:1px solid rgba(124,181,232,.14)}
@media(max-width:760px){.weather-card{grid-template-columns:1fr;padding:17px;border-radius:22px;gap:12px;min-height:188px}.weather-main{gap:12px}.weather-symbol{width:92px;height:92px;border-radius:24px}.weather-temp{font-size:44px}.weather-metrics{grid-template-columns:repeat(2,1fr)}.weather-foot{margin-top:-2px}.weather-unconfigured,.weather-error{display:grid;grid-template-columns:1fr;gap:10px}.weather-setup{justify-self:start}}


/* v0.1.25 Compact Weather Tile */
.weather-card{width:min(100%,348px);max-width:348px;grid-template-columns:1fr;gap:12px;padding:16px 16px 14px;min-height:352px;border-radius:26px;margin:10px 0 18px;align-content:start}
.weather-main{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
.weather-symbol{width:100%;height:136px;border-radius:24px;justify-self:stretch}
.weather-symbol .weather-scene{border-radius:22px}
.weather-temp{font-size:48px;margin:2px 0 4px}
.weather-desc{font-size:15px}
.weather-feels{font-size:11px}
.weather-main>div:last-child{min-width:0}
.weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.weather-metrics>div{padding:9px 10px;border-radius:14px;min-height:58px}
.weather-metrics span{font-size:18px}
.weather-metrics b{font-size:14px}
.weather-metrics small{font-size:9px;line-height:1.15}
.weather-foot{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;font-size:10px;margin-top:2px}
.weather-foot button{margin-left:0;justify-self:end;padding:6px 9px!important;border-radius:10px!important}
.weather-unconfigured,.weather-error{display:grid;grid-template-columns:1fr;gap:12px;min-height:180px;align-content:center}
.weather-setup{justify-self:start}
body[data-theme="soft-light"] .weather-card{box-shadow:0 16px 34px rgba(91,114,83,.10)}
body[data-theme="playful-rounded"] .weather-card{box-shadow:0 18px 38px rgba(0,0,0,.24),0 0 22px rgba(77,177,255,.07)}
@media(max-width:760px){
 .weather-card{width:100%;max-width:none;min-height:332px;padding:16px}
 .weather-symbol{height:128px}
 .weather-temp{font-size:44px}
}


/* v0.1.26 Weather full-scene tile */
.weather-card{
  width:min(100%,348px);
  max-width:348px;
  min-height:372px;
  padding:12px;
  gap:10px;
  border-radius:28px;
  align-content:start;
}
.weather-main{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  min-height:248px;
  gap:0;
}
.weather-symbol{
  grid-area:1/1;
  width:100%;
  height:248px;
  border-radius:24px;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),0 18px 34px rgba(0,0,0,.14);
}
.weather-symbol .weather-scene{border-radius:24px}
.weather-main>div:last-child{
  grid-area:1/1;
  z-index:3;
  align-self:end;
  min-width:0;
  padding:18px 16px 14px;
  border-radius:0 0 24px 24px;
  background:linear-gradient(180deg,rgba(5,10,18,0) 0%,rgba(6,12,21,.18) 16%,rgba(6,12,21,.54) 42%,rgba(6,12,21,.78) 100%);
}
.weather-main .eyebrow{color:rgba(255,255,255,.82);text-shadow:0 1px 3px rgba(0,0,0,.34)}
.weather-temp{font-size:54px;line-height:.92;margin:3px 0 5px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.weather-desc{font-size:16px;font-weight:850;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.3)}
.weather-feels{font-size:11px;opacity:.96;color:rgba(255,255,255,.92);text-shadow:0 1px 5px rgba(0,0,0,.28)}
.weather-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:-6px;
}
.weather-metrics>div{
  padding:10px 10px;
  border-radius:15px;
  min-height:60px;
  backdrop-filter:blur(10px);
}
.weather-metrics span{font-size:18px}
.weather-metrics b{font-size:14px}
.weather-metrics small{font-size:9px;line-height:1.15}
.weather-foot{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:8px;
  align-items:center;
  margin-top:2px;
  font-size:10px;
}
.weather-foot button{margin-left:0;justify-self:end;padding:6px 9px!important;border-radius:10px!important}
body[data-theme="soft-light"] .weather-main>div:last-child{
  background:linear-gradient(180deg,rgba(34,47,62,0) 0%,rgba(34,47,62,.10) 18%,rgba(34,47,62,.44) 42%,rgba(34,47,62,.68) 100%);
}
body[data-theme="playful-rounded"] .weather-main>div:last-child{
  background:linear-gradient(180deg,rgba(2,9,18,0) 0%,rgba(2,9,18,.20) 16%,rgba(2,9,18,.58) 44%,rgba(2,9,18,.84) 100%);
}
body[data-theme="soft-light"] .weather-metrics>div{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(255,255,255,.46);
  box-shadow:0 10px 18px rgba(41,58,72,.08);
}
body[data-theme="playful-rounded"] .weather-metrics>div{
  background:rgba(8,23,41,.54);
  border:1px solid rgba(119,186,246,.16);
  box-shadow:0 12px 20px rgba(0,0,0,.18);
}
@media(max-width:760px){
  .weather-card{width:100%;max-width:none;min-height:360px;padding:12px}
  .weather-main{min-height:236px}
  .weather-symbol{height:236px}
  .weather-main>div:last-child{padding:16px 14px 13px}
  .weather-temp{font-size:50px}
}

/* v0.1.27 Local tile layout editor */
.layout-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px;padding:9px 11px;border-radius:16px;border:1px solid rgba(127,127,127,.14);background:rgba(127,127,127,.045)}
.layout-toolbar>span{font-size:10px;font-weight:750;letter-spacing:.03em;opacity:.6}.layout-toolbar>div{display:flex;gap:7px}.layout-toolbar button{padding:8px 11px!important;border-radius:11px!important;font-size:11px}.layout-toolbar button.active{box-shadow:0 0 0 2px currentColor inset}
.layout-container-editing{position:relative}.layout-movable{position:relative!important;outline:1px dashed rgba(88,145,204,.32);outline-offset:2px;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.layout-movable:hover{transform:none!important}.layout-dragging{opacity:.76;transform:scale(.985)!important;z-index:80!important;box-shadow:0 20px 45px rgba(0,0,0,.24)!important}.tile-drag-handle{position:absolute;right:9px;top:9px;z-index:100;width:34px;height:34px;border-radius:11px;display:grid;grid-template-columns:repeat(2,4px);grid-template-rows:repeat(3,4px);gap:3px;align-content:center;justify-content:center;cursor:grab;touch-action:none;background:rgba(18,28,42,.78);border:1px solid rgba(255,255,255,.18);box-shadow:0 7px 18px rgba(0,0,0,.18);backdrop-filter:blur(8px)}.tile-drag-handle:active{cursor:grabbing}.tile-drag-handle i{display:block;width:4px;height:4px;border-radius:50%;background:#eaf2ff;pointer-events:none}.layout-editing .layout-movable>*:not(.tile-drag-handle){pointer-events:none!important;user-select:none!important}.layout-editing .layout-movable{user-select:none;-webkit-user-select:none}
body[data-theme="soft-light"] .layout-toolbar{background:rgba(255,255,255,.58);border-color:#e8e1d6}body[data-theme="soft-light"] .tile-drag-handle{background:rgba(255,255,255,.92);border-color:#d9d1c4;box-shadow:0 8px 18px rgba(92,80,59,.12)}body[data-theme="soft-light"] .tile-drag-handle i{background:#5c6c75}
body[data-theme="playful-rounded"] .layout-toolbar{background:#0e1b2f;border-color:#293a58}body[data-theme="playful-rounded"] .layout-toolbar button.active{color:#fff;border-color:#7468ff;background:#2a2850!important}body[data-theme="playful-rounded"] .tile-drag-handle{background:rgba(13,26,46,.92);border-color:#3b4b69}
.home-device-grid .weather-card{width:100%;max-width:none;margin:0;align-self:stretch}
@media(min-width:761px){body[data-theme="playful-rounded"] .home-device-grid .weather-card{min-height:282px}}
@media(max-width:760px){.layout-toolbar{position:sticky;top:6px;z-index:120;margin-top:0;background:rgba(16,25,38,.88);backdrop-filter:blur(12px)}body[data-theme="soft-light"] .layout-toolbar{background:rgba(249,247,242,.92)}.layout-toolbar>span{display:none}.layout-toolbar>div{margin-left:auto}.tile-drag-handle{width:38px;height:38px;right:7px;top:7px}}


/* v0.1.28 mobile readability fix */
@media (max-width: 700px){
  header{padding:18px 14px 12px!important}
  main{padding:0 14px calc(112px + env(safe-area-inset-bottom))!important}
  .home-section{margin:18px 0!important}
  .home-section-head{align-items:center!important;gap:8px!important}
  .home-section-head h2{font-size:16px!important}
  .home-section-note{font-size:11px!important}

  .home-device-grid{grid-template-columns:1fr!important;gap:12px!important}
  .smart-device-card{min-height:auto!important;padding:14px!important;border-radius:22px!important}
  .smart-device-card.type-aquarium{grid-column:auto!important}
  .smart-card-head{gap:8px!important;margin-bottom:6px}
  .device-title-wrap{gap:9px!important}
  .device-title-wrap h3{font-size:16px!important}
  .device-title-wrap h3+span{font-size:12px!important}
  .device-icon-badge{width:40px!important;height:40px!important}
  .device-icon-badge .device-icon-svg{width:21px!important;height:21px!important}
  .card-more{font-size:14px!important;padding:2px 4px!important}

  .switch-visual,.blinds-visual,.motion-visual,.heating-visual,.simple-visual,.energy-visual{min-height:150px!important}

  .thermostat-visual{
    display:grid!important;
    grid-template-columns:104px minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
    min-height:auto!important;
    padding:4px 0 30px!important;
  }
  .thermo-ring{width:104px!important;height:104px!important;padding-bottom:18px!important}
  .thermo-ring strong{font-size:24px!important}
  .thermo-ring small{font-size:9px!important}
  .thermo-ring-humidity{bottom:12px!important;padding:4px 7px!important}
  .thermo-ring-humidity span{font-size:10px!important}
  .thermo-ring-humidity>div small{font-size:6px!important}
  .thermo-ring-humidity>div b{font-size:10px!important}
  .thermo-side-stats{min-width:0!important;width:100%!important;gap:7px!important}
  .thermo-side-stats>div{padding:8px 9px!important;border-radius:12px!important;gap:7px!important}
  .thermo-side-stats small{font-size:8px!important}
  .thermo-side-stats b{font-size:14px!important}
  .thermo-target b{font-size:15px!important}
  .heat-label{
    position:static!important;
    transform:none!important;
    grid-column:1 / -1!important;
    justify-self:center!important;
    text-align:center!important;
    margin-top:2px!important;
    font-size:11px!important;
    white-space:normal!important;
  }

  .blinds-visual.enhanced,.awning-visual{min-height:168px!important;gap:8px 12px!important}
  .blind-window{height:96px!important}
  .blinds-visual>strong{font-size:24px!important}
  .blinds-visual>small{font-size:10px!important;margin-top:-12px!important}
  .aquarium-visual{min-height:176px!important}
  .heating-visual>strong{font-size:26px!important}

  .rooms{grid-template-columns:1fr!important;gap:10px!important}
  .room{padding:13px 14px!important;border-radius:18px!important}
  .room h3{font-size:15px!important}
  .room span{font-size:11px!important}

  nav{padding-left:max(4px,env(safe-area-inset-left))!important;padding-right:max(4px,env(safe-area-inset-right))!important}
  .tab{font-size:11px!important;padding:8px 8px!important}
}

@media (max-width: 420px){
  main{padding:0 12px calc(112px + env(safe-area-inset-bottom))!important}
  .home-device-grid{gap:10px!important}
  .smart-device-card{padding:13px!important}
  .thermostat-visual{grid-template-columns:96px minmax(0,1fr)!important;gap:9px!important}
  .thermo-ring{width:96px!important;height:96px!important}
  .thermo-ring strong{font-size:22px!important}
  .thermo-side-stats b{font-size:13px!important}
}

/* v0.1.29 compact mobile cards + fixed weather sizing */
.weather-card{
  width:100%;
  max-width:none;
  min-height:276px;
  height:276px;
  margin:0;
  padding:0;
  border-radius:24px;
  display:block;
  overflow:hidden;
}
.weather-card .weather-main{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:0;
}
.weather-card .weather-symbol{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border-radius:24px;
  overflow:hidden;
  box-shadow:none;
}
.weather-card .weather-symbol .weather-scene{border-radius:24px}
.weather-card .weather-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  padding:16px!important;
  display:grid!important;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
  grid-template-rows:1fr auto!important;
  gap:8px 10px!important;
  align-items:end!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,rgba(4,10,18,.02) 0%,rgba(4,10,18,.08) 28%,rgba(4,10,18,.48) 68%,rgba(4,10,18,.78) 100%)!important;
}
.weather-primary{min-width:0;align-self:end}
.weather-card .weather-temp{font-size:48px;line-height:.9;margin:3px 0 5px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.42)}
.weather-card .weather-desc{font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 7px rgba(0,0,0,.35)}
.weather-card .weather-feels{font-size:9px;color:rgba(255,255,255,.9)}
.weather-card .eyebrow{font-size:9px;color:rgba(255,255,255,.9);text-shadow:0 1px 5px rgba(0,0,0,.35)}
.weather-inline-metrics{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-self:end;min-width:0}
.weather-inline-metrics>div{min-width:0;padding:6px 6px;border-radius:11px;background:rgba(7,18,31,.46);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:4px;align-items:center}
.weather-inline-metrics span{grid-row:1/3;font-size:12px}
.weather-inline-metrics b{font-size:10px;color:#fff;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.weather-inline-metrics small{font-size:7px;color:rgba(255,255,255,.72);line-height:1.05}
.weather-card .weather-foot{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr auto!important;gap:6px!important;align-items:center!important;margin:0!important;font-size:8px!important;color:rgba(255,255,255,.82)!important}
.weather-card .weather-foot button{margin:0!important;padding:4px 7px!important;min-width:0!important;border-radius:9px!important;background:rgba(7,18,31,.4)!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important}
body[data-theme="soft-light"] .weather-card .weather-overlay{background:linear-gradient(180deg,rgba(32,44,58,.01) 0%,rgba(32,44,58,.04) 28%,rgba(32,44,58,.38) 68%,rgba(32,44,58,.68) 100%)!important}

/* drag handle must remain touch-draggable on iOS */
.tile-drag-handle{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;touch-action:none!important}
.layout-dragging{will-change:transform;z-index:999!important;opacity:.82!important}

@media(max-width:700px){
  header{padding:18px 12px 12px!important}
  main{padding:0 12px calc(108px + env(safe-area-inset-bottom))!important}
  .home-section{margin:18px 0!important}
  .home-device-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .smart-device-card,
  .weather-card{min-height:218px!important;height:218px!important;border-radius:20px!important}
  .smart-device-card{padding:11px!important}
  .smart-device-card.type-aquarium{grid-column:span 2!important;height:auto!important;min-height:218px!important}
  .smart-card-head{gap:5px!important;margin-bottom:0!important}
  .device-title-wrap{gap:6px!important}
  .device-title-wrap h3{font-size:12px!important;line-height:1.1!important}
  .device-title-wrap h3+span{font-size:9px!important;margin-top:2px!important}
  .device-icon-badge{width:32px!important;height:32px!important}
  .device-icon-badge .device-icon-svg{width:18px!important;height:18px!important}
  .card-more{font-size:10px!important;padding:0!important}

  .thermostat-visual{
    display:grid!important;
    grid-template-columns:78px minmax(0,1fr)!important;
    grid-template-rows:1fr auto!important;
    gap:3px 5px!important;
    align-items:center!important;
    min-height:155px!important;
    height:155px!important;
    padding:0!important;
  }
  .thermo-ring{width:78px!important;height:78px!important;padding-bottom:15px!important}
  .thermo-ring:after{inset:7px!important}
  .thermo-ring strong{font-size:20px!important;line-height:1!important}
  .thermo-ring small{font-size:7px!important;margin-top:1px!important}
  .thermo-ring-humidity{bottom:7px!important;padding:3px 4px!important;gap:2px!important;max-width:76px!important}
  .thermo-ring-humidity span{font-size:8px!important}
  .thermo-ring-humidity>div small{font-size:5px!important;letter-spacing:0!important}
  .thermo-ring-humidity>div b{font-size:8px!important}
  .thermo-side-stats{min-width:0!important;width:100%!important;gap:5px!important}
  .thermo-side-stats>div{min-width:0!important;padding:6px 5px!important;border-radius:10px!important;gap:4px!important}
  .thermo-side-stats small{font-size:6px!important;letter-spacing:0!important;line-height:1.05!important}
  .thermo-side-stats b{font-size:10px!important;line-height:1.05!important;white-space:nowrap!important}
  .thermo-target b{font-size:11px!important}
  .thermo-power>span{font-size:13px!important}
  .heat-label{position:static!important;transform:none!important;grid-column:1/-1!important;justify-self:center!important;margin-top:1px!important;font-size:8px!important;line-height:1!important;white-space:nowrap!important}

  .switch-visual,.blinds-visual,.motion-visual,.heating-visual,.simple-visual,.energy-visual{min-height:150px!important}
  .blinds-visual.enhanced,.awning-visual{min-height:155px!important}
  .blind-window{height:84px!important}
  .aquarium-visual{min-height:176px!important}

  .weather-card .weather-symbol,.weather-card .weather-symbol .weather-scene{border-radius:20px!important}
  .weather-card .weather-overlay{padding:10px!important;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;gap:5px 6px!important;border-radius:20px!important}
  .weather-card .weather-temp{font-size:34px!important;margin:2px 0 3px!important}
  .weather-card .weather-desc{font-size:9px!important}
  .weather-card .weather-feels{font-size:7px!important}
  .weather-card .eyebrow{font-size:7px!important;letter-spacing:.1em!important}
  .weather-inline-metrics{gap:3px!important}
  .weather-inline-metrics>div{padding:4px 4px!important;border-radius:8px!important;column-gap:2px!important}
  .weather-inline-metrics span{font-size:9px!important}
  .weather-inline-metrics b{font-size:8px!important}
  .weather-inline-metrics small{font-size:5px!important}
  .weather-card .weather-foot{font-size:6px!important;gap:4px!important}
  .weather-card .weather-foot button{padding:3px 5px!important;font-size:8px!important}

  .rooms{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .room{padding:11px!important}
  .room h3{font-size:13px!important}
  .room span{font-size:9px!important}
}

@media(max-width:350px){
  .home-device-grid{grid-template-columns:1fr!important}
  .smart-device-card,.weather-card{height:auto!important;min-height:218px!important}
  .smart-device-card.type-aquarium{grid-column:auto!important}
}

.weather-card.weather-unconfigured,.weather-card.weather-error{display:grid!important;height:auto!important;min-height:218px!important;padding:16px!important;align-content:center!important}


/* v0.1.30 door/window/leak visuals */
.smart-device-card.type-door{--accent:#d98e58;--accent-rgb:217,142,88}
.smart-device-card.type-window{--accent:#5aa0d9;--accent-rgb:90,160,217}
.smart-device-card.type-leak{--accent:#2d9fe7;--accent-rgb:45,159,231}
.contact-visual,.leak-visual{min-height:164px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center}
.contact-visual strong,.leak-visual strong{font-size:22px}
.contact-visual small,.leak-visual small{font-size:11px;opacity:.72}
.contact-scene{position:relative;width:124px;height:96px;border-radius:22px;overflow:visible}
.contact-glow{position:absolute;inset:auto;left:50%;top:50%;width:86px;height:86px;transform:translate(-50%,-50%);border-radius:50%;opacity:.18;filter:blur(12px)}
.door-frame{position:absolute;left:27px;top:6px;width:62px;height:84px;border-radius:14px 14px 4px 4px;border:4px solid rgba(255,255,255,.88);background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.06))}
.door-leaf{position:absolute;left:31px;top:10px;width:54px;height:76px;border-radius:10px 10px 4px 4px;transform-origin:left center;transition:transform .28s ease,box-shadow .28s ease;background:linear-gradient(180deg,#dca16d,#b96f3f);box-shadow:0 10px 18px rgba(82,46,22,.22)}
.door-knob{position:absolute;left:74px;top:45px;width:8px;height:8px;border-radius:50%;background:#fff6dc;box-shadow:0 0 0 2px rgba(120,72,40,.15)}
.door-visual.opened .door-leaf{transform:perspective(160px) rotateY(-54deg)}
.door-visual.opened .contact-glow{background:rgba(255,175,84,.95)}
.door-visual.closed .contact-glow{background:rgba(96,212,145,.75)}
.window-frame{position:absolute;inset:6px;border-radius:18px;border:4px solid rgba(255,255,255,.9);background:linear-gradient(180deg,rgba(217,241,255,.55),rgba(169,211,243,.28));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.window-pane{position:absolute;top:12px;bottom:12px;width:40px;border-radius:10px;background:linear-gradient(180deg,#daf2ff,#a4d8ff 55%,#d8f0ff);border:1px solid rgba(255,255,255,.82);box-shadow:0 8px 14px rgba(39,81,113,.14);transition:transform .28s ease}
.window-pane.left{left:16px;transform-origin:left center}
.window-pane.right{right:16px;transform-origin:right center}
.window-pane:before{content:"";position:absolute;left:50%;top:8px;bottom:8px;width:2px;transform:translateX(-50%);background:rgba(255,255,255,.72)}
.window-shine{position:absolute;left:36px;top:18px;width:18px;height:48px;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,0));transform:rotate(18deg)}
.window-visual.opened .window-pane.left{transform:perspective(160px) rotateY(52deg) translateX(-5px)}
.window-visual.opened .window-pane.right{transform:perspective(160px) rotateY(-52deg) translateX(5px)}
.window-visual.opened .contact-glow{background:rgba(96,196,255,.86)}
.window-visual.closed .contact-glow{background:rgba(96,212,145,.7)}
.leak-visual{position:relative}
.leak-drop{position:relative;width:64px;height:82px;clip-path:path('M32 0 C46 18 58 31 58 46 C58 63 46 76 32 76 C18 76 6 63 6 46 C6 31 18 18 32 0 Z');background:linear-gradient(180deg,#82ddff,#2c8de6 70%,#1363bb);box-shadow:0 14px 26px rgba(20,97,176,.22)}
.leak-drop:after{content:"";position:absolute;left:18px;top:12px;width:14px;height:28px;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,0))}
.leak-ripple{position:absolute;left:50%;top:98px;border-radius:50%;border:2px solid currentColor;transform:translateX(-50%);opacity:.28}
.leak-ripple.r1{width:58px;height:18px}.leak-ripple.r2{width:84px;height:26px;top:104px}.leak-ripple.r3{width:110px;height:34px;top:111px}
.leak-visual.alarm .leak-drop{background:linear-gradient(180deg,#6cc6ff,#1b82ea 68%,#1156b6)}
.leak-visual.alarm .leak-ripple{animation:leakPulse 1.9s ease-out infinite}
.leak-visual.alarm strong{color:#24a2ff}
.leak-visual.dry .leak-drop{filter:saturate(.7);opacity:.9}
.leak-visual.dry .leak-ripple{opacity:.14}
@keyframes leakPulse{0%{transform:translateX(-50%) scale(.92);opacity:.36}100%{transform:translateX(-50%) scale(1.12);opacity:.05}}
body[data-theme="soft-light"] .smart-device-card.type-door.is-active{background:radial-gradient(circle at 16% 12%,rgba(225,169,100,.16),transparent 42%),linear-gradient(180deg,#fffdf9,#fff4ec);border-color:#e6c39f}
body[data-theme="soft-light"] .smart-device-card.type-window.is-active{background:radial-gradient(circle at 18% 12%,rgba(126,194,240,.18),transparent 44%),linear-gradient(180deg,#fbfeff,#eef7ff);border-color:#bfdcf0}
body[data-theme="soft-light"] .smart-device-card.type-leak.is-active{background:radial-gradient(circle at 16% 12%,rgba(95,186,255,.18),transparent 44%),linear-gradient(180deg,#f9fdff,#eef7ff);border-color:#b8d9f5}
body[data-theme="playful-rounded"] .smart-device-card.type-door{background:linear-gradient(145deg,#2f2430,#182132)}
body[data-theme="playful-rounded"] .smart-device-card.type-window{background:linear-gradient(145deg,#1a2840,#132133)}
body[data-theme="playful-rounded"] .smart-device-card.type-leak{background:linear-gradient(145deg,#162840,#122034)}
body[data-theme="playful-rounded"] .smart-device-card.type-door.is-active{background:radial-gradient(circle at 18% 14%,rgba(230,151,78,.22),transparent 45%),linear-gradient(145deg,#3d2b21,#182133)}
body[data-theme="playful-rounded"] .smart-device-card.type-window.is-active{background:radial-gradient(circle at 18% 14%,rgba(90,174,255,.20),transparent 45%),linear-gradient(145deg,#1d2f49,#152134)}
body[data-theme="playful-rounded"] .smart-device-card.type-leak.is-active{background:radial-gradient(circle at 18% 14%,rgba(65,175,255,.22),transparent 45%),linear-gradient(145deg,#15314d,#142134)}
@media(max-width:700px){
  .contact-visual,.leak-visual{min-height:150px!important;gap:7px}
  .contact-scene{width:106px;height:84px}
  .door-frame{left:24px;width:54px;height:74px}
  .door-leaf{left:28px;width:46px;height:66px}
  .door-knob{left:66px;top:40px}
  .window-pane{width:34px}
  .window-pane.left{left:14px}
  .window-pane.right{right:14px}
  .leak-drop{width:54px;height:70px}
  .leak-ripple{top:86px}
  .leak-ripple.r2{top:92px}.leak-ripple.r3{top:98px}
  .contact-visual strong,.leak-visual strong{font-size:18px}
}


/* v0.1.31 premium visuals */
:root{--lux-shadow-soft:0 18px 42px rgba(24,36,52,.10);--lux-shadow-deep:0 22px 54px rgba(8,14,24,.28)}
.smart-device-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.smart-device-card::before,.smart-device-card::after{content:"";position:absolute;pointer-events:none;inset:auto;z-index:1}
.smart-device-card::before{left:-18%;top:-18%;width:58%;height:58%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.20),rgba(255,255,255,0) 68%);opacity:.55}
.smart-device-card::after{right:-25%;bottom:-26%;width:58%;height:58%;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.12),rgba(var(--accent-rgb),0) 70%);opacity:.9}
.smart-device-card .visual,.smart-device-card .smart-card-head,.smart-device-card .device-meta-line,.smart-device-card .device-config{position:relative;z-index:2}
.smart-card-head{margin-bottom:4px}
.device-title-wrap h3{font-weight:850;letter-spacing:-.02em}
.device-icon-badge{box-shadow:0 10px 24px rgba(var(--accent-rgb),.20),inset 0 1px 0 rgba(255,255,255,.35);position:relative;overflow:hidden}
.device-icon-badge::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,0) 45%);pointer-events:none}
.card-more{border-radius:10px!important;transition:background .18s ease,opacity .18s ease}
.card-more:hover{opacity:.9;background:rgba(255,255,255,.08)!important}
.smart-device-card.is-active .device-icon-badge{animation:luxGlow 3.4s ease-in-out infinite}
@keyframes luxGlow{0%,100%{box-shadow:0 10px 24px rgba(var(--accent-rgb),.20),inset 0 1px 0 rgba(255,255,255,.35)}50%{box-shadow:0 12px 30px rgba(var(--accent-rgb),.35),0 0 0 6px rgba(var(--accent-rgb),.07),inset 0 1px 0 rgba(255,255,255,.42)}}

.switch-visual{gap:16px}
.switch-visual>.device-icon-svg{filter:drop-shadow(0 10px 14px rgba(var(--accent-rgb),.22))}
.designer-switch{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 10px 22px rgba(0,0,0,.14)}
.designer-switch::before{content:"";position:absolute;inset:4px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0));pointer-events:none}
.designer-switch i{box-shadow:0 6px 12px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.55)}
.designer-switch.on{box-shadow:0 0 0 1px rgba(var(--accent-rgb),.22),0 14px 26px rgba(var(--accent-rgb),.22),inset 0 0 0 1px rgba(255,255,255,.12)!important}
.designer-switch.on i{transform:translateX(66px)}

.blinds-visual.enhanced,.awning-visual{filter:drop-shadow(0 10px 18px rgba(0,0,0,.08))}
.blind-window,.awning-scene{box-shadow:inset 0 0 0 1px rgba(255,255,255,.42),0 12px 18px rgba(62,91,118,.10)}
.cover-actions .mini-pill{box-shadow:0 8px 16px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.25)}
.cover-actions .mini-pill.on{box-shadow:0 10px 18px rgba(var(--accent-rgb),.18),inset 0 1px 0 rgba(255,255,255,.36)}

.thermostat-visual{gap:16px}
.thermo-ring{box-shadow:0 20px 34px rgba(var(--accent-rgb),.16)}
.thermo-ring strong{letter-spacing:-.04em}
.thermo-ring-humidity{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;backdrop-filter:blur(10px);box-shadow:0 10px 22px rgba(0,0,0,.10)}
.thermo-ring-humidity span{font-size:15px;line-height:1}
.thermo-ring-humidity small{font-size:7px;text-transform:uppercase;letter-spacing:.08em;opacity:.72}
.thermo-ring-humidity b{font-size:12px;line-height:1.05}
.thermo-side-stats{display:flex;flex-direction:column;gap:10px;min-width:128px}
.thermo-side-stats>div{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:16px;box-shadow:0 10px 22px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.22)}
.thermo-target{position:static!important;display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.thermo-target span,.thermo-power small{text-transform:uppercase;letter-spacing:.08em;font-size:9px;opacity:.72;font-weight:800}
.thermo-target b,.thermo-power b{font-size:16px;line-height:1.05}
.thermo-power{display:flex;align-items:center}
.thermo-power>span{font-size:24px;line-height:1}
.heat-label{padding:4px 10px;border-radius:999px;backdrop-filter:blur(8px);box-shadow:0 8px 18px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.22)}

.motion-radar{overflow:hidden}
.motion-radar::before{content:"";position:absolute;inset:-10%;background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,0) 280deg,rgba(255,255,255,.26) 320deg,rgba(255,255,255,0) 360deg);animation:radarSweep 3.8s linear infinite;opacity:.48}
@keyframes radarSweep{to{transform:rotate(360deg)}}
.motion-visual.detected strong{animation:motionAlert 1.8s ease-in-out infinite}
@keyframes motionAlert{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

.contact-visual .contact-scene,.leak-visual .leak-drop,.camera-visual .camera-stage,.tv-visual .tv-stage,.speaker-visual .speaker-stage,.fan-visual .fan-stage,.energy-visual .energy-stage,.heating-visual .heating-stage{filter:drop-shadow(0 12px 18px rgba(0,0,0,.10))}
.contact-visual strong,.leak-visual strong{font-weight:850;letter-spacing:-.02em}
.door-visual.opened .door-leaf{box-shadow:-12px 10px 24px rgba(74,39,18,.18)}
.window-visual.opened .window-pane{box-shadow:0 12px 20px rgba(52,94,130,.18)}
.leak-visual.alarm strong{animation:leakWarn 1.5s ease-in-out infinite}
@keyframes leakWarn{0%,100%{opacity:1}50%{opacity:.6}}

.aquarium-visual{box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 20px 34px rgba(6,48,90,.18)}
.bubble-column::before,.bubble-column::after{content:"";position:absolute;bottom:0;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.95),rgba(164,231,255,.52) 55%,rgba(164,231,255,0) 70%);animation:bubbleRise 4.4s linear infinite}
.bubble-column::after{width:10px;height:10px;left:14px;animation-duration:5.2s;animation-delay:1.1s}
.bubble-column::before{width:14px;height:14px;left:2px}
@keyframes bubbleRise{0%{transform:translateY(0) scale(.7);opacity:0}12%{opacity:.9}100%{transform:translateY(-118px) scale(1.05);opacity:0}}
.filter-stream{position:absolute;right:16px;top:38px;width:36px;height:76px;background:linear-gradient(180deg,rgba(132,232,255,0),rgba(132,232,255,.28) 16%,rgba(132,232,255,.54) 48%,rgba(132,232,255,0));border-radius:999px;opacity:0;transition:opacity .18s ease}
.aquarium-visual.filter-on .filter-stream{opacity:1;animation:streamFlow 1.4s linear infinite}
@keyframes streamFlow{0%{transform:translateY(-3px)}50%{transform:translateY(2px)}100%{transform:translateY(-3px)}}
.heater-glow{position:absolute;left:18px;bottom:22px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,rgba(255,115,67,.66),rgba(255,115,67,0) 70%);opacity:0;transition:opacity .18s ease}
.aquarium-visual.heater-on .heater-glow{opacity:1;animation:heaterPulse 2.2s ease-in-out infinite}
@keyframes heaterPulse{0%,100%{transform:scale(.92);opacity:.58}50%{transform:scale(1.08);opacity:.88}}
.aqua-switch{border:0;padding:9px 7px;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:default;box-shadow:0 10px 18px rgba(0,0,0,.10),inset 0 1px 0 rgba(255,255,255,.22)}
.aqua-switch.on{box-shadow:0 12px 22px rgba(var(--accent-rgb),.18),0 0 0 1px rgba(255,255,255,.12) inset}

.heating-visual{grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:8px 14px}
.heating-visual .heat-icon{grid-row:1 / span 2;align-self:center}
.heating-visual>strong{grid-column:2;margin:0;align-self:end}
.heating-visual>small{position:static!important;grid-column:2;grid-row:2;align-self:start}
.heat-waves{animation:heatFlow 2s ease-in-out infinite}
@keyframes heatFlow{0%,100%{transform:translateY(0);opacity:.78}50%{transform:translateY(-4px);opacity:1}}

.simple-visual,.energy-visual{gap:10px}
.camera-visual,.tv-visual,.speaker-visual,.fan-visual,.energy-visual{min-height:170px}
.camera-visual>.device-icon-svg,.tv-visual>.device-icon-svg,.speaker-visual>.device-icon-svg,.fan-visual>.device-icon-svg,.energy-visual>.device-icon-svg{width:76px;height:76px}
.camera-visual::before,.tv-visual::before,.speaker-visual::before,.fan-visual::before,.energy-visual::before{content:"";position:absolute;left:50%;top:28px;transform:translateX(-50%);width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.18),rgba(var(--accent-rgb),0) 68%);z-index:-1}
.camera-visual strong::before{content:"•";display:inline-block;margin-right:6px;color:#ff5252;animation:liveBlink 1.25s ease-in-out infinite}
@keyframes liveBlink{0%,100%{opacity:1}50%{opacity:.28}}
.tv-visual .device-icon-svg{filter:drop-shadow(0 8px 14px rgba(0,0,0,.16))}
.speaker-visual::after{content:"";position:absolute;bottom:30px;left:50%;transform:translateX(-50%);width:84px;height:24px;border-radius:12px;background:repeating-linear-gradient(90deg,rgba(var(--accent-rgb),.22) 0 8px,transparent 8px 14px);opacity:.7}
.fan-visual::after{content:"";position:absolute;inset:auto;bottom:26px;left:50%;transform:translateX(-50%);width:72px;height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(var(--accent-rgb),0),rgba(var(--accent-rgb),.22),rgba(var(--accent-rgb),0));opacity:.85}
.energy-bars{width:80px;justify-content:center}
.energy-bars i{box-shadow:0 8px 12px rgba(0,0,0,.08);animation:energyBounce 1.6s ease-in-out infinite}
.energy-bars i:nth-child(2){animation-delay:.12s}.energy-bars i:nth-child(3){animation-delay:.24s}.energy-bars i:nth-child(4){animation-delay:.36s}.energy-bars i:nth-child(5){animation-delay:.48s}
@keyframes energyBounce{0%,100%{transform:scaleY(.92)}50%{transform:scaleY(1.12)}}

body[data-theme="soft-light"] .smart-device-card{box-shadow:var(--lux-shadow-soft);background-image:linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,255,255,0))}
body[data-theme="soft-light"] .smart-device-card.is-active{box-shadow:0 20px 46px rgba(var(--accent-rgb),.11),0 2px 0 rgba(255,255,255,.45) inset}
body[data-theme="soft-light"] .thermo-side-stats>div,body[data-theme="soft-light"] .heat-label,body[data-theme="soft-light"] .thermo-ring-humidity,body[data-theme="soft-light"] .cover-actions .mini-pill,body[data-theme="soft-light"] .aqua-switch{background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.55)}
body[data-theme="soft-light"] .contact-visual .contact-scene,body[data-theme="soft-light"] .leak-visual .leak-drop{color:#2f5b7d}
body[data-theme="soft-light"] .camera-visual strong::before{color:#ff4d4f}

body[data-theme="playful-rounded"] .smart-device-card{box-shadow:var(--lux-shadow-deep)}
body[data-theme="playful-rounded"] .smart-device-card::before{background:radial-gradient(circle,rgba(255,255,255,.10),rgba(255,255,255,0) 70%)}
body[data-theme="playful-rounded"] .thermo-side-stats>div,body[data-theme="playful-rounded"] .heat-label,body[data-theme="playful-rounded"] .thermo-ring-humidity,body[data-theme="playful-rounded"] .cover-actions .mini-pill,body[data-theme="playful-rounded"] .aqua-switch{background:rgba(8,21,37,.58);border:1px solid rgba(255,255,255,.08)}
body[data-theme="playful-rounded"] .camera-visual strong::before{color:#ff6e68}
body[data-theme="playful-rounded"] .speaker-visual::after{background:repeating-linear-gradient(90deg,rgba(121,193,255,.28) 0 8px,transparent 8px 14px)}
body[data-theme="playful-rounded"] .contact-visual small,body[data-theme="playful-rounded"] .leak-visual small{color:#c5d2e4}

@media (max-width:700px){
  .device-icon-badge{box-shadow:0 8px 18px rgba(var(--accent-rgb),.18),inset 0 1px 0 rgba(255,255,255,.30)}
  .designer-switch.on i{transform:translateX(52px)}
  .thermostat-visual{gap:10px}
  .thermo-side-stats>div{padding:8px 9px;border-radius:13px}
  .thermo-ring-humidity{padding:5px 8px;bottom:8px}
  .camera-visual,.tv-visual,.speaker-visual,.fan-visual,.energy-visual,.contact-visual,.leak-visual{min-height:150px!important}
  .camera-visual>.device-icon-svg,.tv-visual>.device-icon-svg,.speaker-visual>.device-icon-svg,.fan-visual>.device-icon-svg,.energy-visual>.device-icon-svg{width:58px;height:58px}
  .camera-visual::before,.tv-visual::before,.speaker-visual::before,.fan-visual::before,.energy-visual::before{top:22px;width:84px;height:84px}
  .simple-visual strong,.energy-visual strong,.contact-visual strong,.leak-visual strong{font-size:18px}
}


/* v0.1.32 weather tile grid lock */
#homeDeviceGrid{grid-auto-flow:row dense}
#homeDeviceGrid>#weatherCard,
.home-device-grid>#weatherCard,
.home-device-grid>.weather-card{
  grid-column:auto!important;
  grid-row:auto!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  align-self:stretch!important;
  justify-self:stretch!important;
  position:relative!important;
  overflow:hidden!important;
  contain:layout paint style;
}
body[data-theme="soft-light"] #homeDeviceGrid>#weatherCard,
body[data-theme="soft-light"] .home-device-grid>#weatherCard,
body[data-theme="soft-light"] .home-device-grid>.weather-card{
  height:276px!important;
  min-height:276px!important;
  border-radius:22px!important;
}
body[data-theme="playful-rounded"] #homeDeviceGrid>#weatherCard,
body[data-theme="playful-rounded"] .home-device-grid>#weatherCard,
body[data-theme="playful-rounded"] .home-device-grid>.weather-card{
  height:282px!important;
  min-height:282px!important;
  border-radius:27px!important;
}
#homeDeviceGrid>#weatherCard .weather-main,
.home-device-grid>#weatherCard .weather-main,
.home-device-grid>.weather-card .weather-main{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  position:relative!important;
  display:block!important;
}
#homeDeviceGrid>#weatherCard .weather-symbol,
.home-device-grid>#weatherCard .weather-symbol,
.home-device-grid>.weather-card .weather-symbol{
  inset:0!important;
  width:100%!important;
  height:100%!important;
}
#homeDeviceGrid>#weatherCard .weather-overlay,
.home-device-grid>#weatherCard .weather-overlay,
.home-device-grid>.weather-card .weather-overlay{
  inset:0!important;
}
@media(max-width:1000px){
  body[data-theme="soft-light"] #homeDeviceGrid>#weatherCard,
  body[data-theme="soft-light"] .home-device-grid>#weatherCard,
  body[data-theme="soft-light"] .home-device-grid>.weather-card,
  body[data-theme="playful-rounded"] #homeDeviceGrid>#weatherCard,
  body[data-theme="playful-rounded"] .home-device-grid>#weatherCard,
  body[data-theme="playful-rounded"] .home-device-grid>.weather-card{
    height:248px!important;
    min-height:248px!important;
  }
}
@media(max-width:700px){
  #homeDeviceGrid>#weatherCard,
  .home-device-grid>#weatherCard,
  .home-device-grid>.weather-card{
    height:218px!important;
    min-height:218px!important;
    border-radius:20px!important;
  }
}
@media(max-width:350px){
  #homeDeviceGrid>#weatherCard,
  .home-device-grid>#weatherCard,
  .home-device-grid>.weather-card{
    height:auto!important;
    min-height:218px!important;
  }
}

/* v0.1.33 automation scene builder */
.scene-card.automated{border-color:rgba(93,177,123,.34)}
.scene-auto-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}.scene-auto-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.scene-auto-badge.on{background:rgba(66,190,119,.14);color:#4db878}.scene-auto-badge.off{background:rgba(130,142,153,.11);color:#7c8995}.scene-auto-meta{font-size:9px;opacity:.58}
.scene-builder-section{margin-top:18px;padding-top:18px;border-top:1px solid rgba(127,127,127,.16)}.scene-builder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.scene-builder-head h3{margin:0 0 4px}.scene-builder-head p{margin:0;font-size:12px;opacity:.66}.scene-auto-toggle{margin:0;white-space:nowrap;padding:8px 10px;border-radius:13px}.scene-automation-settings{display:grid;grid-template-columns:1.45fr repeat(3,minmax(130px,.7fr));gap:10px;align-items:end;margin:10px 0 14px}.scene-automation-settings label{margin:0}.scene-automation-settings small{display:block;font-size:9px;margin-top:4px;opacity:.6}.scene-repeat-toggle{align-self:center;padding:10px;border-radius:14px}.scene-rule-list{display:grid;gap:9px;margin:10px 0}.scene-rule-empty{padding:16px;border:1px dashed rgba(127,127,127,.22);border-radius:16px;font-size:12px;opacity:.62}.scene-rule{display:grid;grid-template-columns:32px 1fr 34px;gap:9px;align-items:center;padding:10px;border-radius:17px}.scene-rule-number{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900}.scene-rule-grid{display:grid;grid-template-columns:150px minmax(210px,1.25fr) 125px minmax(150px,.85fr);gap:7px;align-items:center}.scene-rule-grid select,.scene-rule-grid input{margin:0;min-width:0;padding:9px 10px}.scene-rule-field{display:flex;gap:6px;min-width:0}.scene-rule-field>select{flex:1;min-width:0}.scene-rule-value{display:flex;gap:6px;align-items:center;min-width:0}.scene-rule-value>input,.scene-rule-value>select{min-width:0;flex:1}.scene-rule-remove{width:32px;height:32px;min-width:32px;padding:0!important;border-radius:50%!important;font-size:20px;line-height:1}.inline-rule-label{display:flex!important;align-items:center;gap:5px;margin:0!important;font-size:9px!important}.inline-rule-label input{width:72px!important}.inline-rule-label small{white-space:nowrap}.scene-editor-actions{margin-top:18px}.scene-device-row.advanced{display:grid;grid-template-columns:minmax(210px,1fr) 180px minmax(180px,1.25fr);align-items:center;gap:10px}.scene-device-row.advanced>select{width:100%;margin:0}.scene-action-param-wrap{min-width:0}.scene-action-params{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:6px;align-items:end}.scene-action-params label{margin:0;font-size:9px}.scene-action-params input,.scene-action-params select{margin-top:3px;padding:8px}.scene-action-params small{font-size:8px;margin-left:3px;opacity:.6}.scene-action-hint{font-size:10px;opacity:.55}.scene-action-hint.sensor{display:inline-flex;padding:7px 9px;border-radius:10px}.scene-runs-card{margin-top:16px}.scene-runs{display:grid;gap:4px}.scene-run{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding:9px 6px;border-bottom:1px solid rgba(127,127,127,.11)}.scene-run:last-child{border-bottom:0}.scene-run-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center}.scene-run b,.scene-run small,.scene-run em{display:block}.scene-run small{font-size:9px;opacity:.58;margin-top:2px}.scene-run em{font-size:9px;font-style:normal;opacity:.72;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:820px}.scene-run>strong{font-size:10px}.scene-run.partial>strong{color:#d59a39}.scene-run.error>strong{color:#db625e}
body[data-theme="soft-light"] .scene-builder-section{border-top-color:#ebe4d8}body[data-theme="soft-light"] .scene-rule{background:#faf8f3;border:1px solid #ece5d9}body[data-theme="soft-light"] .scene-rule-number,body[data-theme="soft-light"] .scene-run-icon{background:#eef4e8;color:#64814f}body[data-theme="soft-light"] .scene-auto-toggle,body[data-theme="soft-light"] .scene-repeat-toggle,body[data-theme="soft-light"] .scene-action-hint.sensor{background:#f7f4ed;border:1px solid #ece5da}
body[data-theme="playful-rounded"] .scene-builder-section{border-top-color:#293a58}body[data-theme="playful-rounded"] .scene-rule{background:#0d1a2d;border:1px solid #2a3b59}body[data-theme="playful-rounded"] .scene-rule-number,body[data-theme="playful-rounded"] .scene-run-icon{background:#222f4b;color:#88a2ff}body[data-theme="playful-rounded"] .scene-auto-toggle,body[data-theme="playful-rounded"] .scene-repeat-toggle,body[data-theme="playful-rounded"] .scene-action-hint.sensor{background:#0e1a2c;border:1px solid #293a58}
@media(max-width:1050px){.scene-automation-settings{grid-template-columns:1fr 1fr}.scene-rule-grid{grid-template-columns:130px 1fr 110px 1fr}.scene-device-row.advanced{grid-template-columns:minmax(180px,1fr) 160px 1fr}}
@media(max-width:700px){.scene-builder-head{flex-direction:column;gap:9px}.scene-auto-toggle{width:100%}.scene-automation-settings{grid-template-columns:1fr 1fr;gap:8px}.scene-rule{grid-template-columns:28px 1fr 30px;padding:8px;gap:6px}.scene-rule-grid{grid-template-columns:1fr 1fr;gap:6px}.scene-rule-field{grid-column:1/-1}.scene-rule-value{min-width:0}.scene-device-row.advanced{grid-template-columns:1fr!important;gap:7px!important}.scene-device-row.advanced>span{width:100%}.scene-device-row.advanced>select{width:100%!important}.scene-action-params{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-run em{max-width:250px}.scene-runs-card{margin-bottom:20px}}

/* v0.2.0 Smart Core */
@media(max-width:700px){.tab[data-view="center"]::before{content:"⌾"}}
.smart-mode-card{overflow:hidden}.smart-mode-buttons{display:grid;grid-template-columns:repeat(8,minmax(90px,1fr));gap:8px;overflow:auto;padding:2px 0 4px}.smart-mode-buttons button{min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.smart-mode-buttons button span{font-size:22px}.smart-mode-buttons button.active{outline:2px solid currentColor;outline-offset:-2px}.smart-now-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.smart-now-tile{min-width:0;border-radius:20px;padding:14px 15px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:1px 10px;align-items:center}.smart-now-tile>span{grid-row:1/3;font-size:25px}.smart-now-tile b{font-size:21px}.smart-now-tile small{font-size:10px;opacity:.65}.smart-now-tile.warn{box-shadow:inset 0 0 0 1px rgba(237,163,72,.42)}.smart-now-tile.alarm{box-shadow:inset 0 0 0 1px rgba(235,83,83,.5)}.smart-center-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.smart-alert{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px 3px;border-bottom:1px solid rgba(127,127,127,.13)}.smart-alert:last-child{border-bottom:0}.smart-alert-icon{font-size:23px}.smart-alert b,.smart-alert small{display:block}.smart-alert small{font-size:10px;opacity:.67;margin-top:3px}.smart-alert.ack{opacity:.66}.smart-alert.critical b{color:#e85656}.smart-alert.warning b{color:#c88632}.smart-alert-actions{display:flex;gap:5px}.smart-alert-actions button{padding:6px 8px!important;min-width:30px!important}.smart-suggestion{width:100%;display:grid;grid-template-columns:auto 1fr;gap:10px;text-align:left;margin:7px 0;padding:11px!important}.smart-suggestion>span{font-size:25px}.smart-suggestion b,.smart-suggestion small{display:block}.smart-suggestion small{font-size:10px;opacity:.65;margin-top:3px}.smart-empty{padding:16px 4px;font-size:12px;opacity:.62}.battery-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(90px,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(127,127,127,.1)}.battery-row:last-child{border-bottom:0}.battery-row b,.battery-row small{display:block}.battery-row small{font-size:9px;opacity:.6}.battery-meter{height:9px;border-radius:999px;background:rgba(127,127,127,.15);overflow:hidden}.battery-meter i{display:block;height:100%;border-radius:inherit;background:#55b978}.battery-row.low .battery-meter i{background:#e46d52}.battery-row.low>strong{color:#d65f49}.watchdog-row{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(127,127,127,.1)}.watchdog-row>span{width:10px;height:10px;border-radius:50%;background:#7b8a96}.watchdog-row.ok>span{background:#4bc184;box-shadow:0 0 0 5px rgba(75,193,132,.1)}.watchdog-row.warning>span{background:#e4a748}.watchdog-row b,.watchdog-row small{display:block}.watchdog-row small{font-size:9px;opacity:.62}.watchdog-row>strong{font-size:9px;letter-spacing:.06em}.smart-house-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.house-room{min-height:136px;border-radius:22px;padding:15px;position:relative;overflow:hidden}.house-room:after{content:"";position:absolute;right:-28px;bottom:-30px;width:100px;height:100px;border-radius:50%;background:rgba(127,127,127,.06)}.house-room h3{margin:5px 0}.house-room-temp{font-size:32px;font-weight:850;letter-spacing:-.04em}.house-room-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.house-room-meta span{font-size:9px;padding:4px 7px;border-radius:999px;background:rgba(127,127,127,.1)}.house-room.warn{box-shadow:inset 0 0 0 1px rgba(234,166,70,.4)}.house-room.alarm{box-shadow:inset 0 0 0 2px rgba(235,78,78,.55)}.smart-variable,.smart-hold{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(127,127,127,.1)}.smart-variable b,.smart-variable small,.smart-hold b,.smart-hold small{display:block}.smart-variable small,.smart-hold small{font-size:9px;opacity:.62}.smart-variable button,.smart-hold button{padding:6px 8px!important}.smart-variable-add,.smart-hold-add{display:grid;grid-template-columns:1.2fr .8fr 1fr auto;gap:7px;margin-top:12px}.smart-hold-add{grid-template-columns:1fr .8fr auto}.smart-variable-add input,.smart-variable-add select,.smart-hold-add select{margin:0}.simulation-scenes{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.simulation-scene{margin:0!important;padding:8px 10px;border-radius:13px;background:rgba(127,127,127,.08)}.simulation-scene input{width:auto;display:inline;margin:0 5px 0 0}.smart-history{max-height:560px;overflow:auto}.history-row{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:9px 4px;border-bottom:1px solid rgba(127,127,127,.1)}.history-row>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(127,127,127,.09)}.history-row b,.history-row small{display:block}.history-row small{font-size:9px;opacity:.62;margin-top:3px}.history-row.warning>span{background:rgba(232,164,67,.12)}.scene-policy{border-left:4px solid rgba(116,104,255,.48)}.scene-system-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.scene-system-actions label{margin:0}.scene-diagnostics{border-color:#4a5970}.diagnostic-rules{display:grid;gap:7px;margin-top:12px}.diagnostic-rule{display:grid;grid-template-columns:auto 1fr;gap:9px;padding:10px;border-radius:13px}.diagnostic-rule>span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-weight:900}.diagnostic-rule b,.diagnostic-rule small{display:block}.diagnostic-rule small{font-size:10px;opacity:.68;margin-top:3px}.diagnostic-rule.ok{background:rgba(73,190,126,.08)}.diagnostic-rule.ok>span{background:rgba(73,190,126,.15);color:#49be7e}.diagnostic-rule.bad{background:rgba(224,104,77,.08)}.diagnostic-rule.bad>span{background:rgba(224,104,77,.15);color:#dc674e}.diagnostic-policy{margin-top:10px;font-size:11px;opacity:.7}.scene-card-actions{flex-wrap:wrap}.scene-auto-badge.on{box-shadow:0 0 0 1px rgba(74,207,143,.15) inset}
body[data-theme="soft-light"] .smart-now-tile,body[data-theme="soft-light"] .house-room{background:#fff;border:1px solid #e9e2d7;box-shadow:0 10px 24px rgba(82,68,46,.07)}body[data-theme="soft-light"] .diagnostic-rule,body[data-theme="soft-light"] .simulation-scene{border:1px solid #ebe4d9}body[data-theme="playful-rounded"] .smart-now-tile,body[data-theme="playful-rounded"] .house-room{background:linear-gradient(145deg,#14233b,#0e1b30);border:1px solid #293a58;box-shadow:0 14px 30px rgba(0,0,0,.2)}body[data-theme="playful-rounded"] .smart-alert.critical b{color:#ff7971}body[data-theme="playful-rounded"] .smart-alert.warning b{color:#ffc568}body[data-theme="playful-rounded"] .battery-meter{background:#21314a}body[data-theme="playful-rounded"] .simulation-scene{background:#0c182a;border:1px solid #293b59}
@media(max-width:1000px){.smart-now-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.smart-center-grid{grid-template-columns:1fr}.scene-system-actions{grid-template-columns:1fr 1fr}.smart-mode-buttons{grid-template-columns:repeat(4,minmax(90px,1fr))}}
@media(max-width:700px){.smart-now-grid{grid-template-columns:1fr 1fr;gap:8px}.smart-now-tile{padding:11px;border-radius:16px}.smart-now-tile b{font-size:17px}.smart-now-tile>span{font-size:20px}.smart-center-grid{gap:10px}.smart-mode-buttons{display:flex;overflow:auto}.smart-mode-buttons button{min-width:94px;min-height:64px}.smart-house-plan{grid-template-columns:1fr 1fr}.house-room{min-height:116px;padding:12px;border-radius:18px}.house-room-temp{font-size:25px}.smart-variable-add{grid-template-columns:1fr 1fr}.smart-variable-add button{grid-column:1/-1}.smart-hold-add{grid-template-columns:1fr}.scene-system-actions{grid-template-columns:1fr}.battery-row{grid-template-columns:1fr 75px auto}.smart-history{max-height:none}.smart-alert{grid-template-columns:auto 1fr}.smart-alert-actions{grid-column:2;justify-content:flex-end}}

/* v0.2.0 authentication */
.auth-gate{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(68,122,255,.18),transparent 35%),rgba(5,12,22,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.auth-gate-card{width:min(420px,100%);padding:28px;border-radius:28px;background:linear-gradient(145deg,#14233b,#0c192b);border:1px solid #304461;box-shadow:0 30px 80px rgba(0,0,0,.45);color:#f7f9ff}.auth-gate-card h2{margin:8px 0 4px;font-size:28px}.auth-gate-card p{margin-top:0}.auth-gate-card label{margin:12px 0}.auth-gate-card button{width:100%;margin-top:8px}.auth-logo{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:30px;background:linear-gradient(145deg,#263c62,#1a2946);box-shadow:0 12px 30px rgba(0,0,0,.25)}.auth-error{min-height:18px;margin-top:10px;color:#ff8d88;font-size:12px}.auth-locked header,.auth-locked nav,.auth-locked main,.auth-locked .system-banner{filter:blur(8px);pointer-events:none}.auth-setup-box{margin:14px 0;padding:14px;border-radius:16px;background:rgba(127,127,127,.06)}.auth-setup-box h4{margin:0 0 8px}.auth-users{display:grid;gap:7px;margin:14px 0}.auth-user-row{display:grid;grid-template-columns:minmax(160px,1fr) 150px auto auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(127,127,127,.1)}.auth-user-row b,.auth-user-row small{display:block}.auth-user-row small{font-size:9px;opacity:.62}.auth-user-row select{margin:0}.auth-user-row button{padding:7px 9px!important}.auth-user-add{display:grid;grid-template-columns:1fr 1fr 140px 1fr auto;gap:7px}.auth-user-add input,.auth-user-add select{margin:0}@media(max-width:800px){.auth-user-row{grid-template-columns:1fr 1fr}.auth-user-row>div{grid-column:1/-1}.auth-user-add{grid-template-columns:1fr 1fr}.auth-user-add button{grid-column:1/-1}.auth-gate-card{padding:22px;border-radius:22px}}
.scene-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.scene-template-grid button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;text-align:left;gap:2px 8px;padding:12px!important}.scene-template-grid button>span{grid-row:1/3;font-size:25px}.scene-template-grid b{font-size:12px}.scene-template-grid small{font-size:9px;opacity:.62}.scene-schedules{display:grid;gap:7px}.schedule-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left}.schedule-row>span{font-size:23px}.schedule-row b,.schedule-row small{display:block}.schedule-row small{font-size:9px;opacity:.65;margin-top:2px}.schedule-row>strong{font-size:9px}@media(max-width:900px){.scene-template-grid{grid-template-columns:1fr 1fr}}@media(max-width:500px){.scene-template-grid{grid-template-columns:1fr}}
.tab[data-view="center"]{position:relative}.tab[data-view="center"].has-alerts::after{content:attr(data-alert-count);position:absolute;right:2px;top:2px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:#e55353;color:#fff;font-size:9px;font-weight:900;box-shadow:0 3px 10px rgba(229,83,83,.35)}

/* v0.2.1 clickable watchdog diagnostics */
.watchdog-row.watchdog-clickable{width:100%;margin:0;border:0;border-bottom:1px solid rgba(127,127,127,.1);border-radius:0;background:transparent;box-shadow:none;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:background .16s ease,transform .16s ease}
.watchdog-row.watchdog-clickable:hover{background:rgba(127,127,127,.065);transform:translateX(2px)}
.watchdog-row.watchdog-clickable:focus-visible{outline:2px solid currentColor;outline-offset:-2px;border-radius:10px}
.watchdog-row.watchdog-clickable>strong{display:flex;align-items:center;gap:7px}
.watchdog-row.watchdog-clickable>strong i{font-style:normal;font-size:18px;line-height:1;opacity:.65}
.watchdog-row.warning.watchdog-clickable{background:linear-gradient(90deg,rgba(228,167,72,.06),transparent 58%)}
.watchdog-row.info.watchdog-clickable{background:linear-gradient(90deg,rgba(92,145,205,.05),transparent 58%)}
.watchdog-modal{position:fixed;inset:0;z-index:260;display:flex;align-items:center;justify-content:center;padding:18px max(14px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:rgba(5,10,17,.58);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.watchdog-modal-card{width:min(680px,100%);max-height:min(760px,calc(100svh - 36px));overflow:auto;border-radius:26px;padding:20px;background:#151d27;border:1px solid #334150;box-shadow:0 30px 90px rgba(0,0,0,.46)}
.watchdog-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(127,127,127,.13)}
.watchdog-modal-head h2{margin:4px 0 0;font-size:25px}
.watchdog-modal-close{width:40px;height:40px;min-width:40px;padding:0!important;border-radius:13px!important;font-size:25px!important;line-height:1!important}
.watchdog-diagnostic-status{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;margin:16px 0;padding:14px;border-radius:17px;background:rgba(127,127,127,.07)}
.watchdog-diagnostic-status>span{width:13px;height:13px;margin-top:5px;border-radius:50%;background:#7b8a96}
.watchdog-diagnostic-status.warning>span{background:#e4a748;box-shadow:0 0 0 6px rgba(228,167,72,.11)}
.watchdog-diagnostic-status.info>span{background:#6597c9;box-shadow:0 0 0 6px rgba(101,151,201,.10)}
.watchdog-diagnostic-status.ok>span{background:#4bc184;box-shadow:0 0 0 6px rgba(75,193,132,.10)}
.watchdog-diagnostic-status small,.watchdog-diagnostic-status strong,.watchdog-diagnostic-status p{display:block}
.watchdog-diagnostic-status small{font-size:9px;text-transform:uppercase;letter-spacing:.1em;opacity:.58;font-weight:800}
.watchdog-diagnostic-status strong{font-size:18px;margin-top:2px}
.watchdog-diagnostic-status p{margin:4px 0 0;font-size:12px;line-height:1.45}
.watchdog-diagnostic-section{padding:14px 2px;border-top:1px solid rgba(127,127,127,.11)}
.watchdog-diagnostic-section h3{margin:0 0 7px;font-size:14px}
.watchdog-diagnostic-section p{margin:0;line-height:1.55;font-size:12px}
.watchdog-diagnostic-section ul,.watchdog-diagnostic-section ol{margin:5px 0 0;padding-left:21px;line-height:1.55;font-size:12px}
.watchdog-diagnostic-section li+li{margin-top:5px}
.watchdog-diagnostic-section.recommended{margin-top:4px;padding:14px;border-radius:17px;border:1px solid rgba(86,181,125,.20);background:rgba(86,181,125,.065)}
.watchdog-modal-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:-20px;margin:10px -20px -20px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid rgba(127,127,127,.13);background:inherit}
.watchdog-target-flash{animation:watchdogTargetFlash 1.8s ease-out}
@keyframes watchdogTargetFlash{0%,30%{box-shadow:0 0 0 3px rgba(87,180,121,.58),0 0 34px rgba(87,180,121,.20)}100%{box-shadow:var(--shadow)}}
body.watchdog-modal-open{overflow:hidden}
body[data-theme="soft-light"] .watchdog-modal{background:rgba(43,49,45,.28)}
body[data-theme="soft-light"] .watchdog-modal-card{background:#fffdfa;border-color:#e5dfd5;color:#252c27;box-shadow:0 30px 90px rgba(70,60,45,.24)}
body[data-theme="soft-light"] .watchdog-diagnostic-section.recommended{background:#f4f8ef;border-color:#d8e7cc}
body[data-theme="playful-rounded"] .watchdog-modal-card{background:linear-gradient(150deg,#14223a,#0d192b);border-color:#30415f;color:#f7f9ff}
body[data-theme="playful-rounded"] .watchdog-diagnostic-section.recommended{background:rgba(53,203,130,.07);border-color:rgba(75,216,148,.20)}
@media(max-width:700px){.watchdog-modal{align-items:flex-end;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.watchdog-modal-card{width:100%;max-height:88svh;border-radius:24px 24px 18px 18px;padding:17px}.watchdog-modal-head h2{font-size:21px}.watchdog-modal-actions{margin:8px -17px -17px;padding:12px 17px calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr}.watchdog-modal-actions button{width:100%}.watchdog-diagnostic-section p,.watchdog-diagnostic-section ul,.watchdog-diagnostic-section ol{font-size:11px}.watchdog-row.watchdog-clickable{min-height:52px}}

/* v0.2.2 trusted devices + user administration */
.auth-remember{display:flex!important;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:15px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);margin-top:14px!important}
.auth-remember input{width:auto!important;margin:2px 0 0!important;flex:0 0 auto}
.auth-remember span{display:block;min-width:0}.auth-remember b,.auth-remember small{display:block}.auth-remember small{margin-top:3px;font-size:10px;line-height:1.35;opacity:.68}
.auth-current-device{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin:13px 0;border-radius:16px;background:rgba(127,127,127,.06);border:1px solid rgba(127,127,127,.12)}
.auth-current-device b,.auth-current-device span{display:block}.auth-current-device>div>span{font-size:10px;margin-top:3px;opacity:.68}
.auth-section-title{margin:18px 0 8px}
.auth-users{gap:12px!important}
.auth-user-card{border:1px solid rgba(127,127,127,.13);border-radius:18px;padding:12px 13px;background:rgba(127,127,127,.035)}
.auth-user-card .auth-user-row{border-bottom:0;padding:0;grid-template-columns:minmax(160px,1fr) 140px auto auto auto auto}
.auth-device-list{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(127,127,127,.1)}
.auth-device-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px;border-radius:13px;background:rgba(127,127,127,.045)}
.auth-device-row.current{box-shadow:inset 0 0 0 1px rgba(80,174,120,.32);background:rgba(80,174,120,.06)}
.auth-device-row b,.auth-device-row small{display:block}.auth-device-row small{font-size:9px;opacity:.62;margin-top:2px}.auth-device-row button{padding:6px 8px!important;font-size:10px!important}.auth-device-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:18px;background:rgba(127,127,127,.09)}
.auth-no-devices{font-size:10px;opacity:.62;padding:7px 3px}
body[data-theme="soft-light"] .auth-remember{background:#f7f4ed;border-color:#e8e0d4;color:#3c443e}body[data-theme="soft-light"] .auth-user-card,body[data-theme="soft-light"] .auth-current-device{background:#fbf9f4;border-color:#e7e0d5}body[data-theme="soft-light"] .auth-device-row{background:#f6f3ed}body[data-theme="soft-light"] .auth-device-row.current{background:#eef6e9;box-shadow:inset 0 0 0 1px #c8dfbb}
body[data-theme="playful-rounded"] .auth-user-card,body[data-theme="playful-rounded"] .auth-current-device{background:#0c182a;border-color:#293b59}body[data-theme="playful-rounded"] .auth-device-row{background:#101e33}body[data-theme="playful-rounded"] .auth-device-row.current{background:#123126;box-shadow:inset 0 0 0 1px rgba(83,215,151,.32)}
@media(max-width:1050px){.auth-user-card .auth-user-row{grid-template-columns:1fr 1fr 1fr}.auth-user-card .auth-user-row>div:first-child{grid-column:1/-1}}
@media(max-width:700px){.auth-user-card .auth-user-row{grid-template-columns:1fr 1fr}.auth-user-card .auth-user-row>div:first-child{grid-column:1/-1}.auth-user-card .auth-user-row select{grid-column:1/-1}.auth-device-row{grid-template-columns:auto 1fr}.auth-device-row>.pill,.auth-device-row>button{grid-column:2;justify-self:start}.auth-current-device{align-items:flex-start;flex-direction:column}.auth-user-add{grid-template-columns:1fr!important}.auth-user-add button{grid-column:auto!important}}


/* v0.2.3 LG PIN pairing fix */
.lg-pair-pin-box{margin-top:12px;padding:13px;border-radius:14px;border:1px solid rgba(127,127,127,.18);background:rgba(127,127,127,.06)}
.lg-pair-pin-box p{margin:0 0 10px;line-height:1.45}.lg-pair-pin-box>small{display:block;margin-top:8px}
.lg-pair-pin-box .lg-pin-row{display:grid;grid-template-columns:minmax(170px,1fr) auto;gap:9px;align-items:end}
.lg-pair-pin-box .lg-pin-row label{margin:0}.lg-pair-pin-box .lg-pin-row input{font-size:20px;font-weight:800;letter-spacing:.12em;text-align:center}
@media(max-width:700px){.lg-pair-pin-box .lg-pin-row{grid-template-columns:1fr}.lg-pair-pin-box .lg-pin-row button{width:100%}}

/* v0.2.4 LG persistent PIN pairing */
.lg-pair-persistent .lg-pin-row{margin:12px 0 10px}
.lg-pair-persistent .lg-pin-row input{font-size:22px;font-weight:850;letter-spacing:.16em;text-align:center}
.lg-pair-actions{margin-top:8px}
.lg-pair-status{margin-top:11px;padding:10px 12px;border-radius:12px;border:1px solid rgba(127,127,127,.16);font-size:12px;line-height:1.5}
.lg-pair-status.working{opacity:.78}
.lg-pair-status.ready{border-color:rgba(83,184,121,.42);background:rgba(83,184,121,.08)}
.lg-pair-status.error{border-color:rgba(220,91,86,.45);background:rgba(220,91,86,.08)}
.lg-pair-status div+div{margin-top:4px}
body[data-theme="playful-rounded"] .lg-pair-status{background:#0c182a;border-color:#2b3b59}
body[data-theme="playful-rounded"] .lg-pair-status.ready{border-color:#245a45;background:#0e2c26}
body[data-theme="playful-rounded"] .lg-pair-status.error{border-color:#6a3438;background:#311d24}
@media(max-width:700px){.lg-pair-actions{display:grid!important;grid-template-columns:1fr}.lg-pair-actions button{width:100%}}

/* v0.2.5 LG application browser */
.lg-app-panel{margin:15px 0;padding:14px;border-radius:16px;border:1px solid rgba(127,127,127,.16);background:rgba(127,127,127,.05)}
.lg-app-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.lg-app-panel-head>div{min-width:0}.lg-app-panel-head strong{display:block}.lg-app-panel-head small{display:block;margin-top:3px;opacity:.62;font-size:10px}
.lg-app-panel-head button{flex:0 0 auto;padding:8px 10px!important;font-size:11px!important}
.lg-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:7px;max-height:250px;overflow:auto;padding:2px}
.lg-app-grid button{min-width:0;padding:9px 8px!important;border-radius:12px!important;font-size:11px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.lg-app-grid button.active{box-shadow:0 0 0 2px rgba(var(--accent-rgb),.5) inset;color:var(--accent)}
.lg-app-diagnostic{margin:8px 0 10px;padding:9px 10px;border-radius:12px;font-size:10px;line-height:1.45;border:1px solid rgba(225,154,64,.28);background:rgba(225,154,64,.08)}
.lg-app-diagnostic small{opacity:.72}
body[data-theme="soft-light"] .lg-app-panel{background:#f8f6f1;border-color:#e9e2d7}
body[data-theme="soft-light"] .lg-app-grid button{background:#fff;border-color:#e8e0d5}
body[data-theme="playful-rounded"] .lg-app-panel{background:#0c182a;border-color:#293b59}
body[data-theme="playful-rounded"] .lg-app-grid button{background:#14233a;border-color:#2c3d5b;color:#eaf1ff}
@media(max-width:700px){.lg-app-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:230px}.lg-app-panel{padding:11px}.lg-app-panel-head{align-items:flex-start}.lg-app-panel-head button{white-space:nowrap}}

/* v0.2.9 clickable device tiles + graphical LG TV state */
.smart-device-card.card-clickable{cursor:pointer;outline:none}
.smart-device-card.card-clickable:focus-visible{box-shadow:0 0 0 3px rgba(var(--accent-rgb),.28),0 20px 46px rgba(var(--accent-rgb),.12)!important}
.smart-device-card.card-clickable:active{transform:translateY(0) scale(.992)}
.smart-device-card.card-action-busy{pointer-events:none;opacity:.72}
.smart-device-card.device-card-focus{animation:deviceCardFocus 1.45s ease both}
@keyframes deviceCardFocus{0%,100%{box-shadow:inherit}35%,70%{box-shadow:0 0 0 4px rgba(var(--accent-rgb),.28),0 22px 48px rgba(var(--accent-rgb),.22)}}

.tv-visual{min-height:170px;display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(86px,.7fr);align-items:center;gap:15px;padding:8px 4px 2px;color:inherit}
.tv-stage{position:relative;display:grid;place-items:center;min-height:136px;width:100%}
.tv-shell{position:relative;width:min(100%,210px);aspect-ratio:16/10;padding:5px;border-radius:15px;background:linear-gradient(145deg,#20262d,#07090c 72%);box-shadow:0 18px 28px rgba(4,8,12,.28),inset 0 1px 0 rgba(255,255,255,.18)}
.tv-screen{position:relative;width:100%;height:100%;overflow:hidden;border-radius:10px;background:#040608;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 0 30px rgba(0,0,0,.52)}
.tv-neck{position:absolute;left:50%;bottom:-12px;width:22%;height:13px;transform:translateX(-50%);background:linear-gradient(90deg,#171b20,#353b42,#15191e);clip-path:polygon(34% 0,66% 0,80% 100%,20% 100%)}
.tv-foot{position:absolute;left:50%;bottom:-18px;width:48%;height:7px;transform:translateX(-50%);border-radius:50%;background:linear-gradient(90deg,#11151a,#414850,#11151a);box-shadow:0 4px 8px rgba(0,0,0,.24)}
.tv-copy{min-width:0;text-align:left}
.tv-copy strong{font-size:17px;line-height:1.08;font-weight:900;letter-spacing:-.025em}
.tv-copy small{font-size:10px;margin-top:7px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-picture{position:absolute;inset:0;background:linear-gradient(135deg,#071e3b 0%,#184b71 42%,#6d376c 72%,#f0a03a 118%);overflow:hidden}
.tv-picture::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.17),transparent 28%,transparent 68%,rgba(255,255,255,.08));mix-blend-mode:screen}
.tv-picture-orb{position:absolute;border-radius:50%;filter:blur(1px);opacity:.92;animation:tvAmbient 7s ease-in-out infinite alternate}
.tv-picture-orb.orb-a{width:62%;height:92%;left:-14%;top:14%;background:radial-gradient(circle at 55% 45%,rgba(69,216,255,.95),rgba(35,106,194,.3) 58%,transparent 70%)}
.tv-picture-orb.orb-b{width:58%;height:86%;right:-10%;top:-24%;background:radial-gradient(circle at 45% 55%,rgba(255,198,83,.88),rgba(255,90,111,.26) 57%,transparent 70%);animation-delay:-2.1s}
.tv-picture-orb.orb-c{width:58%;height:82%;right:18%;bottom:-38%;background:radial-gradient(circle,rgba(169,92,255,.78),rgba(63,70,208,.15) 58%,transparent 70%);animation-delay:-4.2s}
@keyframes tvAmbient{from{transform:translate3d(-2%,1%,0) scale(.98)}to{transform:translate3d(5%,-3%,0) scale(1.08)}}
.tv-play{position:absolute;left:50%;top:50%;width:38px;height:38px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.19);border:1px solid rgba(255,255,255,.58);box-shadow:0 8px 22px rgba(0,0,0,.18);backdrop-filter:blur(7px)}
.tv-play::after{content:"";position:absolute;left:15px;top:11px;border-left:12px solid rgba(255,255,255,.95);border-top:8px solid transparent;border-bottom:8px solid transparent}
.tv-live-chip{position:absolute;left:9px;bottom:8px;padding:3px 6px;border-radius:999px;background:rgba(7,15,24,.52);color:#fff;font-size:7px;font-weight:900;letter-spacing:.12em;border:1px solid rgba(255,255,255,.17);backdrop-filter:blur(7px)}
.tv-on .tv-screen{box-shadow:0 0 22px rgba(var(--accent-rgb),.28),inset 0 0 0 1px rgba(255,255,255,.14)}
.tv-off .tv-shell{filter:saturate(.3)}
.tv-dark-reflection{position:absolute;inset:0;background:linear-gradient(125deg,#020304 0%,#080b0e 42%,#11161b 53%,#050709 63%,#010203 100%)}
.tv-dark-reflection::after{content:"";position:absolute;left:15%;top:-20%;width:23%;height:145%;transform:rotate(22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent);filter:blur(2px)}
.tv-sleep-dot{position:absolute;right:8px;bottom:6px;width:4px;height:4px;border-radius:50%;background:#d84b4b;box-shadow:0 0 7px rgba(216,75,75,.58)}
.tv-off .tv-copy{opacity:.66}
body[data-theme="playful-rounded"] .tv-shell{background:linear-gradient(145deg,#374154,#090d14 76%);box-shadow:0 20px 34px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.15)}
body[data-theme="soft-light"] .tv-on .tv-stage{filter:drop-shadow(0 14px 20px rgba(65,118,161,.16))}
@media(max-width:760px){.tv-visual{grid-template-columns:1fr;gap:4px;padding-top:3px}.tv-stage{min-height:105px}.tv-shell{width:min(88%,175px)}.tv-copy{text-align:center}.tv-copy strong{font-size:14px}.tv-copy small{margin-top:4px;font-size:9px}}

/* v0.2.10 LG TV live state and quick controls */
.tv-state-badge{display:inline-flex;align-items:center;gap:6px;width:max-content;margin-bottom:7px;padding:4px 8px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.105em;border:1px solid rgba(255,255,255,.12);background:rgba(111,120,132,.10)}
.tv-state-badge i{width:6px;height:6px;border-radius:50%;display:block;background:#8b949e;box-shadow:0 0 0 3px rgba(139,148,158,.10)}
.tv-state-badge.on{color:#138956;background:rgba(33,185,113,.11);border-color:rgba(33,185,113,.23)}
.tv-state-badge.on i{background:#28c879;box-shadow:0 0 0 3px rgba(40,200,121,.13),0 0 9px rgba(40,200,121,.55);animation:tvPowerPulse 1.8s ease-in-out infinite}
.tv-state-badge.off{color:#8d96a0}
@keyframes tvPowerPulse{50%{transform:scale(1.25);box-shadow:0 0 0 5px rgba(40,200,121,.07),0 0 12px rgba(40,200,121,.68)}}
.tv-on .tv-picture{animation:tvPictureGlow 6s ease-in-out infinite alternate}
@keyframes tvPictureGlow{from{filter:saturate(1) brightness(.96)}to{filter:saturate(1.18) brightness(1.08)}}
.tv-scene-horizon{position:absolute;left:-5%;right:-5%;bottom:0;height:35%;background:linear-gradient(180deg,rgba(17,41,71,.10),rgba(8,20,34,.82));clip-path:polygon(0 74%,15% 40%,27% 64%,41% 24%,55% 63%,70% 33%,82% 59%,100% 27%,100% 100%,0 100%)}
.tv-scene-mountain{position:absolute;bottom:-7%;width:52%;height:45%;background:linear-gradient(145deg,rgba(13,28,45,.92),rgba(42,73,103,.72));clip-path:polygon(0 100%,47% 5%,100% 100%)}
.tv-scene-mountain.mountain-a{left:-8%}.tv-scene-mountain.mountain-b{right:-10%;height:38%;opacity:.84}
.tv-scene-sun{position:absolute;right:17%;top:18%;width:19px;height:19px;border-radius:50%;background:rgba(255,221,129,.96);box-shadow:0 0 18px rgba(255,207,96,.58)}
.tv-scanline{position:absolute;left:0;right:0;height:2px;top:-4px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);opacity:.6;animation:tvScan 4.2s linear infinite}
@keyframes tvScan{to{transform:translateY(105px)}}
.tv-quick-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:10px;width:100%;max-width:210px}
.tv-quick-controls button{display:flex;align-items:center;justify-content:center;gap:4px;min-height:28px;padding:5px 7px!important;border-radius:9px!important;font-size:8px!important;font-weight:850!important;line-height:1!important;white-space:nowrap;border:1px solid rgba(var(--accent-rgb),.14)!important;background:rgba(var(--accent-rgb),.065)!important;color:inherit!important;box-shadow:none!important;touch-action:manipulation}
.tv-quick-controls button span{font-size:12px;line-height:1}
.tv-quick-controls button:hover{transform:translateY(-1px);background:rgba(var(--accent-rgb),.13)!important;border-color:rgba(var(--accent-rgb),.28)!important}
.tv-quick-controls button:active{transform:translateY(0) scale(.97)}
.tv-quick-controls button:disabled{opacity:.36;cursor:not-allowed;transform:none}
body[data-theme="playful-rounded"] .tv-quick-controls button{background:rgba(255,255,255,.055)!important;border-color:rgba(255,255,255,.09)!important}
body[data-theme="playful-rounded"] .tv-state-badge.on{color:#62dda2}
@media(max-width:760px){.tv-state-badge{margin:4px auto 6px}.tv-quick-controls{max-width:230px;margin:9px auto 0}.tv-quick-controls button{min-height:30px;font-size:8px!important}.tv-scanline{animation-name:tvScanMobile}@keyframes tvScanMobile{to{transform:translateY(80px)}}}

.nest-events-box{margin-top:16px;padding:15px;border:1px solid #2a3948;border-radius:14px;background:rgba(12,19,27,.52)}.nest-events-box h4{margin:0 0 5px}.nest-events-box p{margin:0;color:#8fa0b1;font-size:13px}.nest-events-box label{margin-top:12px}.nest-events-box input[readonly]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.nest-last-chime{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:11px 12px;border-radius:12px;background:rgba(68,171,137,.08);border:1px solid rgba(90,200,165,.22)}.nest-last-chime span{font-size:12px;color:#9fb4ad}.nest-last-chime strong{font-size:12px;text-align:right}@media(max-width:700px){.nest-last-chime{align-items:flex-start;flex-direction:column}.nest-last-chime strong{text-align:left}}
