:root{--bg-deep: #050912;--bg: #0a1220;--bg-rgb: 10, 18, 32;--bg-deep-rgb: 5, 9, 18;--bg-elevated: rgba(18, 30, 50, .55);--bg-card: rgba(18, 30, 50, .62);--bg-card-strong: rgba(22, 36, 58, .82);--card-from-rgb: 18, 30, 50;--card-to-rgb: 22, 36, 58;--stroke: rgba(143, 163, 184, .16);--stroke-strong: rgba(124, 222, 178, .28);--text: #e8eef6;--text-rgb: 232, 238, 246;--text-muted: #8fa3b8;--text-muted-rgb: 143, 163, 184;--accent: #7cdeb2;--accent-rgb: 124, 222, 178;--accent-deep: #2f9e7a;--accent-glow: rgba(124, 222, 178, .21);--on-accent: #04110c;--secondary: #5a96dc;--secondary-rgb: 90, 150, 220;--blue-glow: rgba(90, 150, 220, .17);--active: #7cdeb2;--active-rgb: 124, 222, 178;--control: #e8eef6;--control-rgb: 232, 238, 246;--heat: #ff9a4d;--heat-rgb: 255, 154, 77;--heat-glow: rgba(255, 154, 77, .27);--cool: #4fb3ff;--cool-rgb: 79, 179, 255;--cool-glow: rgba(79, 179, 255, .27);--activity: #7cdeb2;--activity-rgb: 124, 222, 178;--inactive: #6b7b8f;--inactive-rgb: 107, 123, 143;--warn: #e8b86d;--warn-rgb: 232, 184, 109;--warn-glow: rgba(232, 184, 109, .17);--danger: #e07a7a;--danger-rgb: 224, 122, 122;--danger-glow: rgba(224, 122, 122, .18);--brand: #f2f7fb;--glow: .6;--gradient: .6;--gradient-a: rgba(124, 222, 178, .084);--gradient-b: rgba(90, 150, 220, .096);--bg-glow-1: rgba(124, 222, 178, .156);--bg-glow-2: rgba(90, 150, 220, .12);--bg-glow-3: rgba(124, 222, 178, .042);--blur: 18px;--glass-saturate: 1.2;--glass-sheen: rgba(255, 255, 255, .05);--neutral-rgb: 255, 255, 255;--anim-intensity: .9;--anim-speed: 1;--shadow-alpha: .168;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--nav-h: 4.5rem;--radius-sm: .85rem;--radius-md: 1.25rem;--radius-lg: 1.75rem;--radius-xl: 2rem;--radius-pill: 999px;--shadow-card: 0 8px 32px rgba(0, 0, 0, .168), inset 0 1px 0 var(--glass-sheen);--shadow-card-hover: 0 12px 36px rgba(0, 0, 0, .192), inset 0 1px 0 var(--glass-sheen);--shadow-glow: 0 0 24px var(--accent-glow);--font-display: "Fraunces", Georgia, serif;--font-ui: "Outfit", "Segoe UI", sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1);--anim: 1;--dur-fast: calc(.18s * var(--anim));--dur: calc(.25s * var(--anim));--dur-slow: calc(.55s * var(--anim));--loop-play: paused;color-scheme:dark}html[data-anim=off]{--anim: 0;--loop-play: paused}html[data-anim=subtle]{--anim: 1;--loop-play: paused}html[data-anim=futuristic]{--anim: 1;--loop-play: running}html[data-anim=off] *,html[data-anim=off] *:before,html[data-anim=off] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}@media(prefers-reduced-motion:reduce){html:not([data-anim]){--anim: 0;--loop-play: paused}}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-ui);color:var(--text);background:radial-gradient(1100px 560px at 8% -8%,var(--bg-glow-1),transparent 55%),radial-gradient(900px 480px at 100% 0%,var(--bg-glow-2),transparent 52%),radial-gradient(680px 420px at 70% 100%,var(--bg-glow-3),transparent 48%),linear-gradient(168deg,var(--bg) 0%,var(--bg-deep) 50%,var(--bg) 100%);background-attachment:fixed;transition:background var(--dur-slow) ease,color var(--dur) ease;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100dvh;padding:calc(1rem + var(--safe-top)) max(1rem,env(safe-area-inset-right)) calc(var(--nav-h) + var(--safe-bottom) + 1rem) max(1rem,env(safe-area-inset-left));max-width:72rem;margin:0 auto}.brand-mark{font-family:var(--font-display);font-weight:650;font-size:clamp(2rem,7vw,2.85rem);letter-spacing:-.03em;color:var(--brand);line-height:1.05;margin:0}.brand-mark span{color:var(--accent);text-shadow:0 0 28px var(--accent-glow)}.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:500;margin:0}.page-title{font-family:var(--font-display);font-size:clamp(1.55rem,4.5vw,2.1rem);font-weight:650;margin:.15rem 0 .3rem;letter-spacing:-.02em}.lede{color:var(--text-muted);margin:0 0 1rem;max-width:36rem;line-height:1.45;font-size:.95rem}.section{margin-top:1.35rem;animation:rise var(--dur-slow) var(--ease-out) both}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.section-head h2{font-family:var(--font-display);font-size:1.15rem;font-weight:650;margin:0;letter-spacing:-.01em}.section-head .count{color:var(--text-muted);font-size:.8rem}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-soft{0%,to{opacity:.5}50%{opacity:1}}@keyframes glow-breathe{0%,to{box-shadow:0 0 18px rgba(var(--accent-rgb),.18)}50%{box-shadow:0 0 28px rgba(var(--accent-rgb),.32)}}.live-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent-glow);animation:pulse-soft calc(2s / var(--anim-speed)) ease infinite;animation-play-state:var(--loop-play);display:inline-block}.live-dot.sim{background:var(--warn);box-shadow:0 0 10px var(--warn-glow);animation:none}.live-dot.offline{background:var(--inactive);box-shadow:none;animation:none}.topbar-meta.sim{color:var(--warn);border-color:rgba(var(--warn-rgb),.3);background:rgba(var(--warn-rgb),.08)}.glass{background:var(--bg-card);border:1px solid var(--stroke);border-radius:var(--radius-md);box-shadow:var(--shadow-card);backdrop-filter:blur(var(--blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--blur)) saturate(var(--glass-saturate));transition:transform .25s var(--ease-out),border-color .25s ease,box-shadow .25s ease,background .25s ease}.glass:hover{border-color:rgba(var(--text-muted-rgb),.24);box-shadow:var(--shadow-card-hover)}.glass-press:active{transform:scale(.985)}.glass-hero{border-radius:var(--radius-xl);padding:1.35rem 1.25rem 1.4rem;background:linear-gradient(145deg,var(--gradient-a),transparent 42%),linear-gradient(220deg,var(--gradient-b),transparent 50%),var(--bg-card-strong);border-color:rgba(var(--accent-rgb),.18);animation:glow-breathe calc(5s / var(--anim-speed)) ease-in-out infinite;animation-play-state:var(--loop-play)}.glass-hero .hero-brand{font-family:var(--font-display);font-size:clamp(1.65rem,5vw,2.15rem);font-weight:650;letter-spacing:-.03em;line-height:1.1;margin:.15rem 0 .45rem}.glass-hero .hero-brand span{color:var(--accent)}.glass-hero .hero-sub{color:var(--text-muted);margin:0;font-size:.92rem;line-height:1.4;max-width:28rem}.hero-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}@media(min-width:720px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.kpi-card{padding:1rem .95rem;display:flex;flex-direction:column;gap:.55rem;min-height:6.25rem}.kpi-card .kpi-icon{width:2rem;height:2rem;border-radius:.7rem;display:grid;place-items:center;background:rgba(var(--accent-rgb),.1);color:var(--accent);box-shadow:0 0 16px rgba(var(--accent-rgb),.12)}.kpi-card .kpi-icon.warn{background:rgba(var(--warn-rgb),.12);color:var(--warn);box-shadow:0 0 16px var(--warn-glow)}.kpi-card .kpi-icon.danger{background:rgba(var(--danger-rgb),.12);color:var(--danger)}.kpi-card .kpi-icon.blue{background:rgba(var(--secondary-rgb),.12);color:var(--secondary);box-shadow:0 0 16px var(--blue-glow)}.kpi-card strong{font-family:var(--font-display);font-size:1.55rem;font-weight:650;letter-spacing:-.02em;line-height:1}.kpi-card span{color:var(--text-muted);font-size:.78rem}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}@media(min-width:720px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.card-grid.dense{grid-template-columns:1fr}@media(min-width:640px){.card-grid.dense{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.card-grid.dense{grid-template-columns:repeat(3,minmax(0,1fr))}}.device-card{padding:1rem;display:flex;flex-direction:column;gap:.75rem;min-height:7.5rem;cursor:default;-webkit-user-select:none;user-select:none}.device-card.is-on{border-color:rgba(var(--accent-rgb),.32);background:linear-gradient(160deg,rgba(var(--accent-rgb),.12),transparent 55%),var(--bg-card);box-shadow:var(--shadow-card),0 0 22px rgba(var(--accent-rgb),.12)}.device-card.is-critical{border-color:rgba(var(--danger-rgb),.4);background:linear-gradient(160deg,rgba(var(--danger-rgb),.12),transparent 55%),var(--bg-card)}.device-card.is-warn{border-color:rgba(var(--warn-rgb),.35)}.device-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.device-card-icon{width:2.4rem;height:2.4rem;border-radius:.85rem;display:grid;place-items:center;background:rgba(var(--neutral-rgb),.04);color:var(--text-muted);transition:color .2s ease,background .2s ease,box-shadow .2s ease}.device-card.is-on .device-card-icon{color:var(--accent);background:rgba(var(--accent-rgb),.14);box-shadow:0 0 18px rgba(var(--accent-rgb),.2)}.device-card-title{font-weight:560;font-size:.95rem;line-height:1.25}.device-card-meta{color:var(--text-muted);font-size:.78rem;margin-top:.15rem;text-transform:capitalize}.device-card-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.status-pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:500;letter-spacing:.02em;padding:.28rem .55rem;border-radius:999px;background:rgba(var(--accent-rgb),.12);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.2)}.status-pill.warn{background:rgba(var(--warn-rgb),.12);color:var(--warn);border-color:rgba(var(--warn-rgb),.25)}.status-pill.off,.status-pill.muted{background:rgba(var(--neutral-rgb),.04);color:var(--text-muted);border-color:var(--stroke)}.status-pill.danger{background:rgba(var(--danger-rgb),.14);color:var(--danger);border-color:rgba(var(--danger-rgb),.3)}.status-pill.locked-action{background:rgba(var(--neutral-rgb),.03);color:var(--text-muted);border-color:rgba(var(--text-muted-rgb),.18);gap:.35rem}.scene-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}@media(min-width:720px){.scene-row{grid-template-columns:repeat(4,minmax(0,1fr))}}.scene-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--stroke);background:var(--bg-card);border-radius:var(--radius-md);padding:1rem .85rem;display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;cursor:not-allowed;opacity:.88;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(calc(var(--blur) * .8));backdrop-filter:blur(calc(var(--blur) * .8));transition:transform .2s var(--ease-out),border-color .2s ease,background .2s ease}.scene-btn:hover{border-color:rgba(var(--accent-rgb),.28);background:rgba(var(--accent-rgb),.06)}.scene-btn:active{transform:scale(.97)}.scene-btn .scene-icon{width:2.2rem;height:2.2rem;border-radius:.75rem;display:grid;place-items:center;background:rgba(var(--accent-rgb),.1);color:var(--accent)}.scene-btn strong{font-size:.9rem;font-weight:560}.scene-btn small{color:var(--text-muted);font-size:.72rem}.thermo-card{padding:1.15rem 1.1rem;display:grid;gap:.85rem}.thermo-temp{font-family:var(--font-display);font-size:clamp(2.4rem,8vw,3rem);font-weight:650;letter-spacing:-.04em;line-height:1}.thermo-temp small{font-size:.45em;color:var(--text-muted);font-weight:500;margin-left:.05em}.thermo-controls{display:flex;align-items:center;gap:.65rem}.thermo-step{width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--stroke);background:rgba(var(--neutral-rgb),.04);color:var(--text-muted);display:grid;place-items:center;cursor:not-allowed;font-size:1.2rem;font-weight:500;transition:border-color .2s ease,background .2s ease}.thermo-step:hover{border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.06)}.thermo-setpoint{flex:1;text-align:center}.thermo-setpoint strong{display:block;font-variant-numeric:tabular-nums;font-size:1.15rem}.thermo-setpoint span{color:var(--text-muted);font-size:.72rem}.thermo-tags{display:flex;flex-wrap:wrap;gap:.4rem}.secure-action{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:999px;border:1px solid rgba(var(--text-muted-rgb),.2);background:linear-gradient(180deg,rgba(var(--neutral-rgb),.05),rgba(var(--neutral-rgb),.02));color:var(--text-muted);font-size:.75rem;font-weight:500;font-family:inherit;cursor:not-allowed;box-shadow:inset 0 1px rgba(var(--neutral-rgb),.04)}button.secure-action.is-action{cursor:pointer}.mfa-code{font-size:1.6rem;letter-spacing:.35rem;text-align:center}.mfa-dialog-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;align-items:end;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#050912b8}.mfa-dialog{width:min(100%,24rem);padding:1.25rem;display:flex;flex-direction:column;gap:.85rem}.mfa-dialog h2{margin:0}.mfa-dialog label{display:flex;flex-direction:column;gap:.35rem;color:var(--text-muted)}.mfa-dialog input{border:1px solid var(--stroke);background:rgba(var(--card-from-rgb),.55);border-radius:var(--radius-sm);padding:.85rem .95rem;color:var(--text)}.secure-action svg{width:.9rem;height:.9rem;opacity:.85}.camera-grid{display:grid;grid-template-columns:1fr;gap:.85rem}@media(min-width:640px){.camera-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.camera-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.camera-card{position:relative;overflow:hidden;border-radius:var(--radius-md);aspect-ratio:16 / 10;background:var(--bg);border:1px solid var(--stroke);box-shadow:var(--shadow-card)}.camera-card img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9;transition:transform .65s var(--ease-out)}.camera-card:hover img{transform:scale(1.04)}.camera-card.is-offline img{filter:grayscale(.85) brightness(.55)}.camera-overlay-top{position:absolute;top:.65rem;left:.65rem;right:.65rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;z-index:2}.camera-live{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;background:rgba(var(--bg-deep-rgb),.55);-webkit-backdrop-filter:blur(calc(var(--blur) * .55));backdrop-filter:blur(calc(var(--blur) * .55));font-size:.7rem;font-weight:560;letter-spacing:.04em;text-transform:uppercase;border:1px solid rgba(var(--neutral-rgb),.08)}.camera-caption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .9rem .85rem;background:linear-gradient(transparent,rgba(var(--bg-deep-rgb),.92));display:flex;justify-content:space-between;align-items:flex-end;gap:.5rem;z-index:2}.camera-caption strong{display:block;font-size:.95rem;font-weight:560}.camera-caption small{color:var(--text-muted);font-size:.72rem}.feature-card{padding:1.35rem 1.2rem;border-radius:var(--radius-lg)}.feature-card .feature-value{font-family:var(--font-display);font-size:clamp(2.8rem,10vw,3.6rem);font-weight:650;letter-spacing:-.04em;line-height:1;margin:.35rem 0 .15rem}.feature-card .feature-label{color:var(--text-muted);font-size:.85rem}.pool-hero{background:linear-gradient(155deg,rgba(var(--secondary-rgb),.2),transparent 45%),linear-gradient(210deg,rgba(var(--accent-rgb),.12),transparent 50%),var(--bg-card-strong);border-color:rgba(var(--secondary-rgb),.25)}.pool-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}@media(min-width:640px){.pool-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.pool-stat{padding:.85rem;border-radius:var(--radius-sm);background:rgba(var(--neutral-rgb),.03);border:1px solid var(--stroke)}.pool-stat strong{display:block;font-size:1.15rem;font-weight:600;margin-bottom:.15rem}.pool-stat span{color:var(--text-muted);font-size:.75rem}.robot-card{padding:1.25rem;border-radius:var(--radius-lg);display:grid;gap:1rem}.robot-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.robot-avatar{width:3.2rem;height:3.2rem;border-radius:1rem;display:grid;place-items:center;background:linear-gradient(145deg,rgba(var(--accent-rgb),.2),rgba(var(--secondary-rgb),.12));color:var(--accent);box-shadow:0 0 24px rgba(var(--accent-rgb),.18)}.robot-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.robot-stat{text-align:center;padding:.65rem .35rem;border-radius:var(--radius-sm);background:rgba(var(--neutral-rgb),.03);border:1px solid var(--stroke)}.robot-stat strong{display:block;font-variant-numeric:tabular-nums;font-size:1rem}.robot-stat span{color:var(--text-muted);font-size:.68rem}.battery-bar{height:.35rem;border-radius:999px;background:rgba(var(--neutral-rgb),.08);overflow:hidden;margin-top:.35rem}.battery-bar>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-deep),var(--accent));box-shadow:0 0 10px var(--accent-glow)}.robot-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.robot-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--stroke);background:rgba(var(--neutral-rgb),.03);border-radius:var(--radius-sm);padding:.65rem .4rem;font-size:.75rem;color:var(--text-muted);cursor:not-allowed;transition:border-color .2s ease,background .2s ease}.robot-action:hover{border-color:rgba(var(--accent-rgb),.28);background:rgba(var(--accent-rgb),.06)}.alert-card{padding:.95rem 1rem;display:flex;gap:.75rem;align-items:flex-start}.alert-card .alert-mark{width:.55rem;height:.55rem;border-radius:50%;margin-top:.4rem;flex-shrink:0;background:var(--accent);box-shadow:0 0 10px var(--accent-glow)}.alert-card.warn .alert-mark{background:var(--warn);box-shadow:0 0 10px var(--warn-glow)}.alert-card.critical .alert-mark{background:var(--danger);box-shadow:0 0 10px var(--danger-glow)}.alert-card strong{display:block;margin-bottom:.15rem;font-size:.95rem}.alert-card p{margin:0;color:var(--text-muted);font-size:.85rem;line-height:1.35}.alert-stack{display:flex;flex-direction:column;gap:.65rem}.nav{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:.4rem .55rem calc(.4rem + var(--safe-bottom));background:linear-gradient(180deg,transparent,rgba(var(--bg-deep-rgb),.88) 22%);backdrop-filter:blur(var(--blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--blur)) saturate(var(--glass-saturate))}.nav-inner{max-width:72rem;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:.2rem;padding:.3rem;border-radius:1.25rem;background:rgba(var(--card-from-rgb),.72);border:1px solid rgba(var(--text-muted-rgb),.12);box-shadow:0 10px 40px #00000059}.nav a{display:flex;flex-direction:column;align-items:center;gap:.18rem;padding:.5rem .1rem;font-size:.64rem;color:var(--text-muted);border-radius:.85rem;transition:color .22s ease,background .22s ease,transform .18s var(--ease-out),box-shadow .22s ease}.nav a:active{transform:scale(.94)}.nav a.active{color:var(--accent);background:rgba(var(--accent-rgb),.12);box-shadow:0 0 18px rgba(var(--accent-rgb),.12)}.nav a svg{width:1.3rem;height:1.3rem;opacity:.92}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left))}.login-panel{width:min(100%,24.5rem);padding:1.75rem 1.4rem;animation:rise .65s var(--ease-out) both}.login-panel form{display:flex;flex-direction:column;gap:.85rem;margin-top:1.5rem}.login-panel label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.login-panel input{border:1px solid var(--stroke);background:rgba(var(--card-from-rgb),.55);border-radius:var(--radius-sm);padding:.85rem .95rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.login-panel input:focus{border-color:rgba(var(--accent-rgb),.55);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.btn{border:none;border-radius:var(--radius-sm);padding:.9rem 1.1rem;background:linear-gradient(135deg,var(--accent),var(--accent-deep) 55%,var(--accent-deep));color:var(--on-accent);font-weight:600;cursor:pointer;transition:transform .15s ease,filter .15s ease,box-shadow .2s ease;box-shadow:0 8px 24px rgba(var(--accent-rgb),.28)}.btn:hover{filter:brightness(1.06)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:wait}.btn-ghost{background:transparent;border:1px solid var(--stroke);color:var(--text);box-shadow:none}.error{color:var(--danger);font-size:.9rem}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem}.topbar-meta{display:flex;align-items:center;gap:.45rem;color:var(--text-muted);font-size:.75rem;padding:.4rem .65rem;border-radius:999px;background:rgba(var(--neutral-rgb),.03);border:1px solid var(--stroke);white-space:nowrap}.inventory-note{margin-top:1.5rem}.icon-svg{width:1.15rem;height:1.15rem;display:block}.icon-svg.lg{width:1.45rem;height:1.45rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.page-enter{animation:page-in var(--dur-slow) var(--ease-out) both}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card-grid>*,.kpi-grid>*,.camera-grid>*,.scene-row>*{animation:rise var(--dur-slow) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),12) * 35ms * var(--anim))}.topbar-link{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);background:rgba(var(--neutral-rgb),.03);border:1px solid var(--stroke);color:var(--text-muted);transition:color var(--dur) ease,border-color var(--dur) ease,transform var(--dur-fast) var(--ease-out)}.topbar-link:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.3)}.topbar-link:active{transform:scale(.92)}.topbar-link.active{color:var(--accent);background:rgba(var(--accent-rgb),.12)}.topbar-right{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.device-card.is-on{border-color:rgba(var(--active-rgb),.32);background:linear-gradient(160deg,rgba(var(--active-rgb),calc(.12 * var(--gradient) / .6)),transparent 55%),var(--bg-card);box-shadow:var(--shadow-card),0 0 22px rgba(var(--active-rgb),calc(.12 * var(--glow) / .6))}.device-card.is-on .device-card-icon{color:var(--active);background:rgba(var(--active-rgb),.14);box-shadow:0 0 18px rgba(var(--active-rgb),calc(.2 * var(--glow) / .6))}.light-halo{position:relative;isolation:isolate}.light-halo:after{content:"";position:absolute;top:-.35rem;right:-.35rem;bottom:-.35rem;left:-.35rem;border-radius:inherit;background:radial-gradient(circle at 50% 30%,rgba(var(--active-rgb),.35),transparent 70%);opacity:0;z-index:-1;transition:opacity var(--dur-slow) ease;pointer-events:none}.device-card.is-on .light-halo:after{opacity:calc(var(--glow) * .9);animation:halo-breathe calc(3.2s / var(--anim-speed)) ease-in-out infinite;animation-play-state:var(--loop-play)}@keyframes halo-breathe{0%,to{transform:scale(1)}50%{transform:scale(calc(1 + .12 * var(--anim-intensity)))}}.device-card.is-off .device-card-icon{color:var(--inactive)}.thermo-card.is-heating{border-color:rgba(var(--heat-rgb),.35);box-shadow:var(--shadow-card),0 0 28px var(--heat-glow)}.thermo-card.is-cooling{border-color:rgba(var(--cool-rgb),.35);box-shadow:var(--shadow-card),0 0 28px var(--cool-glow)}.thermo-card.is-heating,.thermo-card.is-cooling{transition:border-color var(--dur-slow) ease,box-shadow var(--dur-slow) ease}.thermo-body{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.thermo-ring{position:relative;width:6.4rem;height:6.4rem;display:grid;place-items:center;flex-shrink:0}.thermo-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(135deg)}.thermo-ring .ring-track{fill:none;stroke:rgba(var(--text-muted-rgb),.18);stroke-width:7;stroke-linecap:round}.thermo-ring .ring-value{fill:none;stroke:var(--ring-color, var(--accent));stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset var(--dur-slow) var(--ease-out),stroke var(--dur-slow) ease;filter:drop-shadow(0 0 6px var(--ring-glow, transparent))}.thermo-ring .ring-setpoint{fill:var(--text);stroke:var(--bg-deep);stroke-width:1.5;transition:transform var(--dur-slow) var(--ease-out)}.thermo-ring.is-heating{--ring-color: var(--heat);--ring-glow: var(--heat-glow)}.thermo-ring.is-cooling{--ring-color: var(--cool);--ring-glow: var(--cool-glow)}.thermo-ring.is-idle{--ring-color: var(--inactive);--ring-glow: transparent}.thermo-ring:before{content:"";position:absolute;top:.55rem;right:.55rem;bottom:.55rem;left:.55rem;border-radius:50%;background:radial-gradient(circle,var(--ring-glow, transparent),transparent 70%);opacity:0;transition:opacity var(--dur-slow) ease}.thermo-ring.is-heating:before,.thermo-ring.is-cooling:before{opacity:.9;animation:halo-breathe calc(2.8s / var(--anim-speed)) ease-in-out infinite;animation-play-state:var(--loop-play)}.thermo-ring-value{position:relative;font-family:var(--font-display);font-size:1.55rem;font-weight:650;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.thermo-ring-value small{font-size:.5em;color:var(--text-muted);font-weight:500}.digit-swap{display:inline-block;animation:digit-in var(--dur) var(--ease-out) both}@keyframes digit-in{0%{opacity:0;transform:translateY(.25em)}to{opacity:1;transform:translateY(0)}}.thermo-side{display:grid;gap:.5rem}.thermo-state{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-muted)}.thermo-state i{width:.5rem;height:.5rem;border-radius:50%;background:var(--inactive);display:inline-block;transition:background var(--dur) ease,box-shadow var(--dur) ease}.thermo-state.heating i{background:var(--heat);box-shadow:0 0 10px var(--heat-glow)}.thermo-state.cooling i{background:var(--cool);box-shadow:0 0 10px var(--cool-glow)}.thermo-step{transition:border-color var(--dur) ease,background var(--dur) ease,transform var(--dur-fast) var(--ease-out)}.thermo-step:active:not(:disabled){transform:scale(.9)}.thermo-step:disabled{opacity:.6}.lock-glyph{width:1.45rem;height:1.45rem;display:block;overflow:visible}.lock-glyph .shackle{transform-origin:16px 11px;transition:transform var(--dur-slow) var(--ease-out)}.lock-glyph.is-unlocked .shackle{transform:translateY(-2.5px) rotate(-24deg)}.lock-glyph .body{transition:fill var(--dur) ease}.device-card.is-locked .device-card-icon{color:var(--activity);background:rgba(var(--activity-rgb),.12);box-shadow:0 0 16px rgba(var(--activity-rgb),calc(.18 * var(--glow) / .6))}.device-card.is-unlocked .device-card-icon{color:var(--warn);background:rgba(var(--warn-rgb),.12)}.garage-glyph{width:1.5rem;height:1.5rem;display:block}.garage-glyph .door{transform-origin:12px 10px;transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-slow) ease}.garage-glyph.is-open .door{transform:scaleY(.25);opacity:.7}.garage-glyph .moving{opacity:0}.garage-glyph.is-moving .moving{opacity:1;animation:pulse-soft 1s ease infinite}.pool-hero{position:relative;overflow:hidden;background:linear-gradient(155deg,rgba(var(--cool-rgb),calc(.2 * var(--gradient) / .6)),transparent 45%),linear-gradient(210deg,var(--gradient-a),transparent 50%),var(--bg-card-strong);border-color:rgba(var(--cool-rgb),.25)}.pool-hero.is-winterized{background:linear-gradient(155deg,rgba(var(--text-muted-rgb),.12),transparent 45%),var(--bg-card-strong);border-color:rgba(var(--text-muted-rgb),.22)}.pool-water{position:absolute;left:-20%;right:-20%;bottom:-.5rem;height:38%;pointer-events:none;opacity:calc(var(--glow) * .55);z-index:0}.pool-water span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:45% 55% 40% 60%/60% 40%;background:linear-gradient(180deg,rgba(var(--cool-rgb),.22),rgba(var(--cool-rgb),.04));animation:water-drift calc(9s / var(--anim-speed)) ease-in-out infinite;animation-play-state:var(--loop-play);will-change:transform}.pool-water span:nth-child(2){animation-duration:calc(13s / var(--anim-speed));animation-direction:reverse;opacity:.6;border-radius:55% 45% 60% 40%/40% 60%}@keyframes water-drift{0%,to{transform:translate3d(-3%,0,0) rotate(-1deg)}50%{transform:translate3d(3%,-6%,0) rotate(1deg)}}.pool-heat{position:absolute;right:1.2rem;top:1.1rem;width:3.2rem;height:3.2rem;pointer-events:none}.pool-heat:before,.pool-heat:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1.5px solid rgba(var(--heat-rgb),.55);opacity:0;animation:heat-ripple calc(2.6s / var(--anim-speed)) ease-out infinite;animation-play-state:var(--loop-play)}.pool-heat:after{animation-delay:calc(1.3s / var(--anim-speed))}@keyframes heat-ripple{0%{transform:scale(.8);opacity:.7}to{transform:scale(calc(1 + .65 * var(--anim-intensity)));opacity:0}}.pool-hero>:not(.pool-water):not(.pool-heat){position:relative;z-index:1}.temp-gauge{height:.5rem;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--cool),var(--accent) 50%,var(--heat));position:relative;margin-top:.9rem;opacity:.85}.temp-gauge i{position:absolute;top:50%;width:1rem;height:1rem;border-radius:50%;background:var(--text);border:2px solid var(--bg-deep);transform:translate(-50%,-50%);transition:left var(--dur-slow) var(--ease-out);box-shadow:0 0 10px rgba(var(--text-rgb),.4)}.temp-gauge-labels{display:flex;justify-content:space-between;font-size:.68rem;color:var(--text-muted);margin-top:.35rem}.status-pill.season{background:rgba(var(--cool-rgb),.1);color:var(--cool);border-color:rgba(var(--cool-rgb),.25)}.status-pill.sim{background:rgba(var(--warn-rgb),.1);color:var(--warn);border-color:rgba(var(--warn-rgb),.25)}.device-card.is-seasonal{opacity:.82}.device-card.is-seasonal .device-card-icon{color:var(--inactive);background:rgba(var(--inactive-rgb),.12)}.winter-banner{display:flex;align-items:center;gap:.85rem;padding:.95rem 1.05rem;border-color:rgba(var(--cool-rgb),.3);background:linear-gradient(135deg,rgba(var(--cool-rgb),.14),transparent 60%),var(--bg-card)}.winter-banner .winter-icon{width:2.4rem;height:2.4rem;border-radius:.85rem;display:grid;place-items:center;background:rgba(var(--cool-rgb),.14);color:var(--cool);flex-shrink:0}.winter-banner strong{display:block;font-size:.95rem}.winter-banner p{margin:.1rem 0 0;color:var(--text-muted);font-size:.8rem;line-height:1.35}.history-list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.history-list li{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem;padding:.5rem 0;border-bottom:1px solid var(--stroke)}.history-list li:last-child{border-bottom:0}.history-list span{color:var(--text-muted)}.suggest-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.85rem 1rem;border-color:rgba(var(--warn-rgb),.3)}.suggest-banner p{margin:0;flex:1 1 14rem;font-size:.88rem;line-height:1.35}.suggest-banner .actions{display:flex;gap:.45rem}.btn-sm{padding:.55rem .85rem;font-size:.8rem;border-radius:var(--radius-sm)}.btn:disabled{cursor:not-allowed}.btn-danger{background:linear-gradient(135deg,var(--danger),rgba(var(--danger-rgb),.7));color:#fff;box-shadow:0 8px 24px var(--danger-glow)}.settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;padding:.25rem;border-radius:var(--radius-md);background:rgba(var(--card-from-rgb),.6);border:1px solid var(--stroke);margin-bottom:1rem}@media(min-width:720px){.settings-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}.settings-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);padding:.65rem .4rem;border-radius:calc(var(--radius-md) - .25rem);font-size:.82rem;font-weight:500;cursor:pointer;transition:color var(--dur) ease,background var(--dur) ease,transform var(--dur-fast) var(--ease-out)}.settings-tabs button:active{transform:scale(.96)}.settings-tabs button.active{color:var(--accent);background:rgba(var(--accent-rgb),.12);box-shadow:0 0 18px rgba(var(--accent-rgb),.1)}.settings-card{padding:1.1rem 1.1rem 1.2rem;display:grid;gap:.9rem}.settings-card h3{margin:0;font-size:1rem;font-weight:600}.settings-card .hint{margin:0;color:var(--text-muted);font-size:.82rem;line-height:1.4}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;border-top:1px solid var(--stroke)}.settings-row:first-of-type{border-top:0}.settings-row label,.settings-row .label{font-size:.9rem}.settings-row .sub{display:block;color:var(--text-muted);font-size:.75rem;margin-top:.1rem}.settings-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}@media(min-width:720px){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.theme-swatch{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;padding:.75rem;border-radius:var(--radius-md);border:1px solid var(--stroke);background:var(--bg-card);color:var(--text);cursor:pointer;display:grid;gap:.6rem;transition:border-color var(--dur) ease,box-shadow var(--dur) ease,transform var(--dur-fast) var(--ease-out)}.theme-swatch:active{transform:scale(.97)}.theme-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.25),var(--shadow-glow)}.theme-preview{height:3.6rem;border-radius:calc(var(--radius-md) - .35rem);position:relative;overflow:hidden;background:var(--p-bg)}.theme-preview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 80% at 10% 0%,var(--p-glow1),transparent 60%),radial-gradient(60% 80% at 100% 20%,var(--p-glow2),transparent 60%)}.theme-preview i{position:absolute;left:.5rem;right:.5rem;bottom:.45rem;height:1.4rem;border-radius:.45rem;background:var(--p-card);border:1px solid var(--p-stroke)}.theme-preview i:after{content:"";position:absolute;left:.4rem;top:50%;width:.6rem;height:.6rem;border-radius:50%;transform:translateY(-50%);background:var(--p-accent);box-shadow:0 0 10px var(--p-accent)}.theme-swatch strong{font-size:.88rem;font-weight:600;display:block}.theme-swatch small{color:var(--text-muted);font-size:.72rem;line-height:1.3;display:block}.color-group h4{margin:.6rem 0 .25rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.color-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.6rem;padding:.45rem 0;border-top:1px solid var(--stroke);font-size:.88rem}.color-row input[type=text]{width:6.2rem;border:1px solid var(--stroke);background:rgba(var(--card-from-rgb),.55);border-radius:var(--radius-sm);padding:.45rem .55rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;letter-spacing:.04em;outline:none;text-transform:lowercase}.color-row input[type=text]:focus{border-color:rgba(var(--accent-rgb),.55)}.color-row input[type=text].invalid{border-color:rgba(var(--danger-rgb),.7)}.color-chip{position:relative;width:2.2rem;height:2.2rem;border-radius:.7rem;border:1px solid rgba(var(--neutral-rgb),.14);box-shadow:inset 0 0 0 1px #00000040;overflow:hidden;cursor:pointer}.color-chip input[type=color]{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;width:200%;height:200%;border:0;padding:0;opacity:0;cursor:pointer}.slider-row{display:grid;grid-template-columns:1fr auto;gap:.25rem .75rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--stroke)}.slider-row label{font-size:.88rem}.slider-row output{font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--text-muted)}.slider-row input[type=range]{grid-column:1 / -1;width:100%;accent-color:var(--accent);height:1.6rem}.switch{position:relative;width:2.9rem;height:1.7rem;flex-shrink:0;border-radius:var(--radius-pill);background:rgba(var(--inactive-rgb),.35);border:1px solid var(--stroke);cursor:pointer;transition:background var(--dur) ease,border-color var(--dur) ease}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer}.switch i{position:absolute;top:.15rem;left:.15rem;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--text);transition:transform var(--dur) var(--ease-out),background var(--dur) ease;pointer-events:none}.switch.on{background:rgba(var(--accent-rgb),.45);border-color:rgba(var(--accent-rgb),.5)}.switch.on i{transform:translate(1.2rem);background:var(--accent)}.switch:disabled,.switch.disabled{opacity:.5;cursor:not-allowed}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;padding:.8rem .85rem;border-radius:var(--radius-md);border:1px solid var(--stroke);background:rgba(var(--neutral-rgb),.03);color:var(--text);cursor:pointer;display:grid;gap:.25rem;transition:border-color var(--dur) ease,background var(--dur) ease,transform var(--dur-fast) var(--ease-out)}.segmented button:active{transform:scale(.97)}.segmented button.active{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.1);box-shadow:0 0 16px rgba(var(--accent-rgb),.1)}.segmented strong{font-size:.88rem;font-weight:600}.segmented small{color:var(--text-muted);font-size:.72rem;line-height:1.3}@media(max-width:480px){.segmented{grid-template-columns:1fr}}.preview-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.preview-strip .device-card{min-height:6rem}.equip-row{display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--stroke)}.equip-row strong{font-size:.9rem;font-weight:560}.equip-row .sub{display:block;color:var(--text-muted);font-size:.75rem;margin-top:.1rem;line-height:1.35}.equip-row .equip-actions{display:flex;gap:.4rem;align-items:center}.date-input{border:1px solid var(--stroke);background:rgba(var(--card-from-rgb),.55);border-radius:var(--radius-sm);padding:.45rem .55rem;font-size:.85rem;width:5.5rem;text-align:center;outline:none}.date-input:focus{border-color:rgba(var(--accent-rgb),.55)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:end center;padding:1rem;background:rgba(var(--bg-deep-rgb),.6);backdrop-filter:blur(calc(var(--blur) * .4));-webkit-backdrop-filter:blur(calc(var(--blur) * .4));animation:fade-in var(--dur) ease both}@media(min-width:640px){.modal-backdrop{place-items:center}}.modal{width:min(100%,26rem);padding:1.25rem 1.2rem;border-radius:var(--radius-lg);animation:modal-in var(--dur-slow) var(--ease-out) both;margin-bottom:calc(var(--safe-bottom) + .5rem)}.modal h3{margin:0 0 .4rem;font-family:var(--font-display);font-size:1.2rem}.modal p{margin:0 0 .6rem;color:var(--text-muted);font-size:.9rem;line-height:1.4}.modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.safety-note{display:flex;gap:.5rem;align-items:flex-start;font-size:.78rem;color:var(--text-muted);padding:.6rem .75rem;border-radius:var(--radius-sm);background:rgba(var(--warn-rgb),.07);border:1px solid rgba(var(--warn-rgb),.2);line-height:1.35}.safety-note svg{flex-shrink:0;color:var(--warn);margin-top:.05rem}.source-line{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;letter-spacing:.01em;color:var(--text-muted);margin-top:.1rem;min-width:0}.source-line span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-dot{width:.38rem;height:.38rem;border-radius:50%;background:var(--text-muted);flex-shrink:0}.source-line.tone-sim .source-dot{background:var(--warn);opacity:.8}.source-line.tone-ok .source-dot{background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.source-line.tone-warn{color:var(--warn)}.source-line.tone-warn .source-dot{background:var(--warn)}.source-line.tone-danger{color:var(--danger)}.source-line.tone-danger .source-dot{background:var(--danger)}.source-line.tone-off .source-dot,.source-line.tone-muted .source-dot{background:var(--inactive)}.source-line.tone-season{color:var(--text-muted)}.list-source,.leak-source{margin-top:.5rem;padding-left:.25rem}.device-card.is-unknown,.access-row.is-unknown,.leak-row.is-unknown{border-style:dashed;border-color:rgba(var(--warn-rgb),.35)}.device-card.is-unknown .device-card-icon,.access-row.is-unknown .access-icon{color:var(--warn);background:rgba(var(--warn-rgb),.08);box-shadow:none}.lock-glyph.is-unknown,.garage-glyph.is-unknown{opacity:.85}.thermo-card.is-unreliable .thermo-ring,.thermo-card.is-unreliable .thermo-setpoint{opacity:.45;filter:saturate(.4)}.camera-card[data-availability=stale] img,.camera-card[data-availability=unknown] img,.camera-card[data-availability=error] img{filter:grayscale(.6) brightness(.7)}.conn-banner{display:flex;gap:.65rem;align-items:flex-start;margin:0 0 .9rem;padding:.7rem .9rem;border-radius:var(--radius-sm);border:1px solid rgba(var(--warn-rgb),.35);background:rgba(var(--warn-rgb),.1);color:var(--text);font-size:.82rem;line-height:1.35;animation:fade-in var(--dur) ease both}.conn-banner svg{flex-shrink:0;color:var(--warn);margin-top:.1rem}.conn-banner strong{display:block;font-weight:600}.conn-banner span{color:var(--text-muted)}.conn-banner.danger{border-color:rgba(var(--danger-rgb),.4);background:rgba(var(--danger-rgb),.1)}.conn-banner.danger svg{color:var(--danger)}.card-grid.fit{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:720px){.card-grid.fit{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}}@media(min-width:1024px){.card-grid.fit{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}}.security-hero{padding:1.15rem 1.2rem}.water-layout{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:720px){.water-layout{grid-template-columns:minmax(13rem,1fr) 2fr;align-items:start}}.leak-panel{padding:.35rem .75rem .75rem;animation:rise var(--dur-slow) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),12) * 35ms * var(--anim))}.leak-list{list-style:none;margin:0;padding:0}.leak-row{display:grid;grid-template-columns:2rem 1fr auto;align-items:center;gap:.65rem;padding:.6rem .25rem;border-bottom:1px solid var(--stroke);border-radius:.5rem}.leak-row:last-child{border-bottom:0}.leak-row.is-critical{background:rgba(var(--danger-rgb),.08);padding-left:.5rem;padding-right:.5rem}.leak-row.is-unknown{border:1px dashed rgba(var(--warn-rgb),.3);padding-left:.5rem;padding-right:.5rem;margin:.15rem 0}.leak-icon{width:2rem;height:2rem;border-radius:.65rem;display:grid;place-items:center;background:rgba(var(--neutral-rgb),.04)}.leak-name{display:grid;min-width:0}.leak-name strong{font-size:.9rem;font-weight:560}.leak-name small{color:var(--text-muted);font-size:.74rem;text-transform:capitalize}.home-hero{padding:1.15rem 1.2rem 1.2rem}.home-hero .hero-brand{font-size:clamp(1.45rem,4.6vw,1.95rem)}.home-hero .hero-meta{margin-top:.85rem}.home-hero.is-attention{border-color:rgba(var(--warn-rgb),.35)}.strip-grid{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:640px){.strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.strip-card{display:grid;grid-template-columns:2.6rem 1fr auto;align-items:center;gap:.8rem;padding:.8rem .95rem;text-decoration:none;color:inherit;animation:rise var(--dur-slow) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),12) * 35ms * var(--anim))}.strip-icon{width:2.6rem;height:2.6rem;border-radius:.9rem;display:grid;place-items:center;background:rgba(var(--neutral-rgb),.04)}.strip-card.is-heating{border-color:rgba(var(--heat-rgb),.3);box-shadow:var(--shadow-card),0 0 22px var(--heat-glow)}.strip-card.is-heating .strip-icon{background:rgba(var(--heat-rgb),.12)}.strip-card.is-seasonal{border-style:dashed}.strip-body{display:grid;min-width:0;line-height:1.2}.strip-label{font-size:.72rem;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.strip-value{font-family:var(--font-display);font-size:1.45rem;font-weight:650;letter-spacing:-.02em;margin:.1rem 0}.strip-body small{color:var(--text-muted);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strip-chevron{color:var(--text-muted);opacity:.7}.access-list{list-style:none;margin:0;padding:.25rem .75rem}.access-row{display:grid;grid-template-columns:2.2rem 1fr auto;align-items:center;gap:.7rem;padding:.6rem .25rem;border-bottom:1px solid var(--stroke);animation:rise var(--dur-slow) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),12) * 35ms * var(--anim))}.access-row:last-child{border-bottom:0}.access-row.is-unknown{border:1px dashed rgba(var(--warn-rgb),.3);border-radius:.6rem;padding-left:.5rem;padding-right:.5rem;margin:.15rem 0}.access-icon{width:2.2rem;height:2.2rem;border-radius:.7rem;display:grid;place-items:center;color:var(--activity);background:rgba(var(--activity-rgb),.1)}.access-row.is-warn .access-icon{color:var(--warn);background:rgba(var(--warn-rgb),.1)}.access-icon .lock-glyph,.access-icon .garage-glyph{width:1.25rem;height:1.25rem}.access-name{display:grid;min-width:0}.access-name strong{font-size:.9rem;font-weight:560}.access-name small{color:var(--text-muted);font-size:.74rem;text-transform:capitalize}.device-card.compact{min-height:6.25rem;padding:.85rem .9rem}.segmented.compact{display:inline-flex;gap:.25rem;padding:.2rem}.segmented.compact button{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem}.segmented.compact strong{font-size:.8rem}.slider-row.disabled{opacity:.5}.slider-row.disabled input{cursor:not-allowed}.slider-row label small{color:var(--text-muted);font-weight:400}html[data-scheme=light]{color-scheme:light}html[data-scheme=light] .camera-card.is-offline img{filter:grayscale(.85) brightness(.85)}html[data-scheme=light] .glass:hover{border-color:rgba(var(--text-muted-rgb),.35)}html[data-scheme=light] .status-pill.off,html[data-scheme=light] .status-pill.muted{background:rgba(var(--neutral-rgb),.06)}html[data-scheme=light] .nav{background:linear-gradient(180deg,transparent,rgba(var(--bg-deep-rgb),.92) 22%)}@media(min-width:768px)and (max-width:1023px){.app-shell{padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.inv-banner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem}.inv-banner p{margin:0;flex:1 1 14rem;color:var(--text-muted);font-size:.85rem;line-height:1.4}.inv-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.inv-actions .btn{display:inline-flex;align-items:center;gap:.35rem}.inv-toolbar{display:grid;gap:.65rem;margin-bottom:.85rem}.inv-search{display:flex;align-items:center;gap:.55rem;padding:.55rem .85rem;border-radius:var(--radius-md);border:1px solid var(--stroke);background:var(--bg-card)}.inv-search input{flex:1;border:0;background:transparent;color:var(--text);outline:none;font:inherit;min-width:0}.inv-chips{display:flex;flex-wrap:wrap;gap:.35rem}.inv-chips button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--stroke);background:transparent;color:var(--text-muted);border-radius:var(--radius-pill);padding:.35rem .7rem;font-size:.75rem;cursor:pointer}.inv-chips button.active{color:var(--accent);border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.12)}.inv-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.inv-row,.inv-path{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;align-items:center;gap:.7rem;text-align:left;padding:.75rem .85rem;color:inherit;cursor:pointer;border:1px solid var(--stroke);background:inherit}.inv-row-icon{width:2.4rem;height:2.4rem;border-radius:.8rem;display:grid;place-items:center;color:var(--accent);background:rgba(var(--accent-rgb),.1)}.inv-row-body,.inv-path span:nth-child(2){display:grid;min-width:0;gap:.15rem}.inv-row-body strong,.inv-path strong{font-size:.92rem;display:flex;align-items:center;gap:.3rem}.inv-row-body small,.inv-path small{color:var(--text-muted);font-size:.74rem}.inv-row-aside{display:grid;justify-items:end;gap:.3rem}.inv-flags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.inv-star{width:.9rem;height:.9rem;color:var(--heat)}.inv-field{display:grid;gap:.35rem;font-size:.82rem;color:var(--text-muted)}.inv-field input,.inv-field select,.inv-field textarea{border:1px solid var(--stroke);background:rgba(var(--card-from-rgb),.55);border-radius:var(--radius-sm);padding:.65rem .75rem;color:var(--text);font:inherit}.inv-timeline{margin:0;padding-left:1.1rem;display:grid;gap:.4rem;color:var(--text-muted);font-size:.82rem}.inv-timeline strong{color:var(--text);display:block}.inv-ids{margin:0;padding-left:1.1rem;color:var(--text-muted);font-size:.8rem}.inv-paths{display:grid;gap:.65rem}.inv-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}@media(min-width:720px){.inv-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}.inv-catalog-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;padding:.75rem;display:grid;gap:.25rem;color:inherit;cursor:pointer}.inv-catalog-card.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.25)}.inv-catalog-card strong{font-size:.85rem}.inv-catalog-card small{color:var(--text-muted);font-size:.72rem}.inv-candidate{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.7rem 0;border-top:1px solid var(--stroke)}.inv-candidate strong{display:block}.inv-candidate small{display:block;color:var(--text-muted);font-size:.75rem}.inv-table{width:100%;border-collapse:collapse;font-size:.78rem}.inv-table th,.inv-table td{text-align:left;padding:.45rem .35rem;border-bottom:1px solid var(--stroke);vertical-align:top}.inv-table th{color:var(--text-muted);font-weight:500}.inv-hub-stats{display:flex;flex-wrap:wrap;gap:.85rem;font-size:.85rem;color:var(--text-muted)}.inv-hub-stats strong{color:var(--text);margin-right:.25rem}.inv-sync-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.65rem}.inv-sync-check{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text)}.inv-row-aside .status-pill{white-space:nowrap}.topbar-name{font-size:.78rem;color:var(--text-muted);max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gear-wrap{position:relative;display:flex;align-items:center;gap:.4rem}.gear-panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:40;min-width:13.5rem;padding:.4rem;display:flex;flex-direction:column;gap:.15rem}.gear-panel a,.gear-panel button{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;background:transparent;border:0;font:inherit;text-align:left;cursor:pointer}.gear-panel a:hover,.gear-panel button:hover{background:rgba(var(--accent-rgb),.1)}.gear-logout{color:var(--danger)!important}.gear-quiet{font-size:.78rem;color:var(--text-muted)!important}.user-grid{display:grid;gap:.85rem}.user-card h3{margin:0}.settings-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.settings-card input[type=text],.settings-card input[type=password]{border:1px solid var(--stroke);background:rgba(var(--card-from-rgb),.55);border-radius:var(--radius-sm);padding:.75rem .9rem;color:var(--text)}.acl-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem 0;color:var(--text)}.acl-row label{flex-direction:row;align-items:center;margin:0;color:var(--text)}.break-all{word-break:break-all}
