:root{
 --bg:#06111f;--bg2:#08192a;--panel:rgba(12,31,52,.92);--panel2:rgba(8,23,40,.84);
 --line:rgba(111,168,220,.20);--text:#f7f9ff;--muted:#98aac0;--blue:#2a9cff;--cyan:#51d7ff;
 --gold:#ffad24;--green:#2ee878;--red:#ff5d68;--amber:#ffc14b;--shadow:0 18px 52px rgba(0,0,0,.30);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
body{background:radial-gradient(circle at 50% -10%,#123a5b 0,transparent 38%),linear-gradient(180deg,#071525,#040b14 70%);background-attachment:fixed}
button,input,select{font:inherit}button{color:inherit}.app-shell{max-width:1280px;margin:auto;min-height:100vh;padding:calc(16px + env(safe-area-inset-top)) 16px calc(108px + env(safe-area-inset-bottom))}
.app-header{display:grid;grid-template-columns:42px 1fr 54px;align-items:center;gap:12px;margin-bottom:14px}.menu{border:0;background:none;font-size:30px;padding:6px 0;opacity:.95}.brand{display:flex;align-items:center;min-width:0}.brand img{width:54px;height:54px;border-radius:16px;object-fit:cover;box-shadow:0 0 30px rgba(27,130,255,.32)}.brand-word{display:grid;line-height:.8;margin-left:8px}.brand-word b{font-size:26px;font-weight:950;font-style:italic;letter-spacing:-.06em}.brand-word small{font-size:8px;letter-spacing:.38em;color:#a7b8ca;margin-top:8px}.brand i{height:46px;width:1px;background:#d7e2ef;margin:0 17px;opacity:.85}.brand-copy{display:grid;min-width:0}.brand-copy b{font-size:18px;white-space:nowrap}.brand-copy small{font-size:9px;color:#c4d0dd;white-space:nowrap;letter-spacing:.04em}.profile{display:grid;justify-items:center;position:relative}.profile>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#243b58,#0a1d31);border:1px solid rgba(180,213,240,.34);font-weight:850}.profile em{width:10px;height:10px;border-radius:50%;background:var(--green);position:absolute;right:4px;top:30px;box-shadow:0 0 10px rgba(46,232,120,.7)}.profile small{font-size:10px;margin-top:3px}
main{min-height:65vh}.view{display:none}.view.active{display:block;animation:fade .18s ease}@keyframes fade{from{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:none}}
.hero{min-height:232px;border-radius:24px;overflow:hidden;padding:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:linear-gradient(90deg,rgba(4,14,26,.96),rgba(4,14,26,.34)),url('assets/srd-bg.png') center/cover;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}.hero:after{content:"";position:absolute;inset:auto -10% -65% 35%;height:260px;background:radial-gradient(circle,rgba(255,150,15,.25),transparent 62%);pointer-events:none}.hero span{font-size:20px}.hero h1{margin:4px 0 16px;font-size:42px;line-height:.95}.hero p{margin:3px 0;color:#d4dfeb;font-size:13px}.hero-side{align-self:flex-end;text-align:right;z-index:1}.hero-side b{font-family:Georgia,serif;font-style:italic;font-weight:500;font-size:30px;line-height:1.05}.hero-side small{display:block;letter-spacing:.22em;margin-top:9px;font-size:10px;color:#e8edf4}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.summary{min-height:142px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:20px;padding:16px;text-align:left;box-shadow:var(--shadow)}.summary .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:30px;background:rgba(42,156,255,.15);text-shadow:0 0 14px currentColor}.summary .blue{color:#67b9ff}.summary .green{color:#3de98a}.summary .gold{color:#ffad24}.summary b{display:block;font-size:18px;margin-top:9px}.summary small{display:block;color:var(--muted);margin-top:4px;line-height:1.3}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:24px 1px 10px}.section-head h2{margin:0;font-size:22px}.section-head button{border:0;background:none;color:#dbe4ee;font-size:13px;padding:8px 0}.favorite-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.control{min-height:136px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:20px;padding:16px;box-shadow:var(--shadow)}.control .row{display:flex;justify-content:space-between;align-items:flex-start;min-height:54px}.device-ico{min-width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#193956;color:#a7c8ff;font-size:26px;box-shadow:inset 0 0 22px rgba(51,153,255,.12)}.device-ico.warm{color:#ffda4e}.device-ico.cold{color:#7fc7ff}.device-ico.tmt{font-size:13px;font-weight:950;color:white}.control b{display:block;font-size:17px;margin-top:7px}.control small{display:block;color:var(--muted);margin-top:5px}.switch{width:46px;height:27px;border-radius:999px;background:#26384b;position:relative}.switch:after{content:"";width:23px;height:23px;border-radius:50%;position:absolute;top:2px;left:2px;background:#d9e1ea}.switch.on{background:#18d66a}.switch.on:after{left:21px;background:white}.vertical-actions{display:grid;gap:5px}.vertical-actions button,.play{width:38px;height:38px;border:0;border-radius:50%;background:#243b55;color:white;font-size:20px}.status-dot{width:11px;height:11px;border-radius:50%;margin:7px;background:var(--green);box-shadow:0 0 12px rgba(46,232,120,.65)}.status-dot.wait{background:#73869b;box-shadow:none}
.room-strip,.device-strip,.automation-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);gap:11px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:3px;scrollbar-width:none}.room-strip::-webkit-scrollbar,.device-strip::-webkit-scrollbar,.automation-strip::-webkit-scrollbar{display:none}.room-card,.device-card,.automation-card{scroll-snap-align:start;min-height:132px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:18px;padding:14px;text-align:left;box-shadow:var(--shadow)}.room-card span{font-size:35px}.room-card b,.device-card b,.automation-card b{display:block;font-size:15px;margin-top:9px}.room-card small,.device-card small,.automation-card small{display:block;color:var(--muted);margin-top:5px;line-height:1.35}.device-card .device-top{display:flex;justify-content:space-between;align-items:center}.mini-ico{font-size:28px}.badge{font-size:9px;font-weight:850;letter-spacing:.05em;padding:5px 7px;border-radius:999px;border:1px solid rgba(120,170,215,.2);color:#b7c8d8}.badge.live{color:#6bf095;border-color:rgba(46,232,120,.34)}.badge.wait{color:#ffc65a;border-color:rgba(255,193,75,.28)}
.page-title{margin:8px 0 20px}.page-title span,.eyebrow{font-size:11px;letter-spacing:.15em;color:#7fc9ff;font-weight:850}.page-title h1{font-size:42px;margin:5px 0 6px}.page-title p{color:var(--muted);max-width:720px}.panel,.room-detail{border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:20px;padding:18px;box-shadow:var(--shadow)}.panel h2{margin:9px 0 5px;font-size:25px}.panel p,.room-detail p{color:var(--muted)}.room-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.room-detail{min-height:180px}.room-detail>span{font-size:44px}.room-detail h2{margin:12px 0 6px}.automation-layout{display:grid;grid-template-columns:minmax(320px,450px) 1fr;gap:18px;align-items:start}.editor label{display:grid;gap:7px;color:#b9c9da;font-size:13px;font-weight:750;margin:14px 0}.editor input,.editor select{width:100%;border-radius:12px;padding:13px;background:#071627;color:white;border:1px solid rgba(126,168,206,.27)}.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:8px 0 16px}.day{border:1px solid rgba(126,168,206,.23);border-radius:10px;background:#071627;padding:9px 3px;color:#9fb2c5;font-weight:850}.day.on{background:rgba(42,156,255,.28);border-color:rgba(42,156,255,.62);color:white}.primary{width:100%;border:0;border-radius:12px;padding:14px;background:linear-gradient(90deg,#1475c1,#2e9eee);font-weight:900;color:white}.safe{font-size:12px!important}.schedule-list{display:grid;gap:10px}.schedule-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:14px}.schedule-card b{display:block}.schedule-card small{color:var(--muted);display:block;margin-top:5px}.schedule-actions{display:flex;gap:6px}.schedule-actions button{border:1px solid rgba(126,168,206,.24);border-radius:9px;background:#071627;color:#d9e5f1;padding:8px}
.network-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.network-grid .big{grid-column:span 2}.planned{border-color:rgba(255,193,75,.25)}.ssid-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:14px}.ssid{display:flex;justify-content:space-between;border-top:1px solid rgba(126,168,206,.12);padding-top:7px;color:#9fb4c9}.ssid b{color:#edf5ff}.empty-state{text-align:center;min-height:300px;display:grid;place-items:center;align-content:center}.empty-state>span{font-size:64px;color:var(--gold)}.adapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.adapter-card h3{margin:10px 0 5px}.adapter-card p{margin:0;color:var(--muted)}.adapter-state{display:inline-flex;margin-top:12px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;border:1px solid rgba(126,168,206,.2)}.adapter-state.live{color:#68f194}.adapter-state.wait{color:#ffc65a}.log-panel{margin-top:18px}.event{display:grid;grid-template-columns:155px 170px 1fr;gap:8px;border-top:1px solid rgba(126,168,206,.11);padding:9px 0;font-size:12px}.event:first-child{border-top:0}.event time,.event span:nth-child(2){color:#8ea3b7}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,1280px);display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:9px 12px calc(8px + env(safe-area-inset-bottom));background:rgba(5,16,29,.94);border:1px solid rgba(126,168,206,.24);border-bottom:0;border-radius:24px 24px 0 0;backdrop-filter:blur(24px);box-shadow:0 -10px 35px rgba(0,0,0,.35);z-index:20}.bottom-nav button{border:0;background:transparent;display:grid;justify-items:center;gap:3px;padding:7px 2px;color:#9fb2c5;border-radius:13px}.bottom-nav button span{font-size:23px}.bottom-nav button small{font-size:10px}.bottom-nav button.active{color:#37a8ff;background:rgba(42,156,255,.10);text-shadow:0 0 15px rgba(42,156,255,.65)}
.toast{position:fixed;z-index:50;right:18px;bottom:calc(92px + env(safe-area-inset-bottom));max-width:360px;padding:12px 16px;border-radius:13px;background:#0d263e;border:1px solid rgba(55,168,255,.4);box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
@media(max-width:900px){.summary-grid{grid-template-columns:repeat(2,1fr)}.favorite-grid{grid-template-columns:repeat(2,1fr)}.adapter-grid{grid-template-columns:repeat(2,1fr)}.automation-layout{grid-template-columns:1fr}.brand-copy small{display:none}.room-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.app-shell{padding-left:12px;padding-right:12px}.app-header{grid-template-columns:34px 1fr 48px}.menu{font-size:25px}.brand img{width:44px;height:44px;border-radius:13px}.brand-word b{font-size:22px}.brand i{margin:0 10px;height:40px}.brand-copy b{font-size:14px}.hero{min-height:225px;padding:20px}.hero h1{font-size:40px}.hero-side b{font-size:24px}.summary{min-height:126px;padding:14px}.summary .ico{width:43px;height:43px}.favorite-grid{gap:9px}.control{min-height:130px;padding:14px}.room-strip,.device-strip,.automation-strip{grid-auto-columns:150px}.room-detail-grid{grid-template-columns:1fr}.network-grid{grid-template-columns:1fr}.network-grid .big{grid-column:auto}.adapter-grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}.days{grid-template-columns:repeat(4,1fr)}.event{grid-template-columns:1fr}.bottom-nav{padding-left:6px;padding-right:6px}.bottom-nav button small{font-size:8.5px}.bottom-nav button span{font-size:21px}}
@media(max-width:400px){.brand-copy{display:none}.brand i{display:none}.summary-grid{gap:8px}.summary{min-height:118px}.summary b{font-size:16px}.hero-side{display:none}.favorite-grid{grid-template-columns:1fr 1fr}.control b{font-size:15px}.bottom-nav button small{font-size:7.5px}}

/* V0.2.1 · liquid-glass navigation */
.liquid-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:2px 0 12px;padding:5px 14px 5px 7px;border:1px solid rgba(205,230,255,.30);border-radius:999px;color:#f4f9ff;background:linear-gradient(135deg,rgba(180,215,245,.16),rgba(42,92,135,.10));-webkit-backdrop-filter:blur(22px) saturate(155%);backdrop-filter:blur(22px) saturate(155%);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(115,170,220,.10),0 10px 28px rgba(0,0,0,.24);font:inherit;font-weight:800;letter-spacing:.01em}
.liquid-back span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:32px;line-height:1;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.24),rgba(80,146,205,.12) 48%,rgba(7,24,40,.18));border:1px solid rgba(210,235,255,.22);text-shadow:0 0 14px rgba(95,187,255,.55)}
.liquid-back:active{transform:scale(.97);background:linear-gradient(135deg,rgba(190,225,255,.22),rgba(42,92,135,.16))}
.mini-ico.tmt{font-size:11px;font-weight:950;letter-spacing:-.03em;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#193956;color:#fff}
@media(max-width:620px){.liquid-back{position:sticky;top:max(8px,env(safe-area-inset-top));z-index:18;margin-left:0}.liquid-back b{font-size:13px}}

.camera-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,260px);gap:11px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:3px;scrollbar-width:none}.camera-strip::-webkit-scrollbar{display:none}.camera-card{scroll-snap-align:start;min-height:166px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:20px;padding:12px;box-shadow:var(--shadow)}.camera-preview{height:92px;border-radius:15px;display:flex;align-items:flex-start;justify-content:space-between;padding:12px;background:radial-gradient(circle at 50% 55%,rgba(46,158,255,.16),transparent 48%),linear-gradient(145deg,#0b2034,#06101c);border:1px solid rgba(126,168,206,.16)}.camera-symbol{font-size:34px;color:#78c5ff;text-shadow:0 0 18px rgba(46,158,255,.55)}.camera-card b{display:block;font-size:16px;margin:10px 2px 0}.camera-card small{display:block;color:var(--muted);margin:5px 2px 0}.camera-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:14px}.camera-detail-grid .camera-card{min-height:190px}.camera-detail-grid .camera-preview{height:110px}.camera-note{margin-top:14px}@media(max-width:620px){.camera-strip{grid-auto-columns:170px}.camera-detail-grid{grid-template-columns:1fr}.camera-detail-grid .camera-card{min-height:180px}}

/* V0.3.0 · approved SRD Home interface target · 2026-09-06 */
.brand img{object-fit:contain;background:transparent;border-radius:12px;box-shadow:0 0 28px rgba(29,145,255,.28)}
.favorite-grid{grid-template-columns:minmax(0,.92fr) minmax(420px,1.65fr) minmax(0,.92fr);grid-template-areas:"light somfy airco" "tv somfy scene";align-items:stretch}
.fav-light{grid-area:light}.fav-tv{grid-area:tv}.somfy-hero{grid-area:somfy}.fav-airco{grid-area:airco}.fav-scene{grid-area:scene}
.somfy-hero{min-height:284px;padding:18px;background:radial-gradient(circle at 88% 42%,rgba(255,165,44,.10),transparent 31%),linear-gradient(145deg,rgba(13,39,65,.97),rgba(5,20,35,.94));overflow:hidden;position:relative}.somfy-hero:after{content:"";position:absolute;right:-40px;top:0;width:42%;height:100%;opacity:.22;background:repeating-linear-gradient(90deg,rgba(255,179,76,.16) 0 8px,rgba(8,24,40,.08) 8px 17px);mask-image:linear-gradient(90deg,transparent,#000)}
.somfy-head,.somfy-head>div{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.somfy-head{justify-content:space-between}.somfy-head b{font-size:20px;margin:0}.somfy-head small{margin-top:4px}.somfy-live{display:flex;align-items:center;gap:7px;font-size:12px;color:#c9d7e4}.somfy-live i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 12px rgba(46,232,120,.75)}
.somfy-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:22px 0 17px;position:relative;z-index:1}.somfy-actions button{min-height:72px;border:1px solid rgba(112,180,236,.22);border-radius:15px;background:linear-gradient(145deg,#173c60,#0c2741);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);display:grid;place-items:center;align-content:center;gap:4px}.somfy-actions button:active{transform:translateY(1px);background:linear-gradient(145deg,#1e4c76,#0d2d4b)}.somfy-actions strong{font-size:25px;line-height:1}.somfy-actions span{font-size:12px;font-weight:800}
.somfy-slider{position:relative;z-index:1}.slider-line{display:grid;grid-template-columns:24px 1fr 24px;gap:9px;align-items:center;color:#9fb6ca}.slider-line input{width:100%;accent-color:#7fa7c9;opacity:.72}.somfy-slider>small{text-align:center;color:#8399ad;font-size:10.5px;margin-top:4px}.somfy-slider input:disabled{cursor:not-allowed}
.primary-rooms{grid-auto-flow:initial;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.primary-rooms .room-card{min-height:144px;position:relative;overflow:hidden}.primary-rooms .room-card:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,18,32,.03),rgba(56,137,203,.06));pointer-events:none}
.room-living{background:radial-gradient(circle at 82% 35%,rgba(255,157,47,.10),transparent 34%),linear-gradient(145deg,var(--panel),var(--panel2))}.room-bedroom{background:radial-gradient(circle at 82% 35%,rgba(81,157,255,.09),transparent 34%),linear-gradient(145deg,var(--panel),var(--panel2))}.room-guest{background:radial-gradient(circle at 82% 35%,rgba(255,190,90,.08),transparent 34%),linear-gradient(145deg,var(--panel),var(--panel2))}
@media(max-width:900px){.favorite-grid{grid-template-columns:1fr 1fr;grid-template-areas:"somfy somfy" "light airco" "tv scene"}.somfy-hero{min-height:260px}.primary-rooms{grid-template-columns:repeat(3,minmax(210px,1fr));overflow-x:auto}}
@media(max-width:620px){.favorite-grid{grid-template-columns:1fr;grid-template-areas:"somfy" "light" "tv" "airco" "scene"}.somfy-actions{gap:6px}.somfy-actions button{min-height:64px}.somfy-hero{min-height:250px}.primary-rooms{display:grid;grid-auto-flow:column;grid-auto-columns:185px;grid-template-columns:none;overflow-x:auto}}

/* V0.3.1 · room drilldown + individual Somfy */
.clickable-room{cursor:pointer}.clickable-room:active{transform:scale(.995)}
.room-device-grid,.curtain-device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.room-appliance,.curtain-group-card,.curtain-single{border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:20px;padding:18px;box-shadow:var(--shadow)}
.room-appliance-head,.curtain-single-head{display:flex;align-items:center;gap:12px}.room-appliance-head>div,.curtain-single-head>div{flex:1;min-width:0}
.room-appliance-head b,.curtain-single-head b{display:block;font-size:18px}.room-appliance-head small,.curtain-single-head small{display:block;color:var(--muted);margin-top:4px}
.room-appliance-status{margin-top:18px;color:var(--muted);font-size:13px}
.device-cover-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:17px}.device-cover-actions button{min-height:64px;border:1px solid rgba(112,180,236,.22);border-radius:14px;background:linear-gradient(145deg,#173c60,#0c2741);display:grid;place-items:center;align-content:center;gap:3px}.device-cover-actions strong{font-size:22px}.device-cover-actions span{font-size:11px;font-weight:850}.device-cover-actions button:active{transform:translateY(1px);background:linear-gradient(145deg,#1e4c76,#0d2d4b)}
.mini-slider{margin-top:15px}.mini-slider input{width:100%;opacity:.62}.mini-slider small{display:block;text-align:center;color:#8399ad;margin-top:4px;font-size:10px}
.open-detail{width:100%;margin-top:15px;border:0;border-top:1px solid rgba(126,168,206,.15);background:transparent;padding:14px 0 2px;text-align:right;color:#8ecbff;font-weight:800}
.curtain-group-card{margin-bottom:14px;background:radial-gradient(circle at 85% 35%,rgba(255,165,44,.09),transparent 32%),linear-gradient(145deg,var(--panel),var(--panel2))}
.curtain-number{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#193956;color:#9fd2ff;font-size:17px;font-weight:950;box-shadow:inset 0 0 18px rgba(51,153,255,.12)}
@media(max-width:760px){.room-device-grid,.curtain-device-grid{grid-template-columns:1fr}}
@media(max-width:460px){.device-cover-actions{grid-template-columns:repeat(2,1fr)}.device-cover-actions button{min-height:58px}}

/* V0.3.1 · target parity pass · 2026-09-06 */
.summary{position:relative;padding-right:40px}.summary:after{content:"›";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:28px;color:#dcecff;opacity:.86}
.switch.disabled{opacity:.62;pointer-events:none}.scene-bolt{color:var(--gold);font-size:30px}
.somfy-hero{background:linear-gradient(90deg,rgba(8,28,47,.99) 0%,rgba(8,28,47,.97) 56%,rgba(8,28,47,.78) 72%,rgba(8,28,47,.34) 100%),url('assets/room-living.webp') right center/48% 100% no-repeat}
.somfy-hero:after{display:none}.somfy-live{background:rgba(5,22,36,.52);padding:6px 9px;border-radius:999px;backdrop-filter:blur(8px)}
.somfy-actions button{background:linear-gradient(145deg,rgba(24,63,98,.96),rgba(10,40,66,.96));border-color:rgba(91,167,226,.30)}
.primary-rooms .room-card{min-height:136px;padding:16px 18px 15px;background-size:cover;background-position:center;isolation:isolate}.primary-rooms .room-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,20,34,.97) 0%,rgba(5,20,34,.80) 42%,rgba(5,20,34,.38) 72%,rgba(5,20,34,.18) 100%);z-index:-1}.primary-rooms .room-card:after{content:"›";position:absolute;right:16px;bottom:16px;font-size:28px;color:#fff;opacity:.92;background:none;width:auto;height:auto}
.primary-rooms .room-card>span{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:rgba(18,88,145,.88);font-size:23px;box-shadow:inset 0 0 20px rgba(72,177,255,.15)}
.primary-rooms .room-card b{font-size:17px;margin-top:12px;position:relative;z-index:1}.primary-rooms .room-card small{font-size:12px;position:relative;z-index:1;color:#aabdd0}
.room-living{background-image:url('assets/room-living.webp')}.room-bedroom{background-image:url('assets/room-bedroom.webp')}.room-guest{background-image:url('assets/room-guest.webp')}
.fav-tv .device-ico{font-size:24px}.fav-airco .row,.fav-light .row,.fav-tv .row,.fav-scene .row{align-items:center}
.control{border-color:rgba(94,166,225,.26)}.favorite-grid{gap:14px}.section-head{margin-top:28px}
@media(max-width:620px){.somfy-hero{background-size:72% 100%;background-position:right center}.primary-rooms .room-card{min-height:130px}.primary-rooms .room-card>span{width:40px;height:40px;font-size:21px}}
/* V0.3.1 · kitchen room */
.primary-rooms{grid-template-columns:repeat(4,minmax(0,1fr))}
.room-kitchen{background:radial-gradient(circle at 82% 35%,rgba(255,170,70,.09),transparent 34%),linear-gradient(145deg,var(--panel),var(--panel2))}
@media(max-width:900px){.primary-rooms{grid-template-columns:repeat(4,minmax(210px,1fr));overflow-x:auto}}
@media(max-width:620px){.primary-rooms{grid-template-columns:none}}
/* V0.3.2 · kitchen image */
.room-kitchen{background-image:url('assets/room-kitchen.webp')!important;background-size:cover!important;background-position:center!important}
/* V0.3.3 · click once · choose name · lock */
.profile{border:0;background:transparent;color:inherit;padding:0;cursor:default}.profile.needs-link{cursor:pointer}.profile.needs-link>span{box-shadow:0 0 0 1px rgba(83,188,255,.34),0 0 22px rgba(42,156,255,.18)}.profile.needs-link small{color:#dbeeff}.profile.is-locked{cursor:default}
.device-link-modal[hidden],.profile-admin[hidden]{display:none!important}.device-link-modal{position:fixed;inset:0;z-index:100;background:rgba(2,8,15,.72);backdrop-filter:blur(14px);display:grid;place-items:center;padding:20px}.device-link-card{width:min(520px,100%);border:1px solid rgba(112,180,236,.30);background:linear-gradient(145deg,rgba(12,35,58,.99),rgba(5,18,31,.99));border-radius:24px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.55);position:relative}.device-link-card h2{font-size:28px;margin:8px 0}.device-link-card p{color:var(--muted);line-height:1.45}.modal-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:1px solid rgba(126,168,206,.22);border-radius:50%;background:#0b2238;font-size:24px;color:#dcecff}.profile-choices{display:grid;gap:9px;margin-top:18px}.profile-choice{min-height:70px;border:1px solid rgba(112,180,236,.22);border-radius:16px;background:linear-gradient(145deg,#153754,#0a2238);padding:10px 14px;display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;text-align:left}.profile-choice>span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#1a3e60;border:1px solid rgba(151,205,244,.24);font-weight:900}.profile-choice b{display:block;font-size:17px}.profile-choice small{display:block;color:var(--muted);margin-top:3px}.profile-choice i{font-style:normal;font-size:28px;color:#bfe2ff}.profile-choice:active{transform:scale(.99);background:linear-gradient(145deg,#1c466b,#0c2b47)}.modal-open{overflow:hidden}
.profile-admin{margin-bottom:16px}.profile-admin>p{color:var(--muted);max-width:780px}.profile-add{display:grid;grid-template-columns:1fr 120px auto;gap:9px;margin:16px 0}.profile-add input,.profile-admin-row input{border-radius:11px;padding:11px 12px;background:#071627;color:white;border:1px solid rgba(126,168,206,.27)}.primary.compact{width:auto;padding:11px 16px}.profile-admin-list,.device-registry-list{display:grid;gap:8px;margin:12px 0 20px}.profile-admin-row{display:grid;grid-template-columns:minmax(140px,1fr) 110px 80px auto;gap:8px;align-items:center;padding:10px;border:1px solid rgba(126,168,206,.13);border-radius:13px;background:rgba(5,19,33,.58)}.profile-role{color:#8fb4d2;font-size:11px;text-transform:uppercase}.profile-admin-row button,.registry-row button{border:1px solid rgba(112,180,236,.22);background:#102d49;color:#e9f5ff;border-radius:10px;padding:9px 12px}.registry-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;border:1px solid rgba(126,168,206,.13);border-radius:13px;background:rgba(5,19,33,.58)}.registry-row b{display:block}.registry-row small{display:block;color:var(--muted);margin-top:3px}.muted{color:var(--muted)}
@media(max-width:620px){.device-link-card{padding:20px}.profile-add{grid-template-columns:1fr 90px}.profile-add button{grid-column:span 2}.profile-admin-row{grid-template-columns:1fr 80px}.profile-role{display:none}.profile-admin-row button{grid-column:span 2}.registry-row{align-items:flex-start}.registry-row button{white-space:nowrap}}
/* V0.3.3 · user home simplified · rooms first */
.profile-admin h3{margin:22px 0 10px}.admin-summary-grid{margin:0 0 18px}.admin-device-strip{margin-bottom:8px}
#view-home>.section-head:first-of-type{margin-top:18px}
/* V0.3.4 · expanded house rooms */
.room-bar{background:radial-gradient(circle at 78% 34%,rgba(255,132,48,.18),transparent 36%),linear-gradient(145deg,#241408,#0a1724)!important}
.room-backyard{background:radial-gradient(circle at 78% 34%,rgba(255,188,70,.14),transparent 36%),linear-gradient(145deg,#17200f,#081522)!important}
.room-utility{background:radial-gradient(circle at 78% 34%,rgba(98,170,232,.12),transparent 36%),linear-gradient(145deg,var(--panel),var(--panel2))!important}
.room-shower{background:radial-gradient(circle at 78% 34%,rgba(81,211,255,.15),transparent 36%),linear-gradient(145deg,var(--panel),var(--panel2))!important}
.room-hall{background:radial-gradient(circle at 78% 34%,rgba(255,185,87,.10),transparent 36%),linear-gradient(145deg,var(--panel),var(--panel2))!important}
.room-landing{background:radial-gradient(circle at 78% 34%,rgba(128,151,255,.12),transparent 36%),linear-gradient(145deg,var(--panel),var(--panel2))!important}
@media(min-width:901px){.primary-rooms{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* V0.3.5 · LG ThinQ premium climate cards */
.climate-device{position:relative;overflow:hidden;padding:20px;background:radial-gradient(circle at 88% 10%,rgba(91,188,255,.18),transparent 34%),linear-gradient(145deg,rgba(11,34,56,.98),rgba(5,20,34,.98));border-color:rgba(95,180,244,.30)}
.climate-device:after{content:"";position:absolute;right:-44px;top:-44px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(101,203,255,.18),rgba(101,203,255,0) 70%);pointer-events:none}
.climate-device .room-appliance-head{position:relative;z-index:1}.climate-device .device-ico{box-shadow:0 0 24px rgba(72,177,255,.20)}
.climate-readout{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin:20px 0 12px;position:relative;z-index:1}
.climate-readout>div{padding:14px 12px;border:1px solid rgba(115,181,233,.17);border-radius:15px;background:rgba(5,20,34,.52);backdrop-filter:blur(10px)}
.climate-readout small{display:block;color:#84a0b9;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.climate-readout strong{font-size:22px;line-height:1.05}
.climate-temp-slider{margin:12px 0 4px;padding:14px 15px 12px;border:1px solid rgba(112,180,236,.21);border-radius:16px;background:rgba(5,20,34,.54);position:relative;z-index:1}.climate-temp-slider-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.climate-temp-slider-head b{font-size:13px;color:#dbeeff}.climate-temp-slider-head strong{font-size:20px}.climate-temp-slider input[type=range]{width:100%;height:30px;accent-color:#6fc7ff;cursor:pointer}.climate-temp-scale{display:flex;justify-content:space-between;color:#7897b2;font-size:10px;font-weight:800;margin-top:-2px}
.climate-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.climate-actions button,.climate-swing{min-height:46px;border:1px solid rgba(112,180,236,.23);border-radius:13px;background:linear-gradient(145deg,#173c60,#0b2944);color:#eef8ff;font-weight:850}.climate-actions button.active,.climate-swing.active{border-color:rgba(77,226,154,.48);box-shadow:inset 0 0 0 1px rgba(77,226,154,.14),0 0 18px rgba(38,215,137,.12)}
.climate-selects{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}.climate-selects label{display:grid;gap:5px;color:#8fa8bf;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.climate-selects select{width:100%;appearance:none;border:1px solid rgba(112,180,236,.20);border-radius:12px;background:#0a243b;color:#edf7ff;padding:11px 12px;font-weight:750}
.climate-swing{width:100%;margin-top:9px}.adapter-thinq{background:radial-gradient(circle at 88% 20%,rgba(77,190,255,.16),transparent 34%),linear-gradient(145deg,var(--panel),var(--panel2));border-color:rgba(81,183,255,.28)}
.fav-airco{background:radial-gradient(circle at 88% 18%,rgba(82,192,255,.15),transparent 36%),linear-gradient(145deg,var(--panel),var(--panel2))}.fav-airco .switch.on{background:#2de878;box-shadow:0 0 14px rgba(45,232,120,.48)}
@media(max-width:520px){.climate-readout{grid-template-columns:1fr 1fr}.climate-readout>div:last-child{grid-column:span 2}.climate-actions{grid-template-columns:1fr 1fr}.climate-selects{grid-template-columns:1fr}}

/* V0.3.6 · Siemens Home Connect dishwasher */
.dishwasher-device{position:relative;overflow:hidden;padding:20px;background:radial-gradient(circle at 90% 8%,rgba(0,178,191,.16),transparent 34%),linear-gradient(145deg,rgba(9,31,51,.99),rgba(5,19,32,.99));border-color:rgba(72,188,214,.30)}
.dishwasher-device .device-ico.dish{box-shadow:0 0 22px rgba(0,190,205,.15)}
.dish-status-grid,.dish-timer{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0 10px}
.dish-status-grid>div,.dish-timer>div,.dish-more-grid>div{padding:13px 12px;border:1px solid rgba(114,185,223,.17);border-radius:14px;background:rgba(4,18,31,.55)}
.dish-status-grid small,.dish-timer small,.dish-more-grid small{display:block;color:#8da9c1;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.dish-status-grid strong,.dish-timer strong{font-size:20px}
.dish-timer.is-live{border:1px solid rgba(53,224,151,.22);border-radius:16px;padding:9px;background:rgba(20,73,66,.16)}
.dish-program-label{display:grid;gap:6px;color:#8fa8bf;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-top:12px}.dish-program-label select{width:100%;border:1px solid rgba(112,180,236,.21);border-radius:12px;background:#0a243b;color:#edf7ff;padding:12px;font-weight:800}
.dish-options{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.dish-option{border:1px solid rgba(112,180,236,.24);border-radius:999px;background:#102d49;color:#dcecff;padding:10px 13px;font-weight:800}.dish-option.active{border-color:rgba(62,225,157,.48);box-shadow:0 0 14px rgba(40,211,140,.12)}.dish-option:disabled{opacity:.35}
.dish-delay{margin-top:14px;padding:14px;border:1px solid rgba(112,180,236,.17);border-radius:16px;background:rgba(4,18,31,.42)}.dish-delay>b{display:block;margin-bottom:9px}.dish-delay-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.dish-delay button,.dish-delay input{min-height:42px;border:1px solid rgba(112,180,236,.21);border-radius:11px;background:#0d2b46;color:#eef8ff;padding:8px;font-weight:800}.dish-delay small{display:block;color:#94adc2;margin-top:9px}
.dish-main-actions{margin-top:12px}.dish-main-actions button{width:100%;min-height:50px;border-radius:14px;font-weight:900;border:1px solid rgba(112,180,236,.25)}.dish-main-actions .danger{background:#3a2026;color:#ffe9ed;border-color:rgba(255,125,147,.24)}
.dish-more{margin-top:13px;border:1px solid rgba(112,180,236,.15);border-radius:14px;background:rgba(4,18,31,.35);overflow:hidden}.dish-more summary{cursor:pointer;padding:14px 15px;font-weight:900}.dish-more[open] summary{border-bottom:1px solid rgba(112,180,236,.13)}.dish-more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px}.dish-more p{padding:0 14px 14px;color:#91a9bf;line-height:1.4}
@media(max-width:620px){.dish-status-grid,.dish-timer{grid-template-columns:1fr 1fr}.dish-status-grid>div:last-child,.dish-timer>div:last-child{grid-column:span 2}.dish-delay-buttons{grid-template-columns:1fr 1fr 1fr}.dish-delay input{grid-column:span 2}.dish-more-grid{grid-template-columns:1fr 1fr}}

/* V0.3.7 · Google Home woonkamer grouped lighting */
.gh-light-group{position:relative;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none;background:radial-gradient(circle at 88% 8%,rgba(255,185,66,.12),transparent 34%),linear-gradient(145deg,rgba(11,34,56,.99),rgba(5,20,34,.99));border-color:rgba(255,192,88,.24);touch-action:manipulation}
.gh-light-group .device-ico.warm{box-shadow:none;transition:box-shadow .16s ease,background .16s ease}.gh-light-group .device-ico.warm.light-on{background:#6f5418;box-shadow:0 0 24px rgba(255,187,58,.34)}.gh-light-group .device-ico.warm.light-off{box-shadow:none}
.gh-group-state{display:flex;justify-content:space-between;align-items:center;margin:18px 0 9px;padding:11px 12px;border:1px solid rgba(255,201,111,.13);border-radius:13px;background:rgba(4,18,31,.46)}
.gh-group-state strong{font-size:14px}.gh-group-state span{font-weight:900;color:#ffd37d}
.gh-group-dim,.gh-light-dim{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.gh-group-dim input,.gh-light-dim input{width:100%;accent-color:#ffd36d}.gh-group-dim small,.gh-light-dim small{color:#8ea7bd;font-size:10px;white-space:nowrap}
.gh-group-dim input:disabled,.gh-light-dim input:disabled{opacity:.35}
.gh-individuals{display:none;margin-top:0}.gh-light-group.expanded .gh-individuals{display:block;margin-top:15px}.gh-light-row{padding:11px 0;border-top:1px solid rgba(126,168,206,.12)}
.gh-light-toggle{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;border:0;background:transparent;color:#eaf5ff;text-align:left;padding:0 0 8px}.gh-light-toggle span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#153650}.gh-light-toggle.on span{background:#7a5c13;box-shadow:0 0 17px rgba(255,194,67,.22)}.gh-light-toggle b{font-size:14px}.gh-light-toggle i{font-style:normal;font-size:10px;font-weight:950;color:#8ea7bd}.gh-light-toggle.on i{color:#6cf0ad}.gh-light-toggle:disabled{opacity:.5}
@media(max-width:620px){.gh-group-state{margin-top:14px}.gh-group-dim,.gh-light-dim{grid-template-columns:1fr 46px}.gh-light-group .room-appliance-head small{font-size:10px}}

/* V0.3.7 · Google Home full light parity · Woonkamer */
.gh-expand-button{width:100%;margin-top:14px;min-height:44px;border:1px solid rgba(255,198,87,.18);border-radius:12px;background:rgba(25,55,82,.62);color:#eef7ff;font-weight:850;display:flex;align-items:center;justify-content:space-between;padding:0 13px}.gh-expand-button span{font-size:18px;color:#ffd374}
.gh-group-toggle{background:transparent;cursor:pointer;transition:box-shadow .18s ease,border-color .18s ease,color .18s ease,background .18s ease}.gh-group-toggle.live{background:rgba(46,232,120,.08);box-shadow:0 0 16px rgba(46,232,120,.32),inset 0 0 10px rgba(46,232,120,.08)}.gh-group-toggle.wait{background:transparent;box-shadow:none}.gh-group-toggle:disabled{cursor:default;box-shadow:none;opacity:.72}
.gh-extra-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.gh-color-control,.gh-temp-control{border:1px solid rgba(126,168,206,.15);border-radius:13px;background:rgba(4,18,31,.42);padding:11px}.gh-color-control b,.gh-temp-control b{display:block;font-size:12px;margin-bottom:8px}.gh-color-control small,.gh-temp-control small{display:block;color:#8ea7bd;font-size:10px;margin-top:6px}.gh-color-control input[type=color]{width:100%;height:38px;border:0;border-radius:10px;background:transparent;padding:0}.gh-temp-control input{width:100%;accent-color:#ffd36d}
.gh-schedule-wrap{margin-top:12px}.gh-schedule-open{width:100%;min-height:40px;border:1px solid rgba(126,168,206,.16);border-radius:11px;background:#0b2943;color:#ddecf8;font-weight:850}.gh-schedule-panel{display:none;margin-top:8px;padding:10px;border:1px solid rgba(126,168,206,.14);border-radius:13px;background:rgba(3,15,27,.58)}.gh-schedule-panel.open{display:block}.gh-sch-form{display:grid;grid-template-columns:1fr 118px;gap:7px}.gh-sch-form input,.gh-sch-form select{min-width:0;border:1px solid rgba(126,168,206,.20);border-radius:9px;background:#071827;color:#eef7ff;padding:9px}.gh-sch-days{grid-column:span 2;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.gh-sch-days label{display:grid;justify-items:center;gap:3px;padding:6px 2px;border:1px solid rgba(126,168,206,.12);border-radius:8px;color:#9eb2c5;font-size:9px}.gh-sch-days input{width:auto;padding:0}.gh-sch-kelvin{display:grid;grid-template-columns:1fr 52px;align-items:center;gap:6px}.gh-sch-kelvin small{color:#9eb2c5;text-align:right}.gh-sch-add{grid-column:span 2;border:0;border-radius:9px;background:linear-gradient(90deg,#156fae,#269de7);padding:10px;color:white;font-weight:900}.gh-sch-list{display:grid;gap:6px;margin-top:9px}.gh-sch-row{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;padding:8px;border-top:1px solid rgba(126,168,206,.10)}.gh-sch-row:first-child{border-top:0}.gh-sch-row b{font-size:12px}.gh-sch-row small,.gh-sch-empty{display:block;color:#8ea7bd;font-size:10px;margin-top:3px}.gh-sch-row button{border:1px solid rgba(126,168,206,.18);border-radius:8px;background:#0c2943;color:#e9f4ff;padding:7px 8px}
@media(max-width:620px){.gh-extra-controls{grid-template-columns:1fr}.gh-sch-form{grid-template-columns:1fr}.gh-sch-days,.gh-sch-add{grid-column:span 1}.gh-sch-days{grid-template-columns:repeat(4,1fr)}}

/* SRD Home · compact shared controller */
.room-device-grid{align-items:start}
.srd-controller-device{align-self:start;min-height:0}
.srd-controller-status{margin-top:12px;padding-top:11px;border-top:1px solid rgba(126,168,206,.12);color:#8fa8bf;font-size:12px}
.samsung-tv-device{position:relative;overflow:hidden;background:radial-gradient(circle at 90% 8%,rgba(74,151,255,.14),transparent 34%),linear-gradient(145deg,rgba(10,31,52,.99),rgba(4,17,29,.99));border-color:rgba(85,156,230,.30)}
.samsung-tv-device .device-ico.tv{box-shadow:0 0 22px rgba(70,150,245,.18)}
.tv-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.tv-status-grid>div{padding:10px;border:1px solid rgba(110,166,211,.13);border-radius:12px;background:rgba(3,14,25,.34)}.tv-status-grid small{display:block;color:var(--muted);font-size:10px}.tv-status-grid strong{display:block;margin-top:3px;font-size:14px}
.tv-audio-link{margin-top:12px;padding:12px;border:1px solid rgba(255,204,108,.18);border-radius:13px;background:rgba(255,193,68,.04);display:grid;grid-template-columns:1fr auto;gap:3px 10px}.tv-audio-link b{font-size:14px}.tv-audio-link small{grid-column:1;color:var(--muted);font-size:10px}.tv-audio-link span{grid-column:2;grid-row:1/3;align-self:center;color:#ffd06a;font-size:10px;font-weight:900;letter-spacing:.06em}
.tv-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.tv-actions button{border:1px solid rgba(116,176,226,.20);background:#0c2a45;color:#f5f9fd;border-radius:11px;padding:10px;font-weight:800;font-size:11px}.tv-actions button:active{transform:scale(.98)}.tv-note{display:block;margin-top:10px;color:var(--muted);font-size:10px}
@media(max-width:620px){.tv-status-grid,.tv-actions{grid-template-columns:repeat(2,1fr)}.tv-audio-link{grid-template-columns:1fr}.tv-audio-link span{grid-column:1;grid-row:auto}}

/* V0.4.0 · Martje climate slider direct response */
.climate-temp-slider input[type="range"]{width:100%;height:34px;margin:4px 0 1px;accent-color:#37a8ff;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}
.climate-temp-slider input[type="range"]::-webkit-slider-thumb{width:28px;height:28px}
.climate-temp-slider input[type="range"]::-moz-range-thumb{width:26px;height:26px}

/* V0.4.1 · favorites balance + TV audio quick control */
@media(min-width:901px){.favorite-grid{grid-template-columns:minmax(0,.85fr) minmax(390px,1.55fr) minmax(0,.85fr) minmax(0,.85fr);grid-template-areas:"light somfy airco tv" "scene somfy . .";align-items:stretch}.fav-airco,.fav-tv,.fav-light,.fav-scene{min-height:156px;height:100%}}
.fav-tv{display:flex;flex-direction:column}.fav-tv>.row{min-height:48px}.fav-tv-volume{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:6px;margin:9px 0 3px}.fav-tv-volume button{min-height:34px;border:1px solid rgba(112,180,236,.24);border-radius:10px;background:#102d49;color:#eef8ff;font-weight:900;padding:5px 7px}.fav-tv-volume button:active{transform:translateY(1px);background:#173d60}.fav-tv-volume+ b{margin-top:5px}
@media(max-width:900px) and (min-width:621px){.favorite-grid{grid-template-columns:1fr 1fr;grid-template-areas:"somfy somfy" "airco tv" "light scene"}.fav-airco,.fav-tv,.fav-light,.fav-scene{min-height:150px;height:100%}}
@media(max-width:620px){.favorite-grid{grid-template-areas:"somfy" "airco" "tv" "light" "scene"}.fav-tv-volume button{min-height:40px}}

/* V0.4.2 · SRD Home Google audio controls */
.audio-device{background:radial-gradient(circle at 88% 8%,rgba(113,151,255,.13),transparent 34%),linear-gradient(145deg,rgba(11,34,56,.99),rgba(5,20,34,.99));border-color:rgba(114,164,234,.23)}
.audio-state-row{display:flex;align-items:center;justify-content:space-between;margin:15px 0 8px;padding:10px 12px;border:1px solid rgba(126,168,206,.14);border-radius:12px;background:rgba(4,18,31,.44)}.audio-state-row strong{font-size:20px}.audio-state-row span{color:#91a9bf;font-size:12px}
.audio-volume-row{display:grid;grid-template-columns:42px 1fr 42px 48px;gap:7px;align-items:center}.audio-volume-row button,.audio-actions button{min-height:40px;border:1px solid rgba(112,180,236,.22);border-radius:11px;background:#102d49;color:#eef8ff;font-weight:900}.audio-volume-row input{width:100%;accent-color:#5bc0ff}.audio-volume-row small{text-align:right;color:#9bb2c7;font-weight:800}
.audio-actions{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:7px;margin-top:9px}.audio-actions button:disabled,.audio-volume-row input:disabled{opacity:.35}.tv-audio-device .room-appliance-status{margin-top:14px}
@media(max-width:620px){.audio-volume-row{grid-template-columns:40px 1fr 40px}.audio-volume-row small{grid-column:1/-1;text-align:center}.audio-actions{grid-template-columns:1.6fr 1fr 1fr 1fr}}

/* SRD Home · camera live feeds */
.camera-detail .camera-video{width:100%;height:240px;display:block;object-fit:cover;background:#02070b;border:1px solid rgba(126,168,206,.18);border-radius:15px}.camera-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.camera-detail-head b{margin:0}.camera-detail .camera-wait{height:240px}.camera-detail-grid .camera-detail{min-height:330px}@media(max-width:620px){.camera-detail .camera-video,.camera-detail .camera-wait{height:210px}}

.camera-preview-live{padding:0;position:relative;overflow:hidden;background:#02070b}.camera-preview-live .camera-video{width:100%;height:100%;display:block;object-fit:cover;background:#02070b}.camera-preview-live>.badge{position:absolute;right:10px;top:10px;z-index:2}.camera-stream-error .camera-preview-live:after{content:"Stream opnieuw verbinden…";position:absolute;left:10px;bottom:8px;font-size:10px;color:#ffd06a;background:rgba(2,7,11,.72);padding:5px 7px;border-radius:8px}.camera-detail .camera-preview-live{height:240px}@media(max-width:620px){.camera-detail .camera-preview-live{height:210px}}

/* V0.4.3 · Woonkamer: airco + TV als gelijke buren */
@media(min-width:761px){
  #roomDeviceGrid.room-device-grid-living{align-items:stretch}
  #roomDeviceGrid.room-device-grid-living .climate-device{order:20;height:100%}
  #roomDeviceGrid.room-device-grid-living .samsung-tv-device{order:21;height:100%;display:flex;flex-direction:column}
  #roomDeviceGrid.room-device-grid-living .somfy-room-device{order:30}
  #roomDeviceGrid.room-device-grid-living .samsung-tv-device .tv-note{margin-top:auto;padding-top:10px}
}

/* V0.4.4 · Samsung TV quick sources */
.tv-actions-primary{grid-template-columns:repeat(3,1fr)}
.tv-quick-sources{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.tv-quick-sources button{min-height:60px;border:1px solid rgba(116,176,226,.20);border-radius:13px;background:linear-gradient(145deg,#123653,#0a243b);color:#f6fbff;padding:9px 7px;display:grid;place-items:center;align-content:center;gap:3px}
.tv-quick-sources button b{font-size:12px}.tv-quick-sources button small{font-size:9px;color:#91acc3;text-transform:uppercase;letter-spacing:.07em}.tv-quick-sources button:active{transform:translateY(1px);background:linear-gradient(145deg,#19496f,#0c2e4c)}
.tv-actions-secondary{grid-template-columns:repeat(3,1fr);margin-top:8px}
@media(max-width:620px){.tv-quick-sources{grid-template-columns:repeat(2,1fr)}.tv-quick-sources button{min-height:54px}}

/* V0.4.5 · Woonkamer vaste matrix: airco + TV naast elkaar */
@media(min-width:761px){
  #roomDeviceGrid.room-device-grid-living{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
  #roomDeviceGrid.room-device-grid-living .climate-device{order:1;grid-column:1;align-self:stretch}
  #roomDeviceGrid.room-device-grid-living .samsung-tv-device{order:2;grid-column:2;align-self:stretch}
  #roomDeviceGrid.room-device-grid-living .somfy-room-device{order:3}
  #roomDeviceGrid.room-device-grid-living .gh-light-group{order:0}
  #roomDeviceGrid.room-device-grid-living .climate-device,
  #roomDeviceGrid.room-device-grid-living .samsung-tv-device{min-height:100%;height:auto}
}


/* V0.4.6 · Google Nest read-only thermostat */
.thermostat-device{position:relative;overflow:hidden;background:radial-gradient(circle at 88% 10%,rgba(255,155,70,.14),transparent 34%),linear-gradient(145deg,rgba(11,34,56,.99),rgba(5,20,34,.99));border-color:rgba(255,171,93,.24)}
.thermostat-device .device-ico.thermostat{background:#3b291b;color:#ffbd78;box-shadow:0 0 20px rgba(255,154,68,.15)}
.thermostat-readout{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:17px}.thermostat-readout>div{padding:13px 12px;border:1px solid rgba(126,168,206,.14);border-radius:14px;background:rgba(4,18,31,.48)}
.thermostat-readout small{display:block;color:#8ea6bb;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}.thermostat-readout strong{font-size:19px}.thermostat-readout .heat-demand{color:#ffbd78}
.thermostat-mode{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:11px 12px;border:1px solid rgba(126,168,206,.12);border-radius:12px;background:rgba(4,18,31,.35)}.thermostat-mode span{color:#8ea6bb;font-size:11px}.thermostat-mode b{font-size:13px}
.thermostat-note{display:block;margin-top:11px;color:#8ea6bb;font-size:10px;line-height:1.4}
@media(max-width:520px){.thermostat-readout{grid-template-columns:1fr 1fr}.thermostat-readout>div:last-child{grid-column:span 2}}

/* V0.4.7 · compact audio state toggles */
.audio-actions.compact{grid-template-columns:1.35fr 1fr 1fr}.audio-actions.compact button{min-width:0}
@media(max-width:620px){.audio-actions.compact{grid-template-columns:1.35fr 1fr 1fr}}

/* V0.4.8 · App Store device approval */
.app-pending-row{align-items:center}.pending-approve{display:flex;gap:8px;align-items:center}.pending-approve select{min-width:130px;border-radius:10px;padding:9px 10px;background:#071627;color:#fff;border:1px solid rgba(126,168,206,.27)}
@media(max-width:620px){.app-pending-row{display:grid;grid-template-columns:1fr}.pending-approve{width:100%}.pending-approve select{flex:1}.pending-approve button{white-space:nowrap}}
