:root{color:#14261c;font-synthesis:none;--green-950:#10261c;--green-800:#214d37;--green-600:#3e8b64;--green-300:#9edbb6;--green-100:#e4f3e9;--cream:#fbfcfa;--line:#dce5de;--muted:#718077;--red:#b8403a;--yellow:#c48a16;--yellow-100:#fff1c8;background:#f3f6f2;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif}*{box-sizing:border-box}body{-webkit-text-size-adjust:100%;background:radial-gradient(circle at 100% 0,#e3f0e7,#0000 38%),#f3f6f2;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button,input,select,textarea,.choice-grid label,.touch-toggle{touch-action:manipulation}.app-shell{min-height:100vh;padding:env(safe-area-inset-top) 0 calc(82px + env(safe-area-inset-bottom))}.topbar{justify-content:space-between;align-items:center;gap:12px;max-width:760px;margin:auto;padding:22px 20px 14px;display:flex}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:0;font-size:27px}.brand-title{white-space:nowrap;font-size:clamp(22px,6.9vw,27px)}.brand-title strong{font-weight:900}h2{letter-spacing:-.045em;margin-bottom:0;font-size:31px;line-height:1.05}h3{letter-spacing:-.02em;margin-bottom:4px}.eyebrow{color:var(--green-600);letter-spacing:.14em;margin-bottom:5px;font-size:11px;font-weight:800}.muted{color:var(--muted)}.network{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.network:before{content:"";background:var(--red);border-radius:99px;width:8px;height:8px}.network.online:before{background:#42a56e;box-shadow:0 0 0 4px #dceee3}main{max-width:760px;margin:auto;padding:8px 16px 30px}.stack{gap:16px;min-width:0;display:grid}.stack>*{min-width:0}.section-heading{justify-content:space-between;align-items:flex-end;margin:10px 3px 2px;display:flex}.section-heading.compact{margin-top:18px}.section-heading .muted{font-size:13px}.icon-button,.round-add{width:42px;height:42px;color:var(--green-800);background:#fff;border:0;border-radius:99px;font-size:21px;box-shadow:0 4px 18px #15382316}.controller-card,.card,.list-card,.program-card{background:#ffffffe0;border:1px solid #d6e3d9e6;border-radius:22px;box-shadow:0 12px 35px #1837240a}.controller-card{padding:18px}.controller-title,.controller-title>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.controller-title h3{white-space:nowrap;font-size:clamp(14px,4.1vw,17px)}.controller-title p{color:var(--muted);margin:0;font-size:13px}.controller-meta{color:var(--muted);flex-wrap:wrap;gap:6px 12px;margin-top:12px;font-size:10px;display:flex}.controller-meta .weather-issue{color:#a65a18;font-weight:800}.water-summary{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px;display:grid}.water-summary>div{border:1px solid var(--line);background:#f4f8f5;border-radius:12px;gap:2px;padding:10px;display:grid}.water-summary strong{font-size:14px}.water-summary small{color:var(--muted);font-size:9px}.status-dot{border-radius:50%;flex:none;width:10px;height:10px}.status-dot.ok{background:#41a36c;box-shadow:0 0 0 5px #e4f3e9}.status-dot.bad{background:var(--red);box-shadow:0 0 0 5px #f9e5e3}.pill{background:var(--green-100);color:var(--green-800);border-radius:99px;padding:6px 9px;font-size:10px;font-weight:800}.quick-actions{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.quick-actions button,.chip-row button{border:1px solid var(--line);color:var(--green-800);background:#f8faf8;border-radius:12px;padding:10px;font-size:12px;font-weight:700}.run-progress{background:var(--green-950);color:#fff;border-radius:17px;margin-top:15px;padding:14px}.run-heading,.current-zone,.run-footer{justify-content:space-between;gap:12px;display:flex}.run-heading{align-items:flex-start}.run-heading>div,.current-zone>div{gap:2px;min-width:0;display:grid}.run-heading small,.current-zone small{color:#9edbb6;letter-spacing:.11em;font-size:9px;font-weight:900}.run-heading strong,.current-zone strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.run-heading>span,.current-zone b{font-variant-numeric:tabular-nums;flex:none}.run-heading>span{font-size:13px;font-weight:800}.current-zone{align-items:flex-end;margin-top:13px}.current-zone strong{font-size:13px}.current-zone b{font-size:23px;line-height:1}.progress{background:#ffffff24;border-radius:20px;height:8px;margin-top:12px;overflow:hidden}.progress i{background:linear-gradient(90deg, #75d59a, var(--green-300));border-radius:inherit;height:100%;transition:width 1s linear;display:block}.run-footer{color:#b8cabe;margin-top:7px;font-size:9px}.run-footer span:last-child{font-variant-numeric:tabular-nums}.active-banner{color:#fff;background:linear-gradient(135deg,#173b29,#2a6848);border-radius:20px;justify-content:space-between;align-items:center;gap:12px;max-width:728px;margin:0 auto 8px;padding:15px 17px;display:flex;box-shadow:0 12px 34px #153c2770}.connectivity-alerts{gap:8px;max-width:728px;margin:0 auto 8px;display:grid}.connectivity-alert{color:#6d3e0e;background:#fff3df;border:1px solid #e5bd91;border-radius:16px;grid-template-columns:32px 1fr;gap:11px;padding:13px 15px;display:grid}.connectivity-alert.offline{color:#752824;background:#fbe6e4;border-color:#e7aaa6}.connectivity-alert p{margin:3px 0;font-size:12px}.connectivity-alert small{opacity:.78;font-size:10px}.alert-icon{color:#fff;background:currentColor;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:900;display:grid}.active-banner p{color:#a9e3be}.active-banner strong,.active-banner span{display:block}.active-banner span{opacity:.74;margin-top:3px;font-size:12px}.banner-copy{min-width:0}.banner-copy strong,.banner-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.banner-copy .banner-countdown{color:#d6f3e0;font-variant-numeric:tabular-nums;opacity:.92}.banner-actions{gap:7px;display:flex}.banner-actions button{color:#fff;background:#ffffff12;border:1px solid #ffffff2e;border-radius:10px;padding:9px 10px;font-size:12px;font-weight:700}.banner-actions .danger{background:#bd4b43}.controller-picker{min-width:0;color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin:4px 3px 10px;font-size:12px;font-weight:700;display:flex}.controller-picker select{border:1px solid var(--line);min-width:0;max-width:72%;color:var(--green-950);background:#fff;border-radius:10px;padding:8px 11px}.list-card{overflow:hidden}.list-row{text-align:left;width:100%;color:inherit;background:0 0;border:0;border-bottom:1px solid #e7eee9;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:14px;display:grid}.list-row:last-child{border-bottom:0}.list-row.queued{background:#fffaf0}.list-row span:nth-child(2){display:grid}.list-row small{color:var(--muted);margin-top:3px}.list-row b{color:#9caaa0;font-size:22px}.zone-number{width:38px;height:38px;color:var(--green-800);background:var(--green-100);border-radius:12px;place-items:center;font-weight:800;display:grid}.zone-number.running{color:#fff;background:var(--green-600);box-shadow:0 0 0 5px var(--green-100)}.zone-number.queued{color:#6b4700;background:var(--yellow-100);box-shadow:0 0 0 4px #fff8e5}.list-row.queued small{color:#916510;font-weight:800}.program-grid{gap:10px;display:grid}.program-card{grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:15px;display:grid}.program-card p{color:var(--muted);margin:0 0 5px;font-size:12px}.program-card span{color:var(--green-600);font-size:11px;font-weight:700}.program-summary{color:inherit;text-align:left;background:0 0;border:0;padding:0}.program-icon{background:var(--green-950);color:#fff;border-radius:14px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.primary,.secondary{border:0;border-radius:14px;width:100%;min-height:48px;font-weight:800}.primary{background:var(--green-950);color:#fff}.primary:disabled{cursor:not-allowed;background:#aeb9b1}.primary.small{border-radius:11px;width:auto;min-height:38px;padding:0 14px}.secondary{color:var(--muted);background:0 0}.sheet-backdrop{z-index:20;padding-top:max(12px, env(safe-area-inset-top));background:#10261c88;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{overscroll-behavior:contain;background:var(--cream);width:100%;max-width:760px;max-height:min(88dvh,880px);padding:0 20px calc(20px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;margin:auto;transition:transform .18s ease-out;animation:.18s ease-out sheet-in;overflow-y:auto;box-shadow:0 -10px 55px #10261c3b}.sheet-backdrop>.sheet{margin:auto 0 0}.sheet.dragging{transition:none}.sheet.closing{pointer-events:none;animation:.18s ease-in forwards sheet-out}.program-editor{max-height:94vh;overflow-y:auto}.sheet-handle-target{z-index:2;background:linear-gradient(var(--cream) 70%, transparent);touch-action:none;cursor:grab;place-items:center;height:42px;margin:0 -20px 8px;display:grid;position:sticky;top:0}.sheet-handle{background:#b9c8bd;border-radius:9px;width:48px;height:5px}.zone-sheet .destructive{margin-top:18px}.sheet label,.form-card label,.settings-form label{color:var(--muted);gap:7px;margin:15px 0;font-size:12px;font-weight:800;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--green-950);background:#fff;border-radius:12px;min-height:46px;padding:10px 12px;font-size:16px}input[type=checkbox]{width:30px;height:30px;min-height:30px;accent-color:var(--green-800);flex:0 0 30px;justify-self:end;margin:0;padding:0}.duration-input{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.duration-input select{min-height:54px;font-size:18px;font-weight:800}.review-box{background:var(--green-100);border-radius:14px;grid-template-columns:1fr auto;gap:5px;margin:16px 0;padding:13px;font-size:12px;display:grid}.review-box strong{grid-column:1/-1;margin-bottom:4px}.details{grid-template-columns:1fr 1fr;gap:10px;display:grid}.details>div{border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px}.details dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.details dd{margin:5px 0 0;font-weight:800}.chip-row{gap:7px;padding-bottom:4px;display:flex;overflow-x:auto}.chip-row button{white-space:nowrap}.chip-row button.active{color:#fff;background:var(--green-800);border-color:var(--green-800)}.settings-form{padding:4px 16px}.settings-form label:has(input[type=checkbox]){grid-template-columns:1fr auto;align-items:center}.typed-settings{padding:12px 16px}.typed-settings fieldset{border:0;border-top:1px solid var(--line);min-width:0;margin:4px 0 18px;padding:14px 0 0}.typed-settings fieldset:first-child{border-top:0}.typed-settings legend{color:var(--green-950);padding:0;font-size:15px;font-weight:850}.typed-settings label span{color:var(--green-950);display:grid}.typed-settings label small,.source-row small{color:var(--muted);font-weight:500;line-height:1.35}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0;display:grid}.choice-grid.months{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:9px;min-height:52px;margin:0;padding:10px;display:flex!important}.choice-grid label.selected{border-color:var(--green-600);background:var(--green-100);box-shadow:inset 0 0 0 1px var(--green-600)}.choice-grid input{flex:none;justify-self:auto}.choice-grid span{font-size:14px;font-weight:750}.unit-input{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.unit-input span{color:var(--muted);font-weight:700}.unit-input input{min-height:54px;font-size:20px;font-weight:800}.weather-health{border-left:5px solid #d89a25;padding:18px}.weather-health.healthy{border-left-color:var(--green-600)}.source-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:5px 10px;padding:12px 0;display:grid}.source-row>span{display:grid}.source-row>.field-error{grid-column:1/-1}.eligibility-note{color:#684b06;background:#fff5d8;border-radius:12px;margin:4px 0 12px;padding:10px 12px;font-size:.9rem;line-height:1.4}.status-on{color:var(--green-600)}.toggle-label{grid-template-columns:1fr auto;align-items:center;display:grid!important}.touch-toggle{cursor:pointer;min-height:58px;padding:7px 0}.touch-toggle.locked{cursor:not-allowed}.touch-toggle.locked span{opacity:.72}.control-lock{margin-top:-7px}.settings-scope{border:1px solid var(--line);background:#eaf0eb;border-radius:15px;grid-template-columns:1fr 1fr;gap:6px;padding:5px;display:grid}.settings-scope button{min-height:46px;color:var(--muted);background:0 0;border:0;border-radius:11px;font-size:13px;font-weight:800}.settings-scope button.active{color:var(--green-950);background:#fff;box-shadow:0 3px 12px #18372412}.household-settings{margin-top:2px}.account-card{padding:17px}.account-card p:last-child{margin-bottom:0}.step-dots{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:18px;display:grid}.step-dots i{background:var(--line);border-radius:8px;height:4px}.step-dots i.active{background:var(--green-600)}.field-grid{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.zone-editor-list{gap:8px;margin:15px 0;display:grid}.zone-editor-list>div{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:1fr 95px 120px;align-items:center;gap:8px;padding:8px 11px;display:grid}.zone-editor-list label{align-items:center;gap:10px;margin:0;display:flex}.zone-editor-list label span{color:var(--green-950);display:grid}.zone-editor-list small{color:var(--muted);font-weight:500}.zone-editor-list .duration-input input{min-height:38px}.program-review b{text-align:right}.step-actions{grid-template-columns:1fr 2fr;gap:8px;margin-top:14px;display:grid}.destructive{color:var(--red)}.empty-state{text-align:center;border:1px dashed #cbd8ce;border-radius:18px;padding:35px 20px}.empty-state p{color:var(--muted);margin-bottom:0}.controller-error{color:var(--red);background:#fff8f7;border-color:#e7aaa6}.controller-error p{margin-bottom:8px}.controller-error small{color:var(--muted)}.activity-list{border:1px solid var(--line);background:#fff;border-radius:18px;padding:4px 15px}.activity-list>div{border-bottom:1px solid #edf1ee;align-items:flex-start;gap:11px;padding:12px 0;display:flex}.activity-list>div:last-child{border:0}.activity-list p{margin:0;font-size:12px;display:grid}.activity-list small{color:var(--muted);margin-top:3px}.activity-mark{background:var(--green-600);border-radius:50%;width:9px;height:9px;margin-top:4px}.notice{border-radius:13px;justify-content:space-between;align-items:center;margin:0 0 12px;padding:12px 14px;font-size:12px;display:flex}.notice.error{color:#7a211d;background:#f9dfdc}.notice.command{color:#5e4a00;background:#fff1bc}.notice.command.confirmed{color:#195431;background:#dbf1e3}.notice button{color:inherit;background:0 0;border:0;font-weight:800}.tabbar{z-index:10;height:calc(66px + env(safe-area-inset-bottom));padding:7px max(14px, env(safe-area-inset-left)) env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbfcfaed;border-top:1px solid #dce6de;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:#89958d;background:0 0;border:0;place-items:center;gap:2px;font-size:10px;font-weight:700;display:grid}.tabbar button span{font-size:20px;line-height:1}.tabbar button.active{color:var(--green-800)}.login-page{max-width:480px;min-height:100vh;padding:calc(35px + env(safe-area-inset-top)) 22px;flex-direction:column;justify-content:center;display:flex}.login-page h1{margin-bottom:17px;font-size:39px;line-height:1.02}.login-icon{border-radius:17px;width:64px;height:64px;margin-bottom:26px;box-shadow:0 14px 35px #143a2652}.form-card{margin-top:17px;padding:4px 17px 17px}.login-modes{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px;display:grid}.login-modes button{border:1px solid var(--line);min-height:44px;color:var(--muted);background:#fff;border-radius:10px;padding:9px 5px;font-size:12px;font-weight:800}.login-modes button.active{background:var(--green-800);color:#fff;border-color:var(--green-800)}.google-login-card{text-align:center;gap:12px;margin-top:18px;padding:18px;display:grid}.google-login-card small{color:var(--muted);line-height:1.4}.google-button{justify-content:center;align-items:center;gap:10px;display:flex}.google-button span{color:#4285f4;background:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-weight:900;display:grid}.notification-card{gap:9px;padding:16px;display:grid}.notification-card p{margin:0;font-size:12px}.notification-card small{color:var(--green-600);font-weight:700}.notification-card label{color:var(--muted);gap:6px;font-size:11px;font-weight:800;display:grid}.field-error{color:var(--red);font-size:12px}.splash{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;display:grid}.splash img{border-radius:20px;width:72px;margin-bottom:14px}.skeleton{gap:10px;display:grid}.skeleton i{background:linear-gradient(90deg,#e7ece8,#f5f8f5,#e7ece8) 0 0/200% 100%;border-radius:18px;height:78px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}@media (width>=700px){.tabbar{border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;width:600px;left:50%;right:auto;transform:translate(-50%)}.program-grid{grid-template-columns:1fr 1fr}}@media (width>=500px){.choice-grid.months{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (height<=620px){.sheet{max-height:calc(100dvh - env(safe-area-inset-top));border-radius:22px 22px 0 0}.sheet-handle-target{height:48px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}
