/* NABU 5.0 — one visual system, built for a quiet home. */
:root{color-scheme:light;--bg:#f6f5f2;--panel:#fff;--soft:#eeede9;--field:#f7f7f5;--line:#e4e4df;--text:#232825;--muted:#65706a;--accent:#355c4a;--accent2:#355c4a;--accent-soft:#e9efe9;--green:#355c4a;--red:#ac4242;--shadow:0 12px 40px #27392c09;--overlay:#17201ab3;--tile-on:#e3eddf;--tile-text:#294233;--orange:var(--accent);--blue:var(--accent);--purple:var(--accent);--pink:var(--accent);--cyan:var(--accent);--yellow:var(--accent);--nabu-bg:var(--bg);--nabu-panel:var(--panel);--nabu-panel2:var(--soft);--nabu-line:var(--line);--nabu-muted:var(--muted)}
:root[data-theme=dark]{color-scheme:dark;--bg:#141816;--panel:#202622;--soft:#2b322d;--field:#181e1a;--line:#39453d;--text:#f0f3ee;--muted:#a8b5ab;--accent:#c1d6b9;--accent2:#c1d6b9;--accent-soft:#313e32;--green:#b3d5a3;--red:#efa7a0;--shadow:0 12px 40px #0002;--overlay:#060a06bc;--tile-on:#d7e7cc;--tile-text:#243529}
*,*::before,*::after{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid transparent;background:var(--accent);color:var(--panel);border-radius:13px;min-height:44px;padding:10px 18px;font-weight:600;transition:background .18s,transform .18s,box-shadow .18s}button:hover{filter:brightness(.96)}button:active{transform:scale(.98)}button:disabled{opacity:.55;cursor:default;transform:none}button.ghost,.ghost{background:var(--soft);color:var(--text);border-color:transparent}button.textButton{background:transparent;color:var(--accent);padding:8px 10px}button.dangerText{color:var(--red)}button.iconbtn,.circleBtn,.ownerLockBtn,.menuToggle{width:44px;height:44px;padding:0;display:inline-grid;place-items:center;background:transparent;color:var(--text);border-radius:50%}.circleBtn{background:var(--soft);font-size:24px;flex:none}button:hover:not(:disabled){box-shadow:0 3px 10px #17251c09}input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);background:var(--field);color:var(--text);border-radius:11px;min-height:46px;padding:11px 13px;outline:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--accent);flex:none;padding:0}input[type=range]{padding:0;min-height:36px;accent-color:var(--accent);background:transparent;border:0}input[type=color]{width:48px;height:42px;padding:4px;min-height:42px}label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:13px;font-weight:500}label>span{color:var(--muted)}a{color:var(--accent)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.035em}h1{font-size:28px}h2{font-size:30px}h3{font-size:18px}p{color:var(--muted);line-height:1.55}small{font-size:12px;color:var(--muted)}b,strong{font-weight:600}svg{display:block}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button .svgIcon{pointer-events:none}summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;gap:12px}summary::-webkit-details-marker{display:none}details>summary::after{content:'+';font-size:20px;font-weight:400;margin-left:auto;color:var(--muted)}details[open]>summary::after{content:'−'}details:not([open])> :not(summary){display:none}details p{font-size:13px;margin:8px 0}details small{display:block;margin-top:8px}details summary small{margin:0}hr{border:0;border-top:1px solid var(--line)}[hidden],.hidden,.settingsHidden{display:none!important}.svgIcon{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;color:currentColor;background:transparent}.svgIcon svg{width:23px;height:23px}.mutedBlock{color:var(--muted);font-size:14px}.actions,.sectionActions,.settingActions,.builderActions,.modalActions,.controlButtons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.card,.glass,.cleanPanel,.autonomyPane{background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:none}.card{padding:24px}.placeholder{padding:48px;text-align:center}.view{display:none;width:100%;min-width:0}.view.active{display:block;animation:appear .24s ease}.sectionHeader,.autonomyHeader{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin:0 0 28px}.paneTitle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.paneTitle h3{font-size:16px}.paneTitle small{font-size:11px}.statusPill,.agentTag,.countPill,.safeBadge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;line-height:1.3;padding:6px 9px;border-radius:30px;background:var(--soft);color:var(--muted);white-space:nowrap}.statusPill.ok{color:var(--accent);background:var(--accent-soft)}.statusPill.ok::before{content:'';width:5px;height:5px;background:var(--accent);border-radius:50%}.statusPill.warn,.statusPill.bad{color:var(--red);background:transparent}.countPill{min-width:26px;justify-content:center}.emptyState,.homeDeckEmpty,.emptyAutomation{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;min-height:230px;padding:36px;color:var(--muted);border:1px dashed var(--line);border-radius:24px}.emptyState h3{color:var(--text)}.emptyState>.svgIcon,.emptyState>span>.svgIcon{width:54px;height:54px;border-radius:50%;background:var(--soft);color:var(--accent)}.emptyState>button{margin-top:8px}.homeDeckEmpty{grid-column:1/-1;min-height:150px}.busy .tileStatusDot{background:transparent!important;border:1.5px solid var(--muted);border-top-color:transparent;width:13px!important;height:13px!important;animation:spin 1s linear infinite}
/* Shell */
#appShell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:36px 20px 26px;border-right:1px solid var(--line);background:var(--bg);z-index:40}.brandRow{display:flex;align-items:center;justify-content:space-between;padding:0 14px;margin-bottom:48px}.brand{display:flex;align-items:center;gap:11px}.brandIcon{width:30px;height:30px;border-radius:8px}.brand b{font-size:18px;letter-spacing:.15em;font-weight:650}.brand small{display:block;font-size:8px;letter-spacing:.22em;margin-top:2px}.sidebarClose{display:none}.sidebar nav,.systemNav{display:grid;gap:7px}.navbtn{min-height:45px;text-align:left;display:flex;align-items:center;gap:13px;padding:10px 15px;color:var(--muted);background:transparent;border-radius:12px;font-size:14px;font-weight:500}.navbtn.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.navbtn .svgIcon{width:20px;height:20px}.navbtn .svgIcon svg{width:20px;height:20px}.systemNav{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.systemNav>small{display:none}.sidebarStatus{margin-top:auto;display:flex;gap:10px;padding:18px 14px 0;align-items:center}.sidebarStatus #coreStateDot{width:6px;height:6px;border-radius:50%;background:var(--muted);flex:none}.sidebarStatus b{font-size:11px;font-weight:500}.sidebarStatus small{display:block;font-size:9px;margin-top:2px}.main{width:100%;max-width:1300px;min-width:0;margin:0 auto;padding:42px 52px 80px}.topbar{display:flex;align-items:center;gap:14px;margin-bottom:46px;min-height:46px}.topbar h1{font-size:24px;letter-spacing:-.04em}.topbar #eyebrow{display:none}.topActions{display:flex;gap:6px;align-items:center;margin-left:auto}.topActions #assistantToggle{margin-right:10px;border:1px solid var(--line);background:var(--panel);border-radius:30px;font-size:12px;min-height:40px;padding:9px 19px}.ownerLockBtn{order:3;margin-left:4px}.menuToggle{display:none}.sidebarOverlay{display:none}.bottomNav{display:none}.topbar .recording{color:var(--red);background:var(--soft)}body[data-view=home] #pageTitle{font-size:16px;color:var(--muted);letter-spacing:-.02em}
/* Home */
.homeFeedWrap{width:100%}.homeFeed{background:transparent;border:0;border-radius:0;padding:0;width:100%}.homeHero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;margin-bottom:32px}.homeHero h2{font-size:clamp(30px,3vw,43px);letter-spacing:-.055em;line-height:1.12}.homeDate{font-size:13px;color:var(--muted);margin-top:8px;font-weight:400}.homeHeroAside{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.presenceRow{margin:0}.presenceCard{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500}.presenceCard small{padding-left:4px;font-size:11px;border-left:1px solid var(--line)}.presenceDot{width:5px;height:5px;border-radius:50%;background:var(--muted)}.presenceDot.home{background:var(--green)}.presenceDot.locating{animation:breathe 2s infinite}.autonomyPeek{display:flex;align-items:center;gap:7px;font-size:11px}.autonomyPulse{width:5px;height:5px;border-radius:50%;background:var(--green)}.autonomyPeek b{font-size:11px;font-weight:400;color:var(--muted)}.autonomyPeek small:empty{display:none}.autonomyPeek small{display:none}.autonomyPeek>button{font-size:11px;min-height:24px;padding:1px 4px;background:none;color:var(--accent);border-radius:4px}.autonomyPeek.alert b{color:var(--red)}.autonomyPeek.alert .autonomyPulse{background:var(--red)}.homeAmbient{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.47fr);gap:16px;margin-bottom:30px}.homeAmbient:has(#homeClimateSection[hidden]){grid-template-columns:1fr}.homeAmbient .ambientSection{margin:0;min-width:0}.featureCard{background:var(--panel);border:1px solid var(--line);border-radius:23px;padding:20px 24px;height:100%;min-height:164px}.ambientLabel{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:500}.ambientLabel>b{font-weight:500}.ambientLabel>span:not(.svgIcon){font-size:11px;color:var(--muted);margin-left:auto}.ambientLabel .textButton{margin-left:auto;font-size:12px;padding:0;min-height:26px}.weatherCard{display:flex;align-items:center;gap:28px;min-height:164px}.weatherCardTop{flex:1;min-width:130px}.weatherCardTop .ambientLabel{display:grid;gap:3px}.weatherCardTop .ambientLabel>span{margin:0}.weatherReading{display:flex;align-items:center;gap:20px;margin-top:10px}.weatherReading>strong{font-size:44px;line-height:1;letter-spacing:-.05em;font-weight:400}.weatherSvg.hero{width:40px;height:44px}.weatherSvg.small{width:22px;height:24px}.weatherSvg .sun,.weatherSvg .sunRay{stroke:var(--accent);fill:var(--accent);stroke-width:1.5}.weatherSvg .cloud{stroke:var(--muted);fill:var(--soft);stroke-width:1.2}.weatherSvg .rain,.weatherSvg .snow,.weatherSvg .bolt,.weatherSvg .fog{stroke:var(--accent);stroke-width:1.5}.forecastGrid{display:flex;flex:1.8;align-items:center;justify-content:space-between;gap:10px;border-left:1px solid var(--line);padding-left:22px}.forecastDay{display:flex;align-items:center;flex-direction:column;gap:9px;flex:1;font-size:11px;min-width:0}.forecastDay b{font-weight:500;color:var(--muted)}.forecastTemps{display:flex;gap:3px;font-size:10px}.forecastTemps strong{font-weight:600}.forecastTemps span{color:var(--muted)}.climateReadings{display:flex;align-items:center;gap:28px;margin-top:21px}.climateReadings>strong{font-size:46px;font-weight:400;letter-spacing:-.04em;line-height:1}.humidityValue{font-size:20px;border-left:1px solid var(--line);padding-left:23px;letter-spacing:-.03em}.humidityValue small{display:block;margin-top:4px;font-size:11px;letter-spacing:0}.climateMore{margin-top:15px;font-size:11px}.climateMore summary{min-height:25px}.zoneChips{display:flex;gap:6px;margin-bottom:29px;overflow-x:auto;scrollbar-width:none;padding:4px 0;max-width:100%}.zoneChips::-webkit-scrollbar{display:none}.spacePill{flex:none;background:transparent;color:var(--muted);font-size:12px;padding:9px 16px;min-height:39px;border-radius:30px;font-weight:500}.spacePill.active{color:var(--panel);background:var(--accent)}.feedSection{margin:0}.feedTitle{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:15px;font-weight:600}.feedTitle .sectionIcon{display:none}.homeDevicesAll{margin-left:auto;background:none!important;font-size:11px;min-height:30px;color:var(--accent)!important;padding:4px 0}.homeDeviceDeck,.physicalDeviceGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.homeTile{position:relative;min-width:0;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--panel);transition:transform .2s,box-shadow .2s}.homeTile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.homeTile.active{background:var(--tile-on);border-color:transparent;color:var(--tile-text)}.homePhysicalCard{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;text-align:left;padding:22px;width:100%;height:174px;border-radius:24px;background:transparent;color:var(--text);font-weight:400}.homePhysicalCard:hover{box-shadow:none!important;filter:none}.homePhysicalCard.active{color:var(--tile-text)}.homePhysicalIcon{margin-bottom:auto;height:32px;color:var(--accent)}.homePhysicalIcon .svgIcon,.homePhysicalIcon svg{width:30px;height:30px}.homeTile.active .homePhysicalIcon{color:var(--tile-text)}.homePhysicalName{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.25;font-weight:600;letter-spacing:-.02em;padding-right:10px}.homePhysicalState{font-size:11px;color:var(--muted);text-transform:capitalize}.homeTile.active .homePhysicalState{color:#53664f}.tileStatusDot{position:absolute;right:23px;top:25px;width:5px;height:5px;border-radius:50%;background:var(--line)}.homeTile.active .tileStatusDot{background:var(--tile-text)}.tileDetails{position:absolute;right:8px;bottom:7px;display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;background:transparent;color:var(--muted)}.tileDetails .svgIcon,.tileDetails svg{width:18px;height:18px}.homeTile.offline .homePhysicalState{color:var(--red)}.homeTile.offline .homePhysicalCard{opacity:.72}.homeDetails{margin-top:26px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding:5px 0}.homeDetails summary{max-width:160px}.quickPills{display:flex;flex-wrap:wrap;gap:24px;padding:12px 0}.quickPill{display:flex;gap:10px;align-items:center;font-size:12px}.quickPill small{display:block}.quickPill .svgIcon{color:var(--accent)}
/* Devices & extended controls */
.deviceManagerTools{width:100%;display:flex;justify-content:space-between}.deviceManagerTools input{max-width:360px;border:0;background:var(--panel);box-shadow:0 0 0 1px var(--line);border-radius:30px;font-size:13px;padding-left:20px}.deviceManagerTools button{font-size:12px;background:transparent;border:1px solid var(--line);border-radius:30px}.deviceManagerHint{font-size:12px;margin-bottom:20px;color:var(--muted)}.deviceManagerGrid{display:block}.physicalSection,.deviceManagerSection{margin-bottom:32px}.deviceManagerSectionTop{display:flex;align-items:center;gap:9px;margin-bottom:15px}.deviceManagerSectionTop h3{font-size:15px;letter-spacing:0}.deviceManagerSectionTop small{font-size:11px}.voiceActionsDrawer{margin-top:22px;padding:10px 24px;color:var(--muted)}.voiceActionsDrawer summary>span:first-child{display:flex;gap:10px;align-items:center}.voiceActionsDrawer summary small{display:none}.voiceActionsList{padding:12px 0}.voiceActionItem{display:flex;align-items:center;gap:14px;justify-content:space-between;border-top:1px solid var(--line);padding:13px 0;font-size:12px}.voiceActionItem small{display:block}.voiceActionItem>span{color:var(--muted);font-size:11px}.deviceManagerCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.managerCard{background:var(--panel);border:1px solid var(--line);padding:22px;border-radius:24px;min-width:0}.managerTop,.managerIdentity,.managerRangeHead,.managerFooter,.managerInfoRow{display:flex;align-items:center;gap:10px;justify-content:space-between}.managerName{font-weight:600}.managerMiniMeta,.managerSub,.managerAliasRow,.deviceHint{font-size:11px;color:var(--muted)}.managerControls{display:grid;gap:16px;margin-top:20px}.managerActionRow{display:flex;gap:10px}.managerRangeHead{font-size:13px}.managerChips{display:flex;flex-wrap:wrap;gap:7px}.aliasChip{font-size:11px;padding:5px 10px;border-radius:30px;background:var(--soft)}.managerFooter{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.managerTop .name{font-size:15px}.managerRange{padding:10px 0}.managerColor{display:flex;align-items:center;justify-content:space-between}.managerStateWrap{font-size:11px}.modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:28px;background:var(--overlay);backdrop-filter:blur(8px)}.modalCard,.deviceHubCard,.automationEditorCard{width:min(100%,680px);max-height:calc(100dvh - 56px);overflow-y:auto;overscroll-behavior:contain;background:var(--panel);border:1px solid var(--line);border-radius:30px;box-shadow:0 20px 80px #0002;padding:28px}.deviceHubCard{width:min(100%,780px);padding:0}.deviceHubHeader,.controlHeader,.drawerHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:24px;border-bottom:1px solid var(--line)}.deviceHubHeader{padding:22px 28px;position:sticky;top:0;z-index:2;background:var(--panel)}.deviceHubIdentity,.controlIdentity{display:flex;align-items:center;gap:14px;min-width:0}.deviceHubIdentity b{font-size:18px;letter-spacing:-.03em}.deviceHubIdentity small,.controlIdentity small{display:block;font-size:11px;margin-top:3px}.deviceHubIcon,.controlIcon{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:var(--accent-soft);color:var(--accent);flex:none}.deviceHubBody{padding:24px 28px}.hubRoomBar{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}.hubRoomBar select{max-width:210px;font-size:12px;min-height:37px;padding:7px 12px}.hubSection{padding:23px 0;border-top:1px solid var(--line);margin-top:18px}.hubSection h3{font-size:15px;margin-bottom:16px}.simpleHero,.genericHubHero,.mediaHero,.tvHero,.vacuumAppHero,.cameraAppHero,.vacuumHubHero{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.simpleHero h2{font-size:25px}.simpleHero p{font-size:12px;margin-top:6px}.hubKicker{font-size:9px;letter-spacing:.16em;color:var(--muted);margin-bottom:8px}.simpleControlPanel{display:grid;gap:22px;margin:26px 0}.simpleControlPanel label>span{display:flex;justify-content:space-between}.simplePower,.controlPower{min-width:112px;border-radius:30px}.simplePower.on,.controlPower:not(.off){background:var(--tile-on);color:var(--tile-text)}.hubSettingsGrid,.friendlyControlGrid,.hubMetricGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hubSetting{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:var(--soft);border-radius:14px;font-size:12px;min-width:0}.hubSetting.readOnly{background:transparent;border-bottom:1px solid var(--line);border-radius:0}.hubSetting.stack{display:grid;gap:8px}.hubSetting input,.hubSetting select{font-size:12px;min-height:38px;padding:8px}.hubAdvanced{font-size:13px;margin-top:24px;border-top:1px solid var(--line)}.hubAdvanced summary{min-height:52px}.hubAdvanced small{word-break:break-word}.hubToggle{padding:6px 14px;min-height:35px;background:var(--soft);color:var(--text)}.hubToggle.on{background:var(--accent);color:var(--panel)}.choiceGrid,.sourceGrid,.quickActionGrid,.cameraToggleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.choiceGrid.four,.vacuumModeGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.choiceCard,.vacuumModeCard,.sourceChip,.cameraToggle,.actionTile,.hubMetric{border:1px solid var(--line);background:var(--soft);color:var(--text);padding:16px 10px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:12px;min-width:0}.choiceCard.active,.vacuumModeCard.active,.sourceChip.active,.cameraToggle.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.choiceCard span,.vacuumModeCard i{font-size:22px;font-style:normal}.vacuumModeCard small{font-size:10px;text-align:center}.controlBody{padding:24px 0;display:grid;gap:20px}.controlSectionHeader,.controlColorRow{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:10px}.controlFooter{border-top:1px solid var(--line);padding-top:18px}.controlButtons button{background:var(--soft);color:var(--text)}.controlButtons button.primary{background:var(--accent);color:var(--panel)}.controlHint{color:var(--muted);font-size:12px}.controlValue{font-size:34px;letter-spacing:-.04em}.modalActions{padding-top:22px}.formGrid,.friendlyFormGrid,.coordsRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span2{grid-column:1/-1}.colorControl{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.vacuumTitle h2{font-size:25px}.vacuumTitle p{font-size:12px}.vacuumMetrics{display:flex;gap:12px;margin:20px 0}.hubMetric{flex:1;flex-direction:row;justify-content:flex-start;padding:14px}.hubMetric strong{font-size:20px;display:block}.hubMetric small{font-size:10px}.vacuumPrimaryActions{display:flex;gap:10px}.vacuumSecondaryAction{background:var(--soft);color:var(--text)}.modeTabs{display:flex;gap:6px;margin:24px 0}.modeTabs button{flex:1;background:var(--soft);color:var(--muted);border-radius:30px;font-size:12px}.modeTabs button.active{background:var(--accent);color:var(--panel)}.vacuumMapShell,.vacuumMiniMap{position:relative;width:100%;min-height:280px;background:var(--field);border-radius:20px;overflow:hidden}.vacuumMiniMap{height:280px}.miniRoom{position:absolute;border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:8px;font-size:11px}.miniRoom.selected{background:var(--accent-soft);border-color:var(--accent)}.miniRoom .name{font-size:11px}.vacuumMapPin{position:absolute;transform:translate(-50%,-50%);font-size:20px}.vacuumSyncNote,.customModeIntro{font-size:11px;color:var(--muted);margin:12px 0}.vacCustomRooms{display:grid;gap:16px}.vacCustomRoom{border:1px solid var(--line);border-radius:18px;padding:18px}.vacCustomRoomHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.vacCustomFields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.vacCustomFields select{font-size:12px}.vacOrderBtns{display:flex;gap:3px}.vacOrderBtns button{background:var(--soft);color:var(--text);padding:7px;min-width:35px}.maintenanceGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.maintenanceCard{background:var(--soft);padding:15px;border-radius:16px;font-size:12px}.maintenanceCard small{display:block;margin:7px 0}.lifeTrack{height:4px;border-radius:5px;background:var(--line);overflow:hidden}.lifeTrack>span{display:block;background:var(--accent);height:100%}.cameraLive,.cameraNoFeed,.liveMapWrap{position:relative;border-radius:20px;overflow:hidden;background:var(--field);min-height:200px}.cameraLive img,.liveMapImage{width:100%;display:block}.cameraNoFeed{display:grid;place-items:center;color:var(--muted);font-size:13px}.cameraRefresh{position:absolute;right:12px;bottom:12px}.cameraStatusPills{display:flex;gap:8px}.cameraPtz{margin-top:20px}.remotePad{display:grid;grid-template-columns:repeat(3,1fr);width:185px;gap:5px;margin:16px auto}.remotePad button{background:var(--soft);color:var(--text);font-size:18px}.remotePad .remoteOk{background:var(--accent);color:var(--panel)}.tvControlLayout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tvPanel,.mediaPlayerPanel{border:1px solid var(--line);border-radius:22px;padding:22px}.tvArtwork{width:110px;aspect-ratio:1;border-radius:16px;object-fit:cover;background:var(--soft)}.tvNowPlaying{flex:1}.tvNowPlaying h2{font-size:24px}.tvVolume,.mediaVolume{margin-top:20px}.mediaTransport,.mediaButtonRow{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:18px}.mediaTransport button{width:46px;min-height:46px;background:var(--soft);color:var(--text);padding:0;border-radius:50%}.mediaTransport .play{background:var(--accent);color:var(--panel)}.mediaHero h2,.genericHubHero h2{font-size:24px}.hubEmpty{padding:25px;color:var(--muted);font-size:12px}
/* Signals, focus, accounts */
.autonomySummary,.proxyHero{display:flex;align-items:center;gap:25px;padding:30px 0 34px;border-bottom:1px solid var(--line);margin-bottom:28px}.autonomySummary small,.proxyHero small{font-size:9px;letter-spacing:.15em;display:block;margin-bottom:10px}.autonomySummary h3,.proxyHero h3{font-size:34px;font-weight:500;letter-spacing:-.055em}.autonomySummary p,.proxyHero p{font-size:13px;margin-top:8px}.signalOrb{height:62px;width:62px;border-radius:50%;background:var(--accent-soft);position:relative;flex:none}.signalOrb::before{content:'';position:absolute;inset:20px;border:1px solid var(--accent);border-radius:50%}.signalOrb::after{content:'';position:absolute;inset:29px;background:var(--accent);border-radius:50%}.premonitionContent{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.premonitionContent>.autonomyPane:first-child{grid-row:1/3;padding:24px}.autonomyPane{padding:24px}.departureDrawer,.historyDrawer{padding:12px 23px;align-self:start;font-size:13px}.departureDrawer summary span,.historyDrawer summary span{display:none}.signalAbout{grid-column:1/-1;border-top:1px solid var(--line);margin-top:8px;font-size:12px;color:var(--muted)}.signalAbout summary{max-width:180px}.signalItem{padding:12px 0;border-top:1px solid var(--line);font-size:13px}.signalItem:first-child{border:0}.signalItem summary b{font-size:13px;font-weight:500;flex:1}.signalItem summary .signalExpand{display:none}.signalDot{width:5px;height:5px;border-radius:50%;background:var(--muted);flex:none}.signalItem.attention .signalDot{background:var(--red)}.signalItem p{margin-left:17px}.signalItem small{margin-left:17px;font-size:10px}.quietState{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:205px;text-align:center}.quietState>span{display:grid;place-items:center;width:40px;height:40px;color:var(--accent);border-radius:50%;background:var(--accent-soft);margin-bottom:5px}.quietState b{font-size:16px}.quietState p{font-size:12px}.premonitionPeople{display:flex;gap:7px;margin-top:16px;flex-wrap:wrap}.personSignal{display:flex;gap:6px;background:var(--soft);padding:6px 10px;border-radius:30px;font-size:11px;color:var(--muted)}.departureItem{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.departureItem:first-child{border:0}.departureItem b{font-weight:500;color:var(--muted)}.proxyHero{justify-content:space-between}.proxyGlyph{display:none}.proxyHero::after{content:'';width:60px;height:60px;border:1px solid var(--line);border-radius:50%;box-shadow:inset 0 0 0 13px var(--bg),inset 0 0 0 14px var(--line);flex:none}.autonomyColumns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.proxyForm{display:grid;gap:20px}.proxyActions{display:flex;gap:10px;align-items:center}.proxyDisclaimer{font-size:10px;margin-top:20px;display:block;line-height:1.5}.proxyInboxForm{display:flex;gap:8px;margin-bottom:22px}.proxyInboxForm button{width:46px;padding:0;font-size:22px}.proxyInbox .emptyState{border:0;min-height:165px;font-size:13px;padding:18px}.inboxItem{display:flex;align-items:center;gap:18px;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0}.inboxItem b{font-size:13px;font-weight:500}.inboxItem small{font-size:10px;display:block;margin-top:5px}.inboxItem button{background:none;padding:0;min-width:30px;font-size:19px;color:var(--muted)}.agentIntroduction{margin:4px 0 30px}.agentIntroduction h2{font-size:34px;font-weight:500;letter-spacing:-.055em}.agentIntroduction p{margin-top:9px;font-size:13px}.agentConnectionGrid{display:grid;grid-template-columns:1fr;gap:12px;max-width:800px}.connectionCard{padding:0;overflow:hidden;border-radius:20px}.connectionCard>summary{padding:23px 25px;gap:17px;min-height:100px}.connectionCard>summary::after{font-size:22px}.connectionCard .accountMark{display:grid;place-items:center;background:var(--soft);border-radius:14px;width:47px;height:47px;font-size:16px;font-weight:600}.connectionCard h3{font-size:16px;letter-spacing:-.02em}.connectionCard summary small{display:block;font-size:11px;margin-top:3px}.connectionCard .agentTag{margin-left:auto}.connectionBody{padding:0 25px 25px 89px}.connectionBody p{font-size:13px;margin:5px 0 15px}.calmConnectionForm,.calmInlineForm{display:grid;gap:12px;max-width:420px}.calmConnectionForm input{font-size:14px}.calmConnectionForm button{justify-self:start}.connectionBody .dangerText{margin-top:12px}.agentQuietNote{font-size:11px;color:var(--muted);margin-top:22px;max-width:720px}.agentQuietNote b{font-weight:500;margin-right:7px}.accountError{color:var(--red);font-size:12px;margin-top:10px}.agentQuietNote>span{line-height:1.5}
/* Spaces */
.mapWrap{padding:24px;border-radius:26px;background:var(--panel)}.mapLegend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:22px;font-size:11px;color:var(--muted)}.legendItem{display:flex;gap:7px;align-items:center}.legendItem::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent)}.floorMap{position:relative;height:500px;width:100%;max-width:900px;transform-origin:center center;margin:0 auto;background:var(--field);border-radius:22px;overflow:visible;background-image:radial-gradient(var(--line) .6px,transparent .6px);background-size:18px 18px}.mapWrap{overflow:hidden}.mapRoom{position:absolute;border:1.5px solid var(--line);background:var(--panel);border-radius:14px;padding:17px;display:flex;flex-direction:column;justify-content:space-between;gap:5px;cursor:pointer;box-shadow:0 6px 18px #1b332705}.mapRoom.selected{border-color:var(--accent);background:var(--accent-soft)}.mapRoom b{font-size:13px;font-weight:500}.mapRoom small{font-size:10px;display:block}.mapRoom:not(.editing)>div>small{display:none}.mapRoom.editing{border-style:dashed;touch-action:none;cursor:move}.mapHandle{position:absolute;width:12px;height:12px;border-radius:4px;background:var(--accent);right:0;bottom:0;cursor:nwse-resize}.mapDevice{position:absolute;transform:translate(-50%,-50%);width:37px;height:37px;display:grid;place-items:center;border-radius:12px;color:var(--accent);background:var(--panel);border:1px solid var(--line);box-shadow:0 3px 8px #0001;cursor:pointer}.mapDevice .svgIcon,.mapDevice svg{width:19px;height:19px}.mapDevice.active{background:var(--accent);color:var(--panel)}.mapDevice.editing{touch-action:none;cursor:move}.mapInspector{padding:24px 0 0;margin-top:20px;border-top:1px solid var(--line);font-size:12px}.mapInspector>.formGrid{margin:15px 0}.mapInspector>span{display:block;color:var(--muted);margin-top:6px}.mapInspector .physicalDeviceGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.mapInspector .homePhysicalCard{height:145px}.mapInspector .homePhysicalName{font-size:13px}.sectionActions #mapZoomIn,.sectionActions #mapZoomOut{width:42px;padding:0;min-height:42px;border-radius:50%;background:var(--panel);border:1px solid var(--line);font-size:18px}.sectionActions #toggleMapEdit{border-radius:30px;background:var(--panel);border:1px solid var(--line);font-size:12px}
/* Routines */
.automationLayout{display:block}.automationLibrary{width:100%}.libraryHeading{display:flex;align-items:center;gap:8px;margin:0 0 18px}.libraryHeading>div{display:flex;align-items:center}.libraryHeading small{display:none}.libraryHeading h3{font-size:14px;letter-spacing:0}.automationList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.automationCard{padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--panel)}.automationCard.disabled .routineIcon{color:var(--muted);background:var(--soft)}.automationCardHead{display:flex;align-items:center;gap:13px;margin-bottom:20px}.automationCardHead>div{flex:1;min-width:0}.automationCardHead h3{font-size:16px;letter-spacing:-.02em}.automationCardHead .meta{font-size:11px;color:var(--muted);display:block;margin-top:4px}.routineIcon{display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);width:40px;height:40px;flex:none;border-radius:13px}.routineIcon .svgIcon,.routineIcon svg{width:20px;height:20px}.automationSwitch{background:var(--soft);width:42px;min-height:25px;height:25px;border-radius:20px;padding:3px;border:1px solid var(--line);flex:none}.automationSwitch>span{display:block;width:17px;height:17px;background:var(--panel);border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .2s}.automationSwitch.on{background:var(--accent);border-color:var(--accent)}.automationSwitch.on>span{transform:translateX(16px)}.routineDetails{font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.routineDetails summary>span{margin-left:auto;font-size:10px;display:none}.routineDetails summary::after{font-size:17px}.flowStack{display:grid;gap:12px;padding:12px 0 18px}.flowStack>div{display:flex;gap:16px;font-size:12px}.flowStack b{font-size:9px;width:28px;line-height:1.8;color:var(--muted)}.flowStack span{flex:1;color:var(--text)}.automationCard>.actions{margin-top:17px}.automationCard>.actions button{font-size:11px;min-height:34px;border-radius:30px;padding:6px 15px}.automationCard>.actions .dangerText{margin-left:auto}.automationList>.emptyState{grid-column:1/-1;min-height:350px}.automationEditorCard{width:min(100%,660px);padding:28px}.automationBuilder{padding:0;background:transparent;border:0}.builderTitle{display:flex;align-items:center;gap:12px;margin-bottom:28px}.builderTitle>div{flex:1}.builderTitle small{font-size:9px;letter-spacing:.1em}.builderTitle h3{font-size:23px;margin-top:4px}.builderTitle .safeBadge{display:none}.cleanField{margin-bottom:24px}.builderBlock{padding:20px 0;border-top:1px solid var(--line)}.blockHeading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.blockHeading b{font-size:14px;color:var(--text);font-weight:500}.stepNumber{font-size:11px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--soft);color:var(--muted)}.stackFields{display:grid;grid-template-columns:1fr 110px;gap:10px;margin-top:10px}.conditionLogic{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.conditionLogic select{width:auto;font-size:12px;min-height:37px;padding:6px 10px}.repeatRows{display:grid;gap:10px}.repeatRow{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(0,.65fr) 30px;gap:7px;align-items:center}.repeatRow input,.repeatRow select{font-size:12px;padding:10px}.rowJoin,.rowIndex{font-size:9px;color:var(--muted)}.rowRemove{font-size:20px;background:transparent;color:var(--muted);padding:0;min-height:36px}.addBlockButton{margin-top:12px;background:transparent;color:var(--accent);font-size:12px;min-height:36px;padding:6px 0}.emptyBuilderRow{font-size:12px;color:var(--muted)}.toggleLine{flex-direction:row;align-items:center;gap:12px}.cleanToggle{margin:10px 0 22px}.cleanToggle b{font-size:12px}.cleanToggle small{display:none}.builderActions>button{flex:1}.builderActions>button:last-child{flex:none}.safetyNote{display:block;margin-top:18px;font-size:10px;line-height:1.5}
/* Voice */
.voiceOverview{display:flex;align-items:center;gap:18px;margin-bottom:25px;background:transparent;padding:5px 0 24px;border:0;border-bottom:1px solid var(--line);border-radius:0}.voiceOverviewIcon{display:none}.voiceOverviewCopy{flex:1}.voiceOverviewCopy b{font-size:14px;font-weight:500;display:block}.voiceOverviewCopy span{font-size:12px;display:block;color:var(--muted);margin-top:4px}.voiceOverviewStatus{display:flex;gap:6px;flex-wrap:wrap}.voiceGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.voiceCard{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:24px;min-width:0}.voiceCardTitle{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:8px}.voiceDeviceIcon{background:var(--accent-soft);color:var(--accent);border-radius:16px;width:48px;height:48px;display:grid;place-items:center}.voiceCard h3{font-size:18px;letter-spacing:-.03em}.voiceCard>p{font-size:12px;margin:5px 0 20px}.voiceCard>.actions{gap:6px}.voiceCard>.actions button{min-height:36px;font-size:11px;padding:7px 13px;border-radius:30px}.voicePreferences{font-size:12px;margin-top:20px;border-top:1px solid var(--line)}.voicePreferences label{margin:12px 0}.voicePreferences button{margin-top:15px;font-size:12px}.voiceRaw{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.voiceGrid>.emptyState{grid-column:1/-1}
/* Settings */
.settingsShell{max-width:860px;margin:auto}.settingsCategoryBar{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:24px;align-items:center}.settingsCategoryBar button{padding:8px 13px;min-height:37px;border-radius:30px;background:transparent;color:var(--muted);font-size:11px;font-weight:500}.settingsCategoryBar button.active{background:var(--accent-soft);color:var(--accent)}#settings[data-category=all] .settingsCategoryBar{display:none}.settingsIntro{padding:0;background:transparent;border:0}.settingsIntro>div:first-child h3{font-size:34px;font-weight:500;letter-spacing:-.05em;margin-bottom:24px}.settingsHealth{display:flex;gap:22px;padding:18px 0;margin-bottom:25px;border-bottom:1px solid var(--line)}.settingsHealth>div{display:flex;align-items:center;gap:6px;font-size:11px}.settingsHealth b{font-size:11px;font-weight:500}.settingsHealth small{display:none}.healthDot{width:5px;height:5px;border-radius:50%;background:var(--muted);display:inline-block}.healthDot.ok{background:var(--accent)}.healthDot.warn{background:var(--red)}.settingsShortcuts{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--panel);display:grid;grid-template-columns:1fr}.settingsShortcut{display:flex;align-items:center;gap:17px;text-align:left;background:var(--panel);color:var(--text);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:19px 24px;min-height:85px;font-weight:400}.settingsShortcut:last-child{border:0}.settingsShortcut:hover{background:var(--field);box-shadow:none!important}.settingsShortcut b{font-size:14px;font-weight:500}.settingsShortcut small{display:block;font-size:11px;margin-top:4px}.settingsShortcut .rowChevron{margin-left:auto;color:var(--muted)}.rowChevron svg{width:13px;height:13px}.settingRowIcon{background:var(--soft);color:var(--accent);width:40px;height:40px;border-radius:13px;display:grid;place-items:center}.settingRowIcon .svgIcon,.settingRowIcon svg{width:21px;height:21px}.settingsGrid{display:grid;grid-template-columns:1fr;gap:18px;margin-bottom:22px}.settingsGrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.settingsGrid.two:has(>.settingsHidden){grid-template-columns:1fr}.settingsSectionTitle{display:flex;align-items:center;justify-content:space-between;margin:26px 0 14px}.settingsSectionTitle:first-of-type{margin-top:0}.settingsSectionTitle small{display:none}.settingsSectionTitle h3{font-size:16px;letter-spacing:0}.settingsSectionTitle button{font-size:12px}.settingCard{padding:26px;margin-bottom:18px}.settingsGrid .settingCard{margin:0}.settingCard h3{font-size:18px;margin-bottom:8px}.settingCard p{font-size:12px}.settingCardHead{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}.settingCardHead>div{min-width:0;flex:1}.settingCardHead h3{font-size:16px;margin:0}.settingIcon{display:none}.settingCardHead .statusPill{margin-left:auto;max-width:45%;white-space:normal}.settingHelp{font-size:11px;color:var(--muted);margin-top:8px}.settingHelp summary{min-height:29px;font-size:11px;max-width:175px}.settingHelp summary::after{font-size:15px}.settingHelp p{font-size:12px}.credentialRow{display:flex;align-items:center;gap:10px}.credentialRow input{flex:1;min-width:0;font-size:13px}.credentialRow button{font-size:12px;min-height:46px}.friendlySettingCard>input{margin-bottom:12px;font-size:13px}.settingMetaRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.settingMetaRow small{font-size:10px;line-height:1.5}.settingMetaRow button{font-size:10px;min-height:30px;padding:0 2px}.voiceSettingLead{display:flex;align-items:center;gap:16px;margin-bottom:25px}.voiceOrb{display:none}.voiceSettingLead h3{margin:0}.friendlyFormGrid .friendlyRange{margin:8px 0}.friendlyRange>span{display:flex;justify-content:space-between}.settingActions{margin-top:24px}.settingActions>button{font-size:12px}.bridgeVisual{display:none}.bridgeCopy h3{font-size:17px}.bridgeCopy p{font-size:12px;margin:7px 0}.bridgeActions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.bridgeActions button{font-size:12px}.voiceHint,.wakeWordNote{font-size:12px;margin-top:12px;color:var(--muted);line-height:1.6}.voiceHint li,.wakeWordNote li{margin-bottom:6px}.wakeWordNote code,.voiceHint code{font-size:11px;overflow-wrap:anywhere}.weatherSettingCard>label,.locationSettingCard>label{margin-top:18px}.coordsRow{margin:18px 0}.locationDiagnostic{font-size:11px;margin:16px 0}.settingsActionsInline{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.settingsActionsInline button{font-size:11px}.advancedSettings{padding:10px 24px;margin-bottom:18px}.advancedSettings summary{font-size:14px;min-height:55px}.advancedSettings summary span:last-child{display:none}.advancedSettings summary small{display:block;font-size:11px;font-weight:400}.advancedSettingsBody{padding:18px 0}.diagnosticsBox{margin-top:25px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.9}.localAiCard>div:first-child{margin-bottom:22px}.localAiCard .settingActions small{width:100%;margin-top:6px}.locationSettingCard .toggleLine{font-size:12px;margin:15px 0}.locationSettingCard>small{font-size:11px}#calmSecurityPanel p{margin-bottom:18px}
/* Private entry, conversation, feedback */
.ownerGate{position:fixed;inset:0;z-index:200;background:var(--bg);display:grid;place-items:center;padding:24px}.ownerGate.unlocked{display:none}.ownerGateCard{display:flex;flex-direction:column;align-items:center;text-align:center;width:min(360px,100%);padding:40px 30px;background:var(--panel);border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow)}.ownerGateCard img{width:36px;height:36px;margin-bottom:28px}.ownerGateCard small{font-size:9px;letter-spacing:.16em}.ownerGateCard h1{font-size:28px;letter-spacing:.18em;margin:8px 0 15px}.ownerGateCard p{font-size:12px;margin-bottom:25px}.ownerGateCard input{text-align:center;font-size:23px;letter-spacing:.2em;max-width:210px;margin-bottom:15px}.ownerGateCard button{width:210px;border-radius:30px}.ownerGateCard>span{color:var(--red);font-size:12px;margin-top:12px}.assistantDrawer{position:fixed;right:20px;top:20px;bottom:20px;width:min(460px,calc(100vw - 40px));z-index:140;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:28px;box-shadow:0 25px 100px #0002;transform:translateX(calc(100% + 40px));transition:transform .25s ease;visibility:hidden}.assistantDrawer.open{transform:translateX(0);visibility:visible}.assistantDrawer .drawerHead{padding:22px 24px}.drawerHead b{font-size:16px;letter-spacing:.13em}.drawerHead small{display:block;font-size:11px;margin-top:3px}.drawerHead button{width:36px;height:36px;min-height:36px;font-size:25px;padding:0;background:var(--soft);color:var(--muted);border-radius:50%}.assistantMessages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px;overscroll-behavior:contain}.msg{font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;max-width:90%;padding:14px 17px;border-radius:18px;background:var(--soft);color:var(--text);align-self:flex-start}.msg.user{background:var(--accent-soft);align-self:flex-end;color:var(--text)}.msg.thinking{color:var(--muted);animation:breathe 1.7s infinite}.assistantComposer{border-top:1px solid var(--line);padding:16px;display:flex;gap:9px;align-items:flex-end}.assistantComposer textarea{border:0;background:var(--field);resize:none;max-height:140px;min-height:44px;font-size:13px;padding:13px}.assistantComposer button{border-radius:50%;width:44px;min-height:44px;padding:0;font-size:11px;flex:none}.assistantEmpty{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;gap:13px;text-align:center;padding:40px 10px}.assistantEmpty>.svgIcon{width:54px;height:54px;color:var(--accent)}.assistantEmpty>.svgIcon svg{width:42px;height:42px}.assistantEmpty h3{font-size:25px;font-weight:500}.assistantEmpty p{font-size:12px}.assistantSuggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.assistantSuggestions button{font-size:11px;border-radius:30px;min-height:35px;padding:8px 12px;background:var(--soft);color:var(--text)}#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,12px);max-width:calc(100vw - 40px);padding:12px 23px;background:var(--text);color:var(--bg);border-radius:30px;font-size:12px;line-height:1.5;text-align:center;z-index:240;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;box-shadow:var(--shadow)}#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}.overlayOpen{overflow:hidden}.selectControl{width:100%;margin-top:8px}.managerFooter button{font-size:11px}.rowRemove:hover{background:var(--soft)}
@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathe{50%{opacity:.55}}
@media(min-width:1500px){.main{padding:44px 68px 80px}.homePhysicalCard{height:186px}.homeDeviceDeck,.physicalDeviceGrid{gap:18px}}
@media(max-width:1250px){.main{padding-inline:34px}.homeDeviceDeck,.physicalDeviceGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.homeAmbient{grid-template-columns:minmax(0,1fr) 225px}.weatherCard{gap:15px;padding:20px}.weatherReading>strong{font-size:36px}.forecastGrid{padding-left:12px;gap:6px}.forecastDay{gap:7px}.forecastTemps{flex-direction:column;align-items:center;gap:0}}
@media(max-width:1099px){#appShell{display:block}.main{max-width:1050px;padding:25px 36px 120px}.topbar{margin-bottom:35px}.menuToggle{display:inline-grid}.ownerLockBtn{display:none}.sidebar{position:fixed;inset:16px auto 16px 16px;width:280px;height:auto;padding:24px 16px;background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);transform:translateX(calc(-100% - 30px));visibility:hidden;transition:transform .2s,visibility .2s;z-index:100;overflow-y:auto}.sidebar .brandRow{margin-bottom:30px;padding-inline:12px}.sidebarClose{display:grid;place-items:center;width:30px;min-height:30px;background:var(--soft);color:var(--text);padding:0;font-size:23px;border-radius:50%}.sidebarStatus{margin-top:24px}.sidebar .systemNav{margin-top:20px;padding-top:16px}.sidebar-open .sidebar{transform:translateX(0);visibility:visible}.sidebarOverlay{display:block;position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(3px);z-index:95;opacity:0;visibility:hidden;transition:opacity .2s}.sidebar-open .sidebarOverlay{opacity:1;visibility:visible}.bottomNav{display:flex;position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 32px));padding:7px 8px;gap:3px;border:1px solid var(--line);border-radius:25px;background:var(--panel);box-shadow:0 12px 40px #17251c18;z-index:80}.bottomNavBtn{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 4px;background:transparent;color:var(--muted);border-radius:19px;min-width:0;font-weight:400;min-height:54px}.bottomNavBtn .svgIcon,.bottomNavBtn svg{width:21px;height:21px}.bottomNavBtn span:last-child{font-size:9px}.bottomNavBtn.active{background:var(--accent-soft);color:var(--accent)}.homeDeviceDeck,.physicalDeviceGrid{grid-template-columns:repeat(4,minmax(0,1fr))}#toast{bottom:108px}.homeHero h2{font-size:38px}}
@media(max-width:850px){.homeDeviceDeck,.physicalDeviceGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.homeAmbient{grid-template-columns:1fr}.climatePanel{min-height:110px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between}.climateReadings{margin:0}.climateReadings>strong{font-size:32px}.climateMore{display:none}.weatherCard{min-height:160px}.forecastTemps{flex-direction:row;gap:4px}.homeAmbient{gap:12px}.voiceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.settingsGrid.two{grid-template-columns:1fr}.premonitionContent{grid-template-columns:1fr 1fr}.premonitionContent>.autonomyPane:first-child{grid-column:1/-1;grid-row:auto}.quietState{min-height:150px}.autonomyColumns{grid-template-columns:1fr}.automationList{gap:14px}.floorMap{height:440px}.voiceOverview{flex-wrap:wrap}.voiceOverviewStatus{width:100%}.mapInspector .physicalDeviceGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){body{font-size:14px}.main{padding:16px 20px calc(116px + env(safe-area-inset-bottom))}.topbar{gap:8px;margin-bottom:27px}.topbar h1{font-size:22px}.topActions{gap:0}.topActions #assistantToggle{display:none}.topbar .iconbtn{width:36px;height:40px}.topbar .svgIcon,.topbar svg{width:20px;height:20px}.menuToggle{width:34px;height:40px}.homeHero{display:block;margin-bottom:26px}.homeHero h2{font-size:34px}.homeDate{font-size:11px;margin-top:7px}.homeHeroAside{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.presenceCard{font-size:11px;gap:5px}.presenceCard small{font-size:10px;padding-left:3px}.autonomyPeek b{font-size:10px}.autonomyPeek>button{display:none}.autonomyPeek small{display:none}.homeAmbient{margin-bottom:24px}.featureCard{border-radius:22px;padding:20px}.weatherCard{min-height:190px;display:flex;flex-wrap:wrap;gap:18px}.weatherCardTop{width:100%;flex:auto}.weatherCardTop>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.weatherReading{margin:0;gap:14px}.weatherReading>strong{font-size:35px}.weatherSvg.hero{width:33px;height:36px}.forecastGrid{flex:1 1 100%;width:100%;border-left:0;border-top:1px solid var(--line);padding:15px 0 0;gap:4px}.forecastDay{font-size:9px;gap:7px}.forecastTemps{font-size:9px;gap:3px}.forecastDay .weatherSvg{width:20px;height:22px}.ambientLabel{font-size:12px}.climatePanel{padding:17px 20px;min-height:88px}.climateReadings{gap:15px}.climateReadings>strong{font-size:30px}.humidityValue{font-size:18px;padding-left:15px}.humidityValue small{font-size:9px}.climatePanel .ambientLabel .textButton{display:none}.zoneChips{gap:3px;margin-bottom:22px;margin-right:-20px;max-width:calc(100% + 20px);padding-right:20px}.spacePill{padding:8px 14px;font-size:11px;min-height:36px}.homeDeviceDeck,.physicalDeviceGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.homePhysicalCard{height:155px;padding:19px}.homeTile{border-radius:21px}.homePhysicalIcon .svgIcon,.homePhysicalIcon svg{width:28px;height:28px}.homePhysicalName{font-size:14px;padding-right:5px}.homePhysicalState{font-size:10px}.tileStatusDot{top:22px;right:21px}.tileDetails{width:30px;height:30px;min-height:30px;right:5px;bottom:5px}.tileDetails .svgIcon,.tileDetails svg{width:16px;height:16px}.feedTitle{font-size:13px;margin-bottom:13px}.homeDetails{font-size:11px;margin-top:20px}.homeDevicesAll{font-size:10px}.sectionHeader,.autonomyHeader{margin-bottom:24px;gap:10px}.sectionActions{gap:8px;flex-wrap:wrap}.sectionActions button{font-size:11px}.deviceManagerTools input{width:calc(100% - 96px);font-size:12px;min-height:42px}.deviceManagerTools button{font-size:11px;padding:8px 14px;min-height:42px}.deviceManagerSectionTop h3{font-size:13px}.physicalSection{margin-bottom:26px}.voiceActionsDrawer{padding:7px 18px;font-size:12px}.voiceActionsList .voiceActionItem{flex-wrap:wrap}.voiceActionItem>span{display:none}.deviceManagerCards{grid-template-columns:1fr}.autonomySummary,.proxyHero{padding:4px 0 25px;gap:17px;margin-bottom:24px}.signalOrb{width:49px;height:49px}.signalOrb::before{inset:16px}.signalOrb::after{inset:23px}.autonomySummary h3,.proxyHero h3{font-size:28px}.autonomySummary p,.proxyHero p{font-size:12px}.autonomySummary small,.proxyHero small{font-size:8px;margin-bottom:7px}.premonitionContent{display:block}.premonitionContent>*{margin-bottom:14px}.autonomyPane{padding:21px;border-radius:22px}.quietState{min-height:145px}.departureDrawer,.historyDrawer{padding:10px 20px}.autonomyColumns{gap:16px}.proxyHero::after{width:45px;height:45px}.proxyActions button{font-size:12px}.proxyInboxForm input{font-size:13px}.paneTitle h3{font-size:14px}.agentIntroduction h2{font-size:29px}.connectionCard>summary{padding:18px;gap:12px;min-height:92px}.connectionCard .accountMark{width:39px;height:39px;font-size:14px;border-radius:12px}.connectionCard h3{font-size:14px}.connectionCard summary small{font-size:10px}.connectionCard .agentTag{font-size:9px;padding:5px 8px}.connectionBody{padding:0 18px 20px}.agentQuietNote{font-size:10px}.floorMap{height:350px;border-radius:16px}.mapWrap{padding:15px;border-radius:22px}.mapLegend{gap:10px;font-size:9px;margin-bottom:15px}.mapRoom{padding:10px;border-radius:9px}.mapRoom b{font-size:10px;line-height:1.3}.mapRoom small{font-size:8px}.mapDevice{width:28px;height:28px;border-radius:9px}.mapDevice .svgIcon,.mapDevice svg{width:15px;height:15px}.mapInspector .physicalDeviceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.mapInspector .homePhysicalCard{height:130px;padding:15px}.automationList{grid-template-columns:1fr}.automationCard{padding:21px;border-radius:22px}.automationCardHead h3{font-size:15px}.libraryHeading{margin-bottom:16px}.voiceGrid{grid-template-columns:1fr}.voiceCard{padding:22px}.voiceCardTitle{margin-bottom:18px}.voiceCard h3{font-size:19px}.voiceCard .actions button{min-height:40px;font-size:12px;padding:8px 17px}.voiceOverviewCopy b{font-size:13px}.voiceOverviewCopy span{font-size:11px}.voiceOverview{padding-bottom:20px;gap:15px}.settingsIntro>div:first-child h3{font-size:29px;margin-bottom:12px}.settingsHealth{gap:12px;margin-bottom:22px;padding:15px 0}.settingsHealth b{font-size:10px}.settingsShortcut{min-height:77px;padding:16px 18px;gap:14px}.settingsShortcut b{font-size:13px}.settingsShortcut small{font-size:10px}.settingRowIcon{width:36px;height:36px;border-radius:11px}.settingsCategoryBar{gap:2px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-20px;padding-right:20px}.settingsCategoryBar button{font-size:10px;padding:8px 11px;flex:none}.settingsCategoryBar button[data-settings-cat=all]{padding-left:0}.settingCard{padding:21px;border-radius:22px}.friendlyFormGrid,.formGrid,.coordsRow{grid-template-columns:1fr;gap:16px}.span2{grid-column:auto}.friendlyFormGrid input,.friendlyFormGrid select{font-size:16px}.credentialRow{flex-wrap:wrap}.credentialRow input{flex-basis:180px;font-size:14px}.credentialRow button{flex:1}.settingMetaRow{gap:7px}.bridgeActions button{font-size:11px}.settingsActionsInline button{font-size:11px;flex:1}.advancedSettings{padding:9px 20px}.modal{padding:12px}.modalCard,.deviceHubCard,.automationEditorCard{max-height:calc(100dvh - 24px);border-radius:25px;padding:23px;width:100%}.deviceHubCard{padding:0}.deviceHubHeader{padding:19px 20px}.deviceHubIdentity b{font-size:16px}.deviceHubIdentity small{font-size:10px}.deviceHubBody{padding:20px}.hubSettingsGrid,.friendlyControlGrid{grid-template-columns:1fr}.choiceGrid.four,.vacuumModeGrid,.vacCustomFields{grid-template-columns:repeat(2,minmax(0,1fr))}.tvControlLayout{grid-template-columns:1fr}.maintenanceGrid{grid-template-columns:1fr}.vacuumMetrics{gap:6px;flex-wrap:wrap}.hubMetric{padding:10px;min-width:100px}.hubMetric strong{font-size:17px}.vacuumAppHero,.cameraAppHero,.tvHero,.genericHubHero{flex-wrap:wrap}.stackFields{grid-template-columns:1fr}.repeatRow{grid-template-columns:20px minmax(0,1fr) 28px;gap:8px}.repeatRow input,.repeatRow select:nth-of-type(2){grid-column:2;grid-row:2}.repeatRow .rowRemove{grid-column:3;grid-row:1/3}.builderTitle h3{font-size:21px}.assistantDrawer{inset:12px;width:auto;border-radius:24px}.assistantComposer{padding-bottom:calc(14px + env(safe-area-inset-bottom))}.bottomNav{bottom:calc(13px + env(safe-area-inset-bottom));width:calc(100% - 38px);max-width:420px;border-radius:24px;padding:6px}.bottomNavBtn{min-height:53px}.ownerGateCard{padding:34px 24px}.simpleHero h2{font-size:21px}.simplePower{min-width:90px;padding:10px 15px;font-size:12px}.voiceRaw{font-size:9px}.hubRoomBar select{max-width:170px}.safetyNote{font-size:9px}}
@media(max-width:360px){.main{padding-inline:15px}.homeHero h2{font-size:30px}.homePhysicalCard{padding:16px;height:147px}.homePhysicalName{font-size:12px}.homePhysicalState{font-size:9px}.presenceCard small{display:none}.forecastGrid{gap:3px}.forecastTemps span{display:none}.homeAmbient .featureCard{padding:17px}.settingMetaRow{flex-wrap:wrap}.connectionCard .agentTag{display:none}.settingsHealth{gap:8px}.settingsHealth b{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Device-specific geometry shares the same visual tokens. */
.vacuumMapRoom{position:absolute;background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:12px;font-size:11px;font-weight:500;padding:10px}.vacuumMapRoom.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.vacuumMapPin{left:47%;top:55%}.roomPicker{display:flex;gap:6px;flex-wrap:wrap;padding:15px}.roomPick{font-size:11px;padding:7px 11px;min-height:34px;border-radius:30px;background:var(--soft);color:var(--muted)}.roomPick.selected{background:var(--accent);color:var(--panel)}.mapActionBar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px}.mapActionBar b{font-size:12px;font-weight:500}.mapActionBar small{display:block;font-size:10px;margin-top:4px;max-width:320px;line-height:1.5}.mapActionBar button{font-size:11px;min-height:38px}.lifeTrack>i{display:block;height:100%;background:var(--accent)}.managerCard label{margin-top:10px}.cameraToggle span{font-size:20px}.quickActionGrid>button{background:var(--soft);color:var(--text);font-size:12px;padding:16px;display:grid;place-items:center;gap:8px}.cameraPtz button{background:var(--soft);color:var(--text);padding:10px}.sourceGrid .sourceChip{font-size:12px}.tvPanel h3{margin-bottom:15px;font-size:15px}.friendlyDetails{border-top:1px solid var(--line);margin-top:22px;font-size:12px}.friendlyDetails summary{min-height:48px}.controlBody small{color:var(--muted)}
@media(max-width:600px){.mapActionBar{flex-wrap:wrap;padding:15px}.mapActionBar button{width:100%}.roomPicker{padding-bottom:0}.vacuumMapRoom{font-size:9px;padding:7px}.deviceHubIcon{width:39px;height:39px;border-radius:13px}.cameraToggle span{font-size:18px}}

@media(max-width:600px){.homeHero{margin-bottom:22px}.homeHeroAside{margin-top:16px}.weatherCard{min-height:150px;padding:16px 19px;gap:12px}.forecastGrid{padding-top:11px}.forecastDay{gap:5px}.climatePanel{min-height:74px;padding:14px 19px}.homeAmbient{gap:10px;margin-bottom:20px}.zoneChips{margin-bottom:17px}.homePhysicalCard{height:150px}}

.voiceBehaviourSettings{font-size:12px;border-top:1px solid var(--line);margin-top:22px;padding-top:6px}.voiceBehaviourSettings>.friendlyFormGrid{padding:15px 0}.hubSection>summary{font-size:14px;font-weight:500;margin-bottom:16px}.hubSection:not([open])>summary{margin-bottom:0}.placementPreferences .hubRoomBar{margin:10px 0 0;border:0;padding:10px 0}.deviceHubBody .hubKicker,.simpleHero h2{display:none}.simpleHero>div>p{margin:0;font-size:18px;color:var(--text)}.vacuumTitle h2{display:none}.vacuumTitle p{font-size:15px;color:var(--text);text-transform:capitalize}.vacuumAppHero{margin-top:3px}.hubMetric{background:transparent;border:0;padding:0 0 0 16px;border-left:1px solid var(--line);border-radius:0}.hubMetric strong{font-size:23px}.hubMetric small{font-size:10px}.hubMetric>span{display:none}.hubRoomBar b{margin-right:6px}.hubSection.mapSection{padding-bottom:15px}.hubAdvanced.placementPreferences{margin-top:12px}body.sidebar-open{overflow:hidden}

.connectionCard{background:var(--panel);border:1px solid var(--line)}.vacuumSyncNote summary{font-size:11px;min-height:32px}.vacuumSyncNote p{font-size:11px;margin-top:8px}
