@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_a11773;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_Fallback_a11773;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_a11773{font-family:__Plus_Jakarta_Sans_a11773,__Plus_Jakarta_Sans_Fallback_a11773;font-style:normal}.__variable_a11773{--font-app:"__Plus_Jakarta_Sans_a11773","__Plus_Jakarta_Sans_Fallback_a11773"}:root{--bg:#0d0d0f;--bg-2:#141418;--card:#1a1a1e;--card-hover:#212127;--border:#2a2a31;--text:#f4f4f6;--text-dim:#9a9aa6;--accent:#ffd60a;--green:#30d158;--blue:#0a84ff;--red:#ff453a;--shadow:0 8px 30px rgba(0,0,0,.4);--radius:18px}:root[data-theme=light]{--bg:#f2f2f7;--bg-2:#e9e9ef;--card:#fff;--card-hover:#f7f7fa;--border:#e2e2e8;--text:#1a1a1e;--text-dim:#6a6a76;--accent:#f0a500;--green:#28b14a;--shadow:0 8px 24px rgba(0,0,0,.08)}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:var(--font-app),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease}.app{max-width:1280px;margin:0 auto;padding:20px 24px 60px}.topbar{justify-content:space-between;padding:16px 0 20px}.brand,.topbar{display:flex;align-items:center;gap:12px}.brand{flex-shrink:0}.brand .logo{width:42px;height:42px;border-radius:12px;overflow:hidden;display:grid;place-items:center}.brand .logo img{width:100%;height:100%;object-fit:cover;display:block}.powered-by{display:inline-block;margin-top:6px;font-size:12px;color:var(--text-dim)}.powered-by b{background:linear-gradient(135deg,var(--accent),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}.brand h1{font-size:20px;font-weight:700;letter-spacing:-.3px}.brand p{font-size:12px;color:var(--text-dim)}.topbar-center{display:flex;align-items:center;gap:10px;flex:1 1;justify-content:center}.pill-sep{color:var(--border);font-size:16px}.clock-pill{color:var(--text-dim)}.topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.stat-pill{gap:7px;font-size:14px;font-weight:600}.ap-btn,.stat-pill{display:flex;align-items:center;background:var(--card);border:1px solid var(--border);padding:8px 14px;border-radius:999px}.ap-btn{gap:6px;color:var(--text-dim);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}.ap-btn:hover{background:var(--card-hover)}.ap-btn.on{background:linear-gradient(135deg,var(--green),#28b14a);color:#fff;border-color:transparent;box-shadow:0 0 14px rgba(48,209,88,.5);animation:ap-glow 2.5s ease-in-out infinite}@keyframes ap-glow{0%,to{box-shadow:0 0 10px rgba(48,209,88,.4)}50%{box-shadow:0 0 18px rgba(48,209,88,.7)}}.profile-menu{position:relative}.profile-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#0061c9);border:2px solid transparent;cursor:pointer;display:grid;place-items:center;transition:all .2s;box-shadow:0 2px 8px rgba(10,132,255,.3)}.profile-avatar:hover{border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,132,255,.2)}.avatar-initials{font-size:16px;font-weight:700;color:#fff;line-height:1;text-transform:uppercase}.profile-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:8px;min-width:200px;box-shadow:var(--shadow);z-index:80;animation:dropdown-in .15s ease}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.profile-user{padding:8px 12px 10px}.profile-user-name{display:block;font-size:14px;font-weight:700}.profile-user-email{display:block;font-size:12px;color:var(--text-dim);margin-top:2px}.profile-divider{height:1px;background:var(--border);margin:4px 0}.profile-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:10px;background:none;border:none;color:var(--text);font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:background .15s}.profile-item:hover{background:var(--card-hover)}.profile-item-icon{font-size:18px;width:24px;text-align:center}.profile-item-danger{color:var(--red)}.profile-item-danger:hover{background:rgba(255,69,58,.08)}.theme-toggle{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:background .2s}.theme-toggle:hover{background:var(--card-hover)}.nav-bar-wrap{display:flex;flex-direction:column;gap:0;padding-bottom:6px}.nav-row{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;padding:6px 0}.nav-row::-webkit-scrollbar{display:none}.nav-row-global{border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:4px}.room-tab-home{background:linear-gradient(135deg,rgba(255,214,10,.1),rgba(48,209,88,.08))!important;border-color:rgba(255,214,10,.25)!important}.room-tab-home.active{background:var(--text)!important;border-color:var(--text)!important}.nav-row-floors{display:flex;align-items:center;gap:0;overflow-x:auto;scrollbar-width:none;padding:2px 0 12px;flex-wrap:nowrap}.nav-row-floors::-webkit-scrollbar{display:none}.floor-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.floor-label-inline{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-dim);white-space:nowrap;flex-shrink:0;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:3px 8px;margin-right:2px}.floor-sep{width:1px;height:24px;background:var(--border);margin:0 10px;flex-shrink:0}.room-tab-sm{padding:7px 13px!important;font-size:13px!important}.nav-bar{display:flex;align-items:center;gap:0;padding-bottom:18px;overflow-x:auto;scrollbar-width:none}.nav-bar::-webkit-scrollbar{display:none}.nav-section{display:flex;align-items:center;gap:8px;flex-shrink:0}.nav-divider{width:1px;height:28px;background:var(--border);margin:0 12px;flex-shrink:0}.room-tab-add{color:var(--text-dim);border-style:dashed;font-size:13px}.floor-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);white-space:nowrap;padding:0 4px;flex-shrink:0}.room-auto-panel{margin-top:24px;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;background:var(--card)}.room-auto-toggle{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg-2);border:none;color:var(--text);padding:14px 18px;cursor:pointer;font-size:14px;font-weight:700;text-align:left;transition:background .15s}.room-auto-toggle:hover{background:var(--card-hover)}.room-auto-badge{margin-left:auto;min-width:22px;height:22px;border-radius:999px;background:var(--accent);color:#111;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 6px}.room-auto-badge:empty{display:none}.room-auto-chevron{font-size:11px;color:var(--text-dim);flex-shrink:0}.room-auto-body{padding:16px 18px;gap:14px;border-top:1px solid var(--border)}.room-auto-body,.room-auto-list{display:flex;flex-direction:column}.room-auto-list{gap:8px}.room-auto-row{display:flex;align-items:center;justify-content:space-between;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:10px 14px;gap:12px}.room-auto-name{display:flex;flex-direction:column;gap:2px;flex:1 1;min-width:0}.room-auto-last{font-size:11px;color:var(--text-dim)}.room-auto-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.room-auto-builder{background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.room-auto-section-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:2px}.room-auto-row-build{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.room-auto-cond-label{font-size:12px;font-weight:700;color:var(--accent);width:44px;flex-shrink:0;text-transform:uppercase;letter-spacing:.5px}.room-auto-histeresis{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;background:var(--card);border-radius:10px;padding:8px 12px;border:1px solid var(--border)}.integ-bar{display:flex;gap:10px;overflow-x:auto;padding:4px 0 16px}.integ-chip{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:8px 14px 8px 8px;cursor:pointer;white-space:nowrap;transition:all .18s;position:relative;color:var(--text)}.integ-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow);background:var(--card-hover)}.integ-chip.on{border-color:rgba(48,209,88,.5)}.integ-logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:18px;color:#fff;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.25)}.integ-name{font-size:13.5px;font-weight:600}.integ-status{width:8px;height:8px;border-radius:50%;margin-left:2px}.dot-on{background:var(--green);box-shadow:0 0 6px var(--green)}.dot-off{background:var(--border)}.integ-add .integ-logo{font-size:22px}.rooms{display:flex;gap:10px;overflow-x:auto;padding-bottom:18px}.room-tab{display:flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;background:var(--card);border:1px solid var(--border);color:var(--text-dim);padding:9px 16px;border-radius:999px;font-size:14px;font-weight:600;transition:all .18s}.room-tab:hover{background:var(--card-hover)}.room-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:16px;gap:16px;margin-top:4px}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin:28px 4px 12px}.energy{grid-column:1/-1;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;grid-gap:16px;gap:16px;background:linear-gradient(135deg,rgba(255,214,10,.08),rgba(48,209,88,.06));border:1px solid var(--border);border-radius:var(--radius);padding:22px}@media (max-width:880px){.energy{grid-template-columns:1fr 1fr}}.energy .main{display:flex;flex-direction:column;gap:6px}.energy .main .big{font-size:38px;font-weight:800;letter-spacing:-1px}.energy .main .big span{font-size:18px;color:var(--text-dim);font-weight:600}.energy .label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.energy .metric{display:flex;flex-direction:column;gap:4px;justify-content:center}.energy .metric .v{font-size:22px;font-weight:700}.flow-bar{height:8px;border-radius:999px;background:var(--border);margin-top:8px;overflow:hidden}.flow-bar>div{height:100%;background:var(--green);border-radius:999px;transition:width .6s ease}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px;min-height:138px;transition:all .18s;position:relative}.card:hover{background:var(--card-hover);transform:translateY(-2px);box-shadow:var(--shadow)}.card.on{border-color:rgba(255,214,10,.5)}.card .head{display:flex;align-items:flex-start;justify-content:space-between}.card .icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:22px;background:var(--bg-2)}.card.on .icon{background:rgba(255,214,10,.15)}.card .name{font-size:15px;font-weight:600;line-height:1.3}.rename-btn{background:none;border:none;cursor:pointer;font-size:11px;opacity:0;margin-left:4px;transition:opacity .2s}.card:hover .rename-btn{opacity:.6}.rename-btn:hover{opacity:1!important}.card .meta{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:6px}.src-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.src-smartthings{background:#00b3e3}.src-tuya{background:#ff5a28}.src-matter{background:#8a5cf6}.src-homeassistant{background:#41bdf5}.offline{opacity:.5}.badge-power{font-size:12px;color:var(--text-dim)}.card .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between}.switch{width:50px;height:30px;border-radius:999px;background:var(--border);position:relative;cursor:pointer;transition:background .2s;border:none}.switch.on{background:var(--green)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}.switch.on:after{transform:translateX(20px)}.slider{accent-color:var(--accent)}.room-select,.slider{width:100%;cursor:pointer}.room-select{margin-top:auto;background:var(--bg-2);color:var(--text-dim);border:1px solid var(--border);border-radius:9px;padding:6px 8px;font-size:12px;outline:none}.room-select:hover{color:var(--text)}.room-actions{display:inline-flex;gap:8px;margin-left:10px}.room-actions button{background:var(--card);border:1px solid var(--border);color:var(--text-dim);border-radius:8px;padding:4px 9px;font-size:12px;cursor:pointer}.room-actions button:hover{color:var(--text);background:var(--card-hover)}.room-actions button.edit-active{background:var(--accent);color:#111;border-color:var(--accent)}.mode-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:2px 7px;color:var(--text-dim)}.climate-ctrl{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:8px}.connect-solar-card{grid-column:1/-1;display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:linear-gradient(135deg,rgba(255,214,10,.08),rgba(48,209,88,.06));border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;cursor:pointer;color:var(--text);transition:all .15s}.connect-solar-card:hover{border-color:var(--accent)}.welcome-empty{text-align:center;max-width:520px;margin:24px auto 8px;background:linear-gradient(135deg,rgba(255,214,10,.06),rgba(48,209,88,.05));border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px 28px;display:flex;flex-direction:column;align-items:center;gap:6px}.welcome-emoji{font-size:52px;line-height:1;margin-bottom:4px}.welcome-empty h2{font-size:24px;font-weight:800}.welcome-empty>p{color:var(--text-dim);font-size:15px;margin-bottom:8px}.welcome-steps{display:flex;flex-direction:column;gap:12px;width:100%;margin:8px 0 18px;text-align:left}.welcome-step{display:flex;align-items:flex-start;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.welcome-step b{display:block;font-size:15px;margin-bottom:2px}.welcome-step small{color:var(--text-dim);font-size:13px;line-height:1.4}.ws-num{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--green));color:#111;font-weight:800;font-size:15px;display:grid;place-items:center}.welcome-cta{width:100%;max-width:360px;background:linear-gradient(135deg,var(--accent),var(--green));color:#111;font-weight:800;font-size:16px;border:none;border-radius:14px;padding:15px 20px;cursor:pointer;transition:transform .15s,box-shadow .15s}.welcome-cta:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.welcome-cta-sm{background:none;border:none;color:var(--accent);font-weight:600;font-size:13.5px;cursor:pointer;padding:10px;margin-top:2px}.welcome-hint{color:var(--text-dim);font-size:12.5px;margin-top:10px;line-height:1.5;max-width:420px}.card.editing{border-color:var(--accent);border-style:dashed}.edit-bar{display:flex;gap:6px;margin-bottom:8px}.edit-bar button{flex:1 1;background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 0;font-size:15px;cursor:pointer;transition:all .12s;font-weight:700}.edit-bar button:hover{background:var(--card-hover)}.edit-bar .edit-del{color:var(--red);flex:0 0 44px}.edit-bar .edit-del:hover{background:rgba(255,69,58,.12);border-color:var(--red)}.wall-switch{width:100%;margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:9px;background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:16px 10px;cursor:pointer;transition:all .18s}.wall-switch:hover:not(:disabled){background:var(--card-hover)}.wall-switch:disabled{opacity:.5;cursor:default}.wall-switch:active:not(:disabled){transform:scale(.97)}.wall-switch .ws-led{width:16px;height:16px;border-radius:50%;background:#3a3a40;box-shadow:inset 0 1px 3px rgba(0,0,0,.6);transition:all .2s}.wall-switch.on{background:linear-gradient(135deg,rgba(48,209,88,.12),rgba(48,209,88,.05));border-color:var(--green)}.wall-switch.on .ws-led{background:#30d158;box-shadow:0 0 8px #30d158,0 0 18px rgba(48,209,88,.7),inset 0 0 2px hsla(0,0%,100%,.5)}.ws-label{font-size:13px;font-weight:800;letter-spacing:1.5px;color:var(--text-dim);transition:color .2s}.wall-switch.on .ws-label{color:var(--green)}.caps{display:flex;flex-direction:column;gap:8px;margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.cap-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.cap-label{font-size:12.5px;color:var(--text-dim);font-weight:600}.cap-num,.cap-sel{background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:5px 8px;font-size:13px;max-width:130px}.switch.sm{transform:scale(.8)}.room-folder{display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .15s;min-height:110px}.room-folder:hover{background:var(--card-hover);border-color:var(--accent);transform:translateY(-2px)}.rf-top{display:flex;align-items:center;justify-content:space-between}.rf-icon{font-size:30px}.rf-badge{background:var(--bg-2);border:1px solid var(--border);color:var(--text-dim);font-size:12px;font-weight:800;border-radius:999px;padding:2px 9px}.rf-name{font-size:17px;font-weight:800;color:#fff}:root[data-theme=light] .rf-name{color:#1a1a1e}.rf-meta{font-size:12.5px;color:var(--text-dim)}.floor-heading{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin:18px 4px 10px}.rf-back{background:none;border:none;color:var(--accent);font-weight:700;font-size:13px;cursor:pointer;margin-left:8px}.house-photo{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background-size:cover;background-position:50%;box-shadow:var(--shadow);margin-bottom:16px}.hp-shade{background:linear-gradient(180deg,rgba(0,0,0,.22),transparent 30%,transparent 60%,rgba(0,0,0,.34))}.hp-overlay,.hp-shade{position:absolute;inset:0}.hp-overlay{width:100%;height:100%;pointer-events:none}.hp-node{fill:var(--accent);stroke:rgba(0,0,0,.45);stroke-width:1;filter:drop-shadow(0 0 3px rgba(0,0,0,.5))}.hp-node-casa{fill:#fff}.hp-star{animation:hp-twinkle 2.4s ease-in-out infinite}@keyframes hp-twinkle{0%,to{opacity:.85}50%{opacity:.25}}.hp-tag{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:1px;background:rgba(15,15,20,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border:1px solid hsla(0,0%,100%,.18);border-radius:12px;padding:6px 11px;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.35);white-space:nowrap}.hp-tag .hp-cap{font-size:10px;opacity:.85;text-transform:uppercase;letter-spacing:.5px}.hp-tag b{font-size:16px;font-weight:800;line-height:1.1}.hp-tag small{font-size:10px;font-weight:600;opacity:.8}.hp-tag-bat,.hp-tag-grid{transform:translateX(0)}.hp-inv{position:absolute;left:32%;top:53%;transform:translate(-50%,-50%);background:rgba(255,214,10,.94);color:#111;font-weight:800;font-size:12px;padding:5px 13px;border-radius:999px;white-space:nowrap;box-shadow:0 3px 12px rgba(0,0,0,.4);border:1px solid rgba(0,0,0,.15)}.hp-sample{position:absolute;top:10px;right:10px;background:rgba(255,214,10,.16);color:var(--accent);border:1px solid rgba(255,214,10,.45);font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hp-actions{position:absolute;left:50%;bottom:9px;transform:translate(-50%);display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:92%}.hp-act{background:rgba(15,15,20,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid hsla(0,0%,100%,.2);color:#fff;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.hp-act:hover{background:rgba(15,15,20,.8)}.hp-weather{position:absolute;top:10px;left:50%;transform:translateX(-50%);background:rgba(15,15,20,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border-radius:999px;padding:5px 13px;font-size:14px;font-weight:700;white-space:nowrap;border:1px solid hsla(0,0%,100%,.18)}.hp-weather small{font-weight:500;opacity:.85;margin-left:4px}.hp-night{position:absolute;inset:0;background:rgba(8,12,28,.4)}.hp-sky{position:absolute;top:0;left:0;width:100%;height:58%;pointer-events:none}.hp-sun-g{animation:hp-sun-rot 28s linear infinite}@keyframes hp-sun-rot{to{transform:rotate(1turn)}}.hp-sun-halo{animation:hp-halo 4s ease-in-out infinite}@keyframes hp-halo{0%,to{opacity:.35}50%{opacity:.6}}.hp-cloud-a{animation:hp-drift-a 16s ease-in-out infinite}.hp-cloud-b{animation:hp-drift-b 22s ease-in-out infinite}@keyframes hp-drift-a{0%,to{transform:translateX(0)}50%{transform:translateX(22px)}}@keyframes hp-drift-b{0%,to{transform:translateX(0)}50%{transform:translateX(-26px)}}.hp-rain{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(115deg,hsla(0,0%,100%,.28) 0 1px,transparent 1px 9px);background-size:60px 60px;animation:hp-rain-fall .5s linear infinite;opacity:.55}@keyframes hp-rain-fall{to{background-position:-28px 60px}}.hp-snow{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(hsla(0,0%,100%,.9) 1.4px,transparent 1.6px),radial-gradient(hsla(0,0%,100%,.8) 1.4px,transparent 1.6px);background-size:50px 50px,80px 80px;background-position:0 0,25px 25px;animation:hp-snow-fall 5s linear infinite;opacity:.8}@keyframes hp-snow-fall{to{background-position:0 50px,25px 75px}}:root{--ef-sky-top:#cfe2f3;--ef-sky-bot:#e8eef4;--ef-ground:#d6dde2}:root[data-theme=light]{--ef-sky-top:#bcdcf5;--ef-sky-bot:#eef4f9;--ef-ground:#dce3e8}:root:not([data-theme=light]){--ef-sky-top:#243447;--ef-sky-bot:#1a2330;--ef-ground:#20272f}.eflow-badge{font-size:12px;color:var(--accent);background:rgba(255,214,10,.1);border:1px solid rgba(255,214,10,.22);border-radius:8px;padding:6px 10px;margin-bottom:10px;display:inline-block}.eflow-scene{border-radius:14px;overflow:hidden;border:1px solid var(--border);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04)}.eflow-svg{width:100%;height:auto;aspect-ratio:400/250;display:block}.eflow-sun{animation:eflow-pulse 4s ease-in-out infinite;transform-origin:58px 48px}@keyframes eflow-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.06)}}.wire-base{fill:none;stroke:hsla(0,0%,100%,.18);stroke-width:2.6}:root[data-theme=light] .wire-base{stroke:rgba(0,0,0,.12)}.wire{fill:none;stroke-width:2.8;opacity:.95;stroke-linecap:round}.wire.flow{stroke-dasharray:6 8;animation:eflow-current .7s linear infinite}.wire.flow-rev{animation-direction:reverse}@keyframes eflow-current{to{stroke-dashoffset:-14}}.ef-leader{stroke:var(--text-dim);stroke-width:.8;opacity:.55;stroke-dasharray:2 3}.ef-leader-dot{fill:var(--accent)}.ef-val{fill:var(--text);font-size:19px;font-weight:800;letter-spacing:-.5px}.ef-unit{font-size:11px;font-weight:700}.ef-cap,.ef-unit{fill:var(--text-dim)}.ef-cap{font-size:9.5px;font-weight:600}.ef-batt-num{fill:#0a3d2a;font-size:10px;font-weight:800}.ef-cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-top:14px}.ef-card{background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:12px 14px;min-width:0}.ef-card-top{display:flex;align-items:center;justify-content:space-between}.ef-card-title{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.ef-card-ico{font-size:15px}.ef-card-val{font-size:21px;font-weight:800;margin-top:6px;letter-spacing:-.5px;white-space:nowrap}.ef-card-u{font-size:12px;color:var(--text-dim);font-weight:700}.ef-card-cap{font-size:11px;color:var(--text-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ef-spark{width:100%;height:26px;margin-top:8px;display:block}.ef-spark-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.ef-spark-green{stroke:var(--green)}.ef-spark-orange{stroke:#ff9f0a}.ef-spark-gold{stroke:var(--accent)}@media (max-width:540px){.ef-cards{grid-template-columns:1fr}.ef-card-val{font-size:19px}}.platform-btn{display:flex;align-items:center;gap:14px;width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:14px 16px;cursor:pointer;transition:all .15s;text-align:left}.platform-btn:hover{background:var(--card-hover);border-color:var(--accent)}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12.5px;font-weight:600}.dev-pick{display:flex;align-items:center;gap:12px;width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;cursor:pointer;transition:all .12s}.dev-pick:hover:not(:disabled){background:var(--card-hover)}.dev-pick.sel{border-color:var(--accent);background:rgba(255,214,10,.08)}.dev-pick.added{opacity:.55;cursor:default}.dev-pick .check{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--border);display:grid;place-items:center;font-size:13px;flex-shrink:0}.dev-pick .check.on{background:var(--accent);border-color:var(--accent);color:#111}.climate-ctrl button{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--bg-2);color:var(--text);font-size:22px;cursor:pointer;line-height:1}.climate-ctrl button:hover{background:var(--card-hover)}.climate-target{font-size:22px;font-weight:800}.wh-star{animation:wh-twinkle 3s ease-in-out infinite}@keyframes wh-twinkle{0%,to{opacity:.85}50%{opacity:.3}}.flame{filter:grayscale(1) opacity(.4);transition:filter .3s}.flame.on{filter:none;animation:flame-flicker 1.4s ease-in-out infinite}@keyframes flame-flicker{0%,to{transform:scale(1);filter:drop-shadow(0 0 3px rgba(255,120,0,.7))}50%{transform:scale(1.15);filter:drop-shadow(0 0 7px rgba(255,80,0,.9))}}.sensor-val{font-size:30px;font-weight:800;letter-spacing:-.5px}.sensor-sub{font-size:13px;color:var(--text-dim)}.alarm-ok{color:var(--green);font-weight:700}.alarm-on{color:var(--red);font-weight:700}.scenes{display:flex;gap:12px;flex-wrap:wrap}.scene-btn{display:flex;align-items:center;gap:9px;cursor:pointer;background:var(--card);border:1px solid var(--border);color:var(--text);padding:12px 18px;border-radius:14px;font-size:14px;font-weight:600;transition:all .18s}.scene-btn:hover{background:var(--card-hover);transform:translateY(-2px)}.scene-btn:active{transform:scale(.97)}.scene-btn .e{font-size:18px}.scene-wrap{position:relative;display:inline-flex}.scene-del{position:absolute;top:-7px;right:-7px;width:21px;height:21px;border-radius:50%;background:var(--card);border:1px solid var(--border);color:var(--red);font-size:11px;cursor:pointer;display:none;line-height:1;z-index:2}.scene-wrap:hover .scene-del{display:block}.ai-fab{position:fixed;bottom:26px;right:26px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--green));border:none;cursor:pointer;font-size:26px;box-shadow:var(--shadow);display:grid;place-items:center;z-index:50;transition:transform .2s}.ai-fab:hover{transform:scale(1.08)}.ai-panel{position:fixed;bottom:100px;right:26px;width:380px;max-width:calc(100vw - 32px);background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);z-index:50;display:flex;flex-direction:column;overflow:hidden;max-height:82vh}.ai-head{padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ai-head small{color:var(--text-dim);font-weight:500;font-size:12px}.hey-mira{font-size:11px;font-weight:700;cursor:pointer;background:var(--bg-2);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:5px 10px;transition:all .18s;white-space:nowrap}.hey-mira.on{background:linear-gradient(135deg,var(--green),#28b14a);animation:ap-glow 2.5s ease-in-out infinite}.hey-mira.awake,.hey-mira.on{color:#fff;border-color:transparent}.hey-mira.awake{background:linear-gradient(135deg,var(--blue,#2563eb),#4f46e5);animation:hey-mira-pulse .9s ease-in-out infinite}@keyframes hey-mira-pulse{0%,to{box-shadow:0 0 0 0 rgba(79,70,229,.45)}50%{box-shadow:0 0 0 6px rgba(79,70,229,0)}}.ai-head-title{font-weight:800;margin-right:auto}.mira-mode{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:999px;overflow:hidden;flex-shrink:0}.mira-mode button{font-size:11px;font-weight:700;cursor:pointer;padding:5px 10px;border:none;background:var(--bg-2);color:var(--text-dim);white-space:nowrap;transition:all .15s}.mira-mode button.on{background:var(--accent);color:#111}.mira-gear{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-size:16px;cursor:pointer;display:grid;place-items:center;transition:all .15s}.mira-gear:hover{background:var(--card-hover)}.mira-gear.on{background:var(--accent);border-color:var(--accent);color:#111}.mira-settings{padding:12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.ms-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.ms-info{display:flex;flex-direction:column;gap:2px}.ms-info b{font-size:14px}.ms-info small{color:var(--text-dim);font-size:11.5px;line-height:1.35}.ms-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;color:var(--text);transition:all .15s}.ms-item:hover{background:var(--card-hover);border-color:var(--accent)}.ms-item.on{border-color:var(--green);background:rgba(48,209,88,.08)}.ms-ic{font-size:20px;flex-shrink:0}.ms-text{display:flex;flex-direction:column;gap:2px;flex:1 1}.ms-text b{font-size:14px}.ms-text small{color:var(--text-dim);font-size:11.5px;line-height:1.35}.ms-state{font-size:12px;font-weight:700;color:var(--text-dim);flex-shrink:0}.ms-item.on .ms-state{color:var(--green)}.ai-msgs{padding:16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.ai-msg{padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.45;max-width:85%}.ai-msg.user{background:var(--blue);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.ai-msg.bot{background:var(--bg-2);align-self:flex-start;border-bottom-left-radius:4px}.ai-input{display:flex;gap:8px;padding:14px;border-top:1px solid var(--border)}.ai-input input{flex:1 1;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:11px 14px;color:var(--text);font-size:14px;outline:none}.ai-input button{background:var(--accent);border:none;border-radius:12px;width:44px;cursor:pointer;font-size:18px}.ai-mic{background:var(--bg-2)!important;border:1px solid var(--border)!important;font-size:18px;transition:all .2s}.ai-mic.on{background:var(--red)!important;border-color:var(--red)!important;animation:micpulse 1.2s ease-in-out infinite}@keyframes micpulse{0%,to{box-shadow:0 0 0 0 rgba(255,69,58,.5)}50%{box-shadow:0 0 0 8px rgba(255,69,58,0)}}.ai-suggest{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 14px}.ai-suggest button{background:var(--bg-2);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:6px 11px;font-size:12px;cursor:pointer}.ai-suggest button:hover{color:var(--text)}.demo-note{text-align:center;color:var(--text-dim);font-size:12px;margin-top:40px}.wx-hero{position:relative;overflow:hidden;border-radius:var(--radius);min-height:180px;padding:24px;border:1px solid var(--border);display:flex;align-items:flex-end}.wx-sun{background:linear-gradient(135deg,#2a3a66,#1a2547)}.wx-cloud{background:linear-gradient(135deg,#3a4256,#2a2f3e)}.wx-rain{background:linear-gradient(135deg,#2a3340,#1c2530)}.wx-snow{background:linear-gradient(135deg,#3a4356,#2c3340)}:root[data-theme=light] .wx-sun{background:linear-gradient(135deg,#5b9bd5,#87ceeb)}:root[data-theme=light] .wx-cloud{background:linear-gradient(135deg,#8a97a8,#b0bac7)}:root[data-theme=light] .wx-rain{background:linear-gradient(135deg,#6b7785,#8893a3)}.wx-anim{position:absolute;inset:0;pointer-events:none}.wx-now{position:relative;z-index:2;color:#fff}.wx-temp{font-size:52px;font-weight:800;line-height:1}.wx-cond{font-size:18px;font-weight:600;margin-top:4px}.wx-sub{font-size:13px;opacity:.85;margin-top:6px}.wx-sun-ball{position:absolute;top:26px;right:36px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,#ffe680,#ffd60a);box-shadow:0 0 60px 18px rgba(255,214,10,.6);animation:wx-pulse 4s ease-in-out infinite}@keyframes wx-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.wx-cloud-1,.wx-cloud-2{position:absolute;background:hsla(0,0%,100%,.85);border-radius:100px}.wx-cloud-1{top:34px;right:40px;width:110px;height:36px;box-shadow:30px 8px 0 -4px hsla(0,0%,100%,.85);animation:wx-drift 9s ease-in-out infinite}.wx-cloud-2{top:70px;right:90px;width:80px;height:26px;opacity:.6;animation:wx-drift 12s ease-in-out infinite reverse}@keyframes wx-drift{0%,to{transform:translateX(0)}50%{transform:translateX(-18px)}}.wx-drops span,.wx-flakes span{position:absolute;top:70px;animation:wx-fall 1.1s linear infinite}.wx-drops span{width:2px;height:14px;background:rgba(170,200,255,.8);border-radius:2px}.wx-flakes span{color:#fff;font-size:14px;animation-duration:3s}@keyframes wx-fall{0%{transform:translateY(0);opacity:.9}to{transform:translateY(110px);opacity:0}}.wx-pill{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}.wx-pill .ic{font-size:18px}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,rgba(255,214,10,.12),rgba(10,132,255,.1));border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin:4px 0 16px;font-size:14px}.badge-demo{position:absolute;top:12px;right:12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--bg-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:2px 6px}.weather-hero-wrap{width:100%;border-radius:var(--radius);overflow:hidden;margin-bottom:20px;box-shadow:var(--shadow);border:1px solid var(--border)}.weather-hero-svg{display:block;width:100%;height:auto;min-height:160px;max-height:300px}.wh-en-leader{stroke:hsla(0,0%,100%,.45);stroke-width:.9;stroke-dasharray:2 3}:root[data-theme=light] .wh-en-leader{stroke:rgba(0,0,0,.3)}.wh-en-pill{fill:rgba(0,0,0,.46);stroke:hsla(0,0%,100%,.14);stroke-width:1}:root[data-theme=light] .wh-en-pill{fill:hsla(0,0%,100%,.82);stroke:rgba(0,0,0,.1)}.wh-en-cap{fill:hsla(0,0%,100%,.66);font-size:9px;font-weight:700;letter-spacing:.3px;font-family:-apple-system,BlinkMacSystemFont,sans-serif}:root[data-theme=light] .wh-en-cap{fill:rgba(0,0,0,.55)}.wh-en-val{fill:#fff;font-size:14px;font-weight:800;letter-spacing:-.4px;font-family:-apple-system,BlinkMacSystemFont,sans-serif}:root[data-theme=light] .wh-en-val{fill:#111}.wh-en-unit{fill:hsla(0,0%,100%,.6);font-size:9px;font-weight:700}:root[data-theme=light] .wh-en-unit{fill:rgba(0,0,0,.5)}@media (max-width:600px){.weather-hero-svg{min-height:130px;max-height:210px}.weather-hero-wrap{margin-bottom:12px}.app{padding:12px 14px 50px}.grid{grid-template-columns:1fr;gap:12px}.energy{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.section-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 2px 10px}.room-actions{margin-left:0;flex-wrap:wrap;width:100%}.room-actions button{flex:1 1;justify-content:center}.scenes{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.scenes::-webkit-scrollbar{display:none}.scene-btn,.scene-wrap{flex-shrink:0}.topbar{padding:10px 0 12px;gap:8px;flex-wrap:wrap}.brand .logo{width:38px;height:38px;font-size:20px}.brand h1{font-size:17px}.brand p{font-size:11px}.topbar-center{gap:6px;order:3;flex-basis:100%;justify-content:flex-start}.stat-pill{padding:6px 11px;font-size:13px}.ap-btn{padding:7px 11px;font-size:12px}.profile-avatar{width:38px;height:38px}.nav-row-global{flex-wrap:wrap;overflow-x:visible;gap:8px}.nav-row-global .room-tab{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);justify-content:center;padding:11px 8px}.nav-row-floors{-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);padding-right:12px}.modal{max-width:94vw!important}.ai-panel{right:12px;left:12px;bottom:88px;width:auto;max-width:none;max-height:78vh}.ai-fab{width:56px;height:56px;bottom:18px;right:18px}.ai-head{padding:12px 14px;gap:8px}.ai-head-title{font-size:15px}.hey-mira{font-size:12px;padding:7px 12px}.mira-gear{width:38px;height:38px}.ms-item,.ms-row{padding:14px}.ms-info b,.ms-text b{font-size:15px}.ai-suggest button{font-size:13px;padding:8px 13px}.ai-input input{font-size:16px}.welcome-empty{padding:26px 18px}.welcome-empty h2{font-size:21px}}.wh-sun-ball{animation:wh-sun-pulse 4.5s ease-in-out infinite}@keyframes wh-sun-pulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 20px rgba(255,214,10,.75))}50%{transform:scale(1.08);filter:drop-shadow(0 0 36px rgba(255,214,10,1))}}.wh-sun-halo{animation:wh-halo-pulse 4s ease-in-out infinite}@keyframes wh-halo-pulse{0%,to{opacity:.55;r:88}50%{opacity:1;r:95}}.wh-sun-ray{animation:wh-ray-spin 14s linear infinite;transform-origin:730px 68px}@keyframes wh-ray-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wh-cloud-1{animation:wh-cloud-drift1 10s ease-in-out infinite}@keyframes wh-cloud-drift1{0%,to{transform:translateX(0)}50%{transform:translateX(-22px)}}.wh-cloud-2{animation:wh-cloud-drift2 14s ease-in-out infinite}@keyframes wh-cloud-drift2{0%,to{transform:translateX(0)}50%{transform:translateX(18px)}}.wh-cloud-3{animation:wh-cloud-drift3 18s ease-in-out infinite}@keyframes wh-cloud-drift3{0%,to{transform:translateX(0)}50%{transform:translateX(-12px)}}.wh-drop{animation:wh-rain-fall 1.1s linear infinite}@keyframes wh-rain-fall{0%{transform:translateY(-20px);opacity:0}20%{opacity:.85}to{transform:translateY(260px);opacity:0}}.wh-flake{animation:wh-snow-fall 3s ease-in infinite}@keyframes wh-snow-fall{0%{transform:translateY(-20px) translateX(0);opacity:0}20%{opacity:.9}60%{transform:translateY(140px) translateX(12px)}to{transform:translateY(260px) translateX(-8px);opacity:0}}.wh-smoke{animation:wh-smoke-rise 3s ease-out infinite}@keyframes wh-smoke-rise{0%{transform:translateY(0) scaleX(1);opacity:.4}to{transform:translateY(-18px) scaleX(1.6);opacity:0}}.wh-solar-shine{animation:wh-solar-glow 3s ease-in-out infinite}.wh-ap-panel{transition:all .3s}.wh-autopilot:hover .wh-ap-panel{stroke-opacity:1!important}.wh-ap-glow-ring{animation:wh-ap-glow-anim 2.2s ease-in-out infinite}@keyframes wh-ap-glow-anim{0%,to{opacity:.35;transform:scale(1);transform-origin:790px 185px}50%{opacity:.75;transform:scale(1.14);transform-origin:790px 185px}}.wh-ap-on .wh-ap-panel{animation:wh-ap-border-pulse 2.2s ease-in-out infinite}@keyframes wh-ap-border-pulse{0%,to{stroke-width:1.8;stroke-opacity:.75}50%{stroke-width:2.5;stroke-opacity:1}}.wh-ap-icon{animation:wh-ap-robot-bounce 3s ease-in-out infinite;display:inline-block}@keyframes wh-ap-robot-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.wh-ap-dot-on{animation:wh-dot-blink 1.5s ease-in-out infinite}@keyframes wh-dot-blink{0%,to{opacity:1}50%{opacity:.4}}.wh-lightning{animation:wh-lightning-flash 2.5s ease-in-out infinite}@keyframes wh-lightning-flash{0%,70%,to{opacity:0}72%,74%{opacity:1}73%,75%{opacity:.2}76%{opacity:.9}}.wh-solar-shine{animation:wh-solar-glow 3.5s ease-in-out infinite}@keyframes wh-solar-glow{0%,to{opacity:.25}50%{opacity:.65}}.auth-input{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:13px 15px;color:var(--text);font-size:15px;outline:none;width:100%}.auth-input:focus{border-color:var(--accent)}.auth-btn{background:linear-gradient(135deg,var(--accent),var(--green));border:none;border-radius:12px;padding:13px;color:#111;font-size:15px;font-weight:700;cursor:pointer;margin-top:4px}.auth-btn:disabled{opacity:.6;cursor:default}.google-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:13px;border-radius:12px;background:#fff;border:1px solid #dadce0;color:#3c4043;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:box-shadow .2s,background .2s;margin-bottom:4px}.google-btn:hover{box-shadow:0 2px 10px rgba(0,0,0,.15);background:#f8f9fa}:root[data-theme=dark] .google-btn{background:#2a2a2e;border-color:#3a3a42;color:#f4f4f6}:root[data-theme=dark] .google-btn:hover{background:#32323a}.or-divider{display:flex;align-items:center;gap:12px;margin:16px 0 4px;color:var(--text-dim);font-size:13px}.or-divider:after,.or-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.logout-btn{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 12px;font-size:13px;cursor:pointer;font-weight:600}.logout-btn:hover{background:var(--card-hover)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:grid;place-items:center;z-index:100;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card);border:1px solid var(--border);border-radius:20px;width:100%;max-width:440px;max-height:86vh;overflow-y:auto;box-shadow:var(--shadow)}.modal-head{padding:18px 20px;border-bottom:1px solid var(--border);font-weight:700;font-size:17px}.integ-row,.modal-head{display:flex;align-items:center;justify-content:space-between}.integ-row{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.add-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px}.pick-chip{background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.pick-chip:hover{background:var(--card-hover)}.pick-chip.sel{background:var(--accent);color:#111;border-color:var(--accent)}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:6px;gap:6px}.emoji-cell{aspect-ratio:1;display:grid;place-items:center;font-size:22px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .12s}.emoji-cell:hover{background:var(--card-hover);transform:scale(1.1)}.emoji-cell.sel{background:rgba(255,214,10,.18);border-color:var(--accent);transform:scale(1.1)}.integ-btn{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 14px;font-size:13px;cursor:pointer;font-weight:600}.integ-btn:hover{background:var(--card-hover)}