:root{color:#142017;background:#f1f3e9;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-width:320px}button,input,select{font:inherit}button{border:0;border-radius:8px;cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:default}.app-shell{margin:0 auto;max-width:1160px;min-height:100vh;padding:18px 18px 44px}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between;min-height:56px}.brand{display:grid;gap:4px;min-width:0}.brand h1{color:#091a0d;font-size:24px;font-weight:780;letter-spacing:0;line-height:1.1;margin:0}.brand span,.panel-title span,.zone-card-head span,.settings-head span{color:#505c52;font-size:13px;overflow-wrap:anywhere}.topbar-status,.actions,.button-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.freshness,.state-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:760;min-height:29px;padding:5px 10px;white-space:nowrap}.freshness.is-fresh{background:#cfe9d4;color:#063b1d}.freshness.is-stale{background:#f9e5c7;color:#5d3904}.button-primary,.button-secondary,.icon-button{align-items:center;border:1px solid transparent;display:inline-flex;font-weight:730;justify-content:center;min-height:42px;padding:0 14px;transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out,transform .18s ease-out}.button-primary{background:#185b35;color:#f8f9f5}.button-primary:hover:not(:disabled){background:#004a26;background:oklch(36% .096 154)}.button-primary:active:not(:disabled),.button-secondary:active:not(:disabled),.icon-button:active:not(:disabled),.tab:active:not(:disabled){transform:translateY(1px)}.button-primary:disabled{background:#b5c2b7;color:#5c665e}.button-secondary,.icon-button{background:#dce4d9;border-color:#c4cec2;color:#1b281e}.button-secondary:hover:not(:disabled),.icon-button:hover:not(:disabled){background:#d1dbce}.button-secondary:disabled,.icon-button:disabled{color:#747d76}.text-button{min-height:36px}.tabs{background:#e3e6dd;border:1px solid oklch(84% .018 135);border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;padding:4px}.tab{background:transparent;color:#3b463d;font-size:14px;font-weight:760;min-height:40px;transition:background-color .18s ease-out,color .18s ease-out,transform .18s ease-out}.tab.is-active{background:#f8f9f5;box-shadow:0 1px 2px #10191114;color:#122115}.content{display:grid;gap:16px;margin-top:18px}.summary-strip{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.panel,.zone-card,.settings-card,.events,.status-panel,.raw-shadow{background:#f8f9f5;border:1px solid oklch(84% .018 135);border-radius:8px}.panel,.events,.status-panel{padding:16px}.status-panel{align-items:center;display:flex;gap:16px;justify-content:space-between}.status-panel h2{color:#091a0d;font-size:18px;font-weight:780;letter-spacing:0;line-height:1.2;margin:0 0 4px}.status-panel p{color:#465047;font-size:14px;line-height:1.45;margin:0}.status-panel>span{color:#576158;font-size:13px;font-weight:700;white-space:nowrap}.status-panel.state-ok{border-color:#a4c0a8}.status-panel.state-watch{border-color:#d7b98b}.panel-title,.zone-card-head,.settings-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.panel-title h2,.zone-card-head h2,.settings-head h3,.events h2,.signed-out h2{color:#0e1c11;font-size:17px;font-weight:780;letter-spacing:0;line-height:1.2;margin:0}.zone-list,.settings-list{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.zone-card,.settings-card{display:grid;gap:14px;min-width:0;padding:16px}.zone-card.state-dry{border-color:#d49184}.zone-card.state-watch{border-color:#d9b480}.zone-card.state-water{border-color:#6fabc8}.state-pill.state-ok{background:#ceead3;color:#063b1d}.state-pill.state-watch{background:#fce0b7;color:#603c07}.state-pill.state-dry{background:#ffd7cf;background:oklch(91% .058 31);color:#732a1f}.state-pill.state-water{background:#c4e8fa;color:#024059}.state-pill.state-muted{background:#dde3dd;color:#4a524b}.metric,.event-row{display:grid;gap:3px;min-width:0}.metric span{color:#576158;font-size:12px;font-weight:680}.metric strong{color:#162319;font-size:16px;font-weight:780;min-width:0;overflow-wrap:anywhere}.summary-strip .metric{background:#f8f9f5;border:1px solid oklch(84% .018 135);border-radius:8px;min-height:72px;padding:12px}.summary-strip .metric strong{font-size:22px}.moisture-readout{display:grid;gap:8px}.moisture-readout strong{color:#0e1c11;font-size:32px;font-weight:790;letter-spacing:0;line-height:1}.moisture-bar{background:#dee3db;border-radius:999px;height:12px;overflow:hidden}.moisture-bar span{background:#277447;border-radius:inherit;display:block;height:100%;min-width:2px;transition:width .18s ease-out}.compact-metrics,.metric-table{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.water-form{align-items:end;border-top:1px solid oklch(90% .012 135);display:grid;gap:10px;grid-template-columns:minmax(172px,.45fr) minmax(0,1fr) auto;padding-top:14px}.duration-field{display:grid;gap:7px;min-width:0}.duration-stepper{display:grid;gap:6px;grid-template-columns:40px minmax(58px,1fr) 40px}.duration-step{background:#dce4d9;border:1px solid oklch(84% .02 140);color:#19251b;font-size:18px;font-weight:780;height:42px;padding:0}.duration-step:hover:not(:disabled){background:#d1dbce}.duration-stepper input{font-weight:780;padding:0 6px;text-align:center}.duration-presets{display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.duration-preset{background:transparent;border:1px solid oklch(84% .02 140);color:#404b41;font-size:12px;font-weight:760;min-height:30px;padding:0 6px}.duration-preset:hover:not(:disabled){background:#e4eae1}.duration-preset.is-active{background:#cce6d0;border-color:#90b697;color:#003016;color:oklch(27% .07 154)}label{display:grid;gap:6px;min-width:0}label span,.field-label,.toggle-row span{color:#465047;font-size:12px;font-weight:760}input,select{background:#fbfcf9;border:1px solid oklch(82% .02 138);border-radius:8px;color:#111e14;height:42px;min-width:0;padding:0 10px}select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}input:focus,select:focus,button:focus-visible,summary:focus-visible{outline:3px solid oklch(70% .08 154 / .45);outline-offset:2px}input:disabled,select:disabled{background:#e8ede6;color:#6f7770}.notification-panel,.device-panel{display:grid;gap:14px}.settings-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.toggle-row{align-items:center;display:flex;gap:8px}.toggle-row input{height:18px;width:18px}.hardware-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.hardware-grid .panel{display:grid;gap:14px}.raw-shadow{padding:12px 16px}.raw-shadow summary{color:#465047;cursor:pointer;font-size:13px;font-weight:760}pre{background:#0e1910;border-radius:8px;color:#e4eae2;font-size:12px;line-height:1.5;margin:12px 0 0;max-height:420px;overflow:auto;padding:12px}.events{display:grid;gap:10px}.event-row{align-items:center;border-top:1px solid oklch(90% .012 135);grid-template-columns:minmax(0,1fr) auto auto;min-height:38px;padding-top:10px}.event-row:first-of-type{border-top:0}.event-row span,.event-row time{color:#545e56;font-size:13px}.event-row strong{font-size:13px;overflow-wrap:anywhere}.banner{border-radius:8px;font-size:14px;line-height:1.45;margin-top:14px;padding:12px 14px}.banner.error{background:#ffe3de;background:oklch(94% .045 31);border:1px solid oklch(77% .08 31);color:#6b271c}.banner.notice{background:#d6f0da;border:1px solid oklch(78% .06 150);color:#103a1c}.signed-out{display:grid;gap:10px;min-height:260px;place-content:center;text-align:center}.signed-out p{color:#545e56;margin:0}.skeleton-stack{display:grid;gap:14px}.skeleton-stack div{animation:pulse 1.35s ease-in-out infinite;background:linear-gradient(90deg,#e2e6de,#f4f6f1,#e2e6de);background-size:220% 100%;border-radius:8px;min-height:132px}@keyframes pulse{0%{background-position:0 0}to{background-position:-220% 0}}@media(max-width:860px){.zone-list,.settings-list,.hardware-grid{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{padding:14px 14px 92px}.topbar{align-items:stretch;flex-direction:column}.topbar-status{align-items:flex-start;justify-content:space-between;width:100%}.actions{flex:1;justify-content:flex-start}.tabs{border-radius:0;border-width:1px 0 0;bottom:0;box-shadow:0 -8px 24px #2731291f;left:0;margin:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:20}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.status-panel{align-items:flex-start;flex-direction:column}.compact-metrics,.metric-table,.settings-grid,.water-form{grid-template-columns:1fr}.button-primary,.button-secondary,.icon-button{width:100%}}
