:root{--blue:#3b82f6;--cyan:#22d3ee;--teal:#2dd4bf;--accent-from:#60a5fa;--accent-via:#22d3ee;--accent-to:#2dd4bf;--accent-gradient:linear-gradient(135deg, #60a5fa, #22d3ee 70%, #2dd4bf);--green:#34d399;--amber:#fbbf24;--red:#fb7185;--bg:#06080c;--bg-deep:#030509;--surface:#0e141ed1;--surface-strong:#101722;--surface-soft:#ffffff07;--border:#94a3b81f;--border-strong:#94a3b838;--text:#f2f6fb;--text-soft:#becad9;--muted:#8695a8;--faint:#5d6b7e;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:40px;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;--shadow-panel:0 24px 70px #00000052;--shadow-soft:0 12px 32px #00000040;--duration-fast:.12s;--duration:.18s;--duration-slow:.32s;--ease:cubic-bezier(.4, 0, .2, 1);--sidebar-width:272px;--z-base:0;--z-raised:10;--z-sidebar:40;--z-dropdown:50;--z-overlay:60;--z-modal:70;--z-notification:80;--z-tooltip:90}.status-dot.is-online{background:var(--green);box-shadow:0 0 0 4px #34d3991a,0 0 14px #34d39966}.status-dot.is-off{background:#64748b;box-shadow:0 0 0 4px #64748b14}.eyebrow{color:#60a5fa;letter-spacing:.17em;text-transform:uppercase;margin:0 0 5px;font-size:9.5px;font-weight:700}.connection-line{align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.connection-line .is-online{color:#6ee7b7}.connection-line .is-off{color:#fda4af}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px;display:grid}.metric-card{border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(#111925c7,#080d14cc);flex-direction:column;min-height:118px;padding:16px;display:flex;box-shadow:inset 0 1px #ffffff06}.metric-label{color:var(--muted);font-size:11px;font-weight:600}.metric-value{color:var(--text);letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;margin-top:auto;font-size:clamp(22px,2.2vw,28px);font-weight:600;line-height:1;overflow:hidden}.global-alert{color:#fde68a;background:#fbbf2411;border:1px solid #fbbf242e;border-radius:14px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:13px 15px;font-size:12.5px;line-height:1.5;display:flex}.global-alert.is-off{color:#fecdd3;background:#fb718512;border-color:#fb718533}.global-alert strong{color:inherit;margin-bottom:2px;font-weight:650;display:block}.global-alert .btn{flex:none;margin-left:auto}.empty-icon{color:#7dd3fc;background:linear-gradient(145deg,#3b82f61f,#22d3ee09);border:1px solid #60a5fa26;border-radius:18px;place-items:center;width:58px;height:58px;margin:0 auto 16px;display:grid}.empty-icon svg{width:26px;height:26px}.climate-value{align-items:baseline;gap:6px;padding:6px 0;display:flex}.climate-value .metric-value{margin-top:0;font-size:32px}.brightness-row{align-items:center;gap:10px;display:flex}.brightness-row input[type=range]{flex:1;width:100%}.switch.is-busy{opacity:.6;cursor:wait}.switch.is-busy:after{animation:1s ease-in-out infinite pulse}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-sidebar:linear-gradient(180deg, #090e15f7, #04070bfc);--surface-2:var(--surface-strong);--surface-3:#182331;--text-muted:var(--muted);--accent:#60a5fa;--accent-2:#38bdf8;--accent-strong:#22d3ee;--accent-soft:#3b82f624;--accent-soft-strong:#3b82f633;--cyan-soft:#22d3ee1f;--radius:var(--radius-md);--shadow:var(--shadow-panel);--control-h:42px;--card-bg:linear-gradient(180deg, #111925d1, #080d14e6);--card-bg-hover:linear-gradient(180deg, #141e2deb, #090e16f0);--hover-border:#94a3b842}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;min-width:320px;min-height:100%}html,body,#root{height:100%;margin:0}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;line-height:1.5;overflow-x:hidden}body:before{z-index:-2;content:"";pointer-events:none;background:radial-gradient(circle at 12% 8%,#3b82f629,#0000 34%),radial-gradient(circle at 86% 16%,#22d3ee1a,#0000 30%),radial-gradient(circle at 52% 108%,#1d4ed821,#0000 42%);position:fixed;inset:0}body:after{z-index:-1;content:"";pointer-events:none;background-image:linear-gradient(#94a3b806 1px,#0000 1px),linear-gradient(90deg,#94a3b806 1px,#0000 1px);background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 12%,#0000 78%);mask-image:radial-gradient(at 50% 0,#000 12%,#0000 78%)}::selection{color:#fff;background:#22d3ee4d}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px}*{scrollbar-width:thin;scrollbar-color:#283548 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#283548;border-radius:999px}::-webkit-scrollbar-track{background:0 0}a{color:inherit;text-decoration:none}code{background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);color:#a5f3fc;border-radius:6px;padding:2px 6px}.app{min-height:100vh;display:flex}.main{min-width:0;margin-left:var(--sidebar-width);flex:1;padding:24px clamp(20px,4vw,40px) 48px;animation:.3s fadeIn}.sidebar{z-index:var(--z-sidebar);width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);padding:22px 16px calc(20px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.brand{flex:none;align-items:center;gap:11px;padding:6px 10px 22px;display:flex}.brand-mark{letter-spacing:-.06em;color:#03121b;background:linear-gradient(145deg,#60a5fa 0%,#22d3ee 58%,#2dd4bf 100%);border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;font-weight:800;display:flex;box-shadow:0 8px 24px #22d3ee2e,inset 0 1px #ffffff73}.brand-name{letter-spacing:-.02em;font-size:16px;font-weight:700}.brand-name span{-webkit-text-fill-color:transparent;color:#0000;background:linear-gradient(100deg,#dbeafe,#60a5fa 40%,#22d3ee 75%,#a5f3fc);-webkit-background-clip:text;background-clip:text}.nav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;gap:2px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.nav-group{margin-bottom:14px}.nav-group-label{text-transform:uppercase;letter-spacing:.14em;color:var(--faint);padding:4px 12px 8px;font-size:10px;font-weight:700}.nav-item{min-height:42px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:11px;width:100%;padding:10px 12px;font-size:13.5px;font-weight:550;transition:background .15s,color .15s,box-shadow .15s;display:flex}.nav-item:hover{color:var(--text-soft);background:#ffffff09}.nav-item.active{color:#e1f8ff;background:linear-gradient(90deg,#3b82f62e,#22d3ee0b);box-shadow:inset 0 0 0 1px #22d3ee1a}.nav-item.disabled{opacity:.45;cursor:not-allowed}.sidebar-footer{color:var(--faint);border-top:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;margin-top:auto;padding:13px 12px 0;font-size:12px;display:flex}.gear-link{color:var(--muted);opacity:.7;align-items:center;transition:opacity .15s,color .15s;display:flex}.gear-link:hover{opacity:1;color:var(--text)}.header{border-bottom:1px solid #94a3b814;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;padding-bottom:18px;display:flex}.header-title{align-items:center;gap:12px;display:flex}.header-title h1{letter-spacing:-.03em;margin:0;font-size:24px;font-weight:650}.header-title p{color:var(--muted);margin:3px 0 0;font-size:13px}.header-right{align-items:center;gap:14px;display:flex}.menu-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 10px;display:none}.user{align-items:center;gap:10px;display:flex}.avatar{border:1px solid var(--border-strong);color:#93c5fd;background:linear-gradient(135deg,#1e293b,#0b1220);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.user-meta .name{font-size:13px;font-weight:600}.user-meta .role{color:var(--muted);font-size:11px}.status-pill{border:1px solid var(--border);min-height:32px;color:var(--text-soft);background:#ffffff06;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:12px;display:flex}.status-dot{background:var(--faint);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #94a3b80f}.status-pills{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.status-pill.is-online{color:#a7f3d0;border-color:#34d39938}.status-pill.is-off{color:#fecdd3;border-color:#fb718533}.pulse-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:12px;height:12px}.pulse-dot.on{background:var(--green);animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 4px #34d3991a,0 0 14px #34d39966}.detail-list{display:grid}.detail-list>div{border-bottom:1px solid #94a3b813;justify-content:space-between;align-items:baseline;gap:20px;padding:11px 0;display:flex}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--muted);font-size:12px}.detail-list dd{color:var(--text-soft);text-align:right;word-break:break-word;font-size:12.5px;font-weight:600}.section{margin-top:28px}.section+.section{margin-top:32px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;row-gap:8px;margin-bottom:16px;display:flex}.editor-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.section-head h2{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:650}.section-head span{color:var(--muted);font-size:12px}.section-sub{color:var(--muted);margin-top:3px;font-size:12px}.grid{gap:14px;display:grid}.grid-stats{grid-template-columns:repeat(4,1fr)}.grid-stats.is-3{grid-template-columns:repeat(3,1fr)}.grid-rooms{grid-template-columns:repeat(4,1fr)}.grid-devices{grid-template-columns:repeat(3,1fr)}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .15s,box-shadow .15s,transform .15s;animation:.25s fadeIn;box-shadow:inset 0 1px #ffffff06}.card:hover{border-color:var(--hover-border)}.stat-card{flex-direction:column;gap:10px;min-height:140px;display:flex}.stat-card:hover,.quick-action:hover,.room-card:hover,.device-card:hover{border-color:#60a5fa3d;transform:translateY(-2px);box-shadow:0 18px 44px #00000059}.stat-top{justify-content:space-between;align-items:center;display:flex}.stat-icon{color:#7dd3fc;background:#3b82f61a;border:1px solid #60a5fa29;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-value{letter-spacing:-.04em;font-size:clamp(26px,2.4vw,30px);font-weight:650;line-height:1}.stat-label{color:var(--muted);font-size:12.5px}.room-card{cursor:default}.room-name{letter-spacing:-.01em;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.room-meta{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:11px}.chip.on{color:#6ee7b7;background:#10b98114;border-color:#34d39947}.room-filter{scrollbar-width:none;gap:8px;margin:4px 0 18px;padding-bottom:4px;display:flex;overflow-x:auto}.room-filter::-webkit-scrollbar{display:none}.room-filter-chip{border:1px solid var(--border);min-height:34px;color:var(--muted);font:inherit;cursor:pointer;background:#ffffff05;border-radius:999px;flex:none;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.room-filter-chip span{min-width:20px;height:20px;color:var(--text-soft);background:#94a3b81a;border-radius:999px;place-items:center;padding:0 5px;font-size:10.5px;display:inline-grid}.room-filter-chip:hover{color:var(--text-soft);border-color:#60a5fa47}.room-filter-chip.active{color:#e1f8ff;background:linear-gradient(90deg,#3b82f629,#22d3ee0f);border-color:#22d3ee52}.room-filter-chip.active span{color:#cffafe;background:#22d3ee2e}.device-card{flex-direction:column;gap:12px;display:flex}.device-top{align-items:center;gap:12px;display:flex}.device-icon{background:var(--surface-2);border:1px solid var(--border);width:42px;height:42px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;display:flex}.device-icon.on{color:#fcd34d;background:#f5b5441a;border-color:#fbbf2433}.device-info{flex:1;min-width:0}.device-name{font-size:14px;font-weight:600}.device-room{color:var(--muted);font-size:12px}.switch{background:var(--surface-2);border:1px solid var(--border-strong);cursor:pointer;border-radius:999px;flex-shrink:0;width:44px;height:24px;transition:background .2s,border-color .2s;position:relative}.switch:after{content:"";background:#64748b;border-radius:50%;width:18px;height:18px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.switch.on{background:linear-gradient(135deg,#3b82f659,#22d3ee47);border-color:#60a5fa66}.switch.on:after{background:#60a5fa;transform:translate(20px)}.device-footer{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.check-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.check-info{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;display:flex}.check-title{font-size:14px;font-weight:600}.check-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.check-actions .btn{min-height:34px;padding:6px 12px;font-size:12px}.scene-card{cursor:pointer;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;transition:border-color .15s,background .15s,transform .15s;display:flex}.scene-card:hover{border-color:#60a5fa3d;transform:translateY(-1px)}.scene-card.active{background:linear-gradient(135deg,#3b82f624,#22d3ee0d);border-color:#60a5fa73}.scene-info .scene-name{font-size:14px;font-weight:600}.scene-info .scene-desc{color:var(--muted);font-size:12px}.scene-state{color:#93c5fd;font-size:12px;font-weight:600}.welcome-card{border-radius:var(--radius-lg);background:radial-gradient(circle at 88% 18%,#22d3ee1f,#0000 32%),linear-gradient(145deg,#111b2af0,#060a11f5);border:1px solid #60a5fa26;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:26px;display:flex;box-shadow:0 30px 80px #00000059,inset 0 1px #ffffff0a}.welcome-card h2{letter-spacing:-.03em;margin:0 0 6px;font-size:22px}.welcome-card p{color:var(--text-soft);margin:0;font-size:13px}.badge{letter-spacing:.01em;white-space:nowrap;border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:24px;padding:3px 10px;font-size:11px;font-weight:650;line-height:1.2;display:inline-flex}.badge.on{color:#6ee7b7;background:#10b98114;border-color:#34d39933}.badge.off{background:var(--surface-2);color:var(--muted);border-color:#94a3b824}.badge.draft,.badge.configuring{color:#93c5fd;background:#3b82f61a;border-color:#60a5fa33}.badge.delivered,.badge.passed{color:#6ee7b7;background:#10b98114;border-color:#34d39933}.badge.suspended,.badge.failed{color:#fda4af;background:#fb718514;border-color:#fb718533}.badge.na,.badge.pending{background:var(--surface-2);color:var(--muted);border-color:#94a3b824}.btn{cursor:pointer;min-height:var(--control-h);white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:13px;font-weight:600;transition:background .15s,opacity .15s,transform .1s,border-color .15s,filter .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-group,.btn-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.table-actions{align-items:center;gap:var(--sp-2);white-space:nowrap;flex-wrap:wrap;display:flex}.btn.primary{color:#04131b;background:linear-gradient(135deg,#60a5fa,#22d3ee 70%,#2dd4bf);font-weight:650;box-shadow:0 10px 28px #22d3ee2e,inset 0 1px #ffffff80}.btn.primary:hover{filter:brightness(1.06)}.btn.primary:disabled{opacity:.5;cursor:default;filter:none}.btn.ghost{color:var(--text-soft);border:1px solid var(--border-strong);background:#ffffff09}.btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;transform:none}.btn.ghost:hover{border-color:var(--hover-border);background:#ffffff0f}.btn.danger{color:#fda4af;background:0 0;border-color:#fb718552}.btn.danger:hover{background:#fb71851f}.alert{color:#fda4af;background:#fb718514;border:1px solid #fb71853d;border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13px}.loading{color:var(--muted);text-align:center;padding:32px}.empty{color:var(--muted);text-align:center;padding:12px;font-size:14px}.empty-state{text-align:center;padding:48px 24px}.empty-state h2{letter-spacing:-.03em;margin:0 0 8px;font-size:22px}.empty-state p{color:var(--muted);max-width:480px;margin:0 auto 20px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600}.table td{vertical-align:middle;border-bottom:1px solid #94a3b812;padding:12px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#ffffff04}.table td .btn{margin:0}.inline-form{gap:var(--sp-3);row-gap:var(--sp-3);flex-wrap:wrap;align-items:center;margin-top:14px;display:flex}.inline-form>*{margin:0}.inline-form input{flex:1;min-width:180px}input,select,textarea{min-height:var(--control-h);box-sizing:border-box}input[type=range]{min-height:auto}input[type=checkbox],input[type=radio]{accent-color:#22d3ee;flex:none;width:16px;min-height:16px;padding:0}textarea{border:1px solid var(--border-strong);color:var(--text);background:#04080dbd;border-radius:12px;outline:none;width:100%;padding:10px 13px;font-size:14px;transition:border-color .18s,box-shadow .18s,background .18s}textarea::placeholder{color:#4e5d70}textarea:focus{background:#04080deb;border-color:#60a5fa8f;box-shadow:0 0 0 4px #3b82f61a}input,select,.card input,.card select,.login-card input,.inline-form input,.inline-form select,.modal input,.setup-fields input{border:1px solid var(--border-strong);color:var(--text);background:#04080dbd;border-radius:12px;outline:none;width:100%;padding:10px 13px;font-size:14px;transition:border-color .18s,box-shadow .18s,background .18s}input::placeholder{color:#4e5d70}input:focus,select:focus,.card input:focus,.card select:focus,.login-card input:focus,.inline-form input:focus,.inline-form select:focus,.modal input:focus,.setup-fields input:focus{background:#04080deb;border-color:#60a5fa8f;box-shadow:0 0 0 4px #3b82f61a}.card form,.card .inline-form{gap:var(--sp-3);row-gap:var(--sp-3)}.muted-label{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-bottom:20px;padding-bottom:8px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 14px;font-size:13.5px;transition:background .15s,color .15s}.tab:hover{color:var(--text);background:var(--surface)}.tab.active{color:#e1f8ff;background:var(--accent-soft);box-shadow:inset 0 0 0 1px #22d3ee1f}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:var(--z-modal);background:#020509b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border:1px solid var(--border-strong);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:24px;padding:26px}.modal-wide{max-width:760px;max-height:86vh;overflow-y:auto}.modal h3{letter-spacing:-.02em;margin:0 0 16px;font-size:19px}.wizard-steps{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.wizard-step{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:all .15s;animation:.25s fadeIn;display:flex}.wizard-step .num{background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:600;display:flex}.wizard-step.done{color:var(--text-soft);border-color:#34d39959}.wizard-step.done .num{color:#6ee7b7;background:#34d3992e}.wizard-step.active{color:#e1f8ff;background:var(--accent-soft);border-color:#60a5fa73}.wizard-step.active .num{background:var(--accent);color:#04131b}.wizard-step.blocked{opacity:.45;cursor:not-allowed}.progress{background:var(--surface-2);border-radius:999px;height:6px;margin:8px 0 20px;overflow:hidden}.progress-bar{background:var(--accent-gradient);border-radius:999px;height:100%;transition:width .3s}.editor-layout{grid-template-columns:240px 1fr;align-items:start;gap:16px;display:grid}.editor-sidebar{flex-direction:column;gap:6px;display:flex;position:sticky;top:16px}.editor-main{min-width:0}.room-nav{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:11px 13px;font-size:14px;transition:border-color .15s,background .15s;display:flex}.room-nav:hover{border-color:var(--hover-border)}.room-nav.active{background:var(--accent-soft);border-color:#60a5fa66}.quick-actions{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.quick-action{color:var(--text);border:1px solid var(--border);background:#0c121bad;border-radius:16px;flex-direction:column;gap:4px;padding:16px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:flex}.quick-action:hover{background:#121b28d1;border-color:#22d3ee38}.quick-action strong{color:var(--text-soft);font-size:14px}.quick-action span{color:var(--muted);font-size:12px}.hardware-status{flex-direction:column;gap:12px;margin-bottom:18px;display:flex}.hardware-status.loading{color:var(--muted)}.hardware-row{align-items:center;gap:14px;display:flex}.hardware-info{flex:1}.hardware-name{font-size:14px;font-weight:600}.hardware-meta{color:var(--muted);font-size:12px}.hardware-badges{gap:8px;display:flex}.hardware-stats{border-top:1px solid var(--border);gap:24px;padding-top:12px;display:flex}.hardware-stats div{flex-direction:column;display:flex}.hardware-stats strong{font-size:20px}.hardware-stats span{color:var(--muted);font-size:12px}.demo-switcher{position:relative}.demo-toggle{background:var(--cyan-soft);color:#a5f3fc;border:1px solid #22d3ee4d;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:12px;font-weight:600;display:inline-flex}.demo-dot{background:var(--accent-strong);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-cyan;box-shadow:0 0 0 3px #22d3ee33}.demo-overlay{z-index:var(--z-overlay);position:fixed;inset:0}.demo-menu{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:240px;box-shadow:var(--shadow);z-index:var(--z-notification);padding:6px;animation:.15s fadeIn;position:absolute;top:44px;right:0}.demo-menu-head{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:8px 12px 6px;font-size:11px;font-weight:600}.demo-menu-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;transition:background .12s;display:flex}.demo-menu-item:hover{background:var(--surface-3)}.demo-menu-item.current{color:#93c5fd;font-weight:600}.demo-menu-item.danger{color:#fda4af}.demo-menu-item:disabled{opacity:.5;cursor:default}.demo-current-badge{color:#a5f3fc;font-size:10px;font-weight:600}.demo-menu-sep{background:var(--border);height:1px;margin:6px 4px}.demo-notice{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--muted);align-items:flex-start;gap:10px;margin-top:28px;padding:14px 18px;font-size:13px;display:flex}.demo-notice strong{color:var(--amber);font-weight:600}.notif{position:relative}.notif-bell{font-size:16px}.notif-badge{background:var(--red);color:#fff;border-radius:999px;padding:1px 6px;font-size:11px;font-weight:600}.notif-panel{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius);width:320px;max-width:90vw;box-shadow:var(--shadow);z-index:var(--z-dropdown);max-height:420px;position:absolute;top:44px;right:0;overflow-y:auto}.notif-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.notif-item{border-bottom:1px solid var(--border);cursor:pointer;padding:12px 14px}.notif-item.unread{background:var(--accent-soft)}.notif-item:last-child{border-bottom:none}.notif-title{font-size:13px;font-weight:600}.notif-body{color:var(--muted);margin-top:2px;font-size:12px}.notif-time{color:var(--muted);margin-top:4px;font-size:11px}.notif-empty{color:var(--muted);text-align:center;padding:16px;font-size:13px}.engine-console{max-width:560px}.engine-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.engine-head h3{margin:0 0 4px;font-size:18px}.engine-status{gap:8px;margin-bottom:12px;display:flex}.engine-list{flex-direction:column;gap:12px;margin-top:4px;display:flex}.engine-list div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding-bottom:10px;display:flex}.engine-list div:last-child{border-bottom:none}.toast-stack{bottom:calc(16px + env(safe-area-inset-bottom));z-index:var(--z-notification);pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;right:16px}.toast{border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid var(--border-strong);min-width:220px;max-width:360px;box-shadow:var(--shadow-soft);color:var(--text);pointer-events:auto;align-items:center;gap:10px;padding:12px 16px;font-size:13px;animation:.25s toastIn,.25s 3.7s forwards toastOut;display:flex}.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--red)}.toast .toast-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.toast.success .toast-dot{background:var(--green)}.toast.error .toast-dot{background:var(--red)}.skeleton{border-radius:var(--radius-sm);background:var(--surface-2);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0d,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-text{height:14px}.skeleton-title{height:22px}.skeleton-avatar{border-radius:50%;width:40px;height:40px}.skeleton-card{height:96px}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.login-gear{color:var(--muted);border:1px solid var(--border);background:var(--surface);opacity:.85;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;text-decoration:none;transition:opacity .15s,color .15s,border-color .15s,transform .15s;display:inline-flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.login-gear:hover{opacity:1;color:var(--text);border-color:var(--accent);transform:translate(-50%)translateY(-1px)}.login-card{border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:radial-gradient(circle at 90% 0,#22d3ee12,#0000 28%),linear-gradient(#111925f0,#080d15f7);border-radius:28px;flex-direction:column;gap:10px;width:100%;max-width:400px;padding:30px;display:flex;box-shadow:0 36px 90px #0000006b,inset 0 1px #ffffff09}.login-card h2{letter-spacing:-.03em;margin:0;font-size:24px;font-weight:650}.login-card .muted{color:var(--muted);margin:0 0 8px;font-size:13px}.login-card label{color:var(--text-soft);margin-top:6px;font-size:12px;font-weight:600}.setup-wrap{align-items:center}.setup-card{background:var(--card-bg);border:1px solid var(--border-strong);width:100%;max-width:580px;box-shadow:var(--shadow);border-radius:24px;flex-direction:column;gap:12px;padding:28px;display:flex}.setup-steps{flex-wrap:wrap;gap:8px}.setup-card h2{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:650}.setup-card .muted{color:var(--muted);margin:0;font-size:13px}.setup-fields{flex-direction:column;gap:8px;display:flex}.setup-fields label{color:var(--text-soft);margin-top:4px;font-size:12px;font-weight:600}.setup-checklist{flex-direction:column;gap:10px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.setup-checklist li{align-items:center;gap:10px;display:flex}.setup-check{cursor:pointer;align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.setup-actions{align-items:center;gap:10px;margin-top:16px;display:flex}.overlay{display:none}@keyframes pulse{0%{box-shadow:0 0 #34d39980}70%{box-shadow:0 0 0 10px #34d39900}to{box-shadow:0 0 #34d39900}}@keyframes pulse-cyan{0%{box-shadow:0 0 #22d3ee73}70%{box-shadow:0 0 0 8px #22d3ee00}to{box-shadow:0 0 #22d3ee00}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-link{color:#7dd3fc;text-align:center;margin-top:4px;font-size:12.5px;font-weight:600;transition:color .15s;display:inline-block}.check-row{color:var(--muted);align-items:flex-start;gap:9px;margin:10px 0 14px;font-size:12.5px;line-height:1.35;display:flex}.check-row input{flex:none;width:auto;margin-top:2px}.two-factor-qr{background:#fff;border-radius:12px;margin:4px auto 10px;padding:8px;display:block}.two-factor-codes{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0;display:grid}.two-factor-codes code{border:1px solid var(--border);text-align:center;background:#ffffff08;border-radius:8px;padding:6px 8px;font-size:12px}.auth-link:hover{color:#cffafe}.auth-success{background:#22d3ee0e;border:1px solid #22d3ee38;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.auth-success strong{color:#cffafe;font-size:14px}.auth-success p{color:var(--text-soft);margin:0;font-size:12.5px;line-height:1.5}.client-hero{border-radius:var(--radius-lg);background:radial-gradient(circle at 88% 12%,#22d3ee21,#0000 32%),linear-gradient(145deg,#111b2af2,#060a11f7);border:1px solid #60a5fa29;justify-content:space-between;gap:20px;margin-bottom:16px;padding:24px;display:flex;box-shadow:0 30px 80px #00000052,inset 0 1px #ffffff0a}.client-hero-main{min-width:0}.client-hero h2{letter-spacing:-.04em;margin:2px 0 8px;font-size:clamp(24px,3vw,32px)}.client-hero-status{max-width:640px;color:var(--text-soft);margin:0;font-size:13px;line-height:1.55}.client-hero-side{flex-direction:column;flex:none;align-items:flex-end;gap:12px;display:flex}.hero-select{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;display:flex}.hero-select select{min-width:200px}.hero-mini-stats{color:var(--muted);gap:14px;font-size:11.5px;display:flex}.hero-mini-stats strong{color:var(--text);font-size:14px}.client-alerts{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.client-alert{color:#fde68a;background:#fbbf240e;border:1px solid #fbbf242e;border-radius:12px;align-items:center;gap:9px;padding:10px 13px;font-size:12.5px;display:flex}.client-section{margin-top:30px}.quick-actions-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.quick-action-btn{border:1px solid var(--border);min-height:74px;color:var(--text);text-align:left;cursor:pointer;background:linear-gradient(150deg,#ffffff09,#ffffff02);border-radius:16px;align-items:center;gap:12px;padding:14px;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.quick-action-btn:hover:not(:disabled){border-color:#22d3ee4d;transform:translateY(-2px);box-shadow:0 16px 34px #0000004d}.quick-action-btn:disabled{opacity:.55;cursor:wait}.quick-action-btn.is-critical{background:linear-gradient(150deg,#fb718514,#ffffff02);border-color:#fb718533}.quick-action-icon{color:#7dd3fc;background:linear-gradient(145deg,#3b82f629,#22d3ee0f);border:1px solid #60a5fa2e;border-radius:13px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex;box-shadow:0 0 18px #22d3ee12}.quick-action-btn.is-critical .quick-action-icon{color:#fda4af;background:#fb718514;border-color:#fb71852e}.quick-action-text{flex-direction:column;gap:2px;min-width:0;display:flex}.quick-action-text strong{font-size:13px;line-height:1.25}.quick-action-text small{color:var(--muted);font-size:11px}.inline-feedback{color:var(--muted);align-items:center;gap:9px;margin-top:10px;font-size:12px;display:flex}.room-panel-list{flex-direction:column;gap:12px;display:flex}.room-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(#111925b3,#080d14b8);padding:16px;animation:.4s cubic-bezier(.22,.61,.36,1) both cardIn;box-shadow:inset 0 1px #ffffff05}.room-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 12px;margin-bottom:12px;display:flex}.room-panel-title{align-items:center;gap:11px;min-width:0;display:flex}.room-panel-icon{color:#a5f3fc;background:#22d3ee0f;border:1px solid #22d3ee29;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.room-panel-title h3{letter-spacing:-.02em;margin:0;font-size:15.5px}.room-panel-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.room-panel-empty{color:var(--muted);padding:8px 0;font-size:12.5px}.room-control-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.room-control{background:#ffffff05;border:1px solid #94a3b817;border-radius:12px;padding:10px 11px}.room-control-main{align-items:center;gap:9px;display:flex}.room-control .device-icon.small{border-radius:10px;width:32px;height:32px}.room-slider{color:var(--muted);align-items:center;gap:8px;margin-top:9px;display:flex}.room-slider input[type=range]{flex:1;min-width:0}.room-slider span{color:var(--muted);text-align:right;width:32px;font-size:10.5px}.climate-stepper{flex:none;align-items:center;gap:5px;display:flex}.climate-stepper .icon-btn{border-radius:8px;width:28px;height:28px;font-size:15px}.climate-stepper span{text-align:center;color:#a5f3fc;min-width:38px;font-size:12px;font-weight:650}.room-sensors{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.room-sensor-list{border-bottom:1px solid #94a3b814;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:0 0 10px;padding:0 0 10px;display:grid}.room-sensor-card{background:#ffffff05;border:1px solid #94a3b817;border-radius:12px;align-items:flex-start;gap:10px;min-width:0;padding:11px;display:flex}.room-sensor-body{flex:1;min-width:0}.room-sensor-title{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.room-sensor-metrics{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:5px;margin-top:8px;display:grid}.room-sensor-metric{background:#22d3ee09;border:1px solid #22d3ee1a;border-radius:9px;flex-direction:column;gap:1px;min-width:0;padding:7px 8px;display:flex}.room-sensor-metric strong{color:#a5f3fc;font-size:12px;font-weight:700}.room-sensor-metric small{color:var(--muted);font-size:9.5px;line-height:1.2}.room-scenes{border-top:1px solid #94a3b814;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;display:flex}.room-scene-btn{color:#bfdbfe;min-height:32px;font:inherit;cursor:pointer;background:#3b82f60e;border:1px solid #60a5fa29;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.room-scene-btn:hover{color:#e0f2fe;border-color:#22d3ee52}.scene-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.scene-tile{border:1px solid var(--border);background:var(--card-bg);border-radius:14px;align-items:center;gap:6px;padding:8px;transition:border-color .15s,transform .15s;display:flex}.scene-tile:hover{border-color:#60a5fa42;transform:translateY(-1px)}.scene-tile.is-favorite{background:var(--card-bg);border-color:#22d3ee38;box-shadow:inset 0 0 0 1px #22d3ee0b}.scene-tile-main{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:9px;padding:7px;display:flex}.scene-tile-main span:last-child{flex-direction:column;min-width:0;display:flex}.scene-tile-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.scene-tile-main small{color:var(--muted);font-size:10.5px}.scene-tile-icon{color:#c4b5fd;background:#8b5cf61a;border:1px solid #8b5cf629;border-radius:10px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.star-btn{width:32px;height:32px;color:var(--faint);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex}.star-btn.active{color:#fcd34d;filter:drop-shadow(0 0 6px #fcd34d66)}.automation-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.automation-row{border:1px solid var(--border);background:#ffffff05;border-radius:12px;align-items:center;gap:9px;padding:11px 12px;display:flex}.notification-card.compact{cursor:default}.dashboard-notifications{flex-direction:column;gap:8px;display:flex}.support-grid{grid-template-columns:1fr 1.2fr;gap:12px;display:grid}.support-card{align-items:flex-start;gap:13px;display:flex}.support-card h3,.support-form h3{margin:0 0 6px;font-size:15px}.support-card p{margin:3px 0}.support-icon{color:#7dd3fc;background:#3b82f614;border:1px solid #60a5fa2e;border-radius:13px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.support-form{flex-direction:column;gap:9px;display:flex}.confirm-modal{width:min(460px,94vw)}.confirm-modal p{color:var(--text-soft);font-size:13px;line-height:1.55}.notif-link{color:#7dd3fc;text-align:center;padding:10px 12px 4px;font-size:12px;font-weight:600;display:block}.nav-badge{color:#04131b;background:linear-gradient(135deg,#22d3ee,#2dd4bf);border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:10px;font-weight:800;display:inline-grid}.sidebar.collapsed .nav-badge{min-width:16px;height:16px;padding:0 4px;font-size:9px;position:absolute;top:4px;right:4px}.sidebar.collapsed .nav-item{position:relative}.communication-modal{width:min(680px,94vw);max-height:88vh;overflow-y:auto}.communication-image{object-fit:cover;border:1px solid var(--border);border-radius:14px;width:100%;max-height:320px;margin-bottom:14px}.communication-body{white-space:pre-wrap;color:var(--text-soft);font-size:13.5px;line-height:1.65}.communication-admin-list{flex-direction:column;gap:10px;display:flex}.communication-admin-card{padding:15px 16px}.communication-admin-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.communication-admin-stats{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.communication-preview{background:linear-gradient(145deg,#22d3ee0d,#ffffff03);border:1px solid #22d3ee38;border-radius:14px;padding:16px}.communication-preview h3{margin:3px 0 10px;font-size:17px}.communication-recipients{border-top:1px solid #94a3b81a;flex-direction:column;gap:6px;margin-top:14px;padding-top:14px;display:flex}.communication-recipient{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.energy-chart svg{width:100%;height:120px;display:block}.energy-row{border-bottom:1px solid #94a3b814;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:12.5px;display:flex}.energy-row:last-child{border-bottom:none}.energy-row>span{flex-direction:column;gap:2px;display:flex}.energy-row small{color:var(--muted);font-size:10.5px}.energy-row strong{color:#a5f3fc}.energy-values{color:var(--text-soft);text-align:right;font-size:11.5px}.apps-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.app-card{border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(160deg,#ffffff08,#ffffff02);flex-direction:column;gap:12px;padding:17px;animation:.42s cubic-bezier(.22,.61,.36,1) both cardIn;display:flex}.app-card.is-active{border-color:#22d3ee33;box-shadow:0 0 28px #22d3ee0d}.app-card-head{align-items:center;gap:12px;display:flex}.app-card-head>div{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.app-card-head h3{margin:0;font-size:15px}.app-icon{color:#a5f3fc;background:linear-gradient(145deg,#22d3ee1f,#3b82f60f);border:1px solid #22d3ee29;border-radius:14px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.app-icon.is-alexa{background:radial-gradient(circle at 50% 30%,#5fcaf42e,#081420d1 72%);border-color:#5fcaf447;box-shadow:inset 0 0 18px #5fcaf414}.app-icon-logo{object-fit:contain;filter:drop-shadow(0 2px 6px #5fcaf433);width:34px;height:34px}.app-icon.is-hub{background:radial-gradient(circle at 50% 28%,#60a5fa2e,#081420d1 72%);border-color:#60a5fa4d;box-shadow:inset 0 0 18px #60a5fa1a}.app-description{color:var(--text-soft);flex:1;margin:0;font-size:12.5px;line-height:1.55}.app-meta{flex-wrap:wrap;gap:6px;display:flex}.app-exposed{border-top:1px solid #94a3b81a;flex-wrap:wrap;gap:5px;padding-top:10px;display:flex}.app-exposed .muted-label{width:100%}.app-warning{color:#fde68a;background:#fbbf240e;border:1px solid #fbbf242e;border-radius:10px;align-items:flex-start;gap:6px;padding:8px 10px;font-size:11px;line-height:1.4;display:flex}.pairing-steps{align-items:center;gap:4px;margin-bottom:16px;padding-bottom:4px;display:flex;overflow-x:auto}.pairing-step{color:var(--faint);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:11px;display:flex}.pairing-step span{border:1px solid var(--border);border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:inline-grid}.pairing-step.active{color:#cffafe}.pairing-step.active span{color:#cffafe;background:#22d3ee1f;border-color:#22d3ee73;box-shadow:0 0 14px #22d3ee38}.pairing-step.done{color:#6ee7b7}.pairing-step.done span{background:#34d3991a;border-color:#34d3994d}.pairing-card{flex-direction:column;gap:13px;max-width:760px;animation:.35s pageIn;display:flex}.pairing-card h2{letter-spacing:-.03em;margin:0;font-size:20px}.pairing-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.pairing-technologies{gap:9px;display:grid}.pairing-tech{border:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;background:#ffffff05;border-radius:14px;align-items:flex-start;gap:12px;padding:14px;display:flex}.pairing-tech.selected{background:linear-gradient(120deg,#22d3ee14,#3b82f608);border-color:#22d3ee59}.pairing-tech>span:last-child{flex-direction:column;gap:3px;display:flex}.pairing-tech small{color:var(--muted);font-size:11.5px;line-height:1.45}.pairing-search-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.scan-orb{color:#67e8f9;background:radial-gradient(circle,#22d3ee2e,#22d3ee05);border:1px solid #22d3ee47;border-radius:50%;flex:none;justify-content:center;align-items:center;width:78px;height:78px;display:inline-flex}.scan-orb.is-scanning{animation:2s ease-in-out infinite scanPulse}.pairing-progress{background:#94a3b824;border-radius:999px;height:3px;overflow:hidden}.pairing-progress span{border-radius:inherit;background:linear-gradient(90deg,#0000,#22d3ee,#0000);width:40%;height:100%;animation:1.8s ease-in-out infinite scanSweep;display:block}.pairing-search-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pairing-search-bar .search-field{flex:1}.pairing-empty{color:var(--muted);border:1px dashed #94a3b82e;border-radius:12px;align-items:center;gap:10px;padding:16px;font-size:12.5px;display:flex}.pairing-empty p{margin:0}.pairing-devices{flex-direction:column;gap:7px;display:flex}.pairing-device{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#ffffff05;border-radius:12px;align-items:center;gap:10px;padding:11px 12px;animation:.3s both cardIn;display:flex}.pairing-device:hover{border-color:#22d3ee47}.pairing-device.is-known{opacity:.6}.pairing-device-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pairing-device-info strong{font-size:12.5px}.pairing-device-info small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.pairing-selected{background:#22d3ee0b;border:1px solid #22d3ee2e;border-radius:13px;align-items:center;gap:11px;padding:12px;display:flex}.pairing-selected>div{flex-direction:column;gap:2px;display:flex}.pairing-selected small{color:var(--muted);font-size:11px}.pairing-field{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.pairing-success-icon{color:#6ee7b7;background:radial-gradient(circle,#34d39929,#34d39905);border:1px solid #34d39959;border-radius:50%;place-items:center;width:74px;height:74px;margin:4px auto;display:grid;box-shadow:0 0 28px #34d39929}.pairing-verification{flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;display:flex}@keyframes scanPulse{0%,to{box-shadow:0 0 #22d3ee14,0 0 22px #22d3ee2e}50%{box-shadow:0 0 0 10px #22d3ee05,0 0 34px #22d3ee52}}@keyframes scanSweep{0%{transform:translate(-120%)}to{transform:translate(320%)}}.installer-quick-actions{flex-wrap:wrap;align-items:center;gap:8px;padding:14px;display:flex}.installer-quick-actions select{flex:240px}.installer-installation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.installer-installation-card{flex-direction:column;gap:11px;padding:16px;display:flex}.installer-installation-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.installer-installation-head h3{margin:0 0 3px;font-size:15.5px}.installer-card-badges{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.installer-activity{flex-direction:column;gap:10px;display:flex}.installer-activity-row{align-items:flex-start;gap:10px;display:flex}.installer-activity-row strong{text-transform:capitalize;font-size:12.5px}.workspace-installation-select{min-width:210px;max-width:280px}.workspace-breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;font-size:12px;display:flex}.workspace-breadcrumb a{color:#7dd3fc}.workspace-breadcrumb strong{color:var(--text)}.workspace-context{border:1px solid var(--border);background:#ffffff05;border-radius:13px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.workspace-context>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.workspace-tabs{scrollbar-width:none;gap:5px;margin-bottom:16px;padding-bottom:6px;display:flex;overflow-x:auto}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tab{border:1px solid var(--border);min-height:36px;color:var(--muted);font:inherit;cursor:pointer;background:#ffffff05;border-radius:999px;flex:none;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.workspace-tab.active{color:#e1f8ff;background:linear-gradient(90deg,#3b82f629,#22d3ee0f);border-color:#22d3ee4d;box-shadow:0 0 18px #22d3ee12}.workspace-section{animation:.3s pageIn}.workspace-section h2{margin:0 0 8px;font-size:18px}.workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.workspace-grid .card h3,.workspace-section.card h2{margin-top:0}.workspace-extension-row{border-bottom:1px solid #94a3b814;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;font-size:12.5px;display:flex}.workspace-extension-row:last-child{border-bottom:none}.workspace-extension-list{margin-bottom:12px}.workspace-telemetry{border:1px solid var(--border);max-height:260px;color:var(--text-soft);background:#03080e99;border-radius:12px;padding:12px;font-size:11px;line-height:1.5;overflow:auto}.nav-icon{color:currentColor;flex:none;justify-content:center;align-items:center;width:22px;display:inline-flex}.nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nav-item.active{box-shadow:inset 0 0 0 1px #22d3ee2e,0 0 22px #22d3ee14}.nav-item.active .nav-icon{color:#67e8f9;filter:drop-shadow(0 0 7px #22d3ee99)}.sidebar-footer-actions{align-items:center;gap:10px;display:flex}.collapse-btn{cursor:pointer;background:0 0;border:none;padding:0}.app.sidebar-collapsed .sidebar{width:78px;padding-left:10px;padding-right:10px}.app.sidebar-collapsed .main{margin-left:78px}.sidebar.collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-label,.sidebar.collapsed .sidebar-footer>span{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .nav-group{margin-bottom:10px}.sidebar.collapsed .nav-group+.nav-group{border-top:1px solid #94a3b814;padding-top:10px}.sidebar.collapsed .sidebar-footer{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .sidebar-footer-actions{flex-direction:column;gap:12px}.page-transition{animation:.38s cubic-bezier(.22,.61,.36,1) pageIn}.grid>.card,.grid>.device-card,.grid>.stat-card,.fleet-cards>.fleet-card,.ota-campaign-list>.ota-campaign{animation:.42s cubic-bezier(.22,.61,.36,1) both cardIn}.grid>:nth-child(2),.fleet-cards>:nth-child(2),.ota-campaign-list>:nth-child(2){animation-delay:35ms}.grid>:nth-child(3),.fleet-cards>:nth-child(3),.ota-campaign-list>:nth-child(3){animation-delay:70ms}.grid>:nth-child(4),.fleet-cards>:nth-child(4),.ota-campaign-list>:nth-child(4){animation-delay:.105s}.grid>:nth-child(5),.fleet-cards>:nth-child(5),.ota-campaign-list>:nth-child(5){animation-delay:.14s}.grid>:nth-child(6),.fleet-cards>:nth-child(6),.ota-campaign-list>:nth-child(6){animation-delay:.175s}.fleet-stat{min-height:122px}.fleet-stat .stat-top{align-items:flex-start}.fleet-stat.is-online .stat-value{color:#6ee7b7}.fleet-stat.is-available .stat-value{color:#a5f3fc}.fleet-stat.is-alert .stat-value{color:#fda4af}.fleet-stat.is-online .stat-icon{color:#6ee7b7;border-color:#34d3993d;box-shadow:0 0 18px #34d3991f}.fleet-stat.is-alert .stat-icon{color:#fda4af;border-color:#fb71853d;box-shadow:0 0 18px #fb71851f}.telemetry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.telemetry-card{border:1px solid var(--border);background:#ffffff05;border-radius:12px;padding:11px 12px}.telemetry-head{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;display:flex}.telemetry-head strong{color:var(--text);font-size:12px}.meter{background:#94a3b824;border-radius:999px;height:5px;margin-top:8px;overflow:hidden}.meter span{border-radius:inherit;background:linear-gradient(90deg,#60a5fa,#22d3ee);height:100%;transition:width .6s cubic-bezier(.22,.61,.36,1);display:block;box-shadow:0 0 10px #22d3ee80}.telemetry-card.is-alert .meter span{background:linear-gradient(90deg,#fb7185,#f59e0b)}.fleet-status-strip{flex-wrap:wrap;gap:10px;margin:4px 0 8px;display:flex}.fleet-status-stat{border:1px solid var(--border);color:var(--muted);background:#ffffff05;border-radius:999px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:inline-flex}.fleet-status-stat strong{color:var(--text);font-size:12.5px}.fleet-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px;display:flex}.fleet-toolbar select{flex:0 210px}.search-field{border:1px solid var(--border-strong);min-width:0;color:var(--muted);background:#04090f8c;border-radius:12px;flex:260px;align-items:center;gap:9px;padding:0 12px;display:flex}.search-field input{width:100%;min-height:40px;color:var(--text);background:0 0;border:none;outline:none;padding:0}.fleet-table-wrap{padding:0;overflow-x:auto}.fleet-table{min-width:900px}.fleet-table th{padding-top:14px}.fleet-code{letter-spacing:.01em;font-size:13.5px;font-weight:700}.fleet-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:none}.fleet-card{text-align:left;border:1px solid var(--border);cursor:pointer;flex-direction:column;gap:9px;padding:16px;display:flex}.fleet-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.fleet-card-badges{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.badge.env-lab{color:#c4b5fd;background:#8b5cf61a;border-color:#8b5cf64d}.badge.env-staging{color:#fcd34d;background:#fcd34d14;border-color:#fcd34d47}.badge.env-production{color:#a5f3fc;background:#22d3ee12;border-color:#22d3ee40}.fleet-card-meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:11.5px;display:flex}.fleet-card-meta span{align-items:center;gap:5px;display:inline-flex}.fleet-card-alert{color:#fda4af;align-items:center;gap:6px;font-size:11.5px;display:flex}.fleet-drawer-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02060ca8;justify-content:flex-end;animation:.2s both overlayIn;display:flex;position:fixed;inset:0}.fleet-drawer{background:radial-gradient(circle at 92% 4%,#22d3ee1a,#0000 30%),linear-gradient(#0b1420,#060b12);border-left:1px solid #60a5fa2e;width:min(580px,94vw);height:100%;padding:24px 24px 40px;animation:.3s cubic-bezier(.22,.61,.36,1) both drawerIn;overflow-y:auto;box-shadow:-30px 0 90px #0000008c}.fleet-drawer-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.fleet-drawer-head h2{align-items:center;gap:10px;margin:2px 0 4px;font-size:22px;display:flex}.icon-btn{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);cursor:pointer;background:#ffffff08;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--text);border-color:#60a5fa47}.fleet-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:22px;display:grid}.fleet-detail-grid>div{border:1px solid var(--border);background:#ffffff05;border-radius:12px;flex-direction:column;gap:3px;min-width:0;padding:11px 13px;display:flex}.fleet-detail-grid span{color:var(--muted);font-size:11px}.fleet-detail-grid strong{word-break:break-word;font-size:12.5px}.fleet-section{border-top:1px solid #94a3b81a;margin-top:22px;padding-top:18px}.fleet-section h3{margin:0 0 12px;font-size:15px}.fleet-section-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.fleet-section-title h3{margin:0}.local-access-panel{flex-direction:column;gap:12px;display:flex}.local-password{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.local-access-events{border-top:1px solid #94a3b81a;margin-top:6px;padding-top:14px}.local-access-events h4{margin:0 0 10px;font-size:12.5px}.local-access-events .fleet-event{margin-bottom:10px}.fleet-checks{gap:8px;display:grid}.fleet-check{border:1px solid var(--border);background:#ffffff05;border-radius:12px;padding:11px 13px}.fleet-check-head{justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.fleet-check ul{color:#fda4af;margin:8px 0 0;padding-left:18px;font-size:11.5px}.fleet-actions,.fleet-inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.fleet-inline-form select{flex:220px}.fleet-report{border:1px solid var(--border-strong);width:100%;color:var(--text-soft);font-family:var(--font-mono);resize:vertical;background:#03080e99;border-radius:12px;margin-top:10px;padding:12px;font-size:11.5px;line-height:1.55}.fleet-token-box{background:linear-gradient(145deg,#22d3ee14,#3b82f60a);border:1px solid #22d3ee3d;border-radius:14px;margin-top:12px;padding:14px}.fleet-token{color:#cffafe;word-break:break-all;background:#00000052;border-radius:10px;margin:10px 0;padding:10px 12px;font-size:13px;display:block}.fleet-token-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.fleet-timeline{flex-direction:column;gap:12px;display:flex}.fleet-event{align-items:flex-start;gap:11px;display:flex}.fleet-event-dot{background:#22d3ee;border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px;box-shadow:0 0 0 4px #22d3ee1a,0 0 12px #22d3ee73}.fleet-event strong{text-transform:capitalize;font-size:12.5px}.fleet-ota-history{flex-direction:column;gap:8px;display:flex}.fleet-ota-row{border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid label{min-width:0;color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.form-grid .form-field-wide{grid-column:1/-1}.form-grid .checkbox-field{flex-direction:row;align-items:flex-start;gap:9px;font-weight:500;line-height:1.45}.checkbox-field input[type=checkbox]{flex:none;width:16px;min-height:16px;margin-top:1px;padding:0}.form-grid textarea{resize:vertical}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.fleet-modal{width:min(560px,94vw)}.ota-form{align-items:start}.ota-gateway-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.card input[type=checkbox],.card input[type=radio],.modal input[type=checkbox],.modal input[type=radio]{flex:none;width:16px;min-height:16px;padding:0}.form-grid .ota-gateway-option{border:1px solid var(--border);cursor:pointer;background:#ffffff05;border-radius:11px;flex-direction:row;align-items:center;gap:9px;padding:10px 11px;font-weight:500;display:flex}.ota-gateway-option.selected{background:#22d3ee0f;border-color:#22d3ee59}.ota-gateway-option span{flex-direction:column;min-width:0;display:flex}.ota-gateway-option small{color:var(--muted);font-size:10.5px}.ota-campaign-list{flex-direction:column;gap:12px;display:flex}.ota-campaign{padding:16px}.ota-campaign-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ota-campaign-counts{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.ota-targets{border-top:1px solid #94a3b81a;flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;display:flex}.ota-target{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.ota-target-right{text-align:right;flex-direction:column;align-items:flex-end;gap:3px;display:flex}.notification-list{flex-direction:column;gap:10px;display:flex}.notification-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);width:100%;color:inherit;text-align:left;cursor:pointer;align-items:flex-start;gap:12px;padding:15px 17px;transition:border-color .15s,transform .15s,background .15s;display:flex}.notification-card:hover{border-color:#60a5fa3d;transform:translateY(-1px)}.notification-card.unread{background:linear-gradient(100deg,#3b82f617,#22d3ee06);border-color:#22d3ee38}.notification-dot{background:#60a5fa;border-radius:50%;flex:none;width:9px;height:9px;margin-top:5px;box-shadow:0 0 0 4px #60a5fa1a}.notification-dot.success{background:#34d399}.notification-dot.error{background:#fb7185}.notification-content{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.notification-title{font-size:13.5px;font-weight:650}.notification-body{color:var(--text-soft);font-size:12.5px}.notification-time{color:var(--faint);font-size:11px}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes drawerIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@media (width<=1024px){.grid-stats,.grid-rooms,.grid-devices,.quick-actions{grid-template-columns:repeat(2,1fr)}.quick-actions-grid,.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.support-grid{grid-template-columns:1fr}.energy-chart svg{width:100%;height:120px;display:block}.energy-row{border-bottom:1px solid #94a3b814;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:12.5px;display:flex}.energy-row:last-child{border-bottom:none}.energy-row>span{flex-direction:column;gap:2px;display:flex}.energy-row small{color:var(--muted);font-size:10.5px}.energy-row strong{color:#a5f3fc}.energy-values{color:var(--text-soft);text-align:right;font-size:11.5px}.apps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.installer-installation-grid,.workspace-grid{grid-template-columns:1fr}}@media (width<=768px){.sidebar{width:280px;max-width:85vw;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.overlay{z-index:var(--z-raised);background:#0000008c;display:block;position:fixed;inset:0}.main{padding:18px 16px calc(40px + env(safe-area-inset-bottom));margin-left:0}.menu-btn{justify-content:center;align-items:center;display:inline-flex}.user-meta{display:none}.grid-stats,.grid-rooms,.grid-devices,.grid-stats.is-3{grid-template-columns:repeat(2,1fr)}.quick-actions{grid-template-columns:1fr}.stat-card{min-height:112px}.welcome-card{padding:20px}.room-filter{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.check-row{flex-direction:column}.check-actions{justify-content:flex-start}.header{row-gap:var(--sp-2);flex-wrap:wrap}.header-right{gap:var(--sp-2);flex-wrap:wrap}.header-password{display:none}.header-title h1{font-size:18px}.editor-layout{grid-template-columns:1fr}.editor-sidebar{flex-flow:wrap;position:static}.btn,.nav-item,.tab,.room-nav,.wizard-step,.table-actions .btn{min-height:44px}.card{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{min-width:560px}.table.compact{min-width:0}}@media (width<=600px){.grid-devices,.quick-actions-grid{grid-template-columns:1fr}}@media (width<=460px){.grid-rooms,.scene-grid{grid-template-columns:1fr}.client-hero h2{font-size:24px}.room-panel{padding:13px}}@media (width<=1024px){.fleet-cards{display:grid}.fleet-table-wrap{display:none}.fleet-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.app.sidebar-collapsed .sidebar{width:280px;padding-left:16px;padding-right:16px}.app.sidebar-collapsed .main{margin-left:0}.sidebar.collapsed .brand{justify-content:flex-start;padding-left:10px;padding-right:10px}.sidebar.collapsed .brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-label,.sidebar.collapsed .sidebar-footer>span{display:block}.sidebar.collapsed .nav-item{justify-content:flex-start;padding-left:12px;padding-right:12px}.sidebar.collapsed .sidebar-footer{justify-content:space-between;padding-left:12px;padding-right:12px}.sidebar.collapsed .sidebar-footer-actions{flex-direction:row}.fleet-cards{grid-template-columns:1fr}.fleet-toolbar select,.search-field{flex:100%}.fleet-drawer{border-left:none;width:100%;max-width:100%;padding:18px 16px 36px}.fleet-detail-grid,.form-grid,.ota-gateway-picker{grid-template-columns:1fr}.fleet-inline-form .btn,.fleet-actions .btn{flex:auto}.ota-target,.notification-card{align-items:flex-start}.client-hero{flex-direction:column;padding:20px}.client-hero-side{align-items:flex-start}.hero-mini-stats{flex-wrap:wrap}.room-control-list,.automation-list{grid-template-columns:1fr}.energy-chart svg{width:100%;height:120px;display:block}.energy-row{border-bottom:1px solid #94a3b814;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:12.5px;display:flex}.energy-row:last-child{border-bottom:none}.energy-row>span{flex-direction:column;gap:2px;display:flex}.energy-row small{color:var(--muted);font-size:10.5px}.energy-row strong{color:#a5f3fc}.energy-values{color:var(--text-soft);text-align:right;font-size:11.5px}.apps-grid{grid-template-columns:1fr}.pairing-card{max-width:100%}.pairing-search-head{align-items:flex-start}.scan-orb{width:58px;height:58px}.workspace-installation-select{min-width:160px;max-width:210px}.installer-quick-actions .btn,.installer-quick-actions select{flex:100%}}@media (width<=430px){.fleet-status-strip{gap:6px}.fleet-status-stat{padding:6px 9px;font-size:11px}.fleet-drawer-head h2{font-size:19px}.fleet-campaign-counts{gap:4px}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.install-prompt{z-index:70;left:50%;bottom:max(18px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0d121ef0;border:1px solid #6366f159;border-radius:18px;align-items:flex-start;gap:14px;width:min(560px,100vw - 28px);padding:16px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 20px 60px #00000073}.install-prompt-mark{color:#fff;background:linear-gradient(135deg,#4f46e5,#06b6d4);border-radius:13px;flex:0 0 44px;place-items:center;height:44px;display:grid}.install-prompt-body{flex:1;min-width:0}.install-prompt-body strong{color:#f8fafc;margin-bottom:4px;display:block}.install-prompt-body p{color:#9aa7bf;margin:0;font-size:13px;line-height:1.45}.install-prompt-help{color:#c7d2fe!important;margin-top:8px!important}.install-prompt-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.install-prompt-close{color:#94a3b8;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:24px;line-height:1}@media (width<=560px){.install-prompt{align-items:flex-start;gap:10px;padding:14px}.install-prompt-mark{flex-basis:38px;height:38px}.install-prompt-actions .btn{flex:1}}.automation-row{border-bottom:1px solid #94a3b81f;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.automation-row:last-child{border-bottom:0}.automation-row .fleet-actions{flex-wrap:wrap;justify-content:flex-end}.automation-editor{width:min(720px,100vw - 24px);max-height:90vh;overflow-y:auto}.automation-editor input,.automation-editor select{width:100%}.automation-action{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.automation-action select,.automation-action input{flex:1;min-width:120px}.checkbox-row{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.checkbox-row input{width:auto}@media (width<=720px){.automation-row{flex-direction:column;align-items:flex-start}.automation-row .fleet-actions{justify-content:flex-start;width:100%}}.automation-location{flex-direction:column;gap:10px;display:flex}.automation-location .automation-action{width:100%}.location-picker{flex-direction:column;gap:12px;display:flex}.location-picker .section-head{margin-bottom:0}.location-selected{background:#22d3ee0f;border:1px solid #22d3ee29;border-radius:12px;align-items:flex-start;gap:12px;padding:12px;display:flex}.location-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.location-actions .inline-form{flex:1;min-width:240px}.location-results{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.location-result{text-align:left;border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff05;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.location-result:hover{background:#22d3ee12;border-color:#22d3ee73}.location-result span,.location-result small{color:var(--muted);font-size:12px}.alert.success{color:var(--green);border-color:var(--green)}@media (width<=768px){input,select,textarea,.card input,.card select,.card textarea,.login-card input,.inline-form input,.inline-form select,.modal input,.setup-fields input{font-size:16px}img,svg{max-width:100%}}.app-card.is-locked{background:#fbbf240a;border-color:#fbbf2459}.client-now{gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffff06;grid-template-columns:1fr 1fr;display:grid}.client-now-time strong,.client-now-weather strong{letter-spacing:-.04em;font-size:clamp(22px,2.4vw,30px);line-height:1.05;display:block}.client-now-time small,.client-now-weather small{color:var(--muted);margin-top:4px;font-size:11.5px;line-height:1.35;display:block}.home-prefs-modal{width:min(760px,100vw - 32px);max-height:88vh;overflow-y:auto}.home-prefs-grid{gap:var(--sp-2);margin:var(--sp-4) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.home-pref-option{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff05;align-items:center;gap:10px;padding:10px 12px;display:flex}.home-pref-option.is-selected{background:#22d3ee12;border-color:#22d3ee66}.home-pref-option input{flex:none;width:auto}.home-pref-option strong{font-size:12.5px;display:block}.home-pref-option small{color:var(--muted);font-size:11px;display:block}.show-more,.notif-more{width:100%;margin-top:var(--sp-2)}@media (width<=720px){.client-now{border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 12px}.client-now .eyebrow{margin-bottom:2px;font-size:8px}.client-now-time strong,.client-now-weather strong{font-size:20px}.client-now-time small,.client-now-weather small{margin-top:2px;font-size:10.5px;line-height:1.25}.home-prefs-grid{grid-template-columns:1fr}}.client-room-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.client-room-tile{width:100%;height:100%;min-height:170px;padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--duration), background var(--duration), transform var(--duration);flex-direction:column;align-items:flex-start;gap:4px;display:flex;position:relative}.client-room-tile:hover{border-color:var(--hover-border);background:var(--card-bg-hover);transform:translateY(-1px)}.client-room-tile-icon{color:#a5f3fc;background:#22d3ee0f;border:1px solid #22d3ee29;border-radius:12px;place-items:center;width:42px;height:42px;margin-bottom:auto;display:grid}.client-room-tile-name{letter-spacing:-.02em;font-size:15px;font-weight:650}.client-room-tile-type{color:var(--muted);font-size:11.5px}.client-room-tile-count{color:var(--text-soft);font-size:11.5px}.client-room-tile-sensors{gap:6px;width:100%;margin-top:5px;display:flex}.client-room-tile-reading{background:#22d3ee09;border:1px solid #22d3ee1f;border-radius:10px;flex-direction:column;flex:1 1 0;gap:2px;min-width:0;padding:7px 8px;display:flex}.client-room-tile-reading small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:1.2;overflow:hidden}.client-room-tile-reading strong{color:#a5f3fc;letter-spacing:-.01em;font-size:12px;font-weight:700}.room-detail-modal{width:min(900px,100vw - 24px);max-height:88vh;overflow-y:auto}.room-detail-modal .room-panel{background:0 0;border:0;padding:0}@media (width<=640px){.room-sensor-list,.room-control-list{grid-template-columns:1fr}.room-panel-meta{width:100%}}@media (width<=520px){.client-room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-detail-modal{width:calc(100vw - 16px);max-height:92vh}.room-sensor-card{padding:10px}.client-room-tile{min-height:162px;padding:12px}.client-room-tile-reading{padding:6px}.client-room-tile-reading strong{font-size:11px}}#dispositivi{scroll-margin-top:90px}.workspace-grid{align-items:start;gap:var(--sp-4)}.workspace-grid>.card{padding:var(--sp-4)}.workspace-grid>.card h3{margin:0 0 var(--sp-3)}.automation-row{align-items:center}.automation-row .fleet-actions{flex-wrap:wrap;gap:6px}.client-room-tile-wrap{position:relative}.room-power-flag{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);cursor:pointer;background:#04080db8;border-radius:10px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.room-power-flag.is-on{color:var(--green);background:#34d39914;border-color:#34d3994d}.room-power-flag:disabled{opacity:.55;cursor:wait}.room-customizer{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;padding:12px;display:grid}@media (width<=520px){.room-customizer{grid-template-columns:1fr}}.installer-location-details{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;margin-top:12px}.installer-location-details>summary{cursor:pointer;color:var(--text-soft);padding:11px 13px;font-size:12.5px;font-weight:600}.installer-location-details[open]>summary{border-bottom:1px solid var(--border)}.installer-location-details .location-picker{box-shadow:none;background:0 0;border:0;padding:10px 13px}.installer-location-details .location-picker .section-head p{display:none}.client-rooms-manager{gap:var(--sp-4);grid-template-columns:240px minmax(0,1fr);align-items:start;display:grid}.client-rooms-nav{flex-direction:column;gap:6px;display:flex}.client-rooms-managed{flex-direction:column;gap:14px;display:flex}.room-manager-form{grid-template-columns:1.2fr 1fr 1fr auto;align-items:end;gap:12px;display:grid}.room-manager-form .fleet-actions{align-self:end}@media (width<=800px){.client-rooms-manager{grid-template-columns:1fr}.client-rooms-nav{flex-direction:row;padding-bottom:4px;overflow-x:auto}.room-manager-form{grid-template-columns:1fr}}.pairing-extra-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;display:grid}.pairing-extra{flex-direction:column;gap:9px;display:flex}.pairing-extra h3{margin:0}@media (width<=720px){.pairing-extra-grid{grid-template-columns:1fr}}.privacy-page{background:radial-gradient(circle at 15% 0%, #2563eb2e, transparent 34%), radial-gradient(circle at 92% 12%, #22d3ee1f, transparent 28%), var(--bg);min-height:100vh;color:var(--text)}.privacy-topbar{z-index:10;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#06080cd1;justify-content:space-between;align-items:center;gap:18px;padding:16px clamp(16px,4vw,42px);display:flex;position:sticky;top:0}.privacy-brand{padding:0}.privacy-shell{width:min(1040px,100% - 32px);margin:0 auto;padding:42px 0 64px}.privacy-hero{max-width:800px;margin-bottom:24px}.privacy-hero h1{letter-spacing:-.045em;margin:8px 0 10px;font-size:clamp(32px,5vw,54px);line-height:1.05}.privacy-hero p{color:var(--muted);font-size:15px;line-height:1.7}.privacy-updated{text-transform:uppercase;letter-spacing:.12em;font-size:12px!important}.privacy-warning{background:#fbbf2412;border:1px solid #fbbf2447;border-radius:18px;margin:22px 0;padding:18px 20px}.privacy-warning p{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.6}.privacy-tag{color:#fde68a;letter-spacing:.06em;white-space:nowrap;border:1px solid #fbbf2452;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.privacy-toc{border:1px solid var(--border);background:#ffffff05;border-radius:16px;flex-wrap:wrap;gap:8px;margin:22px 0 26px;padding:16px;display:flex}.privacy-toc a{color:var(--text-soft);background:#ffffff09;border-radius:999px;padding:6px 9px;font-size:12px}.privacy-toc a:hover{color:#a5f3fc}.privacy-section{border-top:1px solid var(--border);padding:26px 0}.privacy-section h2{letter-spacing:-.02em;margin:0 0 14px;font-size:21px}.privacy-section p,.privacy-section li{color:var(--muted);font-size:14px;line-height:1.75}.privacy-section strong{color:var(--text-soft)}.privacy-section a{color:#a5f3fc;text-underline-offset:2px;text-decoration:underline}.privacy-section ul{margin:10px 0;padding-left:20px}.privacy-table-wrap{border:1px solid var(--border);background:#ffffff05;border-radius:16px;overflow-x:auto}.privacy-table{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}.privacy-table th,.privacy-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:12px 14px}.privacy-table th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.1em;background:#ffffff06;font-size:11px}.privacy-table td{color:var(--muted);line-height:1.55}.privacy-table tr:last-child td{border-bottom:0}.privacy-note{background:#22d3ee09;border-left:2px solid #22d3ee73;border-radius:0 10px 10px 0;margin-top:14px;padding:12px 14px;font-size:13px!important}.privacy-footer{border-top:1px solid var(--border);color:var(--faint);justify-content:space-between;align-items:center;gap:14px;padding-top:28px;font-size:12px;display:flex}.privacy-footer a{color:#a5f3fc}.privacy-login-link{margin-top:-6px}@media (width<=640px){.privacy-shell{width:min(100% - 22px,1040px);padding-top:28px}.privacy-topbar{padding:12px 14px}.privacy-hero h1{font-size:34px}.privacy-footer{flex-direction:column;align-items:flex-start}.privacy-section{padding:21px 0}}.landing-page{min-height:100vh;color:var(--text);background:radial-gradient(circle at 14% 6%,#2563eb38,#0000 32%),radial-gradient(circle at 88% 18%,#22d3ee24,#0000 30%),radial-gradient(circle at 50% 100%,#2dd4bf14,#0000 35%),#06080c;overflow-x:hidden}.landing-nav{z-index:40;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(#06080cf0,#06080cb8);border-bottom:1px solid #94a3b81f;align-items:center;gap:24px;width:min(1280px,100% - 32px);margin:0 auto;padding:14px 0;display:flex;position:sticky;top:0}.landing-brand{flex:none;padding:0}.landing-nav-links{align-items:center;gap:24px;margin-left:auto;display:flex}.landing-nav-links a{color:var(--muted);font-size:13px;font-weight:550;transition:color .18s}.landing-nav-links a:hover{color:#e0f7ff}.landing-nav-cta{white-space:nowrap;margin-left:auto}.landing-hero{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:clamp(32px,5vw,72px);width:min(1280px,100% - 32px);min-height:690px;margin:0 auto;padding:clamp(54px,8vw,96px) 0 clamp(46px,7vw,78px);display:grid;position:relative}.landing-hero-bg{pointer-events:none;filter:blur(16px);background:radial-gradient(circle,#22d3ee1f,#0000 66%);border-radius:50%;width:660px;height:660px;position:absolute;top:20px;right:-180px}.landing-hero-copy{z-index:1;position:relative}.landing-eyebrow,.landing-kicker{color:#a5f3fc;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:750;display:inline-flex}.landing-hero h1{letter-spacing:-.058em;margin:18px 0 22px;font-size:clamp(44px,6.4vw,82px);font-weight:760;line-height:.98}.landing-hero h1 span{-webkit-text-fill-color:transparent;color:#0000;background:linear-gradient(100deg,#dbeafe,#60a5fa 38%,#22d3ee 68%,#5eead4);-webkit-background-clip:text;background-clip:text}.landing-lead{max-width:610px;color:var(--muted);margin:0;font-size:clamp(16px,1.5vw,19px);line-height:1.72}.landing-hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.landing-main-cta{min-height:48px;padding-inline:24px;font-size:14px}.landing-secondary-cta{min-height:48px;padding-inline:22px}.landing-trust-row{color:var(--faint);flex-wrap:wrap;gap:14px 22px;margin-top:34px;font-size:12px;display:flex}.landing-trust-row span{align-items:center;gap:7px;display:inline-flex}.landing-trust-row svg{color:#5eead4}.landing-hero-visual{z-index:1;perspective:1200px;position:relative}.landing-glow{filter:blur(44px);background:linear-gradient(135deg,#3b82f64d,#22d3ee12);border-radius:40px;position:absolute;inset:12% 6% 2%}.landing-dashboard{background:linear-gradient(145deg,#0f1b2af0,#050a11fa);border:1px solid #7dd3fc2b;border-radius:26px;padding:22px;position:relative;transform:rotateY(-5deg)rotateX(2deg);box-shadow:0 34px 90px #0000007a,inset 0 1px #ffffff0f}.landing-dashboard-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.landing-dashboard-top strong{letter-spacing:-.02em;margin-top:4px;font-size:17px;display:block}.landing-mini-label{color:var(--faint);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:700;display:block}.landing-status{color:#a7f3d0;white-space:nowrap;background:#34d3990f;border:1px solid #34d3992e;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:10px;display:inline-flex}.landing-home-card{background:linear-gradient(135deg,#3b82f61c,#22d3ee08);border:1px solid #94a3b824;border-radius:17px;padding:15px}.landing-home-card>strong{margin:5px 0 12px;font-size:15px;display:block}.landing-home-devices{gap:7px;display:grid}.landing-home-devices span{color:var(--text-soft);align-items:center;gap:8px;font-size:12px;display:flex}.landing-home-devices b{color:#5eead4;text-transform:uppercase;letter-spacing:.08em;margin-left:auto;font-size:10px}.landing-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px;display:grid}.landing-mini-card{background:#ffffff06;border:1px solid #94a3b81f;border-radius:14px;flex-direction:column;gap:5px;min-height:88px;padding:13px;display:flex}.landing-mini-card svg{color:#67e8f9}.landing-mini-card span{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.landing-mini-card strong{margin-top:auto;font-size:13px}.landing-dashboard-footer{color:var(--faint);align-items:center;gap:7px;margin-top:14px;font-size:10px;display:flex}.landing-strip{background:#94a3b81f;border:1px solid #94a3b824;border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;width:min(1280px,100% - 32px);margin:0 auto;display:grid;overflow:hidden}.landing-strip>div{background:#080d14f0;padding:18px 20px}.landing-strip strong,.landing-strip span{display:block}.landing-strip strong{color:var(--text-soft);font-size:13px}.landing-strip span{color:var(--faint);margin-top:4px;font-size:11px;line-height:1.4}.landing-section{width:min(1120px,100% - 32px);margin:0 auto;padding:clamp(64px,9vw,112px) 0}.landing-section-head{max-width:690px;margin-bottom:34px}.landing-section h2{letter-spacing:-.045em;margin:12px 0 14px;font-size:clamp(30px,4vw,48px);line-height:1.08}.landing-section-head p,.landing-privacy>div>p{color:var(--muted);font-size:15px;line-height:1.7}.landing-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.landing-feature{border:1px solid var(--border);background:linear-gradient(145deg,#ffffff09,#ffffff03);border-radius:20px;padding:22px;transition:transform .2s,border-color .2s,background .2s}.landing-feature:hover{background:linear-gradient(145deg,#22d3ee11,#ffffff04);border-color:#22d3ee38;transform:translateY(-3px)}.landing-feature-icon{color:#67e8f9;background:linear-gradient(145deg,#3b82f633,#22d3ee14);border:1px solid #22d3ee24;border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.landing-feature h3{letter-spacing:-.02em;margin:17px 0 8px;font-size:16px}.landing-feature p{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.landing-how{width:min(1280px,100% - 32px)}.landing-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.landing-step{border-left:1px solid #22d3ee3d;padding:22px}.landing-step>span{color:#67e8f9;letter-spacing:.12em;font-size:11px;font-weight:750}.landing-step h3{letter-spacing:-.02em;margin:14px 0 8px;font-size:18px}.landing-step p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.landing-privacy{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:1.1fr .9fr;align-items:start;gap:clamp(32px,6vw,80px);padding-top:clamp(52px,7vw,84px);padding-bottom:clamp(52px,7vw,84px);display:grid}.landing-privacy-links{flex-wrap:wrap;gap:8px 18px;margin-top:12px;display:flex}.landing-text-link{color:#a5f3fc;font-size:13px;font-weight:650;display:inline-flex}.landing-privacy-list{gap:11px;display:grid}.landing-privacy-list>div{border:1px solid var(--border);background:#ffffff06;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.landing-privacy-list svg{color:#5eead4;flex:none;margin-top:2px}.landing-privacy-list span{color:var(--muted);font-size:12.5px;line-height:1.55}.landing-privacy-list strong{color:var(--text-soft);margin-bottom:3px;font-size:13px;display:block}.landing-final{justify-content:space-between;align-items:center;gap:28px;width:min(1280px,100% - 32px);margin:0 auto;padding:clamp(56px,8vw,94px) 0;display:flex}.landing-final h2{letter-spacing:-.045em;margin:10px 0 8px;font-size:clamp(30px,4.5vw,52px);line-height:1.05}.landing-final p{color:var(--muted);margin:0;font-size:15px}.landing-footer{border-top:1px solid var(--border);width:min(1280px,100% - 32px);color:var(--faint);align-items:center;gap:18px;margin:0 auto;padding:26px 0 36px;font-size:11px;display:flex}.landing-footer p{margin:0}.landing-footer>div:last-child{gap:16px;margin-left:auto;display:flex}.landing-footer a{color:var(--muted)}@media (width<=980px){.landing-hero{grid-template-columns:1fr;min-height:0;padding-top:52px}.landing-hero-visual{width:100%;max-width:620px;margin:0 auto}.landing-dashboard{transform:none}.landing-strip,.landing-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-steps{grid-template-columns:1fr}.landing-step{border-left:1px solid #22d3ee3d;padding:15px 20px}.landing-privacy{grid-template-columns:1fr}.landing-final{flex-direction:column;align-items:flex-start}}@media (width<=720px){.landing-nav{gap:12px;width:calc(100% - 22px)}.landing-nav-links{display:none}.landing-nav-cta{min-height:40px;margin-left:auto;padding:8px 13px;font-size:12px}.landing-hero,.landing-strip,.landing-section,.landing-how,.landing-final,.landing-footer{width:calc(100% - 22px)}.landing-hero{gap:34px;padding-top:40px;padding-bottom:40px}.landing-hero h1{font-size:clamp(40px,13vw,58px)}.landing-lead{font-size:15px}.landing-main-cta,.landing-secondary-cta{flex:auto;justify-content:center}.landing-dashboard{border-radius:20px;padding:16px}.landing-dashboard-top strong{font-size:15px}.landing-feature-grid,.landing-strip{grid-template-columns:1fr}.landing-section{padding-top:58px;padding-bottom:58px}.landing-footer{flex-wrap:wrap;align-items:flex-start}.landing-footer>div:last-child{width:100%;margin-left:0}}.landing-hero:before{content:"";pointer-events:none;opacity:.42;background-image:linear-gradient(#67e8f90e 1px,#0000 1px),linear-gradient(90deg,#67e8f90b 1px,#0000 1px);background-size:64px 64px;animation:18s linear infinite landingGridDrift;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000b3,#0000 78%);mask-image:linear-gradient(#000000b3,#0000 78%)}.landing-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#22d3ee14,#0000 68%);border-radius:50%;width:420px;height:420px;animation:10s ease-in-out infinite alternate landingAurora;position:absolute;top:18%;left:42%}.landing-hero-copy{animation:.75s cubic-bezier(.2,.75,.25,1) both landingRise}.landing-hero-visual{animation:.9s cubic-bezier(.2,.75,.25,1) .12s both landingVisualIn}.landing-hero-bg{animation:12s ease-in-out infinite alternate landingAurora}.landing-glow{animation:7s ease-in-out infinite landingGlowPulse}.landing-dashboard{animation:7s ease-in-out 1s infinite landingFloat}.landing-dashboard:after{content:"";border-radius:inherit;pointer-events:none;-webkit-mask-composite:xor;background:linear-gradient(115deg,#0000 20%,#67e8f92b,#0000 46%) 0 0/220% 220%;padding:1px;animation:7s linear infinite landingBorderScan;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.landing-strip{animation:.8s cubic-bezier(.2,.75,.25,1) .2s both landingRise}.landing-feature,.landing-step{animation:.7s cubic-bezier(.2,.75,.25,1) both landingRise}.landing-feature:nth-child(2){animation-delay:60ms}.landing-feature:nth-child(3){animation-delay:.12s}.landing-feature:nth-child(4){animation-delay:.18s}.landing-feature:nth-child(5){animation-delay:.24s}.landing-feature:nth-child(6){animation-delay:.3s}.landing-step:nth-child(2){animation-delay:80ms}.landing-step:nth-child(3){animation-delay:.16s}.landing-main-cta{isolation:isolate;position:relative;overflow:hidden}.landing-main-cta:after{content:"";z-index:-1;background:linear-gradient(110deg,#0000 28%,#ffffff7a,#0000 58%);animation:4.8s ease-in-out infinite landingCtaShine;position:absolute;inset:0;transform:translate(-130%)}.landing-footer{padding:30px 0 calc(32px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#070d158f 42%,#05090fe6);display:block}.landing-footer-main{border-bottom:1px solid #94a3b821;justify-content:space-between;align-items:flex-start;gap:28px;padding:0 0 22px;display:flex}.landing-footer-brand{align-items:center;gap:24px;display:flex}.landing-footer-brand .landing-brand{flex:none}.landing-footer-brand p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.landing-footer-links{align-items:center;gap:20px;padding-top:9px;padding-right:2px;display:flex}.landing-footer-links a{color:var(--muted);font-size:12px;transition:color .18s}.landing-footer-links a:hover{color:#a5f3fc}.landing-footer-bottom{color:var(--faint);letter-spacing:.02em;justify-content:space-between;align-items:center;gap:18px;margin:0;padding-top:16px;font-size:10.5px;display:flex;width:auto!important}.landing-footer-bottom a{color:var(--muted);white-space:nowrap}@keyframes landingGridDrift{0%{background-position:0 0,0 0}to{background-position:64px 64px,64px 64px}}@keyframes landingAurora{0%{opacity:.75;transform:translate(-8px,-5px)scale(.96)}to{opacity:1;transform:translate(16px,12px)scale(1.06)}}@keyframes landingGlowPulse{0%,to{opacity:.7;transform:scale(.98)}50%{opacity:1;transform:scale(1.03)}}@keyframes landingFloat{0%,to{transform:rotateY(-5deg)rotateX(2deg)translateY(0)}50%{transform:rotateY(-3deg)rotateX(1deg)translateY(-10px)}}@keyframes landingBorderScan{0%,to{opacity:.35;background-position:0%}50%{opacity:.85;background-position:100%}}@keyframes landingCtaShine{0%,58%{transform:translate(-130%)}76%,to{transform:translate(130%)}}@keyframes landingRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes landingVisualIn{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=720px){.landing-hero:before{opacity:.26;background-size:48px 48px}.landing-dashboard{animation:7s ease-in-out 1s infinite landingFloatMobile}.landing-footer{padding-top:24px;padding-bottom:calc(28px + env(safe-area-inset-bottom))}.landing-footer-main{flex-direction:column;gap:18px;padding-bottom:18px}.landing-footer-brand{flex-direction:column;align-items:flex-start;gap:10px}.landing-footer-links{flex-wrap:wrap;gap:16px;width:100%;padding-top:0}.landing-footer-bottom{flex-wrap:wrap;gap:8px 18px;padding-top:14px}.landing-footer-bottom a{margin-left:auto}}@keyframes landingFloatMobile{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@media (prefers-reduced-motion:reduce){.landing-hero:before,.landing-hero:after,.landing-hero-copy,.landing-hero-visual,.landing-hero-bg,.landing-glow,.landing-dashboard,.landing-dashboard:after,.landing-strip,.landing-feature,.landing-step,.landing-main-cta:after{animation:none!important}}.landing-page{position:relative}.landing-nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;width:100%;margin:0;padding:18px clamp(22px,5.5vw,80px);position:absolute;top:0;left:0;right:0}@media (width<=980px){.landing-hero{padding-top:104px}}@media (width<=720px){.landing-nav{width:100%;padding:14px}.landing-hero{padding-top:84px}}.brand-mark{width:40px;height:40px;box-shadow:none;color:#0000;letter-spacing:0;background:url(/brand/elvio-mark.svg) 50%/contain no-repeat;border-radius:0;font-size:0}.brand-name{letter-spacing:-.035em}.main{padding-top:calc(24px + env(safe-area-inset-top))}.sidebar{padding-top:calc(22px + env(safe-area-inset-top))}.login-wrap{padding-top:calc(24px + env(safe-area-inset-top));padding-bottom:calc(24px + env(safe-area-inset-bottom))}.privacy-topbar{padding-top:calc(16px + env(safe-area-inset-top))}.landing-nav{padding-top:calc(18px + env(safe-area-inset-top))}.landing-hero{padding-top:calc(clamp(108px, 9vw, 138px) + env(safe-area-inset-top))}@media (width<=980px){.landing-hero{padding-top:calc(104px + env(safe-area-inset-top))}}@media (width<=768px){.main{padding-top:calc(18px + env(safe-area-inset-top))}}@media (width<=720px){.landing-nav{padding-top:calc(14px + env(safe-area-inset-top))}.landing-hero{padding-top:calc(84px + env(safe-area-inset-top))}}.automation-history{padding:18px 20px}.automation-history-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.automation-history-head h3{margin:0;font-size:15px}.automation-history-head p{margin:4px 0 0}.automation-history-list{flex-direction:column;display:flex}.automation-history-row{border-bottom:1px solid #94a3b817;align-items:center;gap:10px;min-height:44px;padding:8px 0;display:flex}.automation-history-row:last-child{border-bottom:0}.automation-history-dot{background:var(--faint);border-radius:50%;flex:none;width:7px;height:7px}.automation-history-dot.ok{background:#34d399;box-shadow:0 0 0 4px #34d39914}.automation-history-dot.error{background:#fb7185;box-shadow:0 0 0 4px #fb718514}.automation-history-dot.pending{background:#fbbf24;box-shadow:0 0 0 4px #fbbf2414}.automation-history-main{flex:1;min-width:0}.automation-history-main strong{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.automation-history-main small{color:var(--faint);margin-top:2px;font-size:10.5px;display:block}.automation-history-row .badge{flex:none;font-size:9.5px}.verified-devices{padding:6px 16px}.verified-device{border-bottom:1px solid #94a3b817;align-items:center;gap:12px;padding:14px 0;display:flex}.verified-device:last-child{border-bottom:0}.verified-device-icon{color:#67e8f9;background:#22d3ee0e;border:1px solid #22d3ee24;border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid}.verified-device-main{flex:1;min-width:0}.verified-device-main strong{align-items:center;gap:8px;font-size:13px;display:flex}.verified-device-main small{color:var(--faint);margin-top:3px;font-size:10.5px;display:block}@media (width<=640px){.automation-history-head{align-items:center}.automation-history-row{align-items:flex-start}.verified-device{flex-wrap:wrap;align-items:flex-start}.verified-device .btn{margin-left:50px}}.legal-gate{z-index:200;padding:calc(20px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#03060ad6;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.legal-gate-card{background:radial-gradient(circle at 92% 0,#22d3ee1c,#0000 32%),linear-gradient(#0f1825fa,#060a11fc);border:1px solid #67e8f92e;border-radius:24px;width:min(560px,100%);max-height:calc(100vh - 40px);padding:26px;overflow-y:auto;box-shadow:0 36px 100px #00000094}.legal-gate-brand{align-items:center;gap:10px;margin-bottom:20px;display:flex}.legal-gate-card h2{letter-spacing:-.04em;margin:5px 0 10px;font-size:28px}.legal-gate-card>p{color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.65}.legal-gate-summary{gap:8px;margin:14px 0 18px;display:grid}.legal-gate-summary span{border:1px solid var(--border);color:var(--muted);background:#ffffff06;border-radius:11px;padding:10px 12px;font-size:11.5px;line-height:1.5}.legal-gate-summary strong{color:var(--text-soft);margin-bottom:2px;font-size:12px;display:block}.legal-check{color:var(--text-soft);align-items:flex-start;gap:10px;margin:10px 0;font-size:12.5px;line-height:1.5;display:flex}.legal-check input{flex:none;width:auto;margin-top:2px}.legal-check a{color:#a5f3fc;text-underline-offset:2px;text-decoration:underline}.legal-gate-card .btn{width:100%;margin-top:8px}.legal-gate-card small{color:var(--faint);margin-top:10px;font-size:10.5px;line-height:1.45;display:block}.privacy-footer-links{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.app{background:radial-gradient(at 86% 0,#22d3ee0e,#0000 42%),radial-gradient(at 0 20%,#3b82f60d,#0000 38%)}.client-hero{background:radial-gradient(at 100% 0,#22d3ee2b,#0000 55%),radial-gradient(at 0 100%,#3b82f614,#0000 48%),linear-gradient(145deg,#111b2af2,#060a11f7);overflow:hidden}.section-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.section-head-actions>span{color:var(--muted);font-size:12px}.section-head-actions .btn{min-height:34px;padding:6px 11px;font-size:11.5px}.home-prefs-rooms-head{border-top:1px solid var(--border);margin-top:22px;padding-top:18px}.home-prefs-rooms-head h4{margin:0;font-size:14px}.home-prefs-rooms-head p{margin:4px 0 10px}.home-prefs-rooms{gap:6px;margin-bottom:18px;display:grid}.home-prefs-room{border:1px solid var(--border);background:#ffffff05;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;display:flex}.home-prefs-room.is-hidden{opacity:.52}.home-prefs-room label{cursor:pointer;flex:1;align-items:center;gap:9px;min-width:0;display:flex}.home-prefs-room input{flex:none;width:auto}.home-prefs-room strong,.home-prefs-room small{display:block}.home-prefs-room strong{color:var(--text-soft);font-size:12.5px}.home-prefs-room small{color:var(--muted);margin-top:2px;font-size:10.5px}.home-prefs-room-move{flex:none;gap:4px;display:flex}.home-prefs-room-move .icon-btn{border:1px solid var(--border);width:30px;height:30px;color:var(--muted);border-radius:8px}.home-prefs-room-move .icon-btn:disabled{opacity:.3;cursor:not-allowed}@media (width<=520px){.section-head-actions{justify-content:space-between;width:100%}.home-prefs-room{align-items:flex-start}}.concierge-installation{justify-content:flex-end;margin-bottom:12px;display:flex}.concierge-installation label{color:var(--muted);align-items:center;gap:10px;font-size:11px;display:flex}.concierge-installation select{min-width:220px}.concierge-hero{border:1px solid var(--border);background:radial-gradient(circle at 92% 8%,#22d3ee1f,#0000 36%),linear-gradient(145deg,#111b2af0,#060a11fa);border-radius:24px;align-items:center;gap:22px;padding:26px;display:flex;position:relative;overflow:hidden}.concierge-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#22d3ee1a,#0000 68%);border-radius:50%;width:260px;height:260px;position:absolute;top:-110px;right:-80px}.concierge-hero.mood-happy{border-color:#34d39933}.concierge-hero.mood-neutral{border-color:#fbbf2433}.concierge-hero.mood-worried{border-color:#fb718538}.concierge-emoji{z-index:1;border:1px solid var(--border);background:#ffffff09;border-radius:28px;flex:none;place-items:center;width:96px;height:96px;font-size:52px;line-height:1;display:grid;position:relative}.concierge-hero-copy{z-index:1;min-width:0;position:relative}.concierge-hero h2{letter-spacing:-.04em;margin:3px 0 7px;font-size:clamp(24px,3vw,34px)}.concierge-hero p{max-width:680px;color:var(--text-soft);margin:0;font-size:13px;line-height:1.6}.concierge-hero-stats{flex-wrap:wrap;gap:18px;margin-top:16px;display:flex}.concierge-hero-stats span{flex-direction:column;gap:2px;display:flex}.concierge-hero-stats strong{color:#e0f7ff;font-size:17px}.concierge-hero-stats small{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.concierge-ai-badge{z-index:2;color:#a5f3fc;letter-spacing:.08em;text-transform:uppercase;background:#22d3ee0e;border:1px solid #22d3ee33;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:9.5px;font-weight:700;display:inline-flex;position:absolute;top:18px;right:20px}.concierge-section-head{margin-top:26px}.concierge-section-head>div>span{color:var(--muted);font-size:11.5px}.concierge-report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.concierge-report{padding:18px}.concierge-report strong{letter-spacing:-.04em;margin:9px 0 5px;font-size:clamp(20px,2.4vw,28px);display:block}.concierge-report small{color:var(--muted);font-size:10.5px;line-height:1.4}.concierge-block{margin-top:22px}.concierge-block-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.concierge-block-head h2{letter-spacing:-.02em;margin:0;font-size:17px}.concierge-block-head>span{color:var(--faint);font-size:11px}.concierge-alert-list,.concierge-tip-list,.concierge-top-list{gap:7px;display:grid}.concierge-alert{border:1px solid var(--border);background:#ffffff05;border-radius:13px;align-items:flex-start;gap:11px;padding:12px 14px;display:flex}.concierge-alert.warning{background:#fbbf2409;border-color:#fbbf242e}.concierge-alert.info{background:#38bdf806;border-color:#38bdf826}.concierge-alert-icon{color:#fbbf24;background:#ffffff09;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.concierge-alert.info .concierge-alert-icon{color:#7dd3fc}.concierge-alert strong,.concierge-tip strong,.concierge-top strong{color:var(--text-soft);font-size:12.5px;display:block}.concierge-alert p,.concierge-tip p{color:var(--muted);margin:3px 0 0;font-size:11.5px;line-height:1.5}.concierge-columns{grid-template-columns:1.25fr .75fr;gap:20px;display:grid}.concierge-tip{border:1px solid var(--border);background:#ffffff05;border-radius:12px;align-items:flex-start;gap:10px;padding:11px 13px;display:flex}.concierge-tip svg{color:#67e8f9;flex:none;margin-top:2px}.concierge-top{border-bottom:1px solid #94a3b817;align-items:center;gap:9px;padding:9px 0;display:flex}.concierge-top:last-child{border-bottom:0}.concierge-top>span:nth-child(2){flex:1;min-width:0}.concierge-top small{color:var(--faint);font-size:10.5px;display:block}.concierge-top b{color:#a5f3fc;white-space:nowrap;font-size:12px}@media (width<=780px){.concierge-report-grid{grid-template-columns:1fr}.concierge-columns{grid-template-columns:1fr;gap:0}}@media (width<=560px){.concierge-hero{flex-direction:column;align-items:flex-start;padding:20px}.concierge-emoji{border-radius:22px;width:74px;height:74px;font-size:42px}.concierge-ai-badge{top:14px;right:14px}.concierge-installation{justify-content:stretch}.concierge-installation label{justify-content:space-between}.concierge-installation select{width:70%;min-width:0}}.maintenance-screen{z-index:300;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 0,#22d3ee2e,#0000 38%),radial-gradient(circle at 16% 90%,#3b82f624,#0000 34%),#05080d;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.maintenance-orb{border:1px solid #67e8f91f;border-radius:50%;width:min(620px,90vw);height:min(620px,90vw);animation:12s linear infinite maintenanceOrbit;position:absolute;box-shadow:0 0 0 80px #22d3ee06,0 0 0 160px #3b82f605}.maintenance-card{z-index:1;text-align:left;background:radial-gradient(circle at 90% 0,#22d3ee1f,#0000 34%),linear-gradient(#0e1826f0,#05090ffa);border:1px solid #67e8f933;border-radius:28px;width:min(560px,100%);padding:34px;position:relative;box-shadow:0 40px 120px #000000a6}.maintenance-mark{align-items:center;gap:10px;margin-bottom:26px;display:flex}.maintenance-card h1{letter-spacing:-.05em;max-width:450px;margin:10px 0 14px;font-size:clamp(30px,6vw,46px);line-height:1.02}.maintenance-card>p{color:var(--muted);white-space:pre-line;margin:0 0 20px;font-size:14px;line-height:1.7}.maintenance-pulse{color:#a5f3fc;letter-spacing:.03em;align-items:center;gap:9px;margin-bottom:24px;font-size:11.5px;display:inline-flex}.maintenance-pulse span{background:#22d3ee;border-radius:50%;width:8px;height:8px;animation:1.8s ease-in-out infinite maintenancePulse;box-shadow:0 0 0 5px #22d3ee14,0 0 18px #22d3eea6}.maintenance-card .btn{width:100%}.maintenance-card small{color:var(--faint);margin-top:18px;font-size:10.5px;display:block}@keyframes maintenanceOrbit{to{transform:rotate(360deg)}}@keyframes maintenancePulse{0%,to{opacity:.55;transform:scale(.86)}50%{opacity:1;transform:scale(1.12)}}@media (width<=560px){.maintenance-card{padding:26px 20px}.maintenance-orb{box-shadow:0 0 0 50px #22d3ee06,0 0 0 100px #3b82f605}}.automation-history{margin-top:24px}.automation-history-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.automation-history-actions .btn{min-height:32px;padding:6px 10px;font-size:11px}.automation-history-collapsed{border-top:1px solid #94a3b814;margin:4px 0 0;padding-top:8px}.client-hero{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#070c14ad}@media (width<=560px){.automation-history-head{align-items:flex-start}.automation-history-actions{justify-content:flex-start;width:100%}}body:before,body:after{display:none}.app{background-color:var(--bg);background-image:radial-gradient(at 86% 0,#22d3ee0e,#0000 46%),radial-gradient(at 0 22%,#3b82f60d,#0000 42%),radial-gradient(at 50% 100%,#1d4ed80b,#0000 52%)}@media (width<=720px){.notif-panel{top:auto;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:130;border-radius:18px;width:auto;max-width:none;max-height:min(70vh,520px);position:fixed;box-shadow:0 30px 90px #0000009e}.client-hero-side{align-items:stretch;width:100%}.client-now{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%}}.installer-clients-grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:18px;display:grid}.installer-client-list{gap:2px;display:grid}.installer-client-row{border-bottom:1px solid #94a3b817;align-items:center;gap:11px;padding:12px 0;display:flex}.installer-client-row:last-child{border-bottom:0}.installer-client-row>div{flex:1;min-width:0}.installer-client-row strong{font-size:13px;display:block}.installer-client-row small{color:var(--faint);margin-top:2px;font-size:10.5px;display:block}.installer-client-form{flex-direction:column;gap:8px;display:flex}.installer-client-form .btn{margin-top:6px}.installer-client-created{flex-direction:column;gap:4px;margin-top:14px;font-size:12px;display:flex}.installer-client-created span{color:var(--text-soft)}.installer-client-created small{color:var(--muted);font-size:10.5px}@media (width<=850px){.installer-clients-grid{grid-template-columns:1fr}.installer-client-row{flex-wrap:wrap}}.client-mode-options{border:1px solid var(--border);background:#ffffff05;border-radius:12px;gap:8px;padding:10px 12px;display:grid}.client-mode-options label{color:var(--text-soft);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.client-mode-options input{flex:none;width:auto}.new-client-inline{border:1px solid var(--border);background:#ffffff05;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.new-client-inline .btn{align-self:flex-start}.new-client-created{flex-direction:column;gap:4px;font-size:12px;display:flex}.new-client-created span{color:var(--text-soft)}.primary-sensor-toggle{background:#22d3ee09;border:1px solid #22d3ee1f;border-radius:10px;width:100%;padding:8px 10px;font-size:11.5px}.elvio-hub{--hub-cyan:#67e8f9;--hub-accent:#67e8f9;--hub-gradient:linear-gradient(135deg, #60a5fa 0%, #22d3ee 58%, #2dd4bf 100%);--hub-panel:#0b121bc7;min-height:100vh;color:var(--text);isolation:isolate;background:radial-gradient(at 8% 0,#22d3ee1f,#0000 42%),radial-gradient(at 92% 92%,#22d3ee13,#0000 38%),linear-gradient(155deg,#080d13 0%,#05070b 58%,#070b10 100%);padding:clamp(12px,1.8vw,28px);position:relative;overflow:hidden}.elvio-hub:before{z-index:-1;content:"";opacity:.32;background-image:linear-gradient(#67e8f909 1px,#0000 1px),linear-gradient(90deg,#67e8f909 1px,#0000 1px);background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 40%,#000,#0000 76%);mask-image:radial-gradient(at 50% 40%,#000,#0000 76%)}.elvio-hub.is-idle{cursor:none}.hub-orb{z-index:-1;filter:blur(70px);opacity:.18;pointer-events:none;border-radius:50%;width:42vw;height:42vw;animation:18s ease-in-out infinite alternate hubOrbFloat;position:absolute}.hub-orb-a{background:#22d3ee;top:-24vw;right:6vw}.hub-orb-b{background:#60a5fa;animation-delay:-8s;bottom:-28vw;left:2vw}@keyframes hubOrbFloat{0%{transform:translate(0,0)scale(.95)}to{transform:translate(-3vw,3vw)scale(1.08)}}.hub-topbar{z-index:2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#111b28e0,#070b10c7);border:1px solid #67e8f924;border-radius:22px;align-items:center;gap:18px;min-height:76px;padding:12px 16px 12px 18px;display:flex;position:relative;box-shadow:0 18px 60px #00000047,inset 0 1px #ffffff0a}.hub-brand{align-items:center;gap:11px;min-width:190px;display:flex}.hub-brand img{border-radius:13px;width:46px;height:46px;box-shadow:0 0 24px #67e8f92e}.hub-brand>div{flex-direction:column;gap:2px;display:flex}.hub-brand strong{letter-spacing:-.035em;font-size:17px}.hub-brand strong span{color:#0000;background:var(--hub-gradient);-webkit-background-clip:text;background-clip:text}.hub-brand small{color:var(--muted);font-size:11px}.hub-installation-select{min-height:40px;color:var(--text);font:inherit;background:#ffffff09;border:1px solid #94a3b829;border-radius:12px;padding:0 12px;font-size:12px}.hub-topbar-center{align-items:center;gap:8px;margin-left:auto;display:flex}.hub-live{min-height:32px;color:var(--text-soft);white-space:nowrap;border:1px solid #94a3b81f;border-radius:999px;align-items:center;gap:7px;padding:0 11px;font-size:11px;display:inline-flex}.hub-live>span{background:#fda4af;border-radius:50%;width:7px;height:7px;box-shadow:0 0 9px #fda4af99}.hub-live.is-online>span{background:#6ee7b7;box-shadow:0 0 9px #6ee7b7b3}.hub-topbar-right{align-items:center;gap:7px;display:flex}.hub-clock{flex-direction:column;align-items:flex-end;min-width:94px;padding-right:8px;display:flex}.hub-clock strong{letter-spacing:-.04em;font-size:24px;line-height:1}.hub-clock small{color:var(--muted);text-transform:capitalize;margin-top:3px;font-size:10px}.hub-icon-btn{width:38px;height:38px;color:var(--text-soft);cursor:pointer;background:#ffffff06;border:1px solid #94a3b81f;border-radius:11px;place-items:center;transition:border-color .15s,color .15s,background .15s;display:inline-grid;position:relative}.hub-icon-btn:hover,.hub-icon-btn.is-active{color:#cffafe;background:#22d3ee14;border-color:#67e8f95c}.hub-badge{color:#21070b;background:#fb7185;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;font-weight:800;display:grid;position:absolute;top:-5px;right:-4px}.hub-exit{min-height:38px;color:var(--hub-accent);white-space:nowrap;border:1px solid #22d3ee38;border-radius:11px;align-items:center;gap:4px;padding:0 12px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.hub-exit:hover{background:#22d3ee12}.hub-layout{z-index:1;grid-template-columns:minmax(290px,.92fr) minmax(0,2fr);gap:clamp(12px,1.7vw,22px);margin-top:clamp(12px,1.7vw,22px);display:grid;position:relative}.hub-side{flex-direction:column;gap:12px;min-width:0;display:flex}.hub-main{min-width:0}.hub-eyebrow{color:var(--hub-cyan);letter-spacing:.16em;text-transform:uppercase;font-size:9.5px;font-weight:800}.hub-hero,.hub-quick-card,.hub-status-card{background:linear-gradient(155deg,#101a27d1,#070b10b8);border:1px solid #94a3b81a;border-radius:20px;box-shadow:inset 0 1px #ffffff09,0 20px 50px #00000029}.hub-hero{background:radial-gradient(circle at 86% 10%,#67e8f921,#0000 46%),linear-gradient(155deg,#101a27db,#070b10b8);padding:clamp(17px,2vw,26px)}.hub-hero-copy h1{letter-spacing:-.06em;margin:5px 0 7px;font-size:clamp(28px,3vw,44px);line-height:1}.hub-hero-copy p{max-width:440px;color:var(--text-soft);margin:0;font-size:12px;line-height:1.55}.hub-climate-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:10px;margin-top:18px;display:grid}.hub-climate-main{background:#22d3ee09;border:1px solid #67e8f924;border-radius:15px;min-width:0;padding:14px}.hub-label,.hub-climate-side span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;display:block}.hub-climate-main>strong{letter-spacing:-.07em;align-items:flex-start;gap:4px;margin:3px 0 1px;font-size:clamp(42px,5vw,66px);line-height:.96;display:flex}.hub-climate-main>strong small{color:var(--hub-cyan);letter-spacing:0;margin-top:8px;font-size:15px}.hub-hint{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:1.35;overflow:hidden}.hub-climate-side{gap:8px;display:grid}.hub-climate-side>div{background:#ffffff06;border:1px solid #94a3b81a;border-radius:14px;flex-direction:column;justify-content:center;gap:3px;padding:12px;display:flex}.hub-climate-side strong{color:var(--text);letter-spacing:-.04em;font-size:21px}.hub-weather-line{color:var(--text-soft);align-items:center;gap:7px;margin-top:10px;font-size:11px;display:flex}.hub-weather-line small{color:var(--muted)}.hub-quick-card{padding:15px}.hub-section-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:11px;display:flex}.hub-section-head h2{letter-spacing:-.04em;margin:3px 0 0;font-size:19px}.hub-count,.hub-link,.hub-working{color:var(--muted);font-size:10.5px;text-decoration:none}.hub-link{align-items:center;gap:2px;display:inline-flex}.hub-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.hub-quick{min-height:53px;color:var(--text);text-align:left;cursor:pointer;background:#ffffff06;border:1px solid #94a3b81a;border-radius:12px;align-items:center;gap:9px;padding:8px 10px;transition:border-color .15s,background .15s,transform .15s;display:flex}.hub-quick:hover{background:#22d3ee0e;border-color:#67e8f94d;transform:translateY(-1px)}.hub-quick:disabled{cursor:wait;opacity:.55}.hub-quick.is-critical{border-color:#fb71852e}.hub-quick.is-critical:hover{background:#fb718512;border-color:#fb718561}.hub-quick-icon{width:32px;height:32px;color:var(--hub-cyan);background:#22d3ee12;border-radius:9px;flex:none;place-items:center;display:grid}.hub-quick.is-critical .hub-quick-icon{color:#fda4af;background:#fb718512}.hub-quick>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.hub-quick strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.hub-quick small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.hub-status-card{flex-wrap:wrap;align-items:center;gap:7px 13px;padding:12px 15px;display:flex}.hub-status-row{color:var(--text-soft);align-items:center;gap:5px;font-size:10.5px;display:flex}.hub-status-row strong{color:var(--text)}.hub-status-row strong.is-good{color:#6ee7b7}.hub-status-row strong.is-bad{color:#fda4af}.hub-concierge-link{color:var(--hub-accent);align-items:center;gap:3px;margin-left:auto;font-size:10.5px;font-weight:700;text-decoration:none;display:inline-flex}.hub-room-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:9px;display:grid}.hub-room-card{cursor:pointer;background:linear-gradient(155deg,#121d2bd1,#070b10c2);border:1px solid #94a3b81a;border-radius:17px;outline:none;flex-direction:column;gap:3px;min-height:174px;padding:14px;transition:border-color .18s,background .18s,transform .18s;display:flex;position:relative;box-shadow:inset 0 1px #ffffff08}.hub-room-card:hover,.hub-room-card:focus-visible{background:linear-gradient(155deg,#162637e6,#080f16d1);border-color:#67e8f94d;transform:translateY(-2px)}.hub-room-card.is-active{background:linear-gradient(150deg,#3b82f61a,#070b10c2);border-color:#60a5fa47}.hub-room-top{justify-content:space-between;align-items:flex-start;margin-bottom:auto;display:flex}.hub-room-icon{width:38px;height:38px;color:var(--hub-cyan);background:#22d3ee0e;border:1px solid #67e8f924;border-radius:11px;place-items:center;display:grid}.hub-room-card.is-active .hub-room-icon{color:#dbeafe;background:linear-gradient(135deg,#60a5fa33,#22d3ee14);border-color:#60a5fa52}.hub-room-power{width:29px;height:29px;color:var(--muted);cursor:pointer;background:#ffffff06;border:1px solid #94a3b826;border-radius:9px;place-items:center;display:grid}.hub-room-power.is-on{color:#6ee7b7;background:#34d39917;border-color:#34d39957}.hub-room-power:disabled{opacity:.5;cursor:wait}.hub-room-name{letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:14px;overflow:hidden}.hub-room-type{color:var(--muted);font-size:10px}.hub-room-readings{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.hub-room-readings>span{background:#22d3ee09;border:1px solid #67e8f91a;border-radius:8px;flex-direction:column;gap:1px;min-width:0;padding:5px 7px;display:flex}.hub-room-readings small{color:var(--muted);font-size:8px}.hub-room-readings strong{color:#cffafe;font-size:11px}.hub-room-footer{color:var(--muted);border-top:1px solid #94a3b814;justify-content:space-between;align-items:center;gap:4px;margin-top:7px;padding-top:7px;font-size:9.5px;display:flex}.hub-room-footer .is-on{color:#6ee7b7}.hub-scenes-head{margin-top:15px}.hub-scenes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:7px;display:grid}.hub-scene{min-height:48px;color:var(--text);text-align:left;cursor:pointer;background:#ffffff06;border:1px solid #94a3b81a;border-radius:12px;align-items:center;gap:8px;padding:7px 9px;display:flex}.hub-scene:hover{background:#22d3ee0b;border-color:#22d3ee47}.hub-scene-icon{width:29px;height:29px;color:var(--hub-accent);background:#22d3ee12;border-radius:8px;flex:none;place-items:center;display:grid}.hub-scene>span:nth-child(2){flex-direction:column;gap:1px;min-width:0;display:flex}.hub-scene strong{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.hub-scene small,.hub-scene>svg{color:var(--muted);font-size:8.5px}.hub-scene>svg{color:#fcd34d;margin-left:auto}.hub-empty-card{color:var(--muted);border:1px dashed #94a3b826;border-radius:16px;padding:20px;font-size:12px}.hub-footer{z-index:1;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:0 3px;font-size:9.5px;display:flex;position:relative}.hub-footer>span:first-child{align-items:center;gap:6px;display:inline-flex}.hub-footer img{opacity:.8;border-radius:4px;width:15px;height:15px}.hub-launch{border-radius:6px;position:relative}.hub-launch-logo{opacity:.82;border-radius:5px;width:17px;height:17px;transition:opacity .15s,transform .15s}.hub-launch:hover .hub-launch-logo{opacity:1;transform:translateY(-1px)}.hub-launch-label{display:none}.elvio-hub-room-overlay{z-index:120;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#020508b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.elvio-hub-room-modal{background:linear-gradient(155deg,#101a27fa,#070b10f7);border:1px solid #67e8f92e;border-radius:22px;width:min(860px,100vw - 24px);max-height:90vh;padding:22px;position:relative;overflow-y:auto;box-shadow:0 30px 100px #0000008c}.elvio-hub-room-modal .room-panel{box-shadow:none;background:0 0;border:0;padding:0}.elvio-hub-room-modal .room-panel-head{margin-bottom:14px;padding-right:38px}.hub-modal-close{z-index:2;width:36px;height:36px;color:var(--text);cursor:pointer;background:#ffffff09;border:1px solid #94a3b824;border-radius:10px;place-items:center;display:grid;position:absolute;top:12px;right:12px}.hub-modal-close:hover{border-color:#67e8f957}.elvio-hub-loading,.elvio-hub-empty{flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:100vh;display:flex}.elvio-hub-loading img,.elvio-hub-empty img{border-radius:24px;width:88px;height:88px;animation:1.8s ease-in-out infinite hubPulse;box-shadow:0 0 60px #67e8f93d}.elvio-hub-loading strong,.elvio-hub-empty h1{letter-spacing:-.04em;font-size:24px}.elvio-hub-loading span,.elvio-hub-empty p{color:var(--muted);font-size:12px}.elvio-hub-empty p{margin:0 0 12px}.elvio-hub-empty{text-align:center}@keyframes hubPulse{50%{transform:scale(1.04);box-shadow:0 0 82px #60a5fa42}}@media (width<=980px){.hub-topbar{flex-wrap:wrap;gap:10px}.hub-topbar-center{margin-left:0}.hub-topbar-right{margin-left:auto}.hub-layout{grid-template-columns:1fr}.hub-side{grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr);align-items:start;display:grid}.hub-hero{grid-row:span 2}.hub-quick-card{align-self:stretch}.hub-status-card{align-self:end}}@media (width<=680px){.elvio-hub{padding:10px}.hub-topbar{border-radius:17px;padding:10px}.hub-brand{min-width:0}.hub-brand img{border-radius:10px;width:38px;height:38px}.hub-brand strong{font-size:15px}.hub-topbar-center{order:4;width:100%}.hub-live{flex:1;justify-content:center}.hub-clock{min-width:auto}.hub-clock small{display:none}.hub-clock strong{font-size:20px}.hub-exit{padding:0 9px}.hub-side{display:flex}.hub-hero{padding:16px}.hub-hero-copy h1{font-size:32px}.hub-climate-hero{margin-top:14px}.hub-climate-main>strong{font-size:50px}.hub-room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.hub-room-card{min-height:158px;padding:11px}.hub-room-name{font-size:12.5px}.hub-room-readings>span{padding:4px 6px}.hub-room-readings strong{font-size:10px}.hub-room-footer{font-size:8.5px}.hub-scenes{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-footer{flex-direction:column;align-items:flex-start;gap:5px}}@media (width<=390px){.hub-icon-btn{width:34px;height:34px}.hub-topbar-right{gap:4px}.hub-brand small,.hub-clock{display:none}}.hub-devices-head{margin-top:15px}.hub-device-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.hub-device{min-height:64px;color:var(--text);text-align:left;cursor:pointer;background:linear-gradient(150deg,#111b28b8,#070b10b3);border:1px solid #94a3b81a;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .16s,background .16s,transform .16s;display:flex}.hub-device:hover{background:linear-gradient(150deg,#162637db,#080f16c2);border-color:#67e8f947;transform:translateY(-1px)}.hub-device.is-on{background:linear-gradient(150deg,#3b82f61a,#070b10bd);border-color:#60a5fa4d}.hub-device:disabled{cursor:wait;opacity:.55}.hub-device-icon{width:36px;height:36px;color:var(--hub-cyan);background:#22d3ee0d;border:1px solid #67e8f91f;border-radius:10px;flex:none;place-items:center;display:grid}.hub-device.is-on .hub-device-icon{color:#dbeafe;background:linear-gradient(135deg,#60a5fa33,#22d3ee14);border-color:#60a5fa52}.hub-device-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hub-device-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.hub-device-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.hub-device-state{width:29px;height:29px;color:var(--muted);border:1px solid #94a3b824;border-radius:9px;flex:none;place-items:center;display:grid}.hub-device.is-on .hub-device-state{color:#67e8f9;background:#3b82f61a;border-color:#60a5fa52}@media (width<=680px){.hub-device-grid{grid-template-columns:1fr}}.hub-gate-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.push-setup{flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;display:flex}.push-setup-head{align-items:flex-start;gap:11px;display:flex}.push-setup-head>div{flex:1;min-width:0}.push-setup-head strong{margin-bottom:3px;font-size:14px;display:block}.push-setup-head p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.push-setup-head .badge{flex:none}.push-setup-icon{width:38px;height:38px;color:var(--cyan,#67e8f9);background:#22d3ee0f;border:1px solid #67e8f929;border-radius:11px;flex:none;place-items:center;display:grid}.push-setup-icon.is-active{color:#6ee7b7;background:#34d39914;border-color:#34d39947}.push-setup-actions{flex-wrap:wrap;gap:8px;display:flex}.push-setup-note{color:var(--faint);font-size:10px}.push-prompt-mark{color:#a5f3fc;background:linear-gradient(135deg,#60a5fa40,#22d3ee29);border-radius:13px;flex:none;place-items:center;width:44px;height:44px;display:grid}.push-prompt{border-color:#22d3ee42}@media (width<=560px){.push-setup-head{align-items:flex-start}.push-setup-head .badge{display:none}}.push-admin-form{flex-direction:column;gap:12px;display:flex}
