:root{color:#0d2640;background:#073f65;font-family:Inter,ui-rounded,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{overscroll-behavior:none;overflow:hidden;height:100%}body{margin:0;min-width:320px}#root{height:100%;overflow:hidden}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.58}.app-background,.login-screen{min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#ffffffb3,#ffffff2e 18%,#fff0 34%),linear-gradient(145deg,#f6fcff,#77ddf2 28%,#159bc5 58%,#075c8d)}.app-background{display:flex;align-items:center;justify-content:center}.app-background.dark-mode{background:radial-gradient(circle at 50% 0%,#50697861,#50697800 34%),linear-gradient(145deg,#22272d,#171b20 46%,#0d1116)}.app-background.dark-mode .phone-frame{border-color:#8e9fb047;background:linear-gradient(180deg,#242a31fa,#12171dfa);box-shadow:0 24px 54px #00000075}.app-background.dark-mode .app-header{background:linear-gradient(180deg,#262d35fa,#1c2229eb)}.app-background.dark-mode .app-content{background:linear-gradient(180deg,#1f252cf5,#11161cfa)}.app-background.dark-mode .bottom-tabs{background:#161b21fa;box-shadow:0 -1px #8fa4b51f,0 -18px 30px #0000003d}.app-background.dark-mode .header-logo-title,.app-background.dark-mode .section-heading h2{color:#f1f7fb}.app-background.dark-mode .header-logo-sub,.app-background.dark-mode .section-heading p,.app-background.dark-mode .section-heading .eyebrow{color:#cddae5c7}.app-background.dark-mode .settings-card{background:#222830eb;box-shadow:inset 0 0 0 1px #93a8b921,0 12px 26px #00000038}.app-background.dark-mode .settings-row{box-shadow:inset 0 -1px #99abbc1a}.app-background.dark-mode .settings-row-text span,.app-background.dark-mode .settings-row-text small{color:#c6d5e2bd}.app-background.dark-mode .settings-row-text strong{color:#f3f8fb}.app-background.dark-mode .settings-row-icon,.app-background.dark-mode .header-bell{background:#39444fe0;color:#9edfff}.app-background.dark-mode .health-sheet{color:#143a58;background:#f7fdfffa}.app-background.dark-mode .health-sheet .eyebrow,.app-background.dark-mode .health-row .settings-row-text span{color:#6e879b}.app-background.dark-mode .health-sheet-header h3,.app-background.dark-mode .health-row .settings-row-text strong{color:#143a58}.app-background.dark-mode .health-row .settings-row-text small{color:#7f93a4}.app-background.dark-mode .health-row .settings-row-icon{background:#59616c;color:#b8eaff}.phone-frame{width:min(100%,430px);min-height:calc(100dvh - 36px);max-height:920px;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:32px;background:linear-gradient(180deg,#fdfefff7,#ebf9fff2);box-shadow:0 24px 54px #063b5b52}.app-header{display:flex;align-items:center;justify-content:flex-end;position:relative;min-height:92px;padding:14px 22px 10px;touch-action:pan-x}.header-logo-wrap{position:absolute;left:50%;top:6px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;width:auto;pointer-events:none;background:transparent;border:0;border-radius:0;box-shadow:none}.header-logo-fox{width:60px;height:54px;background-repeat:no-repeat;background-size:170% auto;background-position:50% 6%}.header-logo-text{display:flex;flex-direction:column;align-items:center;line-height:1}.header-logo-title{color:#355871;font-size:16px;font-weight:900;letter-spacing:.2em}.header-logo-sub{margin-top:2px;color:#638195;font-size:9px;font-weight:700;letter-spacing:.32em}.app-header h1,.login-card h1,.section-heading h2{margin:0;color:#12395c;font-size:24px;line-height:1.05}.eyebrow{display:block;margin-bottom:4px;color:#5d83a0;font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.brand-mark,.login-icon{display:grid;place-items:center;color:#087caf;background:linear-gradient(180deg,#fff,#ddf6ff);box-shadow:inset 0 0 0 1px #087caf1f,0 8px 20px #0e679029}.header-actions{position:absolute;right:22px;top:14px;display:inline-flex;align-items:center;gap:10px}.header-left-actions{position:absolute;left:22px;top:14px;display:inline-flex;align-items:center;gap:10px}.header-home{color:#087caf}.header-bell{position:relative;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:16px;color:#066e9d;background:linear-gradient(180deg,#fff,#d8f7ff);box-shadow:inset 0 0 0 1px #087caf29,0 10px 22px #0a5b8438;transition:transform .16s ease,color .16s ease}.header-bell.active{color:#fff;background:linear-gradient(160deg,#14b1da,#0c7fbe)}.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;color:#fff;background:#ef5b30;font-size:10px;font-weight:900;line-height:18px;text-align:center;box-shadow:0 2px 6px #b4320c66}.settings-card{display:grid;gap:12px;padding:14px;border-radius:24px;border:1px solid rgba(255,255,255,.78);background:#ffffffeb;box-shadow:0 10px 24px #1567911a}.settings-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:4px 2px}.dark-mode-settings-row{grid-template-columns:auto 1fr auto}.settings-action-row{width:100%;grid-template-columns:auto 1fr auto;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer;touch-action:manipulation}.settings-action-row:active{transform:scale(.99)}.settings-action-row:disabled{cursor:not-allowed;opacity:.52}.settings-row-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;color:#0a82b7;background:#eaf8ff}.settings-toggle{position:relative;width:52px;height:30px;flex:0 0 auto}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle span{position:absolute;inset:0;border-radius:999px;background:#d7e8f0;box-shadow:inset 0 0 0 1px #0a82b71f;transition:background .18s ease}.settings-toggle span:before{content:"";position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:999px;background:#fff;box-shadow:0 2px 8px #1430462e;transition:transform .18s ease}.settings-toggle input:checked+span{background:#151b22}.settings-toggle input:checked+span:before{transform:translate(22px);background:#8bdcff}.settings-row-icon.danger{color:#ca3d18;background:#fff1eb}.danger-row{color:#9d351c}.settings-row-text span{display:block;color:#6d8aa1;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}.settings-row-text strong{display:block;color:#143a58;font-size:15px}.settings-row-text small{display:block;margin-top:3px;color:#7893a6;font-size:12px;font-weight:700}.section-heading.compact{margin-top:4px}.calibration-backdrop{position:fixed;inset:0;z-index:1000;display:grid;align-items:end;background:#0a182452;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.calibration-sheet{position:relative;overflow:hidden;padding-bottom:max(12px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0;color:#1b1f24;background:#fffffffa;box-shadow:0 -16px 44px #0b20313d}.calibration-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:#0f23320f;color:#475467;cursor:pointer;z-index:2;transition:background .15s,color .15s}.calibration-close:hover{background:#0f23321f;color:#102a3b}.calibration-title{height:74px;display:grid;place-items:center;border-bottom:1px solid rgba(16,34,48,.1);font-size:22px;font-weight:500}.calibration-wheel{position:relative;display:grid;align-content:center;min-height:240px;padding:14px 7%;background:linear-gradient(180deg,#fff 0% 42%,#f9fafb);touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize}.calibration-wheel-row{height:52px;border:0;color:#282d323d;background:transparent;font-size:34px;font-weight:700;text-align:center}.calibration-wheel-row:nth-child(1),.calibration-wheel-row:nth-child(5){color:#282d321a;transform:scale(.82)}.calibration-wheel-row.selected{color:#24282d;font-size:54px;font-weight:500}.calibration-selection-line{position:absolute;left:7%;right:7%;height:1px;background:#1a27322e}.calibration-selection-line.top{top:calc(50% - 32px)}.calibration-selection-line.bottom{top:calc(50% + 32px)}.calibration-stepper{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:8px 28px 18px}.calibration-stepper button{height:44px;border:0;border-radius:16px;color:#0a7fb5;background:#eaf8ff;font-size:28px;line-height:1}.calibration-stepper strong{color:#8392a1;font-size:12px;font-weight:900;text-transform:uppercase}.calibration-actions{display:grid;grid-template-columns:1fr 1fr;min-height:74px;border-top:10px solid #f6f7f8}.calibration-actions button{border:0;background:#fff;color:#24282d;font-size:22px;font-weight:400;text-transform:none}.calibration-actions .confirm{border-left:1px solid rgba(16,34,48,.09);color:#6fa8ee;font-weight:700;text-transform:none}.health-sheet{display:grid;gap:14px;overflow:hidden;padding:18px;border-radius:24px 24px 0 0;color:#1b1f24;background:#f7fdfffa;box-shadow:0 -16px 44px #0b20313d}.health-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.health-sheet-header h3{margin:0;color:#12395c;font-size:24px}.health-sheet-header button{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:14px;color:#0a82b7;background:#eaf8ff}.health-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.health-status-pill{display:grid;gap:2px;padding:12px;border-radius:18px;color:#55758c;background:#eef7fb}.health-status-pill span{font-size:11px;font-weight:900;text-transform:uppercase}.health-status-pill strong{color:#143a58;font-size:17px}.health-status-pill.good{background:#e9f8f1}.health-status-pill.good strong{color:#0f7b52}.health-status-pill.bad{background:#fff0ea}.health-status-pill.bad strong{color:#c64220}.health-list{display:grid;gap:12px}.health-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:12px;border-radius:18px;background:#ffffffd1;box-shadow:inset 0 0 0 1px #0a82b70f}.hub-switch-sheet{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:0;overflow:hidden;height:min(84svh,720px);max-height:84svh;padding:0;border-radius:24px 24px 0 0;color:#1b1f24;background:#f7fdfffa;box-shadow:0 -16px 44px #0b20313d}.hub-switch-sheet>.health-sheet-header{padding:18px 18px 4px}.hub-switch-list{display:grid;gap:10px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:4px 18px 24px;min-height:0}.hub-switch-card{position:relative;display:grid;gap:7px;width:100%;padding:11px 12px;border:0;border-radius:14px;color:#153956;background:#fff;box-shadow:inset 0 0 0 1px #0a82b717,0 4px 12px #1567910f;text-align:left}.hub-switch-card.selected{background:#ecf9ff;box-shadow:inset 0 0 0 2px #0a84bd4d,0 4px 12px #15679114}.hub-switch-card.preview{opacity:.76}.hub-switch-main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding-right:60px}.hub-switch-main strong{display:block;color:#143a58;font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-switch-main small{display:block;margin-top:1px;color:#7893a6;font-size:11px;font-weight:700;font-family:ui-monospace,monospace}.hub-status-dot{width:9px;height:9px;border-radius:999px;background:#d76545;box-shadow:0 0 0 3px #d7654526;flex-shrink:0}.hub-status-dot.online{background:#20aa72;box-shadow:0 0 0 3px #20aa7224}.hub-switch-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.hub-switch-metrics span{min-width:0;padding:5px 7px;border-radius:8px;color:#5f7f95;background:#eef7fb;font-size:10px;font-weight:800;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-selected-pill{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:3px;min-height:20px;padding:0 7px;border-radius:999px;color:#087946;background:#e9f8f1;font-size:9px;font-weight:900;letter-spacing:.02em}.hub-selected-pill.preview{color:#6b879d;background:#eef7fb}.hub-switch-empty{display:grid;gap:4px;padding:20px 16px;border-radius:18px;color:#6d8aa1;background:#eef7fb;font-size:13px;line-height:1.5;text-align:center}.hub-switch-empty strong{display:block;color:#12314b;font-size:14px;font-weight:800;margin-bottom:2px}.hub-switch-empty span{font-weight:600}.hub-switch-toolbar{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 18px 12px;border-bottom:1px solid rgba(11,131,185,.08)}.hub-switch-search{position:relative;display:flex;align-items:center;background:#eef7fb;border:1px solid rgba(11,131,185,.14);border-radius:14px;padding:0 12px;min-height:44px;transition:border-color .15s,box-shadow .15s}.hub-switch-search:focus-within{border-color:#0b83b973;box-shadow:0 0 0 3px #0b83b91f;background:#fff}.hub-switch-search svg{color:#6b879d;flex-shrink:0}.hub-switch-search input{flex:1;border:0;outline:0;padding:0 8px;background:transparent;font-size:14px;font-weight:600;color:#12314b;min-width:0}.hub-switch-search input::placeholder{color:#94a8b6}.hub-switch-search-clear{width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:50%;background:#0f3c5a14;color:#475467;cursor:pointer;flex-shrink:0}.hub-switch-search-clear:hover{background:#0f3c5a29}.hub-switch-add{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:14px;background:linear-gradient(135deg,#2eb6e8,#0b83b9);color:#fff;cursor:pointer;box-shadow:0 8px 18px #0b83b952;transition:transform .15s ease,box-shadow .15s ease}.hub-switch-add:hover{transform:translateY(-1px);box-shadow:0 12px 22px #0b83b966}.hub-switch-add:active{transform:translateY(0)}.rate-sheet{display:grid;gap:16px;overflow:hidden;padding:18px 18px max(18px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0;color:#1b1f24;background:#f7fdfffa;box-shadow:0 -16px 44px #0b20313d}.add-device-sheet,.modal-action-sheet{width:min(100%,430px);max-height:calc(100svh - 18px);overflow-y:auto;padding-bottom:max(12px,env(safe-area-inset-bottom))}.rate-input-wrap{display:grid;gap:8px}.rate-input-wrap>span{color:#6d8aa1;font-size:11px;font-weight:900;text-transform:uppercase}.rate-input-wrap div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:12px 14px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px #0a82b71c}.rate-input-wrap strong{color:#0a82b7;font-size:24px}.rate-input-wrap svg{color:#0a82b7}.rate-input-wrap input{min-width:0;border:0;outline:0;color:#143a58;background:transparent;font-size:24px;font-weight:800;touch-action:none}.rate-input-wrap.compact input{font-size:18px}.rate-input-wrap textarea{min-height:94px;width:100%;resize:vertical;border:0;outline:0;border-radius:18px;padding:13px 14px;color:#143a58;background:#fff;box-shadow:inset 0 0 0 1px #0a82b71c;font:inherit;font-size:15px;font-weight:800;line-height:1.35}.reminder-enabled-row{padding:10px 2px 2px}.profile-address-grid{display:grid;grid-template-columns:minmax(0,1fr) 78px 112px;gap:10px}.profile-address-grid .rate-input-wrap div{grid-template-columns:1fr}.profile-address-grid .rate-input-wrap input{text-align:left}.rate-help{margin:0;color:#6d8aa1;font-size:13px;line-height:1.45}@media(max-width:430px){.profile-address-grid{grid-template-columns:1fr}}.rate-stepper{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px}.rate-stepper button{height:44px;border:0;border-radius:16px;color:#0a7fb5;background:#eaf8ff;font-size:28px;line-height:1}.rate-stepper strong{display:block;min-width:0;color:#143a58;text-align:center;font-size:15px}.rate-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.add-device-actions{position:sticky;bottom:0;grid-template-columns:1.35fr .85fr;margin:0 -18px;padding:10px 18px max(14px,env(safe-area-inset-bottom));background:#f7fdfffa;box-shadow:0 -12px 24px #0b203114}.modal-sheet-actions{position:sticky;bottom:0;margin:0 -18px;padding:10px 18px max(14px,env(safe-area-inset-bottom));background:#f7fdfffa;box-shadow:0 -12px 24px #0b203114}.rate-actions button{min-height:46px;border:0;border-radius:16px;color:#143a58;background:#eaf8ff;font-weight:900}.rate-actions .confirm{color:#fff;background:linear-gradient(160deg,#14b1da,#0c7fbe)}.rate-actions .danger-confirm{color:#fff;background:linear-gradient(160deg,#ff7a47,#d8431a)}.settings-row-text.reset-calibration-text span,.settings-row-text.reset-calibration-text strong{color:#c9351d}.remove-device-warning{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px;border-radius:18px;background:#fff1ebd9;box-shadow:inset 0 0 0 1px #d8431a1f}.primary-button.danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(160deg,#ff7a47,#d8431a);box-shadow:0 12px 24px #c43c1247}.brand-mark{width:44px;height:44px;border-radius:16px}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 18px 96px}.screen-stack{display:grid;gap:14px}.hero-card,.control-tile,.metric-card,.schedule-card,.alert-card,.empty-state,.login-card,.loading-box,.error-box,.success-box{border:1px solid rgba(255,255,255,.78);background:#ffffffe6;box-shadow:0 10px 24px #1567911a}.hero-card{display:grid;gap:16px;padding:18px;border-radius:26px}.hero-topline,.status-row,.setpoint-row,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-topline{color:#153956;font-weight:800}.hero-title-button{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;border:0;color:inherit;background:transparent;text-align:left}.hero-title-button svg{flex:0 0 auto;margin-top:1px;color:#daf0ffe0}.icon-button,.round-control{display:grid;place-items:center;border:0;color:#0b76ab;background:#eefaff;box-shadow:inset 0 0 0 1px #0772aa1a}.icon-button{width:38px;height:38px;border-radius:14px}.status-pill{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:800}.status-pill.online{color:#087946;background:#1ec57729}.status-pill.offline{color:#a23b20;background:#ff744829}.muted-text,.helper-text{color:#6d8aa1;font-size:12px;font-weight:650}.temperature-orbit{position:relative;display:grid;place-items:center;width:218px;aspect-ratio:1;margin:0 auto}.temperature-orbit.compact{width:100%;max-width:100%;height:18px;aspect-ratio:auto;margin:0}.temperature-orbit.compact .orbit-ring{border-radius:999px;background:linear-gradient(90deg,#10d8e6 0 var(--progress),rgba(82,154,214,.25) var(--progress) 100%),radial-gradient(circle,transparent 59%,#ffffff 60%)}.orbit-ring{position:absolute;inset:0;border-radius:999px;background:conic-gradient(from 210deg,#ff7b31 var(--progress),rgba(202,232,242,.9) 0 76%,transparent 76%),radial-gradient(circle,transparent 59%,#ffffff 60%)}.temperature-core{position:relative;z-index:1;display:grid;place-items:center;width:132px;height:132px;border-radius:999px;color:#174260;background:#fff;box-shadow:inset 0 0 0 1px #e0f2fa,0 8px 20px #1862881a}.temperature-core strong{color:#f26e22;font-size:44px;line-height:.9}.temperature-core span{color:#6e8ba1;font-size:12px;font-weight:800}.temperature-core .core-label{color:#ef6e29}.setpoint-row{max-width:220px;width:100%;margin:-4px auto 0;text-align:center}.setpoint-row strong{display:block;color:#153956;font-size:20px}.setpoint-saving{display:block;margin-top:2px;color:#0a86ba;font-size:11px;font-weight:850}.round-control{width:42px;height:42px;border-radius:999px;font-size:22px;font-weight:900}.control-grid,.metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.control-tile{position:relative;overflow:hidden;min-height:128px;display:grid;align-content:space-between;justify-items:start;padding:16px;border-radius:24px;color:#19415e;transform:translateZ(0);will-change:background-color,transform;transition:background .24s ease,color .18s ease,opacity .18s ease,transform .18s ease}.control-tile svg{color:#0d7bab}.control-tile span,.metric-card span{color:#7590a6;font-size:12px;font-weight:800}.control-tile strong{font-size:22px}.control-tile small{position:absolute;right:14px;bottom:12px;color:inherit;opacity:.76;font-size:11px;font-weight:850}.control-tile.active{color:#fff;background:linear-gradient(160deg,#0a92c2,#0473aa);transform:translateY(-1px)}.control-tile.heat.active{background:linear-gradient(160deg,#ff8742,#e95c17)}.control-tile.active span,.control-tile.active svg{color:#ffffffd6}.control-tile.sending{isolation:isolate}.control-tile.sticky{transition-duration:.32s}.control-tile.sending:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.24) 45%,transparent 70%);transform:translate(-100%);animation:commandSheen 1.55s ease-in-out infinite}@keyframes commandSheen{to{transform:translate(100%)}}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{min-height:98px;display:grid;gap:7px;padding:14px;border-radius:20px}.metric-card svg{color:#0a82b7}.metric-card strong{color:#173e5c;font-size:20px}.summary-grid{grid-template-columns:minmax(0,1fr)}.metrics-summary{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px;padding:14px 12px;min-height:0}.summary-cell{display:grid;justify-items:center;align-content:center;gap:4px;text-align:center;min-width:0}.summary-cell svg{color:#36c2f3}.summary-cell span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.summary-cell strong{font-size:17px;line-height:1}.summary-divider{width:1px;align-self:stretch;margin:6px 0;background:#8cb4e647}.dashboard-shell .summary-cell svg{color:#36c2f3}.bottom-tabs{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:10px 16px max(13px,env(safe-area-inset-bottom));border-top:1px solid rgba(194,229,240,.72);background:#fcfefff5;touch-action:pan-x}.tab-button{display:grid;place-items:center;gap:3px;min-height:54px;min-width:0;border:0;border-radius:16px;color:#7790a5;background:transparent;font-size:9px;font-weight:850}.tab-button.active{color:#087bb0;background:#edf9ff}.section-heading{padding:8px 2px 2px}.schedule-card,.alert-card,.empty-state{border-radius:24px;padding:16px}.schedule-card{display:grid;gap:12px}.schedule-create-strip{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px 16px;border-radius:22px;border:1px solid rgba(255,255,255,.78);background:#fffffff0;box-shadow:0 10px 24px #1567911a}.schedule-create-strip strong{display:block;color:#163d5b;font-size:17px}.schedule-card h3,.alert-card h3,.empty-state h3{margin:0;color:#163d5b}.schedule-time-range{display:block;max-width:100%;overflow-wrap:anywhere;color:#143a58;font-size:20px;line-height:1.1;text-align:left}.day-row{display:flex;flex-wrap:wrap;gap:6px}.day-chip{min-width:38px;padding:7px 8px;border-radius:999px;color:#7490a5;background:#eef7fb;text-align:center;font-size:11px;font-weight:850}.day-chip.active{color:#fff;background:#0a84bd}.history-segments{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid rgba(147,189,243,.72);border-radius:14px;background:#ffffffc7}.history-segments button{min-height:38px;border:0;color:#7aa5d9;background:transparent;font-size:14px;font-weight:850}.history-segments button.active{color:#fff;background:#93bdf3}.history-period-nav{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;padding:0;margin-top:-4px}.history-period-nav button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:13px;color:#8aa0af;background:#ffffffb3}.history-period-nav strong{color:#2d3540;font-size:18px;text-align:center}.history-summary{display:grid;gap:2px;padding:13px 15px;border-radius:20px;color:#5f7f95;background:#ffffffdb;box-shadow:0 10px 24px #15679114}.history-summary span{font-size:11px;font-weight:900;text-transform:uppercase}.history-summary strong{color:#163d5b;font-size:14px}.analytics-grid{display:grid;gap:12px}.chart-card{display:grid;gap:12px;padding:16px;border-radius:24px;border:1px solid rgba(255,255,255,.78);background:#ffffffe6;box-shadow:0 10px 24px #1567911a}.chart-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.chart-value{display:block;color:#163d5b;font-size:22px;line-height:1}.chart-cost-line{display:block;margin-top:5px;color:#5f7f95;font-size:12px;font-style:normal;font-weight:850}.chart-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:#eefaff}.chart-plot{position:relative;cursor:crosshair;touch-action:none}.history-chart{width:100%;min-height:190px;overflow:visible}.chart-grid-line line{stroke:#739bb233;stroke-width:1.4;stroke-dasharray:5 6}.chart-grid-line text,.chart-x-label{fill:#7f8e99;font-size:12px;font-weight:750}.chart-grid-line text{text-anchor:end}.chart-x-label{text-anchor:middle}.history-chart polyline{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.chart-active line{stroke:#93bdf3;stroke-width:2}.chart-active circle{fill:#fff;stroke-width:4}.chart-tooltip{position:absolute;z-index:2;min-width:92px;padding:8px 10px;border-radius:7px;color:#fff;background:#2d2d2de6;box-shadow:0 8px 18px #13233033;pointer-events:none;transform:translate(-50%,-100%);text-align:left}.chart-tooltip:after{content:"";position:absolute;left:50%;bottom:-7px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:8px solid rgba(45,45,45,.9);transform:translate(-50%)}.chart-tooltip span,.chart-tooltip strong,.chart-tooltip small{display:block;line-height:1.1}.chart-tooltip span{margin-bottom:5px;font-size:12px}.chart-tooltip strong{font-size:18px}.chart-tooltip small{margin-top:5px;font-size:12px;font-weight:800;opacity:.84}.chart-empty{display:grid;place-items:center;min-height:190px;border-radius:18px;color:#7b96a9;background:#f1f9fd;font-size:13px;font-weight:850}.chart-stats{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#6e8ba0;font-size:12px;font-weight:800}.empty-state{display:grid;place-items:center;gap:8px;min-height:230px;color:#6c8ba0;text-align:center}.empty-state p{max-width:280px;margin:0;line-height:1.45}.no-device-state{min-height:430px;align-content:center;padding:28px 18px}.no-device-icon{display:grid;place-items:center;width:78px;height:78px;border-radius:24px;color:#087caf;background:linear-gradient(180deg,#fff,#dff6ff);box-shadow:inset 0 0 0 1px #087caf1f,0 12px 24px #0e679024}.no-device-state .primary-button{width:min(100%,220px);margin-top:8px}.app-success-banner{position:sticky;top:0;z-index:4}.alert-card{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:12px}.alert-section{display:grid;gap:10px}.alert-section-title,.alert-card-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.alert-section-title{padding:0 4px;color:#d04c23;font-size:12px;font-weight:900;text-transform:uppercase}.alert-section-title.muted{color:#6f91a7}.alert-section-title-main{display:inline-flex;align-items:center;gap:8px}.alert-clear-button{border:0;border-radius:999px;padding:7px 10px;display:inline-flex;align-items:center;gap:5px;color:#b42318;background:#fff1f0;font-size:11px;font-weight:900;text-transform:none}.enterprise-page{padding-bottom:4px}.enterprise-status{color:#0e6d62;background:#e8fbf6}.enterprise-hero,.enterprise-integration-card,.enterprise-reliability-card,.enterprise-activity,.enterprise-device-strip{border:1px solid rgba(255,255,255,.78);background:#ffffffeb;box-shadow:0 10px 24px #1567911a}.enterprise-hero{display:grid;gap:16px;padding:17px;border-radius:24px}.enterprise-hero h3{margin:0;color:#173e5c;font-size:20px;line-height:1.15}.enterprise-health-grid,.enterprise-reliability-grid,.enterprise-device-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.enterprise-health-grid div,.enterprise-reliability-card,.enterprise-device-strip div{display:grid;align-content:center;gap:5px;min-width:0;padding:12px;border-radius:18px;background:#edf9ff}.enterprise-health-grid svg,.enterprise-reliability-card svg,.enterprise-device-strip svg{color:#0a82b7}.enterprise-health-grid strong,.enterprise-reliability-card strong{color:#173e5c;font-size:16px}.enterprise-health-grid span,.enterprise-integration-card span,.enterprise-integration-card p,.enterprise-reliability-card span,.enterprise-action-row span,.enterprise-device-strip span{color:#6f8ba1;font-size:12px;font-weight:800;line-height:1.35}.enterprise-section{display:grid;gap:10px}.enterprise-section-title{display:flex;align-items:center;gap:7px;padding:0 4px;color:#54758d;font-size:12px;font-weight:900;text-transform:uppercase}.enterprise-card-list{display:grid;gap:10px}.enterprise-integration-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;position:relative;padding:14px;border-radius:20px}.enterprise-integration-card strong,.enterprise-action-row strong{display:block;color:#173e5c;font-size:17px}.enterprise-integration-card p{margin:3px 0 0;font-weight:700}.enterprise-integration-card small{grid-column:2;width:fit-content;padding:5px 8px;border-radius:999px;color:#0d715f;background:#e8fbf6;font-size:11px;font-weight:900}.enterprise-card-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;color:#0a82b7;background:#eaf8ff}.enterprise-reliability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.enterprise-reliability-card{min-height:116px}.enterprise-activity{display:grid;gap:10px;padding:14px;border-radius:22px}.enterprise-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.enterprise-live-device{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:82px;padding:14px;border:1px solid rgba(255,255,255,.78);border-radius:20px;background:#ffffffeb;box-shadow:0 10px 24px #1567911a}.enterprise-live-device-main{min-width:0}.enterprise-live-device-main strong{display:block;color:#173e5c;font-size:17px}.enterprise-live-device-main span,.enterprise-live-device-main p{margin:0;color:#6f8ba1;font-size:12px;font-weight:800;line-height:1.35}.enterprise-device-controls{display:grid;grid-template-columns:32px 38px 32px;align-items:center;gap:3px;padding:4px;border-radius:999px;background:#edf9ff}.enterprise-device-controls button{width:32px;height:32px;border:0;border-radius:999px;color:#0a76aa;background:#fff;font-size:18px;font-weight:900}.enterprise-device-controls strong{color:#173e5c;font-size:15px;text-align:center}.enterprise-command-button{min-width:74px;height:38px;border:0;border-radius:999px;color:#fff;background:linear-gradient(160deg,#0a92c2,#0473aa);font-size:12px;font-weight:900}.enterprise-command-button.locked{background:linear-gradient(160deg,#ef7c41,#db4e17)}.enterprise-mini-status{padding:6px 9px;border-radius:999px;color:#0d715f;background:#e8fbf6;font-size:11px;font-weight:900;text-transform:capitalize}.enterprise-command-list{display:grid;gap:8px}.enterprise-command-row,.enterprise-empty-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:12px;border-radius:16px;color:#6f8ba1;background:#ffffffc7;font-size:12px;font-weight:800}.enterprise-command-row strong{color:#0d715f;text-transform:capitalize}.enterprise-command-row small{grid-column:1 / -1;color:#88a0b2;font-size:11px}.enterprise-action-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:0;border:0;color:inherit;background:transparent;text-align:left}.enterprise-device-strip{grid-template-columns:repeat(3,minmax(0,1fr));padding:10px;border-radius:22px}.enterprise-device-strip div{justify-items:center;padding:10px 6px;text-align:center}.alert-card-topline{margin-bottom:4px}.alert-card p{margin:5px 0 0;color:#718da2;font-size:12px}.alert-card button{border:0;border-radius:999px;padding:8px 10px;color:#0a7fb4;background:#e9f8ff;font-weight:850}.alert-card.critical svg{color:#e94921}.alert-card.warning svg{color:#e69a10}.alert-card.info svg{color:#0a84bd}.alert-card.resolved{background:#ffffffb8}.alert-card.resolved h3{color:#58768b}.alert-card.resolved svg{color:#22a971}.alert-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;color:#fff;background:#e94921;font-size:10px;font-weight:900;text-transform:uppercase}.alert-status-pill.active{background:#e94921}.alert-status-pill.acknowledged{color:#55758c;background:#eef7fb}.alert-status-pill.resolved{color:#0f7b52;background:#e9f8f1}.floating-status,.success-box,.error-box,.loading-box{border-radius:18px;padding:12px 14px;font-size:13px;font-weight:800}.floating-status{position:sticky;bottom:10px;z-index:3;color:#0b6f9f;background:#ebf9fff5}.success-box{color:#0b7946;background:#25ce7e24}.error-box{color:#a93518;background:#ff6a4024}.loading-box{color:#53748f}.login-screen{display:grid;place-items:center}.login-card{width:min(100%,390px);display:grid;gap:14px;padding:26px;border-radius:30px;text-align:center}.login-icon{width:70px;height:70px;margin:0 auto 2px;border-radius:24px}.login-copy{margin:0 auto;max-width:280px;color:#6b879d;line-height:1.5}.login-form{display:grid;gap:12px;margin-top:6px;text-align:left}.auth-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border-radius:16px;background:#eaf8ff}.auth-toggle-button{min-height:40px;border:0;border-radius:12px;color:#56748e;background:transparent;font-size:13px;font-weight:800}.auth-toggle-button.active{color:#087bb0;background:#fff;box-shadow:0 4px 14px #0b77ab1f}.login-form label{display:grid;gap:7px;color:#395d77;font-size:13px;font-weight:800}.login-form input{width:100%;min-height:48px;border:1px solid #d9eef6;border-radius:16px;padding:0 14px;color:#143a58;background:#ffffffe0;outline:none}.login-form input:focus{border-color:#0c91c4;box-shadow:0 0 0 4px #0c91c41f}.schedule-form{display:grid;gap:12px}.schedule-form label{display:grid;gap:7px;color:#395d77;font-size:13px;font-weight:800}.schedule-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:100%;overflow:hidden}.schedule-time-grid label{min-width:0;overflow:hidden}.schedule-form input[type=time],.schedule-form input[type=text]{-webkit-appearance:none;appearance:none;box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;height:44px;border:1px solid #d9eef6;border-radius:14px;padding:0 12px;color:#143a58;background:#ffffffe0;font-size:16px;line-height:44px;outline:none;overflow:hidden}.schedule-form input[type=time]{text-align:center;text-align-last:center}.schedule-form input[type=time]::-webkit-date-and-time-value{min-height:44px;line-height:44px;text-align:center}.schedule-form input[type=time]::-webkit-calendar-picker-indicator{display:none}.schedule-status-pill{justify-self:start;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:900}.schedule-status-pill.enabled{color:#0877ad;background:#e5f8ff}.schedule-status-pill.paused{color:#7b8792;background:#eef2f5}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border-radius:14px;background:#ecf8fd}.segment{min-height:38px;border:0;border-radius:10px;color:#61829a;background:transparent;font-weight:800}.segment.active{color:#0a7eb4;background:#fff;box-shadow:0 4px 12px #0c77ab1f}.switch-row{display:flex!important;align-items:center;justify-content:space-between;min-height:44px}.switch-row input[type=checkbox]{width:22px;height:22px;accent-color:#0a8fc3}.primary-button{min-height:50px;border:0;border-radius:17px;color:#fff;background:linear-gradient(160deg,#0aa0cf,#0877ad);box-shadow:0 12px 24px #0679ae38;font-weight:900}.primary-button.compact{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 16px;border-radius:15px;font-size:14px}.text-button{min-height:36px;border:0;border-radius:999px;padding:0 12px;color:#0a82b7;background:#eaf8ff;font-size:13px;font-weight:850}.dashboard-shell{color:#d6efff}.dashboard-shell .hero-card,.dashboard-shell .control-tile,.dashboard-shell .metric-card{border:1px solid rgba(99,194,255,.34);background:linear-gradient(145deg,#0d4e96eb,#0d225bf5);box-shadow:inset 0 0 0 1px #94dbff24,0 14px 32px #051f4f57}.dashboard-shell .hero-card{gap:4px;min-height:0;padding:8px 14px;border-radius:20px;border-color:#7cd9ff57;background:linear-gradient(145deg,#115484f5,#12274efa);box-shadow:inset 0 0 0 1px #a6e6ff21,0 12px 26px #05234c5c}.dashboard-shell .hero-topline{align-items:flex-start}.hero-title-block{transform:translateY(-1px)}.hero-title-status{display:inline-flex;width:fit-content;margin-top:7px}.hero-subtitle{margin:2px 0 0;color:#c2e6ffe6;font-size:12px;font-weight:650}.hero-actions{display:inline-flex;flex-direction:column;align-items:stretch;justify-content:space-between;align-self:stretch;min-height:60px;gap:5px}.hero-energy-chip{margin-top:auto;transform:translateY(1px)}.hero-water-temp{display:inline-flex;align-items:center;gap:8px;padding:3px 9px;border-radius:11px;background:#052449b3;box-shadow:inset 0 0 0 1px #76daff33}.hero-water-temp svg{color:#36c2f3}.hero-water-temp span{display:block;color:#bbdcffd1;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}.hero-water-temp strong{display:block;color:#f1fbff;font-size:14px;line-height:1}.hero-weather-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:34px;margin:0;padding:5px 10px;border-radius:13px;background:#eef4fa21;box-shadow:inset 0 0 0 1px #b2e5ff29}.hero-weather-row>svg{color:#bceaff}.hero-weather-row strong{color:#f5fbff;font-size:17px;font-weight:900;white-space:nowrap}.hero-weather-row span{min-width:0;color:#e1f2ffe6;font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-rain-probability{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;min-width:42px;color:#a9dbff}.hero-rain-probability b{color:#eaf7ff;font-size:13px;font-weight:900}.dashboard-shell .hero-card .status-row{min-height:0;width:100%}.dashboard-shell .hero-card .status-pill{min-height:22px;padding:0 9px;font-size:11px}.dashboard-shell .hero-topline,.dashboard-shell .setpoint-row strong,.dashboard-shell .metric-card strong{color:#e7f9ff}.dashboard-shell .status-pill.online{color:#7dffbd;background:#20ca722e}.dashboard-shell .status-pill.offline{color:#ffd9c9;background:#ff835c33}.dashboard-shell .muted-text,.dashboard-shell .helper-text,.dashboard-shell .metric-card span,.dashboard-shell .control-tile span{color:#bedeffd6}.target-panel{display:grid;gap:10px;padding:12px;border-radius:18px;background:#071f6666;box-shadow:inset 0 0 0 1px #6caeff29}.target-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.target-row strong{display:block;margin-top:4px;color:#f6fdff;font-size:34px;line-height:.95}.difference-block{text-align:right}.difference-block strong{color:#5fffe4;font-size:24px}.metrics-inline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini-stat{display:grid;gap:4px;min-height:68px;padding:11px 12px;border-radius:16px;background:#031e5080;box-shadow:inset 0 0 0 1px #7ecdff2e}.mini-stat span{color:#bbdcffcc;font-size:12px;font-weight:700}.mini-stat-label{display:inline-flex;align-items:center;gap:6px}.mini-stat-label svg{color:#0a82b7}.mini-stat strong{color:#f1fbff;font-size:24px}.dashboard-shell .setpoint-row{max-width:none;padding:10px 14px;border-radius:18px;background:#09297d9e;box-shadow:inset 0 0 0 1px #6eadff2e}.dashboard-shell .round-control{color:#fff;background:linear-gradient(160deg,#18bde7,#087dbe);box-shadow:inset 0 0 0 1px #b3ecff52,0 8px 18px #042f5e42}.dashboard-shell .control-tile{min-height:138px}.dashboard-shell .control-tile.active{background:linear-gradient(160deg,#12b7dc,#0877bd)}.dashboard-shell .control-tile.heat.active{background:linear-gradient(160deg,#ff8d35,#e85d16)}.pump-card{gap:12px;padding:6px 14px 10px 8px;background:linear-gradient(145deg,#0b5d97f5,#0a2a60fa)}.pump-section{grid-template-columns:minmax(0,1fr)}.pump-card-header{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 4px 6px 0}.pump-title{display:inline-flex;align-items:center;gap:4px;color:#f1fbff;font-size:16px;font-weight:800;-webkit-font-smoothing:antialiased}.pump-title span{color:inherit;font-size:inherit;font-weight:inherit;line-height:1}.pump-title svg{color:#36c2f3;width:24px;height:24px}.pump-icon-img{flex:0 0 auto;display:block;background-repeat:no-repeat;background-size:128% auto;background-position:50% 28%;filter:brightness(0) saturate(100%) invert(67%) sepia(87%) saturate(1795%) hue-rotate(335deg) brightness(102%) contrast(101%);transform:translateY(-5px)}.pump-status-block{display:inline-flex;align-items:center;gap:10px}.pump-status-text{color:#f1fbff;font-size:18px;font-weight:800}.pump-watts-chip{display:grid;gap:2px;padding:8px 12px;border-radius:14px;background:#051f528f;box-shadow:inset 0 0 0 1px #ff954138;text-align:right;min-width:120px}.pump-watts-chip .mini-stat-label{justify-content:flex-end}.pump-watts-chip span{color:#bbdcffd1;font-size:11px;font-weight:800}.pump-watts-chip strong{color:#f1fbff;font-size:16px;line-height:1}.pump-right-stack{display:grid;justify-items:end;gap:22px;padding-top:6px}.dial-card{display:grid;gap:10px;padding:14px;border-radius:24px;border:1px solid rgba(99,194,255,.34);background:linear-gradient(145deg,#0d4e96eb,#0d225bf5);box-shadow:inset 0 0 0 1px #94dbff24,0 14px 32px #051f4f57}.dial-summary-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.heater-fault-banner{grid-column:1 / -1;padding:10px 12px;border-radius:14px;color:#9d2d17;background:#fff1eb;box-shadow:inset 0 0 0 1px #dc461e2e;font-size:12px;font-weight:850;line-height:1.35}.dial-summary-block{display:grid;align-content:center;gap:2px;min-height:64px;padding:8px 11px;border-radius:14px;background:#031e5080;box-shadow:inset 0 0 0 1px #7ecdff2e}.dial-summary-block span{color:#bbdcffcc;font-size:10px;font-weight:850;text-transform:uppercase}.dial-summary-block strong{color:#f1fbff;font-size:22px;line-height:1}.dial-wrap{position:relative;width:min(100%,290px);margin:0 auto;padding-top:8px}.temp-dial{width:100%;height:auto;touch-action:none}.dial-ticks .tick{stroke:#dfecf88f;stroke-width:1.5;stroke-linecap:round}.dial-ticks .tick.active{stroke:#ff8d70eb}.dial-track,.dial-fill{fill:none;stroke-linecap:round}.dial-track{stroke:#add5ff38;stroke-width:12}.dial-fill{stroke:#ff7a1e;stroke-width:12}.dial-knob{fill:#14caed;stroke:#e4fafff2;stroke-width:3;filter:drop-shadow(0 1px 6px rgba(2,47,72,.45))}.dial-current-dot{fill:#f2f8ff}.dial-center{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;text-align:center;pointer-events:none}.dial-status-line{display:inline-flex;align-items:center;gap:6px}.dial-center span{color:#bddfffe0;font-size:13px;font-weight:700}.status-flame{width:18px;height:18px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid rgba(177,218,255,.45);background:#ffffff0f;color:transparent}.status-flame.active{border-color:#ffb17cbf;background:#ff6f262e;color:#ff8d35;animation:flamePulse 1.1s ease-in-out infinite}@keyframes flamePulse{0%{transform:scale(.95);filter:drop-shadow(0 0 0 rgba(255,148,71,0))}50%{transform:scale(1.08);filter:drop-shadow(0 0 7px rgba(255,148,71,.45))}to{transform:scale(.95);filter:drop-shadow(0 0 0 rgba(255,148,71,0))}}.dial-center strong{color:#ff8b2b;font-size:58px;line-height:.95}.dial-center small{color:#c2e3ffe6;font-size:13px;font-weight:750}.dial-label{position:absolute;bottom:26px;color:#c2e2ffcc;font-size:12px;font-weight:700}.dial-label-min{left:14px}.dial-label-max{right:14px}.dial-current-text{position:absolute;color:#e7f5fff2;font-size:12px;font-weight:800;white-space:nowrap;z-index:2;pointer-events:none}.dial-current-text.moving{padding:4px 11px;border-radius:999px;background:#0732508c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:left .24s ease-out,top .24s ease-out,transform .24s ease-out}.dial-controls{display:flex;justify-content:center;gap:12px}.dial-controls .round-control{font-size:0}.dial-controls.inline{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:2}.dial-controls.inline .round-control{width:46px;height:46px;color:#fff;background:linear-gradient(160deg,#14b1da,#0c7fbe);box-shadow:0 8px 18px #07406e66,inset 0 0 0 1px #b4e8ff59}.dial-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.heater-inline-toggle{display:flex;align-items:center;justify-content:space-between;min-height:28px;padding:0 0 2px}.heater-inline-toggle.top-row{margin-bottom:2px}.heater-header-row{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 6px}.heater-header-title{display:inline-flex;align-items:center;gap:8px;color:#d6efff;font-size:14px;font-weight:800}.heater-header-title svg{color:#ff8d35}.heater-power-button{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:999px;color:#f1fbff;background:linear-gradient(160deg,#145291fa,#072a5dfa);box-shadow:inset 0 0 0 1px #cbe5ff61,0 8px 18px #04204e7a;transition:background .2s ease,color .2s ease,transform .16s ease,box-shadow .2s ease}.heater-power-button svg{color:inherit}.heater-power-button.on{color:#7dffbd}.heater-power-button.on svg{color:inherit;filter:drop-shadow(0 0 5px rgba(125,255,189,.55))}.heater-power-button:disabled{opacity:.6;color:#8d98a3;background:#e8eef4;box-shadow:inset 0 0 0 1px #7080902e}.heater-inline-toggle span{color:#c9e7ffe6;font-size:13px;font-weight:800}.heater-switch{position:relative;display:inline-block;width:46px;height:28px}.heater-switch input{opacity:0;width:0;height:0}.heater-switch-slider{position:absolute;inset:0;border-radius:999px;background:#76ace780;box-shadow:inset 0 0 0 1px #aed8ff52;transition:background .18s ease}.heater-switch-slider:before{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:999px;background:#f2f8ff;transition:transform .18s ease}.heater-switch input:checked+.heater-switch-slider{background:#ff7c34cc}.heater-switch input:checked+.heater-switch-slider:before{transform:translate(18px)}@media(max-width:430px){.app-background{padding:0;align-items:stretch;justify-content:stretch}.phone-frame{width:100%;height:100svh;min-height:0;max-height:100svh;border-radius:0;border:0;overflow:hidden}.app-header{flex-shrink:0}.app-content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.bottom-tabs{flex-shrink:0}.temperature-orbit{width:min(218px,72vw)}}.reorder-zone{display:flex;flex-direction:column;gap:18px}.reorder-card{position:relative;transition:transform .22s ease,box-shadow .22s ease;touch-action:manipulation;will-change:transform}.reorder-zone.editing{touch-action:none}.reorder-zone.editing .reorder-card{touch-action:none;cursor:grab}.reorder-zone.editing .reorder-card.dragging{cursor:grabbing;z-index:5;transform:scale(1.04);box-shadow:0 22px 60px #0d264073;animation:none}.reorder-zone.editing .reorder-card *{pointer-events:none!important;-webkit-user-select:none;user-select:none}@keyframes wiggle{0%{transform:rotate(-.65deg) translateY(0)}25%{transform:rotate(.55deg) translateY(-1px)}50%{transform:rotate(-.45deg) translateY(0)}75%{transform:rotate(.7deg) translateY(1px)}to{transform:rotate(-.65deg) translateY(0)}}.reorder-card.wiggling{animation:wiggle .42s ease-in-out infinite;transform-origin:center}.reorder-card.wiggling:nth-child(2n){animation-delay:-.18s;animation-duration:.46s}.reorder-card.wiggling.dragging{animation:none}.reorder-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:16px;background:#0f203cc7;border:1px solid rgba(106,168,255,.28);color:#e7f4ff;font-size:13px;font-weight:600;box-shadow:0 14px 30px #08122459;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.reorder-banner .reorder-done{pointer-events:auto;background:linear-gradient(140deg,#36c2f3,#1a8fe6);color:#fff;border:none;border-radius:999px;padding:8px 18px;font-weight:700;font-size:13px;letter-spacing:.02em;box-shadow:0 6px 14px #1a8fe673;transition:transform .12s ease,box-shadow .12s ease}.reorder-banner .reorder-done:active{transform:scale(.96)}@media(prefers-reduced-motion:reduce){.reorder-card.wiggling{animation:none}}.paywall-screen{min-height:100dvh;display:grid;place-items:center;padding:clamp(24px,5vw,60px) clamp(16px,4vw,40px);background:linear-gradient(180deg,#eef9ff,#fff)}.paywall-header{text-align:center;max-width:520px;margin-bottom:32px}.paywall-header h1{margin:0 0 8px;font-size:clamp(28px,4vw,40px);color:#102f48}.paywall-header p{margin:0;color:#5f7f94;font-size:16px;font-weight:600}.paywall-grid{display:grid;grid-template-columns:repeat(3,minmax(0,320px));gap:14px;width:100%;max-width:980px}.paywall-card{position:relative;display:grid;align-content:start;gap:10px;padding:24px;border:1px solid rgba(86,146,184,.16);border-radius:22px;background:#fffffff0;box-shadow:0 18px 42px #18598017}.paywall-card.highlighted{border-color:#0b7fb659;background:linear-gradient(160deg,#fff,#eaf8ff)}.paywall-popular{position:absolute;top:-13px;left:50%;transform:translate(-50%);font-size:10px;font-weight:900;letter-spacing:.08em;color:#fff;background:#0b7fb6;border-radius:999px;padding:4px 14px;white-space:nowrap}.paywall-plan-label{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#0b83b9}.paywall-card h2{margin:0;font-size:48px;font-weight:900;letter-spacing:-.04em;color:#102f48;line-height:1}.paywall-period{font-size:13px;font-weight:600;color:#6b879b;margin-top:-4px}.paywall-desc{font-size:14px;font-weight:500;color:#5f7f94;line-height:1.48}.paywall-cta{min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(86,146,184,.24);border-radius:14px;font-size:14px;font-weight:800;color:#102f48;background:transparent;cursor:pointer;transition:background .2s,border-color .2s;margin-top:4px}.paywall-cta:hover{background:#f0f9ff;border-color:#0b7fb64d}.paywall-cta.primary{color:#fff;background:#0b7fb6;border-color:transparent;box-shadow:0 10px 24px #074b7533}.paywall-cta.primary:hover{background:#0970a3}.paywall-cta:disabled{opacity:.6;cursor:not-allowed}.paywall-card ul{display:grid;gap:8px;margin:4px 0 0;padding:0;list-style:none}.paywall-card li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#5d7d92}.paywall-card li svg{color:#168856;flex-shrink:0}.paywall-signout{margin-top:24px;background:none;border:0;font-size:13px;font-weight:700;color:#8aa5b5;cursor:pointer;text-decoration:underline}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media(max-width:860px){.paywall-grid{grid-template-columns:1fr;max-width:420px}}.sub-locked-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 16px;margin:12px 0;border-radius:14px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid rgba(180,83,9,.2);color:#92400e}.sub-locked-banner strong{display:block;font-size:13px;font-weight:800}.sub-locked-banner span{display:block;font-size:12px;font-weight:600;opacity:.85}.sub-locked-banner button{min-height:36px;border:0;border-radius:999px;padding:0 18px;background:#b45309;color:#fff;font-size:13px;font-weight:800;cursor:pointer;transition:background .15s}.sub-locked-banner button:hover{background:#92400e}.sub-sheet-backdrop{position:fixed;inset:0;z-index:1000;background:#0f19238c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:flex-end;animation:subBackdropIn .18s ease-out}@keyframes subBackdropIn{0%{opacity:0}to{opacity:1}}.sub-sheet{position:relative;width:100%;max-width:520px;max-height:92vh;overflow-y:auto;background:#fff;border-radius:24px 24px 0 0;padding:18px 20px 28px;box-shadow:0 -20px 60px #00000040;animation:subSheetUp .28s cubic-bezier(.2,.8,.2,1)}@keyframes subSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sub-sheet-grabber{width:36px;height:4px;margin:-8px auto 14px;border-radius:999px;background:#0f3c5a2e}.sub-sheet-close{position:absolute;top:14px;right:14px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:50%;background:#0f3c5a0f;color:#475467;cursor:pointer;transition:background .15s}.sub-sheet-close:hover{background:#0f3c5a1f}.sub-sheet-header{text-align:center;margin-bottom:18px}.sub-sheet-lock{width:44px;height:44px;margin:0 auto 10px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#fde68a,#fbbf24);color:#92400e}.sub-sheet-header h2{margin:0 0 6px;font-size:22px;font-weight:900;color:#102a3b;letter-spacing:-.02em;text-transform:capitalize}.sub-sheet-header p{margin:0;color:#6b7d8a;font-size:14px;font-weight:600}.sub-sheet-error{margin-bottom:12px;padding:10px 14px;border-radius:12px;background:#fef2f2;border:1px solid rgba(239,68,68,.2);color:#b91c1c;font-size:13px;font-weight:600}.sub-sheet-plans{display:grid;gap:10px}.sub-sheet-plan{position:relative;padding:16px;border:1px solid rgba(15,60,90,.12);border-radius:16px;background:#fff;transition:border-color .15s,box-shadow .15s}.sub-sheet-plan:hover{border-color:#0b83b959}.sub-sheet-plan.highlighted{border-color:#0b83b973;background:linear-gradient(135deg,#eef8ff,#fff);box-shadow:0 8px 22px #0b83b91f}.sub-sheet-popular{position:absolute;top:-10px;left:16px;font-size:10px;font-weight:900;letter-spacing:.08em;color:#fff;background:#0b83b9;border-radius:999px;padding:3px 10px}.sub-sheet-plan-label{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#0b83b9}.sub-sheet-price{display:flex;align-items:baseline;gap:6px;margin:4px 0}.sub-sheet-price h3{margin:0;font-size:30px;font-weight:900;letter-spacing:-.03em;color:#102a3b}.sub-sheet-price small{font-size:12px;font-weight:700;color:#6b7d8a}.sub-sheet-desc{margin:2px 0 10px;font-size:13px;font-weight:500;color:#6b7d8a}.sub-sheet-cta{width:100%;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(15,60,90,.2);border-radius:12px;font-size:14px;font-weight:800;color:#102a3b;background:#fff;cursor:pointer;transition:background .15s,border-color .15s}.sub-sheet-cta:hover:not(:disabled){background:#eef8ff;border-color:#0b83b94d}.sub-sheet-cta.primary{color:#fff;background:#0b83b9;border-color:transparent}.sub-sheet-cta.primary:hover:not(:disabled){background:#0972a3}.sub-sheet-cta:disabled{opacity:.6;cursor:not-allowed}.sub-sheet-plan ul{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}.sub-sheet-plan li{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:#475467}.sub-sheet-plan li svg{color:#16a34a;flex-shrink:0}.sub-sheet-footer{margin-top:14px;text-align:center}.sub-sheet-footer small{font-size:11px;color:#94a3b8;font-weight:600}@media(min-width:720px){.sub-sheet-backdrop{align-items:center;padding:24px}.sub-sheet{border-radius:24px;max-height:88vh;animation:subModalIn .22s cubic-bezier(.2,.8,.2,1);box-shadow:0 30px 80px #00000059}@keyframes subModalIn{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.sub-sheet-grabber{display:none}}.sub-sheet-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px;margin:0 auto 16px;border-radius:999px;background:#0f3c5a0f;width:fit-content;display:flex;justify-content:center}.sub-sheet-toggle button{min-height:32px;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:0 16px;font-size:12px;font-weight:800;color:#6b7d8a;background:transparent;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}.sub-sheet-toggle button.active{background:#fff;color:#102a3b;box-shadow:0 2px 8px #0f3c5a1a}.sub-sheet-toggle-badge{font-size:10px;font-weight:900;color:#15803d;background:#22c55e26;padding:2px 7px;border-radius:999px}.sub-sheet-savings{position:absolute;top:-10px;right:16px;font-size:10px;font-weight:900;color:#fff;background:#16a34a;border-radius:999px;padding:3px 9px;letter-spacing:.04em}.sub-sheet-plan.coming-soon{opacity:.7;background:linear-gradient(135deg,#f7f9fb,#fff);border-style:dashed}.sub-sheet-cta.soon{background:#e2e8f0;color:#64748b;border-color:transparent;cursor:not-allowed}.sub-sheet-cta.soon:hover{background:#e2e8f0}
