:root,[data-theme=light]{color-scheme:light;--bg: #f6f7f8;--surface: #ffffff;--surface-2: #f0f1f3;--ink: #0c0d0e;--ink-muted: #5f6268;--line: rgba(12, 13, 14, .09);--line-strong: rgba(12, 13, 14, .22);--water: #1f6fd6;--water-soft: #e3edfb;--on-water: #ffffff;--leaf: #1a7f47;--leaf-soft: #dff1e7;--signal: #c23a0b;--signal-soft: #fde8df;--brand: #d93c00;--primary: #0c0d0e;--on-primary: #ffffff;--focus: #1f6fd6;--tab-bg: rgba(255, 255, 255, .94);--shadow-sheet: 0 -12px 40px rgba(12, 13, 14, .12);--plant-opacity: 1;--card-ring: 0 0 0 1px rgba(12, 13, 14, .07)}[data-theme=dark]{color-scheme:dark;--bg: #0e1013;--surface: #171a1f;--surface-2: #1e2228;--ink: #ecebe6;--ink-muted: #8f8e88;--line: rgba(236, 235, 230, .1);--line-strong: rgba(236, 235, 230, .22);--water: #3d9bff;--water-soft: rgba(61, 155, 255, .14);--on-water: #05121f;--leaf: #4ade80;--leaf-soft: rgba(74, 222, 128, .14);--signal: #ff6a33;--signal-soft: rgba(255, 79, 18, .14);--brand: #ff4f12;--primary: #ecebe6;--on-primary: #0e1013;--focus: #3d9bff;--tab-bg: rgba(19, 22, 26, .94);--shadow-sheet: 0 -12px 40px rgba(0, 0, 0, .45);--plant-opacity: 1;--card-ring: none}[data-theme=night]{color-scheme:dark;--bg: #000000;--surface: #0c0d0f;--surface-2: #131417;--ink: #d9d4c7;--ink-muted: #8a867c;--line: rgba(217, 212, 199, .09);--line-strong: rgba(217, 212, 199, .2);--water: #2f7fd6;--water-soft: rgba(47, 127, 214, .13);--on-water: #000000;--leaf: #3fbf73;--leaf-soft: rgba(63, 191, 115, .12);--signal: #e0602e;--signal-soft: rgba(224, 96, 46, .12);--brand: #c8481c;--primary: #1a1c1f;--on-primary: #d9d4c7;--focus: #2f7fd6;--tab-bg: rgba(5, 5, 6, .96);--shadow-sheet: none;--plant-opacity: .7;--card-ring: none}:root{--font-display: "Fira Sans Condensed", "Arial Narrow", system-ui, sans-serif;--font-body: "Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 24px;--side-w: 0px;--tabbar-h: 0px}:root,[data-theme]{--accent: var(--water);--accent-soft: var(--water-soft);--text: var(--ink);--muted: var(--ink-muted);--border: var(--line);--btn-bg: var(--primary);--btn-fg: var(--on-primary);--seg-bg: var(--line);--seg-active: var(--surface);--shadow: none;--chart-grid: var(--line);--danger: var(--signal)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--font-body);font-size:16px;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#app{min-height:100dvh}button,input,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}.screen{min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto}.screen--auth{padding-top:max(56px,env(safe-area-inset-top))}.title-xl{margin:0;font:300 30px/1.05 var(--font-display);letter-spacing:-.01em;text-align:center}.brand-mark{display:block}.brand-mark__accent{fill:var(--brand)}.brand-mark__ink{fill:var(--text)}.brand-title .brand-mark{margin:0 auto}.subtitle{margin:8px 0 0;text-align:center;color:var(--muted);font-size:17px;font-weight:500}.field{margin-bottom:14px}.field label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--muted);padding-left:4px}.input-wrap{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.input-wrap input,.input-wrap select{width:100%;border:0;background:transparent;padding:14px 16px;outline:none}.input-wrap--password input{padding-right:48px}.icon-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:14px;padding:15px 24px;font-weight:500;cursor:pointer;transition:opacity .15s ease,transform .1s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--btn-bg);color:var(--btn-fg)}.btn--ghost{background:transparent;color:var(--accent);width:auto;padding:10px 12px;font-weight:600}.btn--secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn--danger{background:var(--signal);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(1.05)}.card{background:var(--surface);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow)}.card+.card{margin-top:12px}.card-title{margin:0 0 8px;font-size:17px;font-weight:600}.card-muted{margin:0;font-size:13px;color:var(--muted);line-height:1.45}.pairing-code{margin:14px 0 4px;font-size:24px;font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums}.pairing-code-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 16px;margin-bottom:8px}.pairing-timer{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.spacer{flex:1}.nav-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-top:4px}.nav-back{width:36px;height:36px;border:0;border-radius:10px;background:var(--surface);color:var(--accent);cursor:pointer;font-size:20px;line-height:1}.nav-title{flex:1;margin:0;font:300 22px/1.15 var(--font-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-actions{display:flex;gap:4px}.icon-action{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--accent);cursor:pointer;font-size:18px}.page-head{margin-bottom:16px}.page-head h1{margin:0;font:300 30px/1.05 var(--font-display);letter-spacing:-.01em}.page-head p{margin:4px 0 0;color:var(--muted);font-size:15px}.avatar{width:40px;height:40px;border-radius:50%;border:0;background:var(--seg-bg);color:var(--text);font-weight:600;cursor:pointer}.device-list{display:flex;flex-direction:column;gap:10px;margin:12px 0 100px}.device-tile{display:flex;align-items:center;gap:16px;width:100%;padding:18px;border:0;border-radius:16px;background:var(--surface);text-align:left;cursor:pointer;box-shadow:var(--shadow);transition:transform .12s ease}.device-name-row{display:flex;align-items:center;gap:6px;min-width:0}.device-rename{flex-shrink:0;width:28px;height:28px;border:0;border-radius:8px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--muted);font-size:13px;line-height:1;cursor:pointer}.device-rename:hover{background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--text)}.device-info{flex:1;min-width:0}.device-moisture{font-size:28px;font-weight:700;letter-spacing:-.03em;color:var(--accent);line-height:1}.device-moisture-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.device-moisture-col .device-moisture{font-size:17px}.moisture-drop-host{flex-shrink:0}.moisture-drop{display:block}.moisture-drop--lg{width:56px;height:60px}.moisture-drop--sm{width:32px;height:34px}.moisture-drop-bg{fill:color-mix(in srgb,var(--accent) 12%,transparent)}.moisture-drop-outline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.moisture-drop-fill{fill:var(--accent);opacity:.82}.device-moisture--muted{font-size:20px;color:var(--muted)}.device-sub{margin:2px 0 0;font-size:13px;color:var(--muted);line-height:1.3}.device-watering{margin:4px 0 0;font-size:12px;font-weight:600;color:var(--accent);line-height:1.3;display:flex;align-items:center;gap:6px}.online-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.online-dot--on{background:var(--leaf);box-shadow:0 0 0 3px color-mix(in srgb,var(--leaf) 28%,transparent)}.online-dot--off{background:var(--signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 28%,transparent)}.device-watering--off{color:var(--signal);font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,#000 45%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:min(400px,100%);padding:24px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.modal-title{margin:0 0 8px;font-size:20px;font-weight:700}.device-tile:active{transform:scale(.99)}.device-icon{width:52px;height:52px;border-radius:14px;background:var(--accent-soft);display:grid;place-items:center;flex-shrink:0;overflow:hidden}.device-icon .plant-icon{width:44px;height:44px}.plant-icon{display:block;flex-shrink:0;opacity:var(--plant-opacity)}.plant-icon--sm{width:44px;height:44px}.plant-icon--md{width:52px;height:52px}.plant-icon--lg{width:72px;height:72px}.plant-icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:8px 0 20px}.plant-icon-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border:2px solid transparent;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;color:var(--text);transition:border-color .12s ease,transform .12s ease}.plant-icon-option:hover{transform:translateY(-1px)}.plant-icon-option--active{border-color:var(--accent);background:var(--accent-soft)}.plant-icon-option-label{font-size:12px;line-height:1.2;text-align:center;color:var(--muted)}.plant-icon-option--active .plant-icon-option-label{color:var(--text);font-weight:600}.device-name{margin:0;flex:1;min-width:0;font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-id{margin:2px 0 0;font-size:13px;color:var(--muted)}.chevron{margin-left:auto;color:color-mix(in srgb,var(--text) 35%,transparent);font-size:22px}.empty{text-align:center;padding:48px 24px 120px;color:var(--muted)}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.7}.empty h2{margin:0 0 10px;color:var(--text);font-size:20px}.metric-row{display:flex;align-items:center;gap:20px;margin:12px 0 8px}.metric-main{min-width:0}.metric-value{margin:0;font-size:40px;font-weight:700;letter-spacing:-.03em;color:var(--accent);line-height:1}.metric-sub{font-size:13px;color:var(--muted)}.segmented{display:flex;flex-wrap:wrap;padding:3px;border-radius:12px;background:var(--seg-bg);gap:2px}.segmented button{flex:1 1 auto;min-width:0;border:0;border-radius:10px;padding:8px;background:transparent;color:var(--text);font-size:12px;font-weight:600;cursor:pointer;line-height:1.25;white-space:normal}.segmented button[aria-pressed=true]{background:var(--seg-active);box-shadow:0 1px 3px #00000014}.locale-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.locale-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border, rgba(0, 0, 0, .12));border-radius:12px;padding:8px 12px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}.locale-chip[aria-pressed=true]{border-color:var(--accent, #2f6fed);background:var(--seg-active, rgba(47, 111, 237, .12));box-shadow:0 1px 3px #00000014}.locale-chip__badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.2em;height:1.8em;padding:0 6px;border-radius:8px;background:var(--line);font-size:12px;font-weight:700;letter-spacing:.04em}[data-theme=dark] .locale-chip__badge{background:var(--line)}.locale-chip__label{font-size:13px;font-weight:500}.section-title{margin:24px 0 8px;font:600 15px/1.2 var(--font-display);letter-spacing:.04em;text-transform:uppercase}.field-label{display:block;margin:12px 0 6px;font-size:13px;font-weight:600;color:var(--muted, #666)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.num-field{background:var(--surface);border-radius:14px;padding:12px 14px}.num-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.num-field input{width:100%;border:0;background:transparent;padding:0;font-size:17px;font-weight:500;outline:none}.chart-wrap{height:260px;position:relative}.charts-row{display:flex;flex-direction:column;gap:12px;margin-top:12px}.chart-card{padding:12px}.chart-card-title{margin:0 0 4px;font-size:15px;font-weight:600}.chart-card-desc{margin:0 0 12px;font-size:12px;line-height:1.35}.chart-loading{height:260px;display:grid;place-items:center;color:var(--muted)}.bottom-bar{position:fixed;left:0;right:0;bottom:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,transparent);max-width:640px;margin:0 auto}.theme-fab{position:fixed;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));width:44px;height:44px;border:0;border-radius:50%;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 12px #0000001f;cursor:pointer;font-size:18px;z-index:20}.toast{position:fixed;left:50%;top:calc(16px + env(safe-area-inset-top));bottom:auto;transform:translate(-50%) translateY(-16px);opacity:0;pointer-events:none;background:color-mix(in srgb,var(--text) 92%,transparent);color:var(--bg);padding:12px 18px;border-radius:14px;font-size:15px;font-weight:500;z-index:200;box-shadow:0 8px 24px #0000002e;transition:opacity .2s ease,transform .2s ease;max-width:min(90vw,420px);text-align:center}.toast--visible{opacity:1;transform:translate(-50%) translateY(0)}.spinner{width:22px;height:22px;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-loading{min-height:50dvh;display:grid;place-items:center}.error-box{text-align:center;padding:40px 24px;color:var(--muted)}.menu-popover{position:absolute;right:0;top:calc(100% + 6px);min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #00000024;overflow:hidden;z-index:30}.menu-popover button{display:block;width:100%;border:0;background:transparent;padding:14px 16px;text-align:left;cursor:pointer}.menu-popover button:hover{background:var(--seg-bg)}.head-row{display:flex;align-items:flex-start;gap:12px}.head-row .page-head{flex:1}.avatar-wrap{position:relative}.group-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 0}.group-block{padding:0 0 12px;border-bottom:1px solid var(--border)}.group-block:last-child{border-bottom:0;padding-bottom:0}.group-devices{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}.group-devices .device-tile{padding:14px 16px;box-shadow:none;border:1px solid var(--border)}.group-devices .device-moisture{font-size:22px}.group-empty{margin:8px 0 4px;font-size:13px}.group-row:last-child{border-bottom:0}.check-row{display:flex;align-items:center;gap:10px;cursor:pointer}.btn--sm{padding:6px 10px;font-size:13px}.ota-device{padding:10px 0;border-bottom:1px solid var(--border)}.ota-device:last-child{border-bottom:0}.ota-device-head{padding:0;margin:0}.ota-progress-wrap{margin:8px 0 0 28px}.ota-progress-track{height:8px;border-radius:999px;background:color-mix(in srgb,var(--text) 8%,transparent);overflow:hidden}.ota-progress-bar{height:100%;border-radius:999px;background:var(--accent);transition:width .35s ease}.ota-progress-track--pulse .ota-progress-bar{animation:ota-pulse 1.2s ease-in-out infinite}@keyframes ota-pulse{0%,to{opacity:.45;transform:translate(0)}50%{opacity:1;transform:translate(120%)}}.ota-progress-label,.ota-hint{display:block;margin:6px 0 0;font-size:13px;color:var(--muted)}.ota-notes{display:block;margin-top:8px;font-size:13px;line-height:1.4;color:var(--text)}.ota-error{margin:6px 0 0 28px;font-size:13px;color:var(--signal)}.cal-card{margin-top:20px}.cal-lead{margin:16px 0 8px;font-size:17px;line-height:1.45;color:var(--text)}.cal-wait{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px}.cal-wait-spinner{width:28px;height:28px;border-width:3px}.ota-progress-track--active .ota-progress-bar{transition:width .6s ease}.page-leave{animation:page-fade-out .24s ease forwards}.page-enter{animation:page-fade-in .24s ease}@keyframes page-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes page-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-anim-enter{animation:modal-overlay-in .2s ease}.modal-anim-enter .modal{animation:modal-scale-in .2s ease}.modal-anim-leave{animation:modal-overlay-out .2s ease forwards}.modal-anim-leave .modal{animation:modal-scale-out .2s ease forwards}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes modal-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.step-leave-left{animation:step-out-left .14s ease forwards}.step-leave-right{animation:step-out-right .14s ease forwards}.step-enter-right{animation:step-in-right .24s ease}.step-enter-left{animation:step-in-left .24s ease}@keyframes step-out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-18px)}}@keyframes step-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(18px)}}@keyframes step-in-right{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes step-in-left{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:translate(0)}}@media(prefers-reduced-motion:reduce){.page-leave,.page-enter,.modal-anim-enter,.modal-anim-enter .modal,.modal-anim-leave,.modal-anim-leave .modal,.step-leave-left,.step-leave-right,.step-enter-right,.step-enter-left{animation:none!important}}.onboard-progress{margin:16px 0 8px;height:4px;border-radius:4px;background:var(--seg-bg);overflow:hidden}.onboard-progress-bar{height:100%;border-radius:4px;background:var(--accent);transition:width .28s ease}.onboard-step-label{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--muted)}.onboard-actions{display:flex;align-items:center;gap:10px}.choice-grid{display:flex;flex-direction:column;gap:10px;margin:12px 0 8px}.choice-grid--2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border:2px solid transparent;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;color:var(--text);text-align:left;transition:border-color .12s ease,transform .12s ease}.choice-card:active{transform:scale(.98)}.choice-card--wide{width:100%}.choice-card--active{border-color:var(--accent);background:var(--accent-soft)}.choice-card-title{font-size:17px;font-weight:700;letter-spacing:-.02em}.choice-card-hint{font-size:13px;color:var(--muted);line-height:1.35}.plant-icon-option-meta{font-size:11px;color:var(--muted);line-height:1.2}.plant-icon-option--active .plant-icon-option-meta{color:var(--accent);font-weight:600}.settings-footer{margin-top:28px;padding-top:8px;border-top:1px solid var(--border)}.settings-tabs button{font-size:14px;padding:10px 12px}.support-chat{margin:12px 0;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:4px 0}.chat-bubble{max-width:90%;padding:10px 14px;border-radius:14px;background:var(--seg-bg);font-size:15px;line-height:1.4;white-space:pre-wrap}.chat-bubble--admin{align-self:flex-start;background:var(--accent-soft)}.chat-bubble--user{align-self:flex-end}.chat-bubble--system{align-self:center;background:transparent;color:var(--muted);font-size:13px;text-align:center}.chat-bubble-meta{font-size:11px;color:var(--muted);margin-bottom:4px}.support-form{margin-top:8px}.back{width:36px;height:36px;flex-shrink:0;border:0;border-radius:10px;background:var(--surface);color:var(--accent);cursor:pointer;font-size:22px;line-height:1;margin-top:4px}.plant-picker{margin:8px 0 20px}.plant-picker .plant-icon-picker{margin:8px 0 12px}.plant-picker-selected{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:10px;border-radius:12px;background:var(--accent-soft);font-size:14px;font-weight:500}.plant-picker-selected .plant-icon{width:28px;height:28px}.plant-search input{width:100%}.plant-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}.plant-chip{border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:999px;padding:6px 12px;min-height:32px;font:inherit;font-size:13px;cursor:pointer}.plant-chip--active{border-color:var(--text);color:var(--text);font-weight:600}.plant-picker-label{margin:12px 0 0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.plant-search-note{margin:10px 0 0}.plant-icon-option-via{font-size:11px;line-height:1.2;color:var(--accent);text-align:center}.plant-other-toggle{display:block;margin:0 auto 8px}.choice-card-badge{margin-top:4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-shell{--tabbar-h: calc(60px + env(safe-area-inset-bottom)) ;min-height:100dvh}.app-shell--nested{--tabbar-h: 0px}.app-main{min-height:100dvh;padding-bottom:var(--tabbar-h);margin-left:var(--side-w)}.app-shell .bottom-bar{bottom:var(--tabbar-h);left:var(--side-w)}.nav-icon{width:22px;height:22px;flex:none}.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-around;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--tab-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line)}.app-shell--nested .tab-bar{display:none}.tab-item{flex:1;max-width:120px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-muted);font-size:11px;border-radius:var(--radius-sm);text-decoration:none}.tab-item.is-active{color:var(--ink)}.tab-item.is-active .nav-icon{stroke-width:2}.side-nav{display:none}@media(min-width:900px),(max-height:500px)and (orientation:landscape){.app-shell,.app-shell--nested{--side-w: calc(72px + env(safe-area-inset-left)) ;--tabbar-h: 0px}.tab-bar{display:none}.side-nav{position:fixed;top:0;bottom:0;left:0;z-index:30;width:var(--side-w);display:flex;flex-direction:column;gap:4px;padding:max(16px,env(safe-area-inset-top)) 10px 16px calc(10px + env(safe-area-inset-left));border-right:1px solid var(--line);background:var(--bg)}.side-brand{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 6px 18px;color:var(--ink);text-decoration:none}.side-brand i,.side-brand-word{display:none}.side-brand .brand-mark{width:36px;height:auto}.side-items{display:flex;flex-direction:column;gap:4px}.side-item{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px;border-radius:10px;color:var(--ink-muted);text-decoration:none;font-size:15px}.side-item span{display:none}.side-item:hover{color:var(--ink)}.side-item.is-active{color:var(--ink);background:var(--surface)}.side-add{margin-top:auto;color:var(--ink);border:1px solid var(--line-strong)}.fab-add{display:none!important}}@media(min-width:1200px){.app-shell,.app-shell--nested{--side-w: 220px}.side-nav{padding:22px 14px}.side-brand{justify-content:flex-start;padding:4px 10px 26px}.side-brand .brand-mark{width:auto;height:18px}.side-brand i{display:block;width:1px;height:16px;background:var(--line-strong)}.side-brand-word{display:inline;font:600 13px/1 var(--font-display);letter-spacing:.18em}.side-item{justify-content:flex-start}.side-item span{display:inline}}.fab-add{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(var(--tabbar-h) + 16px);z-index:25;width:52px;height:52px;border:0;border-radius:var(--radius-lg);background:var(--primary);color:var(--on-primary);display:grid;place-items:center;cursor:pointer;text-decoration:none}.fab-add .nav-icon{width:24px;height:24px}[data-theme=night] .fab-add{display:none}.code-label{margin:0;font:500 11px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.screen-title{margin:6px 0 4px;font:300 34px/1.05 var(--font-display);letter-spacing:-.01em}.plants-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0 16px}.plants-summary{margin:0;color:var(--ink-muted);font-size:15px}.avatar-link{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;font:500 13px/1 var(--font-mono);color:var(--ink-muted);text-decoration:none;text-transform:uppercase}@media(min-width:900px),(max-height:500px)and (orientation:landscape){.avatar-link{display:none}}.quiet-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);color:var(--ink-muted);font-size:14px}.quiet-banner svg{width:18px;height:18px;flex:none}.att-list{display:grid;gap:8px;margin-bottom:16px}.att{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--signal-soft)}.att--water{background:var(--water-soft)}.att-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.att-text b{font-weight:500;font-size:15px}.att-text span{color:var(--ink-muted);font-size:14px}.att-go{flex:none;min-height:44px;padding:0 6px;border:0;background:none;cursor:pointer;color:var(--signal);font:600 12px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.att--water .att-go{color:var(--water)}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}.chip{flex:none;min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--ink-muted);cursor:pointer;font-size:14px}.chip--on{border-color:var(--ink);color:var(--ink)}.pc-grid{display:grid;gap:8px}.pc{width:100%;display:flex;align-items:center;gap:14px;padding:14px;border:0;border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;transition:background .15s ease}.pc:hover{background:var(--surface-2)}.pc-icon{width:40px;height:40px}.pc-text{flex:1;min-width:0;display:flex;flex-direction:column}.pc-name{font-weight:500;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-phrase{margin-top:2px;color:var(--ink-muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc--water .pc-phrase{color:var(--water)}.pc--signal .pc-phrase{color:var(--signal)}.pc-code{margin-top:6px;font:500 10px/12px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}[data-theme=night] .pc-code{display:none}.pc-value{flex:none;display:flex;align-items:center;gap:8px}.pc-num{min-width:44px;text-align:right;font:300 26px/1 var(--font-display)}.pc-num small{font-size:13px;color:var(--ink-muted);margin-left:1px}.drop{display:block;flex:none}.empty-plants{text-align:center;padding:40px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-plants h2{margin:8px 0 0;font:300 24px/1.15 var(--font-display)}.empty-plants p{margin:0 0 12px;color:var(--ink-muted)}@media(min-width:600px){.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plants-screen{max-width:880px}.att-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1400px){.plants-screen{max-width:1180px}.pc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.sheet-list{display:grid;gap:4px;margin:12px 0}.sheet-row{display:flex;align-items:center;gap:12px;padding:8px 0}.sheet-row span{display:flex;flex-direction:column}.sheet-row b{font-weight:500}.sheet-row small{color:var(--ink-muted);font:500 11px/1.4 var(--font-mono)}.add-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}.add-steps .card+.card{margin-top:0}.add-found{margin-bottom:12px}.pairing-code-big{margin:16px 0 4px;font:600 32px/1.1 var(--font-mono);letter-spacing:.12em;word-break:break-all}.spinner--sm{display:inline-block;width:14px;height:14px;vertical-align:-2px;margin-right:6px}.add-steps .row-actions{flex-wrap:nowrap}.add-steps .row-actions .btn{width:auto;padding-left:0}.place+.place{margin-top:12px}.place-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.place-head .card-title{margin:0}.place-plants{display:grid;gap:2px;margin:10px 0}.place-plant{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:6px 4px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;border-radius:var(--radius-sm)}.place-plant:hover{background:var(--surface-2)}.place-plant-name{flex:1;min-width:0;display:flex;flex-direction:column;font-weight:500}.place-plant-name small{font-weight:400;font-size:13px;color:var(--ink-muted)}.place-plant-pct{font:300 20px/1 var(--font-display)}.tone-water{color:var(--water)!important}.tone-signal{color:var(--signal)!important}.place-water{width:100%}.seg{display:flex;gap:2px;padding:3px;margin-top:12px;border-radius:10px;background:var(--line)}.seg-item{flex:1;min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--ink-muted);cursor:pointer;font-size:14px}.seg-item--on{background:var(--surface);color:var(--ink);font-weight:500}.link-list{display:grid;padding:4px 18px}.link-list a,.link-list button{display:flex;justify-content:space-between;align-items:center;min-height:52px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);text-decoration:none;font-size:16px;text-align:left;cursor:pointer;padding:0}.link-list>:last-child{border-bottom:0}.link-list span{color:var(--ink-muted)}.link-danger{color:var(--signal)!important}.plants-screen{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.screen{padding-right:max(20px,env(safe-area-inset-right));padding-left:max(20px,env(safe-area-inset-left))}@media(min-width:900px),(max-height:500px)and (orientation:landscape){.app-shell .screen{padding-left:24px}}.tab-bar{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.bottom-bar{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}.modal{margin-bottom:env(safe-area-inset-bottom)}.btn--code{width:auto;flex:none;min-height:40px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.pd-nav{align-items:center;gap:10px}.pd-title{flex:1;min-width:0}.pd-title .nav-title{font-size:26px;white-space:normal;overflow-wrap:anywhere}.pd-screen{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.pd-grid{display:grid;gap:12px}.pd-col-a,.pd-col-b,.pd-col-c{display:grid;gap:12px;align-content:start;min-width:0}.pd-hero{display:flex;align-items:center;gap:18px;padding:20px}.pd-hero-drop .drop{width:auto;height:92px}.pd-hero-main{min-width:0}.pd-big{font:200 64px/1 var(--font-display);letter-spacing:-.02em}.pd-big small{font-size:24px;color:var(--ink-muted);margin-left:2px}.pd-state{margin:8px 0 0;font:500 12px/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.pd-glyph{margin-right:6px}.tone-ok{color:var(--leaf)}.tone-wait,.tone-muted{color:var(--ink-muted)}.pd-sub{margin:4px 0 0;color:var(--ink-muted);font-size:14px}.pd-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pd-num{background:var(--surface);border-radius:var(--radius-md);padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}.pd-num .code-label{font-size:9px}.pd-num b{font:300 18px/1.15 var(--font-display)}.pd-chart-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.pd-periods{margin-top:0}.pd-periods .seg-item{min-height:34px;padding:0 10px;font-size:13px}.pd-chart-wrap{position:relative;height:220px;margin-top:12px}.pd-legend{display:flex;align-items:center;gap:6px;margin:8px 0 0;color:var(--ink-muted);font-size:12px}.pd-legend i{display:inline-block;width:14px;height:8px;border-radius:2px}.pd-legend .lg-band{background:var(--leaf-soft);border:1px dashed var(--leaf)}.pd-legend .lg-mark{width:4px;margin-left:10px;background:var(--water)}.pd-j{list-style:none;margin:0;padding:0}.pd-j li{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}.pd-j li:last-child{border-bottom:0}.pd-j-glyph{font-family:var(--font-mono);font-size:11px}.pd-j-text{flex:1}.pd-j time{color:var(--ink-muted);font:500 11px/1 var(--font-mono);letter-spacing:.04em}.pd-j-note{margin:10px 0 0;color:var(--ink-muted);font-size:12px}.pd-footer{margin:0;color:var(--ink-muted);font:500 11px/1.5 var(--font-mono);letter-spacing:.04em}.pd-actions .btn{width:100%}.pd-list{display:none}@media(min-width:1100px){.pd-layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100dvh}.pd-list{display:flex;flex-direction:column;gap:2px;padding:24px 10px;border-right:1px solid var(--line);position:sticky;top:0;height:100dvh;overflow-y:auto}.pd-list-title{margin:0 10px 12px;font:300 24px/1 var(--font-display)}.pd-li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--ink);text-decoration:none}.pd-li:hover{background:var(--surface-2)}.pd-li.is-active{background:var(--surface)}.pd-li .plant-icon{width:32px;height:32px}.pd-li-text{flex:1;min-width:0;display:flex;flex-direction:column}.pd-li-text b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pd-li-text small{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pd-li-pct{font:300 18px/1 var(--font-display)}.pd-screen{max-width:none;margin:0;padding-bottom:32px}.pd-nav .nav-back{display:none}.pd-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);max-width:1100px}.pd-col-c{grid-column:1 / -1}.pd-chart-wrap{height:280px}.pd-actions{position:static;background:none;padding:16px 0 0;max-width:320px;margin:0}}@media(min-width:1600px){.pd-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(280px,.8fr);max-width:1500px}.pd-col-c{grid-column:auto}.pd-chart-wrap{height:360px}}@media(max-height:500px)and (orientation:landscape){.pd-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.pd-col-c{grid-column:1 / -1}.pd-hero{padding:14px}.pd-big{font-size:48px}.pd-hero-drop .drop{height:64px}.pd-chart-wrap{height:170px}}.screen-title,.title-xl{font:600 44px/.95 var(--font-display);letter-spacing:.005em;text-transform:uppercase}.nav-title,.pd-title .nav-title{font:600 26px/1 var(--font-display);letter-spacing:.01em;text-transform:uppercase}.pd-list-title,.empty-plants h2{font-weight:600;text-transform:uppercase}@media(min-width:900px){.screen-title{font-size:56px}}.pd-big,.pc-num,.st-big,.place-plant-pct,.pd-li-pct{font-weight:500}.card,.pc,.pd-num,.att,.quiet-banner,.st-card,.st-menu-item{box-shadow:var(--card-ring)}.plus-grid{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M12 16h8M16 12v8' stroke='%23000' stroke-opacity='.3' stroke-width='1.2'/%3E%3C/svg%3E");background-size:32px 32px}.att:before{content:"";flex:none;width:14px;height:14px;border-radius:4px;background:var(--signal)}.att--water:before{background:var(--water)}.pc--signal{box-shadow:var(--card-ring),inset 4px 0 0 var(--signal)}.pc--water{box-shadow:var(--card-ring),inset 4px 0 0 var(--water)}@media(min-width:900px),(max-height:500px)and (orientation:landscape){.side-item.is-active{background:var(--water);color:var(--on-water)}}.pd-hero{padding:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);gap:0}.pd-hero-slab{display:flex;align-items:center;gap:16px;padding:20px;background-color:var(--water);color:var(--on-water)}.pd-hero-slab .pd-big small{color:inherit;opacity:.75}.pd-hero-info{padding:16px 20px 18px}.pd-hero-info .pd-state{margin-top:0}[data-theme=night] .pd-hero-slab{background-color:#10243d;color:var(--ink)}.pd-hero--signal .pd-hero-slab{background-color:var(--signal)}[data-theme=night] .pd-hero--signal .pd-hero-slab{background-color:#3a1a0e}.st-screen{max-width:980px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.st-status{flex:none;max-width:46vw;font:500 10px/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);text-align:right;border:0;background:none;padding:4px 0}.st-status--ok{color:var(--leaf)}.st-status--error{color:var(--signal);cursor:pointer}.st-layout{display:grid;gap:16px;margin-top:8px}.st-layout--wide{grid-template-columns:300px minmax(0,1fr);align-items:start}.st-layout--wide .st-menu{position:sticky;top:16px}.st-menu{display:grid;gap:8px}.st-menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 14px;border:0;border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}.st-menu-item.is-active{box-shadow:var(--card-ring),inset 4px 0 0 var(--water)}.st-menu-icon{width:32px;height:32px;display:grid;place-items:center;flex:none;color:var(--water);font:600 14px/1 var(--font-mono)}.st-menu-icon .plant-icon{width:32px;height:32px}.st-menu-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.st-menu-text b{font-weight:500}.st-menu-text small{color:var(--ink-muted);font-size:13px}.st-menu-text em,.st-custom-badge,.st-num em{font-style:normal;font:500 10px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--water);margin-left:6px}.st-chev{color:var(--ink-muted);font-size:20px}.st-layout--wide .st-chev{display:none}.st-section{min-width:0}.st-section>.section-title:first-child{margin-top:0}.st-field{display:grid;gap:6px;font-size:14px;color:var(--ink-muted)}.st-field input,.st-section select{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:16px}.st-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--card-ring);cursor:pointer}.st-toggle span{display:flex;flex-direction:column}.st-toggle b{font-weight:500}.st-toggle small{color:var(--ink-muted);font-size:13px}.st-toggle input[role=switch]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:48px;height:28px;border-radius:999px;background:var(--line-strong);position:relative;cursor:pointer;transition:background .15s ease}.st-toggle input[role=switch]:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .15s ease}.st-toggle input[role=switch]:checked{background:var(--water)}.st-toggle input[role=switch]:checked:after{left:23px}.st-advanced{margin-top:16px}.st-big{font:500 44px/1 var(--font-display);margin:4px 0 8px}.st-big small{font-size:18px;color:var(--ink-muted);margin-left:2px}.st-range{position:relative;height:44px}.st-range-track{position:absolute;left:11px;right:11px;top:19px;height:6px;border-radius:4px;background:var(--line-strong)}.st-range-rec{position:absolute;top:-5px;bottom:-5px;left:var(--rlo);right:calc(100% - var(--rhi));border-radius:6px;background:var(--leaf-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--leaf) 40%,transparent)}.st-range-sel{position:absolute;top:0;bottom:0;left:var(--lo);right:calc(100% - var(--hi));border-radius:4px;background:var(--water)}.st-range-now{position:absolute;top:-9px;width:2px;height:24px;margin-left:-1px;background:var(--ink);opacity:.5}.st-range input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:44px;margin:0;background:none;pointer-events:none;-moz-appearance:none;appearance:none;-webkit-appearance:none}.st-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:22px;height:22px;border-radius:50%;background:var(--ink);border:3px solid var(--bg);cursor:grab}.st-range input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--ink);border:3px solid var(--bg);cursor:grab}.st-range input[type=range]::-webkit-slider-runnable-track{background:none}.st-range-scale{display:flex;justify-content:space-between;color:var(--ink-muted);font-size:12px;margin-bottom:4px}.st-reset{padding-left:0}.st-warn{margin:8px 0 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--signal-soft);color:var(--ink);font-size:14px}.st-warn:before{content:"× ";color:var(--signal);font-family:var(--font-mono)}.st-stepper{display:flex;align-items:center;justify-content:space-between;padding:6px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--card-ring)}.st-stepper button{width:48px;height:48px;border:1px solid var(--line-strong);border-radius:10px;background:transparent;color:var(--ink);font-size:22px;cursor:pointer}.st-stepper b{font:500 24px/1 var(--font-display)}.st-slider{display:flex;align-items:center;gap:14px}.st-slider input{flex:1;accent-color:var(--water);min-height:44px}.st-slider b{font:500 22px/1 var(--font-display);min-width:64px;text-align:right}.st-card{display:grid;gap:10px;padding:16px;border-radius:var(--radius-lg);background:var(--surface)}.st-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.st-row span{display:flex;flex-direction:column;color:var(--ink-muted)}.st-row small{font-size:12px}.st-row b{font-weight:500;text-align:right}.btn--half{flex:1;width:auto}.st-masters{margin-top:24px;padding:16px;border:1px dashed var(--line-strong);border-radius:var(--radius-lg)}.st-masters-title{margin:0 0 12px;color:var(--water)}.st-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}.st-num{display:grid;gap:4px;font-size:13px;color:var(--ink-muted)}.st-num-input{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.st-num--custom .st-num-input{border-color:var(--water)}.st-num input{flex:1;min-width:0;min-height:44px;padding:8px 10px;border:0;background:none;color:var(--ink);font:500 15px/1 var(--font-mono)}.st-num i{font-style:normal;padding-right:10px;color:var(--ink-muted);font-size:12px}.st-diff{display:grid;gap:1px;margin:12px 0;border-radius:10px;overflow:hidden;background:var(--line)}.st-diff div{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--bg)}.st-diff span{color:var(--ink-muted)}.st-diff b{font-weight:500}.st-diff s{color:var(--ink-muted);font-weight:400}.st-menu .st-advanced{margin-top:8px}
