:root{--font:"Bricolage Grotesque", system-ui, sans-serif;--font-display:"Young Serif", Georgia, "Times New Roman", serif;--mobile-keyboard-offset:0px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:6px;--r-md:12px;--r-lg:18px;--r-xl:24px;--ease:cubic-bezier(.25, .46, .45, .94);--bg-0:#f0ebe3;--bg-1:#faf8f4;--bg-2:#f4f0e8;--bg-3:#eae4da;--bg-inset:#e2dcd2;--border:#d0c8ba;--border-subtle:#e0d9ce;--text-1:#2b261e;--text-2:#6d6558;--text-3:#766c60;--text-inv:#faf8f4;--brand:#2e6b45;--brand-hover:#245638;--brand-muted:#e4efea;--brand-text:#2e6b45;--accent:#c05830;--accent-muted:#f5e8e2;--danger:#b33b3b;--danger-muted:#f8e4e4;--focus-ring:#5b8a6c;--shadow-sm:0 1px 3px #2a261e0f, 0 1px 2px #2a261e0a;--shadow-md:0 4px 20px #2a261e14, 0 1px 4px #2a261e0a;--shadow-lg:0 16px 48px #2a261e1f, 0 4px 12px #2a261e0f;--nav-bg:#1a2820;--nav-text:#c5d4cc;--nav-active-bg:#faf8f4;--nav-active-text:#2b261e;--map-bg:#e4ded2;--grid-bg:#2e6b450d;--grid-border:var(--brand);--grid-label-bg:var(--brand);--house-bg:#c8c2b8;--house-border:#a09888;--house-text:#5a5348;--zone-b:#6a9b58;--zone-v:#8b6ba8;--zone-t:#cc7658;--zone-r:#c4a838;--zone-s:#b0a868;--zone-p:#5a9488;--zone-d:#5882a0;--zone-h:#b06880}[data-theme=dark]{--bg-0:#13110e;--bg-1:#1c1916;--bg-2:#242018;--bg-3:#2e2a22;--bg-inset:#100e0c;--border:#3a3428;--border-subtle:#2a2620;--text-1:#e8e2d8;--text-2:#a8a094;--text-3:#9a9084;--text-inv:#13110e;--brand:#4aaa6c;--brand-hover:#3d9260;--brand-muted:#1a2e20;--brand-text:#4aaa6c;--accent:#e87048;--accent-muted:#2a1810;--danger:#e85050;--danger-muted:#2a1212;--shadow-sm:0 1px 3px #00000040;--shadow-md:0 4px 20px #00000059;--shadow-lg:0 16px 48px #0000008c;--nav-bg:#0d0b08;--nav-text:#b8b0a4;--nav-active-bg:#4aaa6c;--nav-active-text:#0d0b08;--map-bg:#181510;--grid-bg:#4aaa6c0a;--grid-border:#4aaa6c;--grid-label-bg:#4aaa6c;--house-bg:#2a2620;--house-border:#403828;--house-text:#a8a094;--zone-b:#3d7a38;--zone-v:#6a4890;--zone-t:#a85840;--zone-r:#988028;--zone-s:#808050;--zone-p:#307868;--zone-d:#386890;--zone-h:#904868}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box;border:2px solid #0000}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg-0);color:var(--text-1);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.55;overflow:hidden}body:before{content:"";z-index:10000;pointer-events:none;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}a{color:var(--brand-text);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}#app,.app-shell{height:100dvh}.app-shell{grid-template-rows:auto 1fr auto;display:grid}.mobile-header{gap:var(--sp-3);padding:calc(env(safe-area-inset-top) + var(--sp-3)) var(--sp-4) var(--sp-3);padding-left:max(var(--sp-4), env(safe-area-inset-left));padding-right:max(var(--sp-4), env(safe-area-inset-right));color:var(--text-inv);background:radial-gradient(circle at 0 0,#4aaa6c38,#0000 48%),linear-gradient(#18251d 0%,#101711 100%);border-bottom:1px solid #ffffff14;grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.mobile-header-main{min-width:0}.mobile-header-kicker{letter-spacing:.12em;text-transform:uppercase;color:#faf8f4a6;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.mobile-header-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:26px;line-height:1.05}.mobile-icon-btn{color:var(--text-inv);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;min-height:44px;padding:0 16px;font-size:12px;font-weight:700}.top-nav.desktop-top-nav{display:none}.top-nav{align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-2) var(--sp-4);padding-left:max(var(--sp-4), env(safe-area-inset-left));padding-right:max(var(--sp-4), env(safe-area-inset-right));background:var(--nav-bg);color:var(--nav-text);z-index:10;border-bottom:2px solid #4aaa6c26;display:flex}.mobile-utility-backdrop{opacity:0;pointer-events:none;transition:opacity .18s var(--ease);z-index:35;background:#0d0b086b;position:fixed;inset:0}.mobile-utility-backdrop--visible{opacity:1;pointer-events:auto}.mobile-utility-sheet{z-index:40;gap:var(--sp-4);max-height:calc(100dvh - env(safe-area-inset-top) - var(--sp-3) - var(--mobile-keyboard-offset));padding:var(--sp-5) var(--sp-4) calc(max(var(--sp-5), env(safe-area-inset-bottom)) + var(--mobile-keyboard-offset));background:radial-gradient(circle at top right, #c058301f, transparent 34%), linear-gradient(180deg, var(--bg-1), var(--bg-2));border-radius:var(--r-xl) var(--r-xl) 0 0;border:1px solid var(--border);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;overscroll-behavior:contain;scroll-padding-bottom:calc(var(--mobile-keyboard-offset) + var(--sp-6));transition:transform .22s var(--ease), opacity .18s var(--ease);display:grid;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(24px)}.mobile-utility-sheet--open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-utility-sheet-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.mobile-utility-kicker{color:var(--text-3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700}.mobile-utility-sheet-header h2{font-family:var(--font-display);font-size:22px;line-height:1.1}.mobile-utility-section{gap:var(--sp-2);display:grid}.mobile-field{gap:var(--sp-2);color:var(--text-2);font-size:12px;font-weight:700;display:grid}.mobile-field input,.mobile-field select{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);width:100%;min-height:48px;color:var(--text-1);padding:0 14px}.search-dropdown.mobile-search-dropdown{width:100%;max-height:220px;box-shadow:none;position:static}.mobile-inline-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.mobile-chip-button,.mobile-action-btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);color:var(--text-1);cursor:pointer;min-height:44px;padding:0 14px;font-weight:700}.mobile-chip-button{white-space:nowrap}.mobile-action-grid{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mobile-action-btn.active{background:var(--brand-muted);color:var(--brand-text);border-color:var(--brand)}.garden-select.mobile-garden-select{background:var(--bg-1);color:var(--text-1);border-color:var(--border)}.garden-role-chip.mobile-role-chip{color:var(--text-1);background:var(--bg-2);border-color:var(--border)}.mobile-utility-meta{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12px}.mobile-map-actionbar{display:none}.map-status-slot{align-items:center;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-2);background:var(--bg-1);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.map-status-slot:empty{display:none}.mobile-map-sheet-backdrop{opacity:0;pointer-events:none;transition:opacity .18s var(--ease);z-index:45;background:#0d0b086b;position:fixed;inset:0}.mobile-map-sheet-backdrop--visible{opacity:1;pointer-events:auto}.mobile-map-sheet{left:var(--sp-3);right:var(--sp-3);bottom:calc(78px + env(safe-area-inset-bottom));z-index:50;gap:var(--sp-4);max-height:min(78dvh, calc(100dvh - 98px - env(safe-area-inset-bottom) - var(--mobile-keyboard-offset)));padding:var(--sp-5) var(--sp-4) calc(var(--sp-4) + var(--mobile-keyboard-offset));background:radial-gradient(circle at top left, #4aaa6c29, transparent 42%), linear-gradient(180deg, var(--bg-1), var(--bg-2));border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;overscroll-behavior:contain;scroll-padding-bottom:calc(var(--mobile-keyboard-offset) + var(--sp-6));transition:transform .22s var(--ease), opacity .18s var(--ease);display:grid;position:fixed;overflow:hidden auto;transform:translateY(28px)}.mobile-map-sheet--open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-map-sheet-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.mobile-map-sheet-kicker{color:var(--text-3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700}.mobile-map-sheet-header h2{font-family:var(--font-display);font-size:22px;line-height:1.1}.mobile-map-tool-card{gap:var(--sp-3);padding:var(--sp-4);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border:1px solid var(--border);border-radius:var(--r-lg);display:grid}.mobile-map-tool-title{color:var(--text-2);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.mobile-map-stepper{gap:var(--sp-2);grid-template-columns:auto 1fr auto;align-items:end;display:grid}.mobile-map-number-field{color:var(--text-2);gap:6px;font-size:12px;font-weight:700;display:grid}.mobile-map-number-wrap{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);align-items:center;gap:6px;min-height:48px;padding:0 12px;display:inline-flex}.mobile-map-number-wrap input{text-align:right;background:0 0;border:0;outline:none;width:100%;padding:0;font-weight:700}.mobile-map-number-wrap span{color:var(--text-3);font-weight:700}.mobile-map-grid-fields{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mobile-map-grid-fields label{color:var(--text-2);gap:6px;font-size:12px;font-weight:700;display:grid}.mobile-map-grid-fields input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);text-align:center;min-height:48px;padding:0 14px}.mobile-map-sheet-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.mobile-map-sheet-actions>*{flex:180px}.mobile-map-sheet-btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);color:var(--text-1);cursor:pointer;min-height:46px;padding:0 14px;font-weight:700}.mobile-map-sheet-btn--primary{background:var(--accent);color:var(--text-inv);border-color:var(--accent)}.mobile-map-sheet-btn:disabled{opacity:.55;cursor:not-allowed}.mobile-snapshots-list{gap:var(--sp-2);min-height:0;padding-right:2px;display:grid;overflow-y:auto}.mobile-snapshots-list .snapshot-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);overflow:hidden}.mobile-snapshots-list .snapshot-restore{padding:12px var(--sp-3)}.mobile-snapshots-list .snapshot-delete{align-self:stretch;padding-inline:12px}.mobile-map-note{color:var(--text-3);padding:0 var(--sp-1);font-size:12px}.mobile-tabbar{padding:10px var(--sp-3) calc(max(10px, env(safe-area-inset-bottom)));padding-left:max(var(--sp-3), env(safe-area-inset-left));padding-right:max(var(--sp-3), env(safe-area-inset-right));background:linear-gradient(#101711f5,#0d0b08fa);border-top:1px solid #ffffff14;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.mobile-tab-btn{border-radius:var(--r-md);color:#faf8f49e;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;min-height:52px;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:0;font-size:11px;font-weight:800}.mobile-tab-btn.active{color:var(--text-inv);background:#faf8f41f}.mobile-menu-btn{color:var(--nav-text);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;font-size:22px;display:none}.nav-tabs{display:contents}.top-tab{color:var(--nav-text);border-radius:var(--r-sm);cursor:pointer;transition:all .16s var(--ease);letter-spacing:.02em;background:0 0;border:none;padding:7px 16px;font-size:13px;font-weight:600}.top-tab:hover{color:#e8e2d8;background:#ffffff0f}.top-tab.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:700;box-shadow:0 1px 4px #0000001a}.tab-badge{background:var(--danger);color:#fff;vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:4px;padding:0 4px;font-size:.6rem;font-weight:700;line-height:1;display:inline-flex}.top-nav-spacer{flex:1}.top-search{min-width:0;position:relative}.top-search input{border-radius:var(--r-md);width:220px;max-width:100%;color:var(--nav-text);transition:all .16s var(--ease);background:#ffffff0f;border:1px solid #ffffff1a;padding:7px 14px;font-size:13px}.top-search input::placeholder{color:#ffffff4d}.top-search input:focus{background:#ffffff1a;border-color:#fff3;outline:none;box-shadow:0 0 0 3px #4aaa6c26}.search-dropdown{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);width:320px;box-shadow:var(--shadow-lg);z-index:200;max-height:360px;padding:var(--sp-1);position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.dropdown-item{text-align:left;width:100%;padding:var(--sp-2) var(--sp-3);cursor:pointer;border-radius:var(--r-sm);transition:background .12s var(--ease);background:0 0;border:0;flex-direction:column;gap:2px;display:flex}.dropdown-item:hover,.dropdown-item.focused{background:var(--brand-muted)}.dropdown-name{font-size:13px;font-weight:600}.dropdown-latin{color:var(--text-3);font-size:12px;font-style:italic}.dropdown-empty{padding:var(--sp-4);text-align:center;color:var(--text-3);font-size:13px}.top-meta{opacity:.4;margin-left:var(--sp-2);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.garden-switch{align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.garden-select{min-width:180px;max-width:280px;color:var(--nav-text);border-radius:var(--r-sm);background:#ffffff0f;border:1px solid #ffffff1f;padding:6px 10px;font-size:12px;line-height:1.2}.garden-select:focus{outline:none;box-shadow:0 0 0 3px #4aaa6c26}.garden-create-btn{border-radius:var(--r-sm);color:var(--nav-text);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;flex-shrink:0;width:28px;height:28px;padding:0;font-size:16px;font-weight:700;line-height:1}.garden-create-btn:hover{background:#ffffff24}.garden-role-chip{white-space:nowrap;color:#dbe6e0;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:999px;padding:4px 9px;font-size:11px;line-height:1}.locale-switch{background:#ffffff0a;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:4px;padding:3px;display:inline-flex}.locale-switch-btn{min-width:38px;min-height:44px;color:var(--nav-text);letter-spacing:.08em;cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:0;border-radius:999px;padding:0 10px;font-size:11px;font-weight:800}.locale-switch-btn.active{background:var(--nav-active-bg);color:var(--nav-active-text)}.mobile-utility-section .locale-switch{background:var(--bg-1);border-color:var(--border);align-self:flex-start}.mobile-utility-section .locale-switch-btn{color:var(--text-1)}.mobile-utility-section .locale-switch-btn.active{background:var(--brand);color:var(--text-inv)}.theme-toggle{color:var(--nav-text);cursor:pointer;border-radius:var(--r-sm);margin-left:var(--sp-2);transition:background .16s var(--ease);background:0 0;border:none;padding:6px;font-size:16px;line-height:1}.auth-btn{color:var(--nav-text);cursor:pointer;border-radius:var(--r-sm);transition:background .12s var(--ease);background:#ffffff0f;border:1px solid #ffffff1f;padding:6px 10px;font-size:12px;line-height:1}.auth-btn:hover{background:#ffffff1a}.theme-toggle:hover{background:#ffffff0f}.app-version-shell{flex-direction:column;align-self:center;align-items:flex-start;gap:2px;padding:0 6px;display:inline-flex}.app-version{color:var(--text-muted,#ffffff59);letter-spacing:.04em;-webkit-user-select:all;user-select:all;white-space:nowrap;font-size:.65rem}.app-version-updated{color:var(--text-muted,#ffffff47);letter-spacing:.02em;white-space:nowrap;font-size:.6rem}.garden-read-only .edit-plant-btn,.garden-read-only .plot-actions,.garden-read-only .plot-action-button{display:none!important}.content-shell{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.security-warning-banner{z-index:99999;color:#fff;text-align:center;background:#dc2626;padding:12px 20px;font-size:.95rem;font-weight:700;line-height:1.4;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #0000004d}.security-warning-banner~.app-shell{margin-top:48px}.app-status{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:10px var(--sp-4);border-bottom:1px solid var(--border);background:var(--accent-muted);color:var(--text-1);display:flex}.app-status[hidden]{display:none!important}.app-status-actions{align-items:center;gap:var(--sp-2);display:flex}.app-status button{border:1px solid var(--border);background:var(--bg-1);border-radius:var(--r-sm);cursor:pointer;padding:5px 10px}.view{flex:1;min-width:0;height:100%;min-height:0;display:none}.view.active{display:block}.view-map{grid-template-rows:auto auto 1fr;min-width:0;display:none}.view-map.active{display:grid}.toolbar{background:var(--bg-1);border-bottom:1px solid var(--border-subtle);padding:var(--sp-2) var(--sp-4);gap:var(--sp-2);flex-wrap:wrap;align-items:center;min-height:44px;display:flex}.toolbar button{background:var(--bg-2);color:var(--text-1);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all .16s var(--ease);padding:5px 12px;font-size:13px;font-weight:600}.toolbar button:hover{background:var(--bg-3);border-color:var(--border)}.toolbar button.active{background:var(--accent);color:var(--text-inv);border-color:var(--accent)}.toolbar button.active:hover{background:var(--accent)}#selection-count{color:var(--text-3);margin-left:var(--sp-1);font-size:13px;font-weight:500}.map-direction-control{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));min-width:180px;box-shadow:var(--shadow-sm);grid-template-columns:auto;gap:6px;padding:10px 12px;display:grid}.map-direction-title{color:var(--text-2);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:700;display:inline-flex}.map-direction-icon{background:var(--brand-muted);width:22px;height:22px;color:var(--brand-text);border-radius:999px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.map-direction-inputs{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.map-direction-number-wrap{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);justify-content:center;align-items:center;gap:4px;min-width:0;padding:0 8px;display:inline-flex}.map-direction-number-wrap input{text-align:right;background:0 0;border:0;outline:none;width:52px;padding:6px 0;font-weight:700}.map-direction-number-wrap span{color:var(--text-3);font-size:12px;font-weight:700}.map-direction-control button{min-width:48px}#map-direction-slider{width:100%;accent-color:var(--brand)}.highlight-badge{align-items:center;gap:var(--sp-1);background:var(--accent-muted);color:var(--accent);border:1px solid var(--accent);border-radius:100px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.highlight-badge button{cursor:pointer;font-size:15px;line-height:1;color:var(--accent)!important;background:0 0!important;border:0!important;padding:0 2px!important}.snapshot-group{gap:var(--sp-1);display:flex;position:relative}.edit-menu-group{display:flex;position:relative}.edit-menu-dropdown{z-index:220;gap:var(--sp-2);min-width:280px;padding:var(--sp-2);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);display:grid;position:absolute;top:calc(100% + 6px);left:0}.edit-menu-dropdown .map-direction-control{min-width:0;box-shadow:none;margin:0;position:static}.grid-dims-control{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));padding:10px 12px}.grid-dims-title{color:var(--text-2);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:700}.grid-dims-inputs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grid-dims-inputs label{color:var(--text-2);align-items:center;gap:4px;font-size:12px;display:flex}.grid-dims-inputs input[type=number]{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);width:56px;min-height:36px;color:var(--text-1);text-align:center;padding:8px 6px;font-size:12px}#grid-dims-apply-btn{border-radius:var(--r-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;min-height:36px;padding:8px 10px;font-size:11px;font-weight:600}#grid-dims-apply-btn:hover{filter:brightness(1.1)}.file-io-group{gap:var(--sp-1);display:flex}.title-actions{gap:var(--sp-2);align-items:center;display:flex}.title-actions button:not(.btn-primary){background:var(--bg-2);color:var(--text-1);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:background .12s var(--ease);padding:6px 12px;font-size:13px;font-weight:600}.title-actions button:not(.btn-primary):hover{background:var(--bg-3)}.care-generation-progress{border:1px solid var(--border-soft);background:var(--surface-2);border-radius:14px;gap:.45rem;margin-top:.75rem;padding:.8rem 1rem;display:grid}.care-generation-progress-copy{justify-content:space-between;align-items:center;gap:.75rem;font-size:.92rem;display:flex}.care-generation-progress-copy span:last-child{color:var(--text-muted);font-variant-numeric:tabular-nums}.care-generation-progress progress{width:100%;height:.72rem}.task-operation-progress{border:1px solid var(--border-soft);background:var(--surface-2);border-radius:14px;gap:.45rem;margin-top:.75rem;padding:.8rem 1rem;display:grid}.task-operation-progress-copy{justify-content:space-between;align-items:center;gap:.75rem;font-size:.92rem;display:flex}.task-operation-progress-copy span:last-child{color:var(--text-muted)}.task-operation-progress progress{width:100%;height:.72rem}.col-toggle-group{position:relative}.col-toggle-dropdown{z-index:20;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:var(--sp-2) 0;min-width:160px;position:absolute;top:calc(100% + 6px);right:0}.col-toggle-item{align-items:center;gap:var(--sp-2);padding:6px var(--sp-3);color:var(--text-1);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;display:flex}.col-toggle-item:hover{background:var(--bg-2)}.col-toggle-item input{cursor:pointer;margin:0}.col-toggle-item input:disabled{cursor:not-allowed;opacity:.5}.col-toggle-item[draggable]{cursor:grab}.col-toggle-item.dragging{opacity:.4}.col-toggle-item .drag-handle{color:var(--text-3);font-size:14px;line-height:1}.snapshots-dropdown{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);width:280px;box-shadow:var(--shadow-lg);z-index:200;max-height:300px;padding:var(--sp-1);position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.snapshot-row{align-items:center;display:flex}.snapshot-restore{padding:7px var(--sp-3);cursor:pointer;border-radius:var(--r-sm);text-align:left;color:var(--text-1);transition:background .12s var(--ease);background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;font-size:13px;display:flex}.snapshot-restore:hover{background:var(--brand-muted)}.snapshot-date{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.snapshot-delete{color:var(--text-3);cursor:pointer;border-radius:var(--r-sm);transition:all .12s var(--ease);background:0 0;border:0;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:4px 6px;font-size:16px;display:inline-flex;position:relative}.snapshot-delete:after{content:"";position:absolute;inset:-4px}.snapshot-delete:hover{color:var(--danger);background:var(--danger-muted)}.snapshot-restore:disabled,.snapshot-delete:disabled{opacity:.55;cursor:not-allowed}.toolbar-meta{color:var(--text-3);font-size:12px;font-weight:500}.zone-toggles{gap:var(--sp-1);min-width:0;padding:var(--sp-1) var(--sp-4);background:var(--bg-1);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.category-filters{align-items:center;gap:var(--sp-1);min-width:0;padding:var(--sp-1) var(--sp-4);background:var(--bg-1);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.filter-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-right:var(--sp-1);font-size:11px;font-weight:700}.cat-filter-btn{border:1px solid var(--border-subtle);background:var(--bg-2);color:var(--text-2);cursor:pointer;min-height:44px;transition:all .14s var(--ease);border-radius:100px;align-items:center;padding:8px 14px;font-size:11px;display:inline-flex}.cat-filter-btn:hover{background:var(--bg-3);border-color:var(--border)}.cat-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.plot.cat-highlight{outline:2px solid var(--accent);outline-offset:-1px;z-index:1}.plot.cat-dim{opacity:.25}.zone-pill{cursor:pointer;min-height:44px;transition:opacity .16s var(--ease), filter .16s var(--ease);color:#000000c7;letter-spacing:.02em;border:none;border-radius:100px;align-items:center;padding:8px 14px;font-size:12px;font-weight:700;display:inline-flex}[data-theme=dark] .zone-pill{color:#fffc}.zone-pill[data-zone=B]{background:var(--zone-b)}.zone-pill[data-zone=V]{background:var(--zone-v)}.zone-pill[data-zone=T]{background:var(--zone-t)}.zone-pill[data-zone=R]{background:var(--zone-r)}.zone-pill[data-zone=S]{background:var(--zone-s)}.zone-pill[data-zone=P]{background:var(--zone-p)}.zone-pill[data-zone=D]{background:var(--zone-d)}.zone-pill[data-zone=H]{background:var(--zone-h)}.zone-pill-off{opacity:.3;filter:grayscale(.6)}.zone-pill:hover{filter:brightness(1.08)}.zone-pill-off:hover{opacity:.5;filter:grayscale(.4)}.map-grid.zone-hidden-B .plot[data-zone=B],.map-grid.zone-hidden-V .plot[data-zone=V],.map-grid.zone-hidden-T .plot[data-zone=T],.map-grid.zone-hidden-R .plot[data-zone=R],.map-grid.zone-hidden-S .plot[data-zone=S],.map-grid.zone-hidden-P .plot[data-zone=P],.map-grid.zone-hidden-D .plot[data-zone=D],.map-grid.zone-hidden-H .plot[data-zone=H]{display:none}.map-layout{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) 380px;height:100%;min-height:0;padding:20px;display:grid;overflow:hidden}.map-layout:has(>.shade-panel[hidden]){grid-template-columns:minmax(0,1fr)}.map-stage{min-width:0;min-height:0}.map-viewport{background:var(--map-bg);cursor:grab;touch-action:none;border-radius:var(--r-md);width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 1px 4px #2a261e14}.map-viewport:active{cursor:grabbing}.map-camera{transform-origin:0 0;will-change:transform;padding:40px 52px;display:inline-block;position:relative}.shade-panel{gap:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-lg);background:radial-gradient(ellipse at top left, #c0583014, transparent 40%), radial-gradient(ellipse at bottom right, #2e6b450f, transparent 40%), linear-gradient(180deg, var(--bg-1), var(--bg-2));min-height:0;box-shadow:var(--shadow-md);padding:var(--sp-4);grid-template-rows:auto auto auto auto auto auto;display:grid;position:relative;overflow-y:auto}.shade-panel>:not(.shade-map){z-index:1;position:relative}.shade-mobile-backdrop{opacity:0;pointer-events:none;transition:opacity .18s var(--ease);z-index:54;background:#0d0b086b;position:fixed;inset:0}.shade-mobile-backdrop--visible{opacity:1;pointer-events:auto}.shade-panel-header{align-items:flex-start;gap:var(--sp-3);display:flex}.shade-panel h3{font-family:var(--font-display);letter-spacing:-.01em;font-size:20px;line-height:1.15}.shade-kicker{color:var(--text-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700}.shade-overview-card{gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-lg);background:radial-gradient(circle at top left, #4aaa6c14, transparent 45%), linear-gradient(180deg, var(--bg-1), var(--bg-2));display:grid}.shade-overview-copy,.shade-overview-meta{gap:var(--sp-2);display:grid}.shade-target-field{min-width:0}.shade-open-link{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);min-height:44px;color:var(--brand-text);transition:all .12s var(--ease);justify-content:center;align-items:center;padding:0 14px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.shade-open-link:hover{background:var(--brand-muted);border-color:var(--brand);text-decoration:none}.shade-summary{color:var(--text-1);font-size:14px;line-height:1.6}.shade-summary:empty{display:none}.shade-controls{gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-lg);background:#faf8f485;display:grid}.shade-field{width:100%;color:var(--text-2);gap:6px;font-size:12px;font-weight:600;display:grid}.shade-field select,.shade-field input{border:1px solid var(--border);background:var(--bg-1);width:100%;color:var(--text-1);border-radius:var(--r-sm);min-height:46px;padding:8px 10px}.shade-time-group,.shade-playback-group,.shade-editor-actions{gap:var(--sp-2);display:grid}.shade-time-group{grid-template-columns:repeat(2,minmax(0,1fr))}.shade-time-group>:first-child{grid-column:1/-1}.shade-playback-group{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.shade-playback-group>button{grid-column:1/-1}.shade-time-group select,.shade-time-group input,.shade-playback-group button,.shade-playback-group select,.shade-editor-actions button{border-radius:var(--r-sm)}.shade-playback-group button,.shade-editor-actions button{border:1px solid var(--border);background:var(--bg-1);color:var(--text-1);cursor:pointer;transition:all .16s var(--ease);padding:8px 12px;font-weight:600}.shade-playback-group button:hover,.shade-editor-actions button:hover{background:var(--bg-2);border-color:var(--border-strong,var(--border))}.shade-playback-group button:focus-visible,.shade-editor-actions button:focus-visible,.shade-field select:focus-visible,.shade-field input:focus-visible,.shade-time-group input:focus-visible,.shade-time-group select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.shade-time-group input,.shade-time-group select{border:1px solid var(--border);background:var(--bg-1);min-width:0;color:var(--text-1);min-height:46px;padding:6px 10px}.shade-disclosure-inline{background:0 0;border:none}.shade-disclosure-inline>summary{color:var(--text-3);padding:6px 0;font-size:12px}.shade-disclosure-inline>:not(summary){padding:0 0 4px}.shade-playback-group select{border:1px solid var(--border);background:var(--bg-1);min-width:0;color:var(--text-1);padding:8px 10px}.shade-disclosure{border:1px solid var(--border);border-radius:var(--r-md);background:#faf8f480}[data-theme=dark] .shade-disclosure{background:#00000024}[data-theme=dark] .shade-controls{background:#00000029}.shade-disclosure>summary{cursor:pointer;min-height:46px;color:var(--text-1);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:700;list-style:none;display:flex}.shade-disclosure>summary::-webkit-details-marker{display:none}.shade-disclosure>summary:before{content:"▸";transition:transform .16s var(--ease);font-size:11px}.shade-disclosure[open]>summary:before{transform:rotate(90deg)}.shade-disclosure>summary:hover{color:var(--brand-text,var(--text-1))}.shade-disclosure>:not(summary){padding:0 14px 14px}.shade-settings-card{gap:10px;display:grid}.shade-calibration-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.shade-calibration-qa{gap:8px;display:grid}.shade-calibration-qa-metrics{color:var(--text-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.shade-calibration-overlay{border:1px dashed var(--border);border-radius:var(--r-sm);background:#faf8f466;min-height:180px;padding:10px;overflow:hidden}[data-theme=dark] .shade-calibration-overlay{background:#0000001f}.shade-calibration-overlay-inner{gap:10px;display:grid}.shade-calibration-overlay svg{width:100%;height:180px;display:block}.shade-calibration-corner-list{flex-wrap:wrap;gap:8px;display:flex}.shade-calibration-corner-chip{color:var(--text-2);font-variant-numeric:tabular-nums;background:#2e6b450f;border:1px solid #2e6b452e;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.shade-calibration-corner-chip strong{color:var(--text-1);letter-spacing:.04em}.shade-editor-actions{align-items:center}.shade-checkbox-field{align-items:start}.shade-checkbox-field input{justify-self:start;width:auto;margin-top:4px}#shade-playback-btn[aria-pressed=true]{color:#1d1200;background:linear-gradient(135deg,#e8a830,#c05830);border-color:#c05830;box-shadow:0 0 0 2px #c0583033}.shade-preset-group button{padding-inline:10px}.shade-debug{border-radius:var(--r-sm);color:#8a2d17;white-space:pre-wrap;word-break:break-word;background:#b33b3b0d;border:1px dashed #b33b3b4d;margin:0;padding:8px 10px;font-size:11px;line-height:1.45}.shade-map-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:#faf8f457;min-height:220px;overflow:hidden}[data-theme=dark] .shade-map-wrap{background:#0000002e}.shade-map{aspect-ratio:1;opacity:.58;pointer-events:none;width:100%;height:100%;min-height:220px;position:relative;overflow:hidden}.shade-map,.shade-map *{pointer-events:none!important}.shade-map .leaflet-control-zoom{display:none}.shade-panel[data-state=ready] .shade-map{opacity:1}.shade-panel[data-state=loading] .shade-map{opacity:.6;filter:saturate(.7)}.shade-note{color:var(--text-3);font-size:12px}.shade-comparison{gap:8px;display:grid}.shade-comparison-header{justify-content:space-between;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.shade-comparison-header strong{letter-spacing:.08em;text-transform:uppercase;font-size:12px}.shade-comparison-status{color:var(--text-3);font-size:12px}.shade-comparison-list{gap:6px;display:grid}.shade-comparison-row{grid-template-columns:34px 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.shade-comparison-month{color:var(--text-2);font-weight:700}.shade-comparison-bar{background:var(--bg-3);border-radius:999px;align-items:center;height:8px;display:flex;overflow:hidden}.shade-comparison-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--brand), var(--accent));height:100%;display:block}.shade-comparison-hours{color:var(--text-2);font-variant-numeric:tabular-nums}.shade-comparison-empty{color:var(--text-3);font-size:12px}.shade-panel[data-state=error] .shade-map{opacity:.18;filter:grayscale(.2)}.map-edge-label{z-index:3;color:var(--text-1);letter-spacing:.04em;pointer-events:none;-webkit-user-select:none;user-select:none;text-shadow:0 1px 2px #f0ebe3d9;padding:2px 6px;font-size:12px;font-weight:700;position:absolute}[data-theme=dark] .map-edge-label{text-shadow:0 1px 2px #000000b3}.map-edge-top{top:8px;left:50%;transform:translate(-50%)}.map-edge-right{transform-origin:50%;top:50%;right:8px;transform:translateY(-50%)rotate(90deg)}.map-edge-bottom{bottom:8px;left:50%;transform:translate(-50%)}.map-edge-left{transform-origin:50%;top:50%;left:8px;transform:translateY(-50%)rotate(-90deg)}.minimap{bottom:var(--sp-3);right:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-md);z-index:5;cursor:crosshair;background:var(--bg-1);position:absolute;overflow:hidden}.minimap canvas{display:block}.map-grid{--grid-rows:30;--grid-cols:22;--cell:min(calc((100vw - 48px) / var(--grid-cols)), calc((100dvh - 140px) / calc(var(--grid-rows) + 1)));grid-template-columns:repeat(var(--grid-cols), var(--cell));grid-template-rows:repeat(var(--grid-rows), var(--cell));border:2px solid var(--grid-border);border-radius:var(--r-sm);background:var(--grid-bg);gap:1px;width:fit-content;padding:1px;display:grid;position:relative}.map-grid:before{content:attr(data-grid-label);background:var(--grid-label-bg);color:var(--text-inv);border-radius:var(--r-sm);letter-spacing:.04em;padding:2px 10px;font-size:11px;font-weight:700;position:absolute;top:-28px;left:0}.map-grid-loading{min-height:200px;color:var(--text-3);letter-spacing:.02em;justify-content:center;align-items:center;font-size:14px;display:flex}.map-grid-loading:after{content:"Loading garden…";animation:1.4s ease-in-out infinite pulse-opacity}.map-zoom-controls{bottom:calc(78px + env(safe-area-inset-bottom,0px));right:var(--sp-3);gap:var(--sp-1);z-index:30;flex-direction:column;display:none;position:fixed}.map-zoom-controls button{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);width:44px;height:44px;color:var(--text-1);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.map-zoom-controls button:active{background:var(--bg-3)}@media (width<=960px){.map-zoom-controls{display:flex}}.map-grid-viewport{-webkit-overflow-scrolling:touch;transform-origin:0 0;transition:transform .15s var(--ease);overflow:auto}@keyframes pulse-opacity{0%,to{opacity:.4}50%{opacity:1}}.plot{font-size:clamp(6px, calc(var(--cell) * .3), 10px);color:#2a261e8c;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .18s var(--ease), box-shadow .2s var(--ease), filter .2s var(--ease), background-color .2s var(--ease);letter-spacing:-.02em;border:1px solid #2a261e1f;border-radius:4px;justify-content:center;align-items:center;font-weight:700;display:flex;position:relative;overflow:hidden}[data-theme=dark] .plot{color:#ffffffb3;border-color:#ffffff14}.plot[data-zone=B]{background:var(--zone-b)}.plot[data-zone=V]{background:var(--zone-v)}.plot[data-zone=T]{background:var(--zone-t)}.plot[data-zone=R]{background:var(--zone-r)}.plot[data-zone=S]{background:var(--zone-s)}.plot[data-zone=P]{background:var(--zone-p)}.plot[data-zone=D]{background:var(--zone-d)}.plot[data-zone=H]{background:var(--zone-h)}.plot-label{line-height:1}.plot-density{font-size:clamp(5px, calc(var(--cell) * .22), 8px);opacity:.6;line-height:1;position:absolute;bottom:1px;right:2px}.plot-indicators{z-index:5;pointer-events:none;gap:2px;display:flex;position:absolute;top:2px;left:2px}.plot-indicator{width:clamp(5px, calc(var(--cell) * .2), 8px);height:clamp(5px, calc(var(--cell) * .2), 8px);border-radius:50%}.plot-indicator--task{background:var(--accent)}.plot-indicator--issue{background:var(--danger)}.plot-indicator--frost{background:var(--zone-d)}.plot-extend-btn{width:clamp(12px, calc(var(--cell) * .45), 18px);height:clamp(12px, calc(var(--cell) * .45), 18px);background:var(--brand);color:var(--text-inv);font-size:clamp(8px, calc(var(--cell) * .3), 13px);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .14s var(--ease);z-index:4;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;display:flex;position:absolute;top:-1px;right:-1px}.plot:hover .plot-extend-btn{opacity:1;pointer-events:auto}.plot-extend-btn:hover{background:var(--brand-hover);transform:scale(1.15)}.plot:hover{z-index:1;transform:scale(1.08);box-shadow:0 2px 8px #2a261e26}.plot.selected{color:var(--text-inv);box-shadow:0 0 0 2px var(--accent), 0 0 0 4px var(--accent-muted);z-index:2;background:var(--accent)!important}.plot.dragging{opacity:.5;cursor:grabbing}.plot.multi-selected{box-shadow:inset 0 0 0 2px var(--text-inv)}.plot.highlighted{box-shadow:0 0 0 2px var(--accent), 0 0 14px #c0583059;z-index:2;animation:2s ease-in-out infinite highlight-pulse}.plot.sunlit-direct{filter:saturate(1.15)brightness(1.04);z-index:2;animation:2.6s ease-in-out infinite plot-sun-pulse;box-shadow:inset 0 0 0 1px #fff8b8e6,0 0 0 2px #e8a83080,0 0 14px #e8a83059}.plot.sunlit-direct:after{content:"";pointer-events:none;background:linear-gradient(135deg,#fff9c461,#e8a8300f 52%,#0000 100%);position:absolute;inset:0}[data-theme=dark] .plot.sunlit-direct{filter:saturate(1.1)brightness(1.1);box-shadow:inset 0 0 0 1px #ffefa0e6,0 0 0 2px #e8a83066,0 0 16px #e8a83038}.plot.elevation-overlay{background:hsl(var(--elev-hue,120), 65%, 45%)!important}@keyframes highlight-pulse{0%,to{box-shadow:0 0 0 2px var(--accent), 0 0 6px #c0583040}50%{box-shadow:0 0 0 2px var(--accent), 0 0 18px #c0583073}}@keyframes plot-sun-pulse{0%,to{box-shadow:inset 0 0 0 1px #fff8b8e6,0 0 0 2px #e8a83061,0 0 10px #e8a83038}50%{box-shadow:inset 0 0 0 1px #fffacd,0 0 0 2px #e8a8309e,0 0 20px #e8a83073}}.drop-ghost{border:2px dashed var(--brand);background:var(--brand-muted);opacity:.6;pointer-events:none;z-index:3;border-radius:4px;animation:.8s ease-in-out infinite alternate ghost-pulse}.drop-ghost[data-zone=B]{border-color:var(--zone-b);background:color-mix(in srgb, var(--zone-b) 20%, transparent)}.drop-ghost[data-zone=V]{border-color:var(--zone-v);background:color-mix(in srgb, var(--zone-v) 20%, transparent)}.drop-ghost[data-zone=T]{border-color:var(--zone-t);background:color-mix(in srgb, var(--zone-t) 20%, transparent)}.drop-ghost[data-zone=R]{border-color:var(--zone-r);background:color-mix(in srgb, var(--zone-r) 20%, transparent)}.drop-ghost[data-zone=S]{border-color:var(--zone-s);background:color-mix(in srgb, var(--zone-s) 20%, transparent)}.drop-ghost[data-zone=P]{border-color:var(--zone-p);background:color-mix(in srgb, var(--zone-p) 20%, transparent)}.drop-ghost[data-zone=D]{border-color:var(--zone-d);background:color-mix(in srgb, var(--zone-d) 20%, transparent)}.drop-ghost[data-zone=H]{border-color:var(--zone-h);background:color-mix(in srgb, var(--zone-h) 20%, transparent)}.drop-ghost-house{border-color:var(--house-border);background:color-mix(in srgb, var(--house-bg) 30%, transparent)}@keyframes ghost-pulse{0%{opacity:.4}to{opacity:.7}}.empty-cell{border:1px dashed var(--border);transition:background .14s var(--ease);background:0 0;border-radius:4px}.empty-cell:hover{background:var(--brand-muted)}.house-placeholder{background:var(--house-bg);border:2px solid var(--house-border);border-radius:var(--r-md);color:var(--house-text);cursor:grab;letter-spacing:.01em;text-align:center;box-sizing:border-box;background-image:repeating-linear-gradient(45deg,#0000,#0000 6px,#2a261e08 6px 7px);justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.edit-mode .house-placeholder{cursor:grab}.house-label{pointer-events:none;flex-direction:column;gap:4px;font-size:13px;font-weight:600;line-height:1.15;display:flex}.house-label strong{font-family:var(--font-display);font-size:15px;font-weight:400}.house-label span{font-size:12px;font-weight:500}.house-resize-handle{border:1px solid var(--house-border);background:var(--bg-1);cursor:nwse-resize;border-radius:3px;width:14px;height:14px;padding:0;position:absolute;bottom:4px;right:4px}.house-resize-handle:before{content:"";border-right:2px solid var(--house-border);border-bottom:2px solid var(--house-border);width:7px;height:7px;position:absolute;bottom:2px;right:2px}body.resizing-house{cursor:nwse-resize;-webkit-user-select:none;user-select:none}body.moving-house{cursor:grabbing;-webkit-user-select:none;user-select:none}body.moving-house .house-placeholder{cursor:grabbing;opacity:.85;z-index:10}.house--invalid{opacity:.6;border-color:var(--danger)!important;background:color-mix(in srgb, var(--danger) 25%, transparent)!important}.plot-popover{z-index:100;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);width:230px;box-shadow:var(--shadow-lg);padding:var(--sp-3);animation:popover-in .16s var(--ease);position:fixed}@keyframes popover-in{0%{opacity:0;transform:scale(.94)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.popover-header{margin-bottom:var(--sp-1);justify-content:space-between;align-items:center;display:flex}.popover-header strong{font-family:var(--font-display);font-size:16px}.popover-zone{color:#2a261e8c;border-radius:100px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}[data-theme=dark] .popover-zone{color:#fffc}.popover-zone[data-zone=B]{background:var(--zone-b)}.popover-zone[data-zone=V]{background:var(--zone-v)}.popover-zone[data-zone=T]{background:var(--zone-t)}.popover-zone[data-zone=R]{background:var(--zone-r)}.popover-zone[data-zone=S]{background:var(--zone-s)}.popover-zone[data-zone=P]{background:var(--zone-p)}.popover-zone[data-zone=D]{background:var(--zone-d)}.popover-zone[data-zone=H]{background:var(--zone-h)}.popover-meta{color:var(--text-3);margin-bottom:var(--sp-2);font-size:12px}.popover-plants{margin:0 0 var(--sp-2) 0;padding:0;font-size:13px;list-style:none}.popover-plants li{white-space:nowrap;text-overflow:ellipsis;padding:2px 0;overflow:hidden}.popover-actions{gap:var(--sp-1);display:flex}.popover-details-btn{border:1px solid var(--brand);border-radius:var(--r-sm);background:var(--brand-muted);color:var(--brand-text);cursor:pointer;transition:all .14s var(--ease);flex:1;padding:5px 0;font-size:13px;font-weight:600}.popover-details-btn:hover{background:var(--brand);color:var(--text-inv)}.popover-edit-btn{border:1px solid var(--border);border-radius:var(--r-sm);width:32px;color:var(--text-2);cursor:pointer;transition:all .12s var(--ease);background:0 0;font-size:15px;line-height:1}.popover-edit-btn:hover{background:var(--bg-3);color:var(--text-1)}.popover-delete-btn{border:1px solid var(--danger);border-radius:var(--r-sm);width:32px;color:var(--danger);cursor:pointer;transition:all .12s var(--ease);background:0 0;font-size:16px;font-weight:700;line-height:1}.popover-delete-btn:hover{background:var(--danger);color:var(--text-inv)}.drawer-backdrop{z-index:90;transition:background .22s var(--ease);background:0 0;position:fixed;inset:0}.drawer-backdrop-visible{background:#2a261e40}.drawer{background:var(--bg-1);border-left:1px solid var(--border-subtle);z-index:95;width:360px;max-width:90vw;transition:transform .22s var(--ease);box-shadow:var(--shadow-lg);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.drawer-open{transform:translate(0)}.drawer-header{padding:var(--sp-4);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.drawer-header h2{font-family:var(--font-display);color:var(--brand-text);font-size:20px;font-weight:400}.close-btn{background:var(--bg-3);width:36px;height:36px;color:var(--text-2);cursor:pointer;transition:background .12s var(--ease);border:0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.close-btn:hover{background:var(--bg-inset)}.add-plant-section{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}#plant-search{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-2);width:100%;transition:all .16s var(--ease);padding:8px 12px;font-size:13px}#plant-search:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted);outline:none}.search-results{margin-top:var(--sp-2);max-height:180px;overflow-y:auto}.search-result{text-align:left;background:var(--bg-2);border:1px solid var(--border-subtle);border-radius:var(--r-sm);width:100%;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-1);cursor:pointer;transition:background .12s var(--ease);color:var(--text-1);font-size:13px}.search-result:hover{background:var(--brand-muted)}.plant-list{padding:var(--sp-3) var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.plant-card{background:var(--bg-2);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-3);cursor:grab;transition:box-shadow .16s var(--ease)}.plant-card:hover{box-shadow:var(--shadow-sm)}.plant-card.dragging{opacity:.4}.plant-card-alerts{gap:var(--sp-1);margin-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.plant-alert-tag{letter-spacing:.02em;border-radius:var(--r-sm);align-items:center;padding:1px 6px;font-size:.7rem;font-weight:600;line-height:1.4;display:inline-flex}.plant-alert-tag--task{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.plant-alert-tag--issue{background:color-mix(in srgb, var(--danger) 18%, transparent);color:var(--danger)}.plant-alert-tag--weather{background:color-mix(in srgb, var(--zone-d) 18%, transparent);color:var(--zone-d)}.plant-card-thumb{block-size:76px;inline-size:100%;max-inline-size:108px;margin:0 0 var(--sp-2)}.plant-card-thumb-image{object-fit:cover;block-size:100%;inline-size:100%}.plant-card-hero{margin:calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3)) var(--sp-2);border-radius:var(--r-md) var(--r-md) 0 0;cursor:pointer;background:var(--bg-2);line-height:0;overflow:hidden}.plant-card-hero-image{object-fit:cover;width:100%;height:120px;display:block}.plant-header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.plant-header strong{font-size:13px}.plant-header>div{gap:var(--sp-2);align-items:center;display:flex}.plant-actions{align-items:center;gap:4px;display:flex}.edit-plant-btn,.plant-calendar-btn{width:22px;height:22px;color:var(--text-3);cursor:pointer;opacity:.6;transition:opacity .12s var(--ease);background:0 0;border:0;padding:0;font-size:14px;line-height:1;position:relative}.edit-plant-btn:hover,.plant-calendar-btn:hover{opacity:1;color:var(--brand-text)}.plant-calendar-btn{letter-spacing:.02em;font-size:11px;font-weight:700}.remove-btn{background:var(--danger);width:22px;height:22px;color:var(--text-inv);cursor:pointer;transition:opacity .12s var(--ease);border:0;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;position:relative}.remove-btn:hover{opacity:.85}.edit-plant-btn:after,.remove-btn:after{content:"";position:absolute;inset:-11px}.color-swatch:after{content:"";position:absolute;inset:-8px}.plant-latin{color:var(--text-3);font-size:12px;font-style:italic}.plant-details{color:var(--text-2);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;display:-webkit-box;overflow:hidden}.empty-message{color:var(--text-3);padding:var(--sp-2) 0;font-size:13px}.context-menu{z-index:1000;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-1);min-width:140px;position:fixed}.menu-item{text-align:left;width:100%;padding:7px var(--sp-3);cursor:pointer;border-radius:var(--r-sm);color:var(--danger);transition:background .1s var(--ease);background:0 0;border:0;font-size:13px;font-weight:500}.menu-item-edit{color:var(--text-1)}.menu-item-edit:hover{background:var(--bg-2)}.menu-item:hover{background:var(--danger-muted)}.auth-gate{z-index:2000;background:radial-gradient(circle at top,#5f825c38,#0000 34%),radial-gradient(circle at 100% 100%,#b06f4a2e,#0000 30%),#151915;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-gate-card{border-radius:var(--r-xl);width:min(380px,90vw);padding:var(--sp-8) var(--sp-6);text-align:center;background:#20261f;border:1px solid #d5cab424;box-shadow:0 22px 60px #00000061}.auth-gate-card h1{margin:0 0 var(--sp-1);font-family:var(--font-display);color:#f2eddc;font-size:26px;font-weight:400}.auth-gate-card .auth-gate-subtitle{margin:0 0 var(--sp-6);color:#bcc3b7;font-size:13px}.auth-gate-card form{gap:var(--sp-3);text-align:left;flex-direction:column;display:flex}.auth-gate-card label{gap:var(--sp-1);color:#d7ddcf;flex-direction:column;font-size:13px;font-weight:600;display:flex}.auth-gate-card input{box-sizing:border-box;border-radius:var(--r-sm);color:#f5f0de;width:100%;transition:border-color .16s var(--ease), box-shadow .16s var(--ease);background:#111510;border:1px solid #d5cab424;padding:10px 12px;font-size:14px}.auth-gate-card input::placeholder{color:#7f887b}.auth-gate-card input:focus{border-color:#9fb66a;outline:none;box-shadow:0 0 0 3px #9fb66a33}.auth-gate-card button[type=submit]{margin-top:var(--sp-2);border-radius:var(--r-sm);color:#182010;cursor:pointer;transition:background .16s var(--ease), transform .16s var(--ease);background:#8cae56;border:none;padding:10px;font-size:14px;font-weight:600}.auth-gate-card button[type=submit]:hover{background:#9fc369;transform:translateY(-1px)}.auth-gate-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-gate-error{margin:var(--sp-2) 0 0;color:#ffd5cf;border-radius:var(--r-sm);background:#923e2f4d;border:1px solid #dd756542;padding:8px 12px;font-size:13px}.auth-gate-link-btn{color:#b8cda4;cursor:pointer;padding:var(--sp-1) 0;background:0 0;border:none;font-size:13px;text-decoration:underline}.auth-gate-link-btn:hover{color:#d5e6c3}.password-checklist{text-align:left;margin-top:8px}.password-checklist[hidden]{display:none}.password-progress-bar{gap:3px;margin-bottom:10px;display:flex}.password-progress-segment{background:#3a4239;border-radius:2px;flex:1;height:3px;transition:background .2s}.password-progress-segment.filled{background:#9fb66a}.password-checklist-item{color:#6b7566;align-items:center;gap:6px;font-size:11px;line-height:1.7;transition:color .2s;display:flex}.password-checklist-item.met{color:#9fb66a}.password-checklist-item.breached{color:#dd7565}.password-checklist-item.error{color:#8a9382;font-style:italic}.password-checklist-icon{text-align:center;flex-shrink:0;width:14px}.password-checklist-notes{border-top:1px solid #3a4239;margin-top:8px;padding-top:6px}.password-checklist-note{color:#8a9382;font-size:11px;line-height:1.7}@keyframes password-checklist-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.password-checklist-item.hibp-appear{animation:.2s password-checklist-fade-in}.auth-gate-loading{align-items:center;gap:var(--sp-3);padding:var(--sp-6) 0;color:#8a9382;flex-direction:column;font-size:13px;display:flex}.auth-gate-spinner{border:2px solid #3a4239;border-top-color:#9fb66a;border-radius:50%;width:24px;height:24px;animation:.6s linear infinite auth-gate-spin}@keyframes auth-gate-spin{to{transform:rotate(360deg)}}.auth-gate-card button[type=submit].gated{opacity:.5;pointer-events:none}.modal{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#2a261e66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-close-btn{top:var(--sp-3);right:var(--sp-3);z-index:1;position:absolute}.modal-content-wide{width:min(520px,92vw)}.modal-content{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-xl);width:min(440px,92vw);padding:var(--sp-6);box-shadow:var(--shadow-lg);max-height:calc(100dvh - 24px);position:relative;overflow-y:auto}.modal-content h3{margin-bottom:var(--sp-4);font-family:var(--font-display);color:var(--text-1);font-size:22px;font-weight:400}.modal-help-text{color:var(--text-2);margin:0;font-size:13px}.modal-content form{gap:var(--sp-3);flex-direction:column;display:flex}.modal-content label{gap:var(--sp-1);color:var(--text-2);flex-direction:column;font-size:13px;font-weight:600;display:flex}.modal-content input,.modal-content textarea,.modal-content select{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-2);width:100%;min-height:44px;transition:all .16s var(--ease);padding:8px 12px;font-size:14px}.modal-content input:focus,.modal-content textarea:focus,.modal-content select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted);outline:none}.button-row{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}#edit-plant-form .button-row{z-index:2;background:var(--bg-1);padding-top:var(--sp-2);margin-top:var(--sp-2);border-top:1px solid var(--border-subtle);position:sticky;bottom:0}#edit-plant-form .btn-delete-plant{margin-top:var(--sp-2)}.button-row button{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:var(--bg-2);color:var(--text-1);transition:all .14s var(--ease);flex:1;padding:8px;font-size:14px;font-weight:600}.button-row button:hover{background:var(--bg-3)}.button-row button[type=submit]{background:var(--brand);color:var(--text-inv);border-color:var(--brand)}.button-row button[type=submit]:hover{background:var(--brand-hover)}.confirm-dialog p{margin:0 0 var(--sp-3);color:var(--text-1);font-size:14px;line-height:1.5}.confirm-dialog .confirm-yes{background:var(--brand);color:var(--text-inv);border-color:var(--brand)}.confirm-dialog .confirm-yes:hover{background:var(--brand-hover)}.confirm-dialog .confirm-no{background:var(--bg-1);color:var(--text-2);border:1px solid var(--border)}.confirm-dialog .confirm-no:hover{background:var(--bg-2);border-color:var(--brand);color:var(--text-1)}.color-swatches{gap:var(--sp-2);padding:var(--sp-2) 0;flex-wrap:wrap;display:flex}.color-swatch{cursor:pointer;width:28px;height:28px;transition:border-color .14s var(--ease), transform .14s var(--ease);outline-offset:2px;border:2px solid #0000;border-radius:50%;padding:0;position:relative}.color-swatch:hover{border-color:var(--text-2);transform:scale(1.15)}.color-swatch.active{border-color:var(--text-1);box-shadow:0 0 0 2px var(--bg-1), 0 0 0 4px var(--text-1)}.color-swatch-none{background:var(--bg-2);border:2px dashed var(--border);justify-content:center;align-items:center;display:flex}.color-swatch-none:hover{border-style:solid}.swatch-reset{color:var(--text-3);font-size:14px;line-height:1}#plants-view,#care-view{padding:var(--sp-4);padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom));overflow:auto}.data-view-header{gap:var(--sp-3);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.data-view-header h2{font-family:var(--font-display);color:var(--text-1);letter-spacing:-.01em;font-size:24px;font-weight:400}.filter-row{gap:var(--sp-2);flex-direction:column;display:flex}.filter-row input,.data-view-header select{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);min-height:44px;transition:all .16s var(--ease);padding:8px 12px;font-size:13px}.filter-row input{min-width:0}.filter-row input:focus,.data-view-header select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted);outline:none}.mobile-sort-controls{gap:var(--sp-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.sort-dir-btn{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-1);cursor:pointer;min-height:44px;padding:0 14px;font-weight:700}.desktop-data-table-wrap,.desktop-table-only{display:none}.mobile-data-list{gap:var(--sp-3);display:grid}.mobile-data-card,.care-mobile-card{border:1px solid var(--border);border-radius:var(--r-lg);background:radial-gradient(circle at top right, #2e6b4514, transparent 38%), linear-gradient(180deg, var(--bg-1), var(--bg-2));box-shadow:var(--shadow-sm)}.mobile-data-card{gap:var(--sp-3);padding:var(--sp-4);display:grid}.mobile-data-card.blooming-now{border-color:#2e6b4573}.mobile-data-card.bloom-past{border-color:#c058304d}.mobile-data-card.plant-mixed{border-color:#d9953e59}.mobile-data-card.plant-gone{background:linear-gradient(#76808e14,#76808e08);border-color:#76808e5c}.mobile-data-card-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.mobile-data-copy{min-width:0}.mobile-data-title{color:var(--text-1);font-size:18px;line-height:1.15}.mobile-data-subtitle{color:var(--text-2);margin-top:4px;font-size:13px;font-style:italic}.mobile-data-actions{align-items:center;gap:var(--sp-2);flex-shrink:0;display:inline-flex}.mobile-data-action-link,.mobile-data-action-btn{border:1px solid var(--border);background:var(--bg-1);min-width:44px;min-height:44px;color:var(--text-1);border-radius:999px;justify-content:center;align-items:center;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.mobile-data-action-btn{cursor:pointer;padding:0 12px}.mobile-data-chip-row{flex-wrap:wrap;gap:8px;display:flex}.mobile-data-chip{background:var(--bg-1);border:1px solid var(--border-subtle);min-height:28px;color:var(--text-2);border-radius:999px;align-items:center;padding:0 10px;font-size:11px;font-weight:700;display:inline-flex}.mobile-data-fact-grid{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mobile-data-fact{border-radius:var(--r-md);border:1px solid var(--border-subtle);background:#faf8f48c;gap:4px;min-width:0;padding:10px 12px;display:grid}[data-theme=dark] .mobile-data-fact{background:#00000024}.mobile-data-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.mobile-data-value{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.mobile-data-plot-row{gap:8px;display:grid}.mobile-data-plot-links{flex-wrap:wrap;gap:8px;display:flex}.mobile-data-plot-links .plot-link{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:999px;min-height:44px;padding:0 10px}.care-mobile-card{gap:var(--sp-3);width:100%;padding:var(--sp-4);text-align:left;cursor:pointer;display:grid}.care-mobile-preview-list{gap:var(--sp-2);display:grid}.care-mobile-preview{border-radius:var(--r-md);border:1px solid var(--border-subtle);background:#faf8f48c;gap:6px;padding:10px 12px;display:grid}[data-theme=dark] .care-mobile-preview{background:#00000024}.care-mobile-preview p,.care-mobile-empty{color:var(--text-2);font-size:13px;line-height:1.5}.care-mobile-cta{color:var(--brand-text);font-size:12px;font-weight:700}.table-wrap{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-sm);overflow:auto}.data-table{border-collapse:collapse;table-layout:auto;width:100%;min-width:600px}.data-table th,.data-table td{border-bottom:1px solid var(--border-subtle);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:10px 14px;font-size:13px;overflow:hidden}.data-table .blooming-now{background:#6a9b581a}.data-table .bloom-past{background:#c058300f}[data-theme=dark] .data-table .blooming-now{background:#6a9b581f}[data-theme=dark] .data-table .bloom-past{background:#c058301a}.data-table .plant-mixed{background:#d9953e14}.data-table .plant-gone{background:#76808e14}.data-table .plant-gone td{color:var(--text-2)}[data-theme=dark] .data-table .plant-mixed{background:#d9953e1f}[data-theme=dark] .data-table .plant-gone{background:#76808e1f}.data-table th{background:var(--bg-2);color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;z-index:1;white-space:nowrap;font-size:11px;font-weight:700;position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s var(--ease)}th.sortable:hover{color:var(--text-1)}th.sortable:after{content:"";width:12px;margin-left:4px;display:inline-block}th.sort-asc:after{content:"▲";font-size:9px}th.sort-desc:after{content:"▼";font-size:9px}.col-name{white-space:normal;min-width:100px}.col-latin{white-space:normal;min-width:90px}.col-planted-in{min-width:80px}.col-sm,.col-xs{white-space:nowrap}.col-link{text-align:center;width:50px}.col-link a{color:var(--brand-text);font-size:15px;text-decoration:none}.col-link a:hover{text-decoration:underline}.col-action{text-align:center;width:36px}.data-table tbody tr{transition:background .1s var(--ease)}.data-table tbody tr:hover{background:var(--bg-2)}.text-link{color:var(--brand-text);cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.plot-links-cell{white-space:normal;flex-wrap:wrap;gap:3px 6px;display:flex;overflow:hidden}.plot-link-token{flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;display:inline-flex}.plot-link{padding:0;font-size:12px}.plot-link-note{color:var(--text-3);font-size:10px;line-height:1.2}.plot-link--missing{color:#a13333;background:#bc494914;border:1px solid #bc494947;border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.mobile-data-plot-links .plot-link--missing{min-height:44px}[data-theme=dark] .plot-link--missing{color:#ff9d9d;background:#ff6b6b29;border-color:#ff8b8b59}.text-muted{color:var(--text-3)}.edit-plant-btn{color:var(--text-3);cursor:pointer;transition:all .1s var(--ease);background:0 0;border:0;border-radius:3px;padding:0 4px;font-size:15px;line-height:1}.edit-plant-btn:hover{color:var(--brand);background:var(--brand-muted)}.delete-plant-btn{color:var(--text-3);cursor:pointer;transition:all .1s var(--ease);background:0 0;border:0;border-radius:3px;padding:0 4px;font-size:18px;line-height:1}.delete-plant-btn:hover{color:var(--danger);background:var(--danger-muted)}.care-table{table-layout:fixed;min-width:0}.care-table .col-name,.care-table .col-latin{width:50%}.care-row{cursor:pointer;transition:background .12s var(--ease)}.care-row:hover{background:var(--bg-2)}.care-row .col-name{color:var(--text-1);font-weight:500}.cat-emoji{font-size:14px}.care-overlay-content{width:min(480px,92vw);max-height:80vh}.care-overlay-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.care-overlay-header h3{margin-bottom:var(--sp-1)}.care-overlay-latin{margin:0 0 var(--sp-1);color:var(--text-2);font-size:13px;font-style:italic}.care-overlay-cat{color:var(--text-3);font-size:12px}.care-overlay-close{border-radius:var(--r-sm);width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:all .12s var(--ease);background:0 0;border:none;flex-shrink:0;font-size:22px;line-height:1}.care-overlay-close:hover{background:var(--bg-2);color:var(--text-1)}.care-overlay-section{padding:var(--sp-3) 0;border-top:1px solid var(--border)}.care-overlay-section h4{margin:0 0 var(--sp-1);color:var(--text-2);text-transform:uppercase;letter-spacing:.03em;font-size:13px;font-weight:600}.care-overlay-section p{color:var(--text-1);margin:0;font-size:14px;line-height:1.5}.care-overlay-empty{margin:var(--sp-4) 0 0;color:var(--text-3);font-size:14px;font-style:italic}.btn-delete-plant{margin-top:var(--sp-4);border:1px solid var(--danger);border-radius:var(--r-sm);width:100%;min-height:44px;color:var(--danger);cursor:pointer;transition:all .14s var(--ease);background:0 0;padding:10px;font-size:14px;font-weight:600}.btn-delete-plant:hover{background:var(--danger);color:var(--text-inv)}.plot-assign-section{margin-top:var(--sp-2)}.plot-search-row{position:relative}.plot-assign-dropdown{z-index:20;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-sm);max-height:180px;box-shadow:var(--shadow-md);flex-wrap:wrap;gap:4px;padding:6px;display:flex;position:absolute;overflow-y:auto}.plot-dd-item{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-1);cursor:pointer;transition:background .1s var(--ease);padding:4px 10px;font-size:13px}.plot-dd-item:hover{background:var(--brand-muted)}.plot-dd-add{color:var(--text-2);font-style:italic}.plot-assign-chips{flex-wrap:wrap;gap:4px;min-height:28px;margin-top:6px;display:flex}.plot-assign-hint{color:var(--text-3);margin-top:6px;font-size:12px;line-height:1.45}.plot-chip{border-radius:var(--r-sm);background:var(--brand-muted);color:var(--text-1);align-items:flex-start;gap:6px;padding:5px 9px;font-size:13px;font-weight:600;display:inline-flex}.plot-chip-copy{flex-direction:column;gap:2px;display:inline-flex}.plot-chip-id{line-height:1.2}.plot-chip-note{color:var(--text-3);font-size:11px;font-weight:500;line-height:1.3}.chip-remove{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.chip-remove:hover{color:var(--danger)}.plot-assign-empty{color:var(--text-3);font-size:13px;font-style:italic}.plot-picker-map{margin-top:var(--sp-2);text-align:center;border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-2);background:var(--bg-2);position:relative}.plot-picker-map canvas{border-radius:var(--r-sm);touch-action:none;max-width:100%;height:auto}.plot-picker-hint{color:var(--text-3);margin-top:2px;font-size:11px;display:block}.plot-picker-tooltip{pointer-events:none;border-radius:var(--r-sm);background:var(--nav-bg);color:var(--nav-text);white-space:nowrap;z-index:5;padding:2px 8px;font-size:12px;font-weight:600;position:absolute}.data-view-title-row{justify-content:space-between;align-items:center;display:flex}.data-view-title-block{flex-direction:column;gap:2px;display:flex}.plants-summary{color:var(--text-3);margin:0;font-size:12px}.btn{background:var(--bg-1);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all .14s var(--ease);padding:7px 18px;font-size:13px;font-weight:600}.btn:hover{background:var(--bg-2);border-color:var(--brand);color:var(--text-1)}.btn-primary{background:var(--brand);color:var(--text-inv);border-radius:var(--r-sm);cursor:pointer;transition:background .14s var(--ease);border:none;padding:7px 18px;font-size:13px;font-weight:700}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{background:var(--bg-1);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all .14s var(--ease);padding:7px 18px;font-size:13px;font-weight:600}.btn-secondary:hover{background:var(--bg-2);border-color:var(--brand);color:var(--text-1)}.btn-sm{border-radius:var(--r-sm);cursor:pointer;background:var(--bg-1);min-height:44px;color:var(--text-2);border:1px solid var(--border);transition:all .14s var(--ease);padding:6px 12px;font-size:12px;font-weight:600;line-height:1.3}.btn-sm:hover{background:var(--bg-2);border-color:var(--brand);color:var(--text-1)}.btn-outline{background:var(--bg-1);color:var(--text-2);border:1px solid var(--border);transition:all .14s var(--ease)}.btn-outline:hover{background:var(--bg-2);border-color:var(--brand);color:var(--text-1)}.category-badge{border-radius:var(--r-sm);background:var(--bg-3);color:var(--text-2);padding:1px 8px;font-size:11px;font-weight:600;line-height:1.5;display:inline-block}.form-row-2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.checkbox-label{align-items:center;gap:var(--sp-2);cursor:pointer;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--brand);margin:0}.tri-toggle{border:1px solid var(--border);border-radius:var(--r-sm);margin-top:var(--sp-1);display:inline-flex;overflow:hidden}.tri-toggle button{padding:var(--sp-1) var(--sp-3);background:var(--bg-2);color:var(--text-2);cursor:pointer;transition:background .16s var(--ease), color .16s var(--ease);border:none;font-size:.9rem;line-height:1.4}.tri-toggle button:not(:last-child){border-right:1px solid var(--border)}.tri-toggle button:hover{background:var(--bg-3)}.tri-toggle button.active{background:var(--brand);color:var(--text-inv)}.seen-growing-list{gap:var(--sp-1);margin:var(--sp-2) 0;flex-direction:column;display:flex}.seen-growing-row{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1);display:flex}.seen-growing-info{align-items:center;gap:var(--sp-2);flex:1;min-width:0;display:flex}.seen-growing-plot{font-size:.9rem;font-weight:600}.seen-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.75rem}.seen-badge-yes{background:var(--success-bg,#e6f4ea);color:var(--success-fg,#1a7431)}.seen-badge-no{background:var(--danger-bg,#fce8e6);color:var(--danger-fg,#c5221f)}.seen-badge-neutral{background:var(--brand-muted);color:var(--text-2)}.seen-growing-btns{gap:var(--sp-1);flex-shrink:0;display:flex}.seen-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1);cursor:pointer;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;transition:background .15s,border-color .15s;display:flex}.seen-btn:hover{border-color:var(--text-2)}.seen-btn-yes:hover,.seen-btn-yes.seen-btn-active{background:var(--success-bg,#e6f4ea);border-color:var(--success-fg,#1a7431);color:var(--success-fg,#1a7431)}.seen-btn-no:hover,.seen-btn-no.seen-btn-active{background:var(--danger-bg,#fce8e6);border-color:var(--danger-fg,#c5221f);color:var(--danger-fg,#c5221f)}.seen-btn-clear{color:var(--text-2);font-size:.75rem}.seen-btn-clear:hover{background:var(--border)}.ai-lookup-section{margin-bottom:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.ai-lookup-section label{gap:var(--sp-1);color:var(--text-2);flex-direction:column;font-size:13px;font-weight:600;display:flex}.ai-lookup-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.ai-lookup-row input{flex:1;min-width:120px}.btn-ai{background:var(--brand);color:var(--text-inv);border:1px solid var(--brand);border-radius:var(--r-sm);cursor:pointer;transition:background .14s var(--ease);flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:700}.btn-ai:hover{background:var(--brand-hover)}.btn-ai:disabled{opacity:.6;cursor:not-allowed}.ai-status{margin-top:var(--sp-2);color:var(--text-2);font-size:13px}.ai-status-ok{color:var(--brand)}.ai-status-err{color:var(--danger)}.empty-table{text-align:center;color:var(--text-3);padding:var(--sp-8)!important}#analysis-view{background:radial-gradient(circle at top right, #4aaa6c24, transparent 30%), linear-gradient(180deg, var(--bg-0), var(--bg-1));height:100%;display:none}#analysis-view.active{display:block}.analysis-shell{grid-template-rows:auto 1fr auto;height:100%;min-height:0;display:grid}.analysis-header{gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border-subtle);background:radial-gradient(circle at top left, #c0583017, transparent 34%), linear-gradient(180deg, var(--bg-1), var(--bg-2));flex-shrink:0;display:grid}.analysis-header-copy{gap:6px;display:grid}.analysis-kicker{color:var(--text-3);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:800}.analysis-header h2{font-family:var(--font-display);color:var(--text-1);font-size:24px;font-weight:400}.analysis-subtitle{max-width:44rem;color:var(--text-2);font-size:13px;line-height:1.6}.analysis-header button{background:var(--bg-1);min-height:44px;color:var(--text-1);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:background .1s var(--ease);justify-self:start;padding:0 14px;font-size:13px;font-weight:700}.analysis-header button:hover{background:var(--bg-3)}.analysis-header button:disabled{opacity:.55;cursor:not-allowed}.analysis-messages{overscroll-behavior:contain;min-height:0;scroll-padding-bottom:calc(var(--mobile-keyboard-offset) + var(--sp-6));padding:var(--sp-3) var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex;overflow-y:auto}.analysis-starters{gap:var(--sp-2);padding:var(--sp-1) 0 var(--sp-4);display:grid}.starters-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.starter-chip{background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border:1px solid var(--border);border-radius:var(--r-lg);width:100%;color:var(--text-1);cursor:pointer;transition:all .16s var(--ease);text-align:left;gap:4px;max-width:none;padding:14px 16px;font-size:14px;display:grid}.starter-chip-title{font-size:15px;font-weight:700}.starter-chip-copy{color:var(--text-2);font-size:13px;line-height:1.5}.starter-chip:hover{background:var(--brand-muted);border-color:var(--brand);color:var(--brand-text);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.chat-bubble{word-wrap:break-word;max-width:min(92%,40rem);box-shadow:var(--shadow-sm);border-radius:20px;padding:14px 16px;font-size:14px;line-height:1.65}.chat-bubble code{background:var(--bg-inset);border-radius:3px;padding:1px 5px;font-size:13px}.chat-bubble p+p,.chat-bubble ul,.chat-bubble ol,.chat-bubble pre{margin-top:.8em}.chat-bubble pre{border-radius:var(--r-md);background:var(--bg-inset);padding:10px 12px;overflow-x:auto}.chat-user{background:linear-gradient(180deg, var(--brand), var(--brand-hover));max-width:min(88%,28rem);color:var(--text-inv);border-bottom-right-radius:var(--r-sm);align-self:flex-end}.chat-ai{background:var(--bg-1);border:1px solid var(--border-subtle);color:var(--text-1);border-bottom-left-radius:var(--r-sm);align-self:flex-start}.chat-loading{color:var(--text-3);font-style:italic}.chat-error{color:var(--danger);border-color:var(--danger);background:var(--danger-muted)}.analysis-input-row{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) calc(max(var(--sp-3), env(safe-area-inset-bottom)) + var(--mobile-keyboard-offset));border-top:1px solid var(--border-subtle);background:linear-gradient(180deg, var(--bg-2), var(--bg-1));flex-shrink:0;display:grid}.analysis-input-shell{gap:6px;display:grid}.analysis-input-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.analysis-input-row input{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-2);width:100%;min-height:50px;transition:all .16s var(--ease);padding:0 14px;font-size:14px}.analysis-input-row input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted);outline:none}.analysis-input-row button{background:var(--brand);color:var(--text-inv);border-radius:var(--r-md);cursor:pointer;width:100%;min-height:50px;transition:background .14s var(--ease);border:none;padding:0 22px;font-size:14px;font-weight:700}.analysis-input-row button:hover{background:var(--brand-hover)}.analysis-input-row button:disabled{opacity:.6;cursor:not-allowed}.bottom-sheet{background:var(--bg-1);border-top-left-radius:var(--r-lg);border-top-right-radius:var(--r-lg);z-index:100;transition:transform .26s var(--ease), height .2s var(--ease);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;max-height:85vh;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%);box-shadow:0 -4px 28px #2a261e26}.bottom-sheet.sheet-visible{transform:translateY(0)}.sheet-handle-bar{padding:var(--sp-3) 0;cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;min-height:44px;display:flex}.sheet-handle{background:var(--border);border-radius:3px;width:40px;height:5px}.sheet-header{padding:0 var(--sp-4) var(--sp-2);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sheet-header h2{font-family:var(--font-display);color:var(--brand-text);font-size:18px;font-weight:400}.sheet-body{padding:0 var(--sp-4) var(--sp-4);flex:1;overflow-y:auto}@media (width>=961px){.app-shell{grid-template-rows:auto 1fr}.nav-tabs{align-items:center;gap:var(--sp-2);flex-wrap:wrap;width:100%;min-width:0;display:flex}.mobile-header,.mobile-tabbar,.mobile-utility-sheet,.mobile-utility-backdrop,.mobile-map-actionbar,.mobile-map-sheet,.mobile-map-sheet-backdrop,.shade-mobile-backdrop{display:none!important}.top-nav.desktop-top-nav{display:flex}.top-search{flex:0 220px}.garden-switch{justify-content:flex-end}.analysis-header{padding:var(--sp-4) var(--sp-5);grid-template-columns:minmax(0,1fr) auto;align-items:end}.analysis-header button{justify-self:end;min-height:40px}.analysis-messages{padding:var(--sp-4) var(--sp-5)}.analysis-starters{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.starters-label{grid-column:1/-1}.chat-bubble{max-width:min(78%,42rem)}.analysis-input-row{padding:var(--sp-3) var(--sp-5);grid-template-columns:minmax(0,1fr) auto;align-items:end}.analysis-input-row button{width:auto}.shade-overview-card{grid-template-columns:minmax(0,1fr) 180px;align-items:start}.shade-overview-meta{grid-template-columns:minmax(0,1fr) auto;align-items:end}.shade-open-link{justify-self:end}.shade-time-group,.shade-playback-group{flex-wrap:wrap;display:flex}.shade-time-group>:first-child,.shade-playback-group>button{grid-column:auto}.shade-map-wrap,.shade-map{min-height:180px}.shade-editor-actions{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}#plants-view,#care-view{padding:var(--sp-5)}.filter-row{flex-direction:row}.filter-row input{min-width:260px}.mobile-sort-controls,.mobile-data-list{display:none}.desktop-data-table-wrap,.desktop-table-only{display:block}.plants-mode-toggle button,.insights-mode-toggle button{min-height:36px}.inventory-action-btn{min-height:32px;padding:4px 10px}.inventory-table-actions .inventory-action-btn{min-height:28px}.batch-btn{min-height:36px;padding:var(--sp-1) var(--sp-2)}.journal-filters select,.journal-filters input[type=date],.journal-filters input[type=text]{min-height:36px;font-size:.85rem}.bottom-sheet{display:none!important}}@media (width<=960px){.plot-popover,.drawer,.drawer-backdrop{display:none!important}.toolbar{display:none}.mobile-map-actionbar{gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:radial-gradient(circle at top left, #4aaa6c24, transparent 52%), linear-gradient(180deg, var(--bg-1), var(--bg-2));border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mobile-map-action{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);min-height:48px;color:var(--text-1);letter-spacing:.05em;text-transform:uppercase;padding:0 12px;font-size:12px;font-weight:800}.mobile-map-action--primary{background:var(--accent);color:var(--text-inv);border-color:var(--accent)}.mobile-map-action:disabled{opacity:.55;cursor:not-allowed}.map-layout{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;padding:12px}.shade-panel{padding:var(--sp-3);grid-template-rows:auto auto auto auto auto auto}#shade-panel>.shade-disclosure[open]{left:var(--sp-3);right:var(--sp-3);bottom:calc(78px + env(safe-area-inset-bottom));z-index:55;max-height:min(74dvh, calc(100dvh - 98px - env(safe-area-inset-bottom) - var(--mobile-keyboard-offset)));border-radius:var(--r-xl);box-shadow:var(--shadow-lg);scroll-padding-bottom:calc(var(--mobile-keyboard-offset) + var(--sp-6));background:radial-gradient(circle at top left, #4aaa6c29, transparent 40%), linear-gradient(180deg, var(--bg-1), var(--bg-2));position:fixed;overflow-y:auto}#shade-panel>.shade-disclosure[open]>summary{z-index:1;padding:var(--sp-4);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border-bottom:1px solid var(--border-subtle);position:sticky;top:0}#shade-panel>.shade-disclosure[open]>summary:after{content:"Close";color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-left:auto;font-size:11px;font-weight:700}#shade-panel>.shade-disclosure[open]>:not(summary){padding:0 var(--sp-4) calc(var(--sp-4) + var(--mobile-keyboard-offset))}.shade-map-wrap,.shade-map{min-height:240px}.shade-calibration-grid,.shade-editor-actions{grid-template-columns:1fr}.minimap{display:none!important}.map-grid{--cell:min(calc((100vw - 32px) / 22), calc((100dvh - 140px) / 30))}.top-meta,.toolbar-meta{display:none}.garden-role-chip{display:none!important}.garden-select{min-width:120px;max-width:150px}.top-search input{width:130px}.search-dropdown{width:240px}.mobile-map-grid-fields{grid-template-columns:1fr}.filter-row{flex-direction:column}.filter-row input{width:100%;min-width:0}.data-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{min-width:0}.data-table th,.data-table td{padding:8px 10px;font-size:12px}.checkbox-label,.adm-check-label,.onb-check{align-items:center;gap:var(--sp-2);min-height:44px;display:flex}}@media (width<=960px) and (width>=601px){.plot-extend-btn{opacity:1;pointer-events:auto}}@media (width<=600px){.mobile-menu-btn{display:flex}.nav-tabs{background:var(--nav-bg);padding:var(--sp-2) var(--sp-3);padding-bottom:var(--sp-3);gap:var(--sp-1);z-index:50;box-shadow:var(--shadow-lg);border-bottom:2px solid #4aaa6c26;flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0}.nav-tabs.nav-open{display:flex}.top-nav{padding:var(--sp-1) var(--sp-2);padding-left:max(var(--sp-2), env(safe-area-inset-left));padding-right:max(var(--sp-2), env(safe-area-inset-right));flex-wrap:nowrap;position:relative}.top-tab{text-align:left;width:100%;min-height:44px;padding:10px 16px;font-size:14px}.top-nav-spacer{display:none}.top-search{width:100%}.top-search input{width:100%;min-height:44px;padding:10px 14px;font-size:16px}.garden-switch{width:100%}.garden-select{flex:1;min-width:0;max-width:none;min-height:44px;font-size:14px}.garden-create-btn{width:44px;height:44px;font-size:20px}.garden-role-chip{display:none!important}.auth-btn{min-height:44px;padding:10px 14px;font-size:14px}.theme-toggle{min-width:44px;min-height:44px;padding:10px;font-size:18px}.app-version-shell,.top-meta{display:none}.map-grid{--cell:min(calc((100vw - 24px) / var(--grid-cols)), calc((100dvh - 120px) / calc(var(--grid-rows) + 1)))}.plot-extend-btn{opacity:1;pointer-events:auto;width:clamp(18px, calc(var(--cell) * .6), 28px);height:clamp(18px, calc(var(--cell) * .6), 28px);font-size:clamp(10px, calc(var(--cell) * .4), 16px)}.plot:hover .plot-extend-btn{opacity:1}input,textarea,select{font-size:16px!important}.form-row-2{grid-template-columns:1fr}.toolbar button{min-height:44px;padding:8px 14px;font-size:14px}.button-row button{min-height:44px;padding:10px 8px;font-size:14px}.close-btn{width:44px;height:44px;font-size:22px}.color-swatch{width:36px;height:36px}.checkbox-label input[type=checkbox]{width:22px;height:22px}.cat-filter-btn{min-height:36px;padding:6px 10px;font-size:12px}.popover-edit-btn,.popover-delete-btn{min-width:44px;min-height:44px}.search-dropdown{left:var(--sp-2);right:var(--sp-2);width:auto;max-height:50vh;position:fixed;top:auto}.data-table{width:100%;min-width:0}.data-table th,.data-table td{padding:6px;font-size:13px}.starter-chip{word-break:break-word;white-space:normal;max-width:none;padding:12px 14px;font-size:13px}.starter-chip-title{font-size:14px}.starter-chip-copy{font-size:12px}.analysis-starters{padding:var(--sp-2) 0 var(--sp-4)}.chat-bubble{max-width:100%}.analysis-header{padding:var(--sp-2) var(--sp-3)}.analysis-subtitle{font-size:12px}.analysis-header h2{font-size:20px}.analysis-messages{padding:var(--sp-3) var(--sp-3)}.analysis-input-row{padding:var(--sp-2) var(--sp-3);padding-bottom:max(var(--sp-2), env(safe-area-inset-bottom))}.analysis-input-row input{min-height:44px}.analysis-input-row button{min-height:44px;padding:0 16px}.adm-layout{grid-template-columns:1fr}.adm-nav{padding:0 var(--sp-2);flex-direction:row;gap:4px;overflow-x:auto}.adm-nav-btn{white-space:nowrap;min-height:44px;padding:8px 12px;font-size:13px}.adm-input,.adm-select{min-height:44px;padding:10px 12px;font-size:16px}.adm-btn{min-height:44px;padding:10px 16px;font-size:14px}.adm-btn--sm{min-height:36px;padding:6px 10px;font-size:13px}.adm-table-wrap{-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--sp-3));padding:0 var(--sp-3);overflow-x:auto}.adm-table,.adm-table--audit{min-width:600px}.shade-map{aspect-ratio:1;width:100%;max-width:calc(100vw - 48px);height:auto}.zone-toggles,.category-filters{padding:var(--sp-1) var(--sp-2);flex-wrap:wrap}.modal{-webkit-backdrop-filter:none;background:#2a261e8c;align-items:flex-end}.modal-content,.modal-content-wide{width:100%;max-width:100%;padding:var(--sp-4);border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:90dvh;padding-bottom:max(var(--sp-4), env(safe-area-inset-bottom));border-bottom-right-radius:0;border-bottom-left-radius:0}.modal-content h3{font-size:20px}.care-overlay-content{border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-height:90dvh;padding-bottom:max(var(--sp-4), env(safe-area-inset-bottom))}.care-overlay-close{width:44px;height:44px}.elevation-editor{width:100%}.elevation-editor-scroll{max-height:min(320px,45vh)}.elev-override-input{width:64px;min-height:36px;font-size:14px}.elev-batch-bar{gap:var(--sp-1)}.elev-batch-input{width:80px;min-height:36px}.onboarding-progress{padding:12px 16px 0;overflow-x:auto}.onboarding-step-dot{flex-shrink:0;width:22px;height:22px;font-size:10px}.onboarding-step-line{min-width:4px}.onboarding-card{width:min(600px,96vw);max-height:90dvh}.onboarding-body{padding:16px}.plot-picker-map canvas{max-width:calc(100vw - 64px)}.toast{max-width:min(400px,90vw)}.content-shell{flex:1;height:auto;min-height:0}.sheet-body{padding:0 var(--sp-3) var(--sp-3)}.filter-row{padding:var(--sp-2);flex-direction:column}.filter-row input{width:100%;min-width:0;min-height:44px}.filter-row select{min-height:44px}.data-view-title-row{align-items:flex-start;gap:var(--sp-2);flex-direction:column}.title-actions{gap:var(--sp-1);flex-wrap:wrap}.title-actions button{min-height:44px;font-size:13px}.map-layout{padding:6px}.edit-menu-dropdown{width:calc(100vw - 24px);min-width:0;max-width:320px}.map-direction-control{min-width:0}.snapshots-dropdown{min-width:200px}.bottom-sheet{padding-bottom:env(safe-area-inset-bottom)}.grid-dims-inputs input[type=number],#grid-dims-apply-btn{min-height:44px}}@media (pointer:coarse){input,textarea,select{font-size:16px!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.plants-sub-header,.insights-sub-header{align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.plants-mode-groups{gap:var(--sp-2);flex-direction:column;flex:1;min-width:0;display:flex}.plants-mode-toggle,.insights-mode-toggle{background:var(--bg-2);border-radius:var(--r-sm);flex:1;gap:0;min-width:0;padding:2px;display:flex;overflow-x:auto}.plants-mode-toggle button,.insights-mode-toggle button{padding:var(--sp-1) var(--sp-3);border-radius:calc(var(--r-sm) - 2px);color:var(--text-2);font-family:var(--font-body);cursor:pointer;min-height:44px;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:none;flex:1;font-size:.85rem;font-weight:600}.plants-mode-toggle button[aria-selected=true],.insights-mode-toggle button[aria-selected=true]{background:var(--bg-1);color:var(--text-1);box-shadow:0 1px 3px #00000014}.journal-filters{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.journal-filters select,.journal-filters input[type=date],.journal-filters input[type=text]{padding:var(--sp-2) var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);min-height:44px;color:var(--text-1);font-size:1rem}.journal-add-btn{margin-left:auto}.journal-empty{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-3)}.journal-empty-text{margin:0 0 var(--sp-2);font-size:1rem}.journal-empty-hint{margin:0;font-size:.85rem}.journal-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.journal-card:hover{box-shadow:0 2px 8px #0000000f}.journal-card-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.journal-card-icon{flex-shrink:0;font-size:1.1rem}.journal-card-type{color:var(--text-1);font-size:.85rem;font-weight:600}.journal-card-date{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:.8rem}.journal-card-title{color:var(--text-1);margin-bottom:var(--sp-1);font-size:.9rem;font-weight:500}.journal-card-notes{color:var(--text-2);margin-bottom:var(--sp-2);font-size:.85rem;line-height:1.45}.journal-card-tags{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.journal-tag{padding:2px var(--sp-2);cursor:pointer;border:none;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.4;display:inline-block}.journal-tag-plant{background:var(--zone-b,#d4e8d0);color:var(--text-1)}.journal-tag-plot{background:var(--bg-3);color:var(--text-2)}.journal-card-footer{align-items:center;gap:var(--sp-2);color:var(--text-3);font-size:.78rem;display:flex}.journal-card-actor{font-weight:500}.journal-card-actions{gap:var(--sp-1);margin-left:auto;display:flex}.journal-action-btn{padding:2px var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.75rem}.journal-action-btn:hover{background:var(--bg-2)}.journal-action-delete{color:var(--danger);border-color:var(--danger)}.journal-action-delete:hover{background:var(--danger);color:#fff}.journal-composer{padding:var(--sp-4);max-width:500px}.journal-composer-heading{font-family:var(--font-heading);margin:0 0 var(--sp-4);font-size:1.2rem}.journal-field-group{margin-bottom:var(--sp-3)}.journal-field-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-1);font-size:.8rem;font-weight:600;display:block}.journal-field-group select,.journal-field-group input,.journal-field-group textarea{width:100%;padding:var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-1);font-size:16px;font-family:var(--font-body);box-sizing:border-box;min-height:44px}.journal-field-group textarea{resize:vertical;min-height:80px}.journal-add-select{width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);min-height:36px;margin-top:var(--sp-1);font-size:14px}.journal-chip-list{gap:var(--sp-1);flex-wrap:wrap;min-height:24px;display:flex}.journal-chip{padding:2px var(--sp-2);background:var(--bg-3);color:var(--text-1);border-radius:999px;align-items:center;gap:2px;font-size:.78rem;font-weight:500;display:inline-flex}.journal-chip-remove{cursor:pointer;color:var(--text-3);background:0 0;border:none;padding:0 2px;font-size:.85rem;line-height:1}.journal-chip-remove:hover{color:var(--danger)}.journal-composer-buttons{gap:var(--sp-2);margin-top:var(--sp-4);justify-content:flex-end;display:flex}.journal-btn-cancel{padding:var(--sp-2) var(--sp-4);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.9rem}.journal-btn-submit{min-height:44px;font-size:.9rem}.journal-preview-heading{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin:var(--sp-3) 0 var(--sp-2);font-size:.8rem;font-weight:700}.journal-preview-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:.82rem;display:flex}.journal-preview-icon{flex-shrink:0}.journal-preview-text{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.journal-preview-date{color:var(--text-3);white-space:nowrap;font-size:.75rem}.journal-preview-more{width:100%;padding:var(--sp-2);margin-top:var(--sp-1);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--brand);cursor:pointer;text-align:center;font-size:.82rem;display:block}.journal-preview-more:hover{background:var(--bg-2)}.batch-bar{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--brand);color:#fff;border-radius:var(--r-sm);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.batch-count{white-space:nowrap;font-size:.9rem;font-weight:600}.batch-actions{gap:var(--sp-1);flex-wrap:wrap;display:flex}.batch-btn{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;min-height:44px;font-size:.8rem}.batch-btn:hover{background:#ffffff40}.batch-btn-clear{background:0 0;border-color:#ffffff80}.col-select{text-align:center;width:36px}.col-select input[type=checkbox]{cursor:pointer;width:18px;height:18px}.mobile-batch-cb{width:20px;height:20px;margin-right:var(--sp-2);cursor:pointer;flex-shrink:0}tr.batch-selected{background:color-mix(in srgb, var(--brand) 10%, transparent)}.mobile-data-card.batch-selected{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 6%, var(--bg-1))}.action-card-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.action-card{gap:var(--sp-1);padding:var(--sp-3);border:1px solid var(--bg-3);border-radius:var(--r-md);background:var(--bg-1);cursor:pointer;text-align:left;flex-direction:column;width:100%;transition:border-color .15s,box-shadow .15s;display:flex}.action-card:hover{border-color:var(--brand);box-shadow:0 2px 8px #00000014}.action-card--good{cursor:default;border-color:var(--sage,#6dbb6d);background:color-mix(in srgb, var(--sage,#6dbb6d) 6%, var(--bg-1))}.action-card--good:hover{box-shadow:none;border-color:var(--sage,#6dbb6d)}.action-card-head{align-items:center;gap:var(--sp-2);display:flex}.action-card-icon{font-size:1.25rem}.action-card-title{flex:1;font-size:.9rem}.action-card-badge{background:var(--accent);color:#fff;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:700}.action-card-desc{color:var(--text-2);margin:0;font-size:.8rem}.drawer-journal-preview,.sheet-journal-preview,.plant-journal-preview-container{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--bg-3)}.plant-journal-history label{color:var(--text-2);margin-bottom:var(--sp-1);font-size:.85rem;font-weight:600;display:block}.journal-pagination{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;color:var(--text-2);font-size:.85rem;display:flex}.journal-pagination button{padding:var(--sp-1) var(--sp-3);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-1);cursor:pointer;min-height:36px}.journal-pagination button:disabled{opacity:.4;cursor:default}.inventory-empty{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-2)}.inventory-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2)}.inventory-card-header{align-items:center;gap:var(--sp-2);display:flex}.inventory-card-icon{flex-shrink:0;font-size:1.3em}.inventory-card-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.inventory-qty-badge{border-radius:var(--r-sm);background:color-mix(in srgb, var(--brand) 12%, transparent);color:var(--brand);white-space:nowrap;padding:2px 8px;font-size:.85em;font-weight:700}.inventory-qty-badge.inventory-qty-zero,td.inventory-qty-zero{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.inventory-card-meta{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.inventory-type-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);padding:2px 7px;font-size:.75em;font-weight:600}.inventory-card-actions{gap:var(--sp-1);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.inventory-action-btn{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--bg-3);background:var(--bg-1);color:var(--text-1);cursor:pointer;min-height:44px;font-size:.8em}.inventory-action-btn:hover{background:var(--bg-2)}.inventory-action-add{color:var(--brand);border-color:var(--brand)}.inventory-action-use{color:var(--accent);border-color:var(--accent)}.inventory-action-plant{border-color:var(--brand)}.inventory-table-actions{gap:4px;display:flex}.inventory-table-actions .inventory-action-btn{min-height:36px;padding:3px 8px;font-size:.85em}.inventory-tx-row{align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--bg-2);flex-wrap:wrap;font-size:.9em;display:flex}.inventory-tx-delta-pos{color:var(--brand);min-width:40px;font-weight:700}.inventory-tx-delta-neg{color:var(--danger);min-width:40px;font-weight:700}.inventory-tx-reason{font-weight:500}.inventory-tx-source{color:var(--text-2);font-style:italic}.inventory-tx-date{color:var(--text-3);margin-left:auto}.inventory-tx-cost{color:var(--text-2)}.inventory-tx-notes{width:100%;color:var(--text-2);padding-left:40px;font-size:.9em}.inventory-tx-actor{color:var(--text-3);font-size:.85em}.inventory-form{gap:var(--sp-3);flex-direction:column;display:flex}.inventory-form .form-field{gap:var(--sp-1);flex-direction:column;display:flex}.inventory-form .form-label{color:var(--text-2);font-size:.85em;font-weight:600}.inventory-form .form-input,.inventory-form .form-select,.inventory-form .form-textarea{border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-1);box-sizing:border-box;width:100%;min-height:44px;padding:8px 10px;font-size:16px}.inventory-form .form-check-label{align-items:center;gap:var(--sp-2);cursor:pointer;font-size:.9em;display:flex}.inventory-form .form-btn-row{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.inventory-form .form-btn-row button{min-height:44px}.inventory-source-summary{padding:var(--sp-3);background:var(--bg-2);border-radius:var(--r-sm);margin-top:var(--sp-2)}.inventory-summary-line{justify-content:space-between;align-items:baseline;padding:2px 0;display:flex}.inventory-summary-label{color:var(--text-2);font-size:.85em}.inventory-summary-value{font-weight:600}.inventory-summary-empty{color:var(--text-3);font-size:.9em}.inventory-summary-viewall{margin-top:var(--sp-2);font-size:.85em}.task-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.task-card.task-card-selected{border-color:color-mix(in srgb, var(--accent) 55%, var(--bg-3));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent)}.task-card:hover{box-shadow:0 2px 8px #0000000f}.task-card.task-completed{opacity:.6}.task-card-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.task-card-icon{flex-shrink:0;font-size:1.1rem}.task-card-select{align-items:center;display:inline-flex}.task-card-select-checkbox{width:18px;height:18px;margin:0}.task-card-type{color:var(--text-1);font-size:.85rem;font-weight:600}.task-card-due{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:.8rem}.task-card-due.overdue{color:var(--danger);font-weight:600}.task-card-title{color:var(--text-1);margin-bottom:var(--sp-1);font-size:.9rem;font-weight:500}.task-card-description{color:var(--text-2);margin-bottom:var(--sp-2);font-size:.85rem;line-height:1.45}.task-card-window{color:var(--text-3);margin-bottom:var(--sp-2);font-size:.78rem}.task-batch-bar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-md);background:var(--bg-1);flex-wrap:wrap;display:flex}.task-batch-count{color:var(--text-2);font-size:.85rem;font-weight:600}.task-severity-chip{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-sm);padding:1px 6px;font-size:.7rem;font-weight:700}.task-severity-chip.severity-high{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.task-severity-chip.severity-normal{background:var(--bg-2);color:var(--text-2)}.task-severity-chip.severity-low{background:var(--bg-2);color:var(--text-3)}.task-status-chip{border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);padding:1px 6px;font-size:.7rem;font-weight:600}.task-status-chip.status-completed{background:color-mix(in srgb, var(--brand) 12%, transparent);color:var(--brand)}.task-status-chip.status-snoozed{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.task-card-tags{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.task-card-footer{align-items:center;gap:var(--sp-2);color:var(--text-3);font-size:.78rem;display:flex}.task-card-rule{color:var(--text-3);font-size:.75rem;font-style:italic}.task-card-actions{gap:var(--sp-1);flex-wrap:wrap;margin-left:auto;display:flex}.task-action-btn{padding:2px var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.75rem}.task-action-btn:hover{background:var(--bg-2)}.task-action-btn.task-action-complete{color:var(--brand);border-color:var(--brand)}.task-action-btn.task-action-delete{color:var(--danger);border-color:var(--danger)}.drawer-section{margin-bottom:var(--sp-3)}.drawer-section-header{align-items:center;gap:var(--sp-2);cursor:pointer;padding:var(--sp-2) 0;-webkit-user-select:none;user-select:none;display:flex}.drawer-section-header:hover{color:var(--accent)}.drawer-section-title{font-size:.9rem;font-weight:600}.drawer-section-count{color:var(--text-3);background:var(--bg-2);border-radius:var(--r-sm);padding:0 6px;font-size:.75rem}.drawer-section-chevron{color:var(--text-3);transition:transform .2s var(--ease);margin-left:auto;font-size:.7rem}.drawer-section.collapsed .drawer-section-chevron{transform:rotate(-90deg)}.drawer-section-body{transition:max-height .2s var(--ease);max-height:2000px;overflow:hidden}.drawer-section.collapsed .drawer-section-body{max-height:0}.drawer-task-card{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);margin-bottom:var(--sp-1);background:var(--bg-1);transition:opacity .3s var(--ease);display:flex}.drawer-task-card.task-completed{opacity:.55}.drawer-task-card.task-completed .drawer-task-title{color:var(--text-3);text-decoration:line-through}.drawer-task-card.task-fading{opacity:0}.drawer-task-severity{border-radius:50%;flex-shrink:0;width:8px;height:8px}.drawer-task-severity.severity-high{background:var(--danger)}.drawer-task-severity.severity-normal{background:var(--accent)}.drawer-task-severity.severity-low{background:var(--brand)}.drawer-task-info{flex:1;min-width:0}.drawer-task-title{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:500;overflow:hidden}.drawer-task-due{color:var(--text-3);font-size:.75rem}.drawer-task-due.overdue{color:var(--danger);font-weight:600}.drawer-task-actions{gap:var(--sp-1);flex-shrink:0;display:flex}.drawer-task-action{border-radius:var(--r-sm);border:1px solid var(--bg-3);background:var(--bg-1);width:28px;height:28px;color:var(--text-2);cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease);justify-content:center;align-items:center;padding:0;font-size:.85rem;display:flex}.drawer-task-action:hover{background:var(--bg-2)}.drawer-task-action.action-complete:hover{color:var(--brand);border-color:var(--brand)}.drawer-task-action.action-snooze:hover{color:var(--accent);border-color:var(--accent)}.tasks-view-toggle{gap:var(--sp-1);margin-bottom:var(--sp-2);display:flex}.tasks-view-btn{padding:var(--sp-2) var(--sp-3);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.8rem}.tasks-view-btn.active{background:var(--brand);color:var(--text-inv);border-color:var(--brand)}.tasks-filters{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.tasks-empty{text-align:center;padding:var(--sp-8) var(--sp-4)}.notification-bell{cursor:pointer;padding:var(--sp-1);color:var(--text-2);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1.1rem;display:flex;position:relative}.notification-bell:hover{color:var(--text-1)}.notification-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:16px;position:absolute;top:0;right:0}.notification-badge-inline{background:var(--danger);color:#fff;text-align:center;min-width:18px;height:18px;margin-left:var(--sp-1);border-radius:999px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:18px;display:inline-block}.notification-bell-wrapper{display:inline-flex;position:relative}.notification-panel{top:calc(env(safe-area-inset-top) + 68px);right:max(var(--sp-4), env(safe-area-inset-right));background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);width:360px;max-height:480px;box-shadow:var(--shadow-lg);z-index:999;position:fixed;overflow-y:auto}.notification-panel-header{padding:var(--sp-3);border-bottom:1px solid var(--border-subtle);background:var(--bg-1);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.notification-panel-title{font-size:.9rem;font-weight:600}.notification-mark-all-btn{color:var(--brand);cursor:pointer;padding:var(--sp-1) var(--sp-2);background:0 0;border:none;font-size:.75rem}.notification-mark-all-btn:hover{text-decoration:underline}.notification-settings-btn{cursor:pointer;padding:var(--sp-1);background:0 0;border:none;font-size:1rem;line-height:1}.notification-settings-btn:hover{opacity:.7}.notification-item{gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background .1s var(--ease);display:flex}.notification-item:hover{background:var(--bg-2)}.notification-item.unread{background:color-mix(in srgb, var(--brand) 5%, var(--bg-1))}.notification-item.unread:hover{background:color-mix(in srgb, var(--brand) 10%, var(--bg-1))}.notification-item-icon{flex-shrink:0;margin-top:2px;font-size:1.1rem}.notification-item-content{flex:1;min-width:0}.notification-item-title{color:var(--text-1);margin-bottom:2px;font-size:.85rem;font-weight:500}.notification-item-body{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.notification-item-time{color:var(--text-3);margin-top:2px;font-size:.7rem}.notification-item-dismiss{color:var(--text-3);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-self:flex-start;padding:2px;font-size:.9rem}.notification-item-dismiss:hover{color:var(--danger)}.notification-empty{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-3)}.notification-empty-text{margin-bottom:var(--sp-1);font-size:.85rem}.notification-empty-hint{font-size:.8rem}.notification-unread-dot{background:var(--brand);border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.notification-prefs-form{padding:var(--sp-4)}.notification-prefs-row{padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.notification-prefs-label{color:var(--text-1);font-size:.85rem}.notification-prefs-toggle{background:var(--bg-3);cursor:pointer;width:52px;height:32px;transition:background .15s var(--ease);border:none;border-radius:16px;position:relative}.notification-prefs-toggle.active{background:var(--brand)}.notification-prefs-toggle:after{content:"";width:26px;height:26px;transition:transform .15s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.notification-prefs-toggle.active:after{transform:translate(20px)}@media (width<=960px){.notification-panel{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:70vh;position:fixed;inset:auto 0 0}}.weather-dashboard{margin-bottom:var(--sp-4)}.weather-dashboard:empty{display:none}.weather-section{margin-bottom:var(--sp-3)}.weather-section-title{color:var(--text-1);margin-bottom:var(--sp-2);align-items:center;gap:var(--sp-2);font-size:.9rem;font-weight:600;display:flex}.weather-actions{gap:var(--sp-1);margin-left:auto;display:flex}.forecast-strip{gap:var(--sp-1);padding-bottom:var(--sp-1);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.forecast-day{min-width:72px;padding:var(--sp-2);text-align:center;background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-sm);flex:none;font-size:.78rem}.forecast-day-date{color:var(--text-1);margin-bottom:2px;font-weight:600}.forecast-day-temp{color:var(--text-2);margin-bottom:2px}.forecast-day-precip{color:var(--brand);font-size:.72rem}.forecast-day.frost{border-color:color-mix(in srgb, var(--danger) 40%, transparent);background:color-mix(in srgb, var(--danger) 5%, var(--bg-1))}.weather-alert-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.weather-alert-card:hover{box-shadow:0 2px 8px #0000000f}.weather-alert-card.severity-high{border-left:3px solid var(--danger)}.weather-alert-card.severity-normal{border-left:3px solid var(--accent)}.weather-alert-card.severity-low{border-left:3px solid var(--text-3)}.weather-alert-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.weather-alert-icon{flex-shrink:0;font-size:1.2rem}.weather-alert-title{color:var(--text-1);flex:1;font-size:.85rem;font-weight:600}.weather-alert-severity{text-transform:uppercase;border-radius:var(--r-sm);padding:1px 6px;font-size:.7rem;font-weight:700}.weather-alert-severity.severity-high{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.weather-alert-severity.severity-normal{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.weather-alert-severity.severity-low{background:var(--bg-2);color:var(--text-3)}.weather-alert-description{color:var(--text-2);margin-bottom:var(--sp-2);font-size:.85rem;line-height:1.45}.weather-alert-dates{color:var(--text-3);margin-bottom:var(--sp-2);font-size:.75rem}.weather-alert-plants{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.weather-alert-footer{justify-content:flex-end;align-items:center;display:flex}.weather-alert-dismiss{padding:2px var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.75rem}.weather-alert-dismiss:hover{background:var(--bg-2)}.weather-advice{margin-top:var(--sp-2);color:var(--text-2);font-size:.82rem}.weather-advice-plant{padding:var(--sp-1) 0;border-bottom:1px solid var(--bg-2)}.weather-advice-plant:last-child{border-bottom:none}.weather-advice.generic{color:var(--text-3);font-style:italic}.weather-plants-list{gap:var(--sp-1);flex-wrap:wrap;display:flex}.weather-plant-chip{padding:2px var(--sp-2);cursor:pointer;border:none;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.4;display:inline-block}.weather-plant-chip.frost-risk{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.weather-plant-chip.water-need{background:color-mix(in srgb, var(--brand) 10%, transparent);color:var(--brand)}.weather-no-data{text-align:center;padding:var(--sp-4);color:var(--text-3);font-size:.85rem}@media (width<=600px){.forecast-day{min-width:64px;padding:var(--sp-1);font-size:.72rem}}.issue-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.issue-card:hover{box-shadow:0 2px 8px #0000000f}.issue-card.issue-resolved{opacity:.6}.issue-card.severity-critical{border-left:3px solid var(--danger)}.issue-card.severity-high{border-left:3px solid var(--accent)}.issue-card-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.issue-card-icon{flex-shrink:0;font-size:1.1rem}.issue-card-type{color:var(--text-1);font-size:.85rem;font-weight:600}.issue-card-title{color:var(--text-1);margin-bottom:var(--sp-1);font-size:.9rem;font-weight:500}.issue-card-description{color:var(--text-2);margin-bottom:var(--sp-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.45;display:-webkit-box;overflow:hidden}.issue-card-meta{gap:var(--sp-2);margin-bottom:var(--sp-2);color:var(--text-2);flex-wrap:wrap;font-size:.8rem;display:flex}.issue-card-meta-label{color:var(--text-1);font-weight:600}.issue-severity-chip{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-sm);padding:1px 6px;font-size:.7rem;font-weight:700}.issue-severity-chip.severity-critical{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.issue-severity-chip.severity-high{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.issue-severity-chip.severity-normal{background:var(--bg-2);color:var(--text-2)}.issue-severity-chip.severity-low{background:var(--bg-2);color:var(--text-3)}.issue-status-chip{border-radius:var(--r-sm);padding:1px 6px;font-size:.7rem;font-weight:600}.issue-status-chip.status-open{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.issue-status-chip.status-monitoring{color:#4a6d8c;background:#6b8bb31f}.issue-status-chip.status-treating{background:color-mix(in srgb, var(--brand) 12%, transparent);color:var(--brand)}.issue-status-chip.status-resolved,.issue-status-chip.status-dismissed{background:var(--bg-2);color:var(--text-3)}.issue-card-tags{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.issue-card-follow-up{color:var(--text-2);margin-bottom:var(--sp-2);font-size:.8rem}.issue-card-follow-up.overdue{color:var(--danger);font-weight:600}.issue-card-footer{align-items:center;gap:var(--sp-2);color:var(--text-3);font-size:.78rem;display:flex}.issue-card-actions{gap:var(--sp-1);flex-wrap:wrap;margin-left:auto;display:flex}.issue-action-btn{padding:2px var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.75rem}.issue-action-btn:hover{background:var(--bg-2)}.issue-action-btn.issue-action-resolve{color:var(--brand);border-color:var(--brand)}.issue-action-btn.issue-action-delete{color:var(--danger);border-color:var(--danger)}.issues-filters{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.issues-empty{text-align:center;padding:var(--sp-8) var(--sp-4)}.plant-media-gallery,.drawer-media-preview,.sheet-media-preview,.journal-existing-media{margin-top:var(--sp-3)}.journal-existing-media-heading{margin:0 0 var(--sp-2);color:var(--text-2);font-size:.95rem}.media-gallery{gap:var(--sp-3);display:grid}.media-intake{display:block}.media-dropzone{gap:var(--sp-1);padding:var(--sp-3);border:1px dashed color-mix(in srgb, var(--brand) 42%, var(--border));border-radius:var(--r-md);background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 10%, var(--bg-2)), color-mix(in srgb, var(--brand) 3%, var(--bg-1)));color:var(--text-1);cursor:pointer;transition:border-color .14s var(--ease), transform .14s var(--ease), background .14s var(--ease);display:grid}.media-dropzone:hover,.media-dropzone:focus-visible,.media-dropzone-active{border-color:var(--brand);background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 14%, var(--bg-2)), color-mix(in srgb, var(--brand) 6%, var(--bg-1)));transform:translateY(-1px)}.media-dropzone-title{font-weight:700}.media-dropzone-hint{color:var(--text-2);font-size:.85rem}.media-file-input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.media-progress{gap:var(--sp-1);display:grid}.media-progress-bar{background:linear-gradient(90deg, var(--brand), color-mix(in srgb, var(--brand) 60%, var(--accent)));block-size:10px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 45%, transparent);border-radius:999px}.media-progress-label{color:var(--text-2);font-size:.8rem}.media-empty{padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-2);color:var(--text-2);margin:0;font-size:.92rem}.media-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.media-card{gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:linear-gradient(180deg, var(--bg-2), color-mix(in srgb, var(--bg-1) 88%, var(--bg-3)));box-shadow:var(--shadow-sm);display:grid}.media-thumb-button{border-radius:calc(var(--r-md) - 4px);background:color-mix(in srgb, var(--bg-3) 70%, var(--bg-inset));cursor:pointer;aspect-ratio:4/3;border:0;padding:0;overflow:hidden}.media-thumb{object-fit:cover;block-size:100%;inline-size:100%;display:block}.media-inline-thumb,.plants-name-thumb,.mobile-plant-thumb,.journal-card-thumb{border-radius:var(--r-sm);background:color-mix(in srgb, var(--bg-3) 70%, var(--bg-inset));cursor:pointer;border:0;padding:0;overflow:hidden}.media-inline-thumb-image,.plants-name-thumb-image,.mobile-plant-thumb-image,.journal-card-thumb-image{object-fit:cover;block-size:100%;inline-size:100%;display:block}.media-meta{gap:2px;min-inline-size:0;display:grid}.media-name{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;overflow:hidden}.media-detail{color:var(--text-2);font-size:.78rem}.media-share-note{color:var(--brand);font-size:.76rem}.media-cover-note{color:var(--accent);font-size:.76rem;font-weight:700}.media-card-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.media-set-cover{border:1px solid color-mix(in srgb, var(--accent) 48%, var(--border));border-radius:var(--r-sm);background:color-mix(in srgb, var(--accent) 14%, var(--bg-1));color:var(--text-1);cursor:pointer;justify-self:start;padding:6px 10px}.media-set-cover:hover{background:color-mix(in srgb, var(--accent) 22%, var(--bg-1))}.adm-progress-track{background:color-mix(in srgb, var(--bg-3) 70%, var(--bg-inset));block-size:10px;inline-size:100%;margin-bottom:var(--sp-2);border-radius:999px;overflow:hidden}.adm-progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--brand), color-mix(in srgb, var(--brand) 58%, var(--accent)));block-size:100%}.adm-compact-list{margin:0 0 var(--sp-2);color:var(--text-2);padding-left:1rem;font-size:.85rem}.adm-compact-list li{margin-bottom:.25rem}.media-delete{border:1px solid color-mix(in srgb, var(--danger) 45%, var(--border));border-radius:var(--r-sm);background:color-mix(in srgb, var(--danger) 10%, var(--bg-1));color:var(--danger);cursor:pointer;justify-self:start;padding:6px 10px}.media-delete:hover{background:color-mix(in srgb, var(--danger) 16%, var(--bg-1))}.media-delete-everywhere{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 16%, var(--bg-1))}.media-lightbox{z-index:2200;padding:var(--sp-4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080706d6;place-items:center;display:grid;position:fixed;inset:0}.media-lightbox-frame{gap:var(--sp-2);max-block-size:92vh;inline-size:min(92vw,1080px);padding:var(--sp-3);border:1px solid color-mix(in srgb, var(--border) 85%, transparent);border-radius:var(--r-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--bg-1) 94%, black), color-mix(in srgb, var(--bg-inset) 92%, black));box-shadow:var(--shadow-lg);transition:transform .2s,opacity .2s;display:grid;position:relative}.media-lightbox-close{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-2) 88%, black);block-size:38px;inline-size:38px;color:var(--text-1);cursor:pointer;border-radius:999px;justify-self:end;font-size:1.35rem;line-height:1}.media-lightbox-image{border-radius:var(--r-md);object-fit:contain;justify-self:center;max-block-size:calc(92vh - 120px);max-inline-size:100%}.media-lightbox-caption{color:var(--text-2);text-align:center;word-break:break-word;font-size:.88rem}.media-lightbox-prev,.media-lightbox-next{color:#fff;cursor:pointer;z-index:1;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;transition:background .12s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.media-lightbox-prev:hover,.media-lightbox-next:hover{background:#000000b3}.media-lightbox-prev{left:var(--sp-2)}.media-lightbox-next{right:var(--sp-2)}.media-lightbox-counter{color:#ffffffb3;margin-left:var(--sp-2);font-size:13px}.plants-name-cell{align-items:flex-start;gap:var(--sp-2);min-width:0;display:flex}.plants-name-thumb{flex:none;block-size:34px;inline-size:34px}.plants-name-text{flex-direction:column;gap:4px;min-width:0;display:flex}.plants-name-title{text-overflow:ellipsis;min-width:0;overflow:hidden}.plants-presence-badge{border-radius:999px;align-self:flex-start;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.25;display:inline-flex}.plants-presence-badge--mixed{color:#8a4f06;background:#d9953e24}.plants-presence-badge--gone{color:#4d5765;background:#76808e2e}.plants-presence-badge--unobserved{color:#16536b;background:#2c708d24}.plants-presence-badge--mobile{margin-top:2px}[data-theme=dark] .plants-presence-badge--mixed{color:#ffd38d;background:#d9953e33}[data-theme=dark] .plants-presence-badge--gone{color:#d4dae3;background:#76808e47}[data-theme=dark] .plants-presence-badge--unobserved{color:#a8deef;background:#2c708d3d}.mobile-plant-thumb{aspect-ratio:4/3;inline-size:100%;max-inline-size:112px;margin-bottom:var(--sp-2)}.journal-card-media{margin-top:var(--sp-2)}.journal-card-thumb{aspect-ratio:4/3;inline-size:104px}.btn-link{color:var(--brand);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.btn-link:hover{color:var(--accent)}.create-plant-link{margin-top:var(--sp-2);font-size:13px}@keyframes stat-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes stat-ring-fill{0%{--stat-ring-draw:0%}to{--stat-ring-draw:var(--stat-ring-angle)}}@keyframes bloom-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes stat-bar-enter{0%{transform:scaleX(0)}to{transform:scaleX(1)}}#statistics-view{flex-direction:column;height:100%;min-height:0;display:none}#statistics-view.active{display:flex}.statistics-mode-toggle{background:var(--bg-2);border-bottom:1px solid var(--border);padding:0 var(--sp-2);flex-shrink:0;gap:0;display:flex;overflow-x:auto}.statistics-mode-toggle button{padding:var(--sp-1) var(--sp-3);color:var(--text-3);font:inherit;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;font-size:.82rem;font-weight:500}.statistics-mode-toggle button[aria-selected=true]{background:var(--bg-1);color:var(--text-1);border-bottom-color:var(--brand)}.today-dashboard{padding:var(--sp-4);gap:var(--sp-4);flex-direction:column;display:flex}.today-header{text-align:center;padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.today-title{color:var(--text-1);margin:0;font-size:20px;font-weight:600;line-height:1.15}.today-date{margin:var(--sp-1) 0 0;color:var(--text-3);text-transform:capitalize;font-size:13px}.today-section{gap:var(--sp-2);flex-direction:column;display:flex}.today-section-header{flex-direction:column;gap:2px;display:flex}.today-card-list{gap:var(--sp-2);flex-direction:column;display:flex}.today-card{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-subtle);border-left:3px solid var(--brand);border-radius:var(--r-md);background:var(--bg-2);color:inherit;text-align:left;cursor:pointer;font:inherit;transition:transform .14s var(--ease), border-color .14s var(--ease), box-shadow .14s var(--ease);gap:2px;display:grid}.today-card:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-1px)}.today-card--danger{border-left-color:var(--danger)}.today-card--warn{border-left-color:var(--accent)}.today-card-title{color:var(--text-1);font-size:13px;font-weight:500;line-height:1.3}.today-card-meta{color:var(--text-3);font-size:11px}.today-forecast-strip{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--bg-2);color:var(--text-2);text-align:center;font-size:14px;font-weight:500}.today-empty{padding:var(--sp-2) var(--sp-3);color:var(--text-3);margin:0;font-size:13px;font-style:italic}.today-all-clear{text-align:center;padding:var(--sp-6) var(--sp-4)}.today-all-clear-text{color:var(--text-2);margin:0;font-size:15px;font-weight:500}.statistics-scroll-region{background:radial-gradient(80% 60% at 85% 8%,#4a7c5924,#0000),radial-gradient(60% 50% at 10% 40%,#c4784a1a,#0000),radial-gradient(40% 30% at 50% 90%,#b4a58214,#0000),#f3efe6f2;flex:auto;min-height:0;overflow-y:auto}.statistics-content{padding:var(--sp-5) var(--sp-5) 0}.stats-dashboard{gap:var(--sp-5);max-width:1180px;display:grid}.stats-dashboard>*{animation:stat-fade-up .5s var(--ease) both}.stats-dashboard>:first-child{animation-delay:0s}.stats-dashboard>:nth-child(2){animation-delay:80ms}.stats-dashboard>:nth-child(3){animation-delay:.16s}.stats-dashboard>:nth-child(4){animation-delay:.22s}.stats-hero{gap:var(--sp-4);border-radius:calc(var(--r-xl) + 4px);background:radial-gradient(50% 70% at 5% 15%,#4a7c5929,#0000),radial-gradient(40% 50% at 95% 85%,#c4784a1f,#0000),radial-gradient(60% 40% at 60% 0,#b4a0780f,#0000),#f0ebe0f7;border:1px solid #5f4d341f;grid-template-columns:minmax(0,1.45fr) minmax(260px,.9fr);padding:clamp(24px,3vw,36px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff80,0 18px 44px #1f1b1414}.stats-hero:before{content:"";pointer-events:none;background:url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='0.6' fill='%235f4d34' fill-opacity='0.04'/%3E%3C/svg%3E");position:absolute;inset:0}.stats-kicker{margin:0 0 var(--sp-2);color:var(--brand-text);letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:700}.stats-hero h2{font-family:var(--font-display);color:var(--text-1);margin:0;font-size:clamp(32px,4vw,46px);font-weight:400;line-height:.95}.stats-lede{max-width:34rem;margin:var(--sp-3) 0 0;color:var(--text-2);font-size:15px;line-height:1.65}.stats-chip-row{gap:var(--sp-2);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.stats-chip{min-height:34px;color:var(--text-2);background:#f4efe6e6;border:1px solid #5f4d341f;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.stats-hero-rings{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch;display:grid}.stat-ring-card{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-lg);background:#efe9def0;border:1px solid #5f4d341f;display:grid}.stat-ring-label{color:var(--text-3);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700}.stat-ring{--stat-ring-angle:0%;--stat-ring-accent:var(--brand);aspect-ratio:1;background:conic-gradient(color-mix(in srgb, var(--stat-ring-accent) 85%, #fff) 0%, var(--stat-ring-accent) var(--stat-ring-angle), #d2cbbf99 0);border-radius:50%;place-items:center;width:min(140px,100%);margin:0 auto;display:grid;position:relative;box-shadow:0 4px 16px #1f1b140f}.stat-ring:after{content:"";background:#eee8ddfa;border-radius:50%;width:calc(100% - 34px);height:calc(100% - 34px);position:absolute;box-shadow:inset 0 0 0 1px #5f4d3414}.stat-ring-core{z-index:1;place-items:center;display:grid;position:relative}.stat-ring-value{color:var(--text-1);font-family:var(--font-display);font-size:28px;font-weight:400;line-height:1}.stat-ring-note{color:var(--text-2);text-align:center;margin:0;font-size:13px;line-height:1.5}.stat-overview-grid{gap:var(--sp-3);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.stat-card{--stat-card-accent:#a6947899;--stat-card-value-color:var(--text-1);--stat-card-title-color:var(--text-2);--stat-card-sub-color:var(--text-3);min-height:138px;padding:calc(var(--sp-4) + 8px) var(--sp-4) var(--sp-4);border-radius:var(--r-lg);justify-content:flex-end;gap:var(--sp-1);background:#eee8dcf2;border:1px solid #5f4d341f;flex-direction:column;grid-column:span 4;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 36px #1f1b140d}.stat-card:before{content:"";background:linear-gradient(90deg, var(--stat-card-accent), color-mix(in srgb, var(--stat-card-accent) 40%, transparent));border-radius:0 0 2px;height:4px;position:absolute;inset:0 0 auto}.stat-card-value{font-family:var(--font-display);color:var(--stat-card-value-color);font-size:34px;font-weight:400;line-height:1.1}.stat-card-title{color:var(--stat-card-title-color);text-transform:uppercase;letter-spacing:.03em;font-size:13px;font-weight:600}.stat-card-sub{color:var(--stat-card-sub-color);font-size:12px;line-height:1.45}.stat-card--brand{--stat-card-accent:#4a8c5f;--stat-card-value-color:#2d6e42;background:linear-gradient(#4a7c5914,#eee8dcf2);border-color:#4a8c5f33}.stat-card--accent{--stat-card-accent:#cc6c44;--stat-card-value-color:#b35a2e;background:linear-gradient(#cc6c4414,#eee8dcf2);border-color:#cc6c4433}.stat-card--ink{--stat-card-accent:#5a76a0;--stat-card-value-color:#4a6a96;background:linear-gradient(#5a76a014,#eee8dcf2);border-color:#5a76a033}.stat-card--earth{--stat-card-accent:#b49448;--stat-card-value-color:#8a7030;background:linear-gradient(#b4944814,#eee8dcf2);border-color:#b4944833}.stat-card--sage{--stat-card-accent:#6c9e78;--stat-card-value-color:#4e7e58;background:linear-gradient(#6c9e7814,#eee8dcf2);border-color:#6c9e7833}.stat-card--sky{--stat-card-accent:#5c90ce;--stat-card-value-color:#3d7ab8;background:linear-gradient(#5c90ce14,#eee8dcf2);border-color:#5c90ce33}.stat-layout{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.stat-section{padding:var(--sp-4);border-radius:var(--r-xl);background:#eee8dcf2;border:1px solid #5f4d341f;box-shadow:0 18px 36px #1f1b140d}.stat-section--wide{grid-column:1/-1}.stat-section-head{gap:var(--sp-2);margin-bottom:var(--sp-4);display:grid}.stat-section-kicker{color:var(--brand-text);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.stat-section-title{font-family:var(--font-display);color:var(--text-1);margin:0;font-size:22px;font-weight:400}.stat-section-note{color:var(--text-2);margin:0;font-size:14px;line-height:1.55}.stat-bars{flex-direction:column;gap:14px;display:flex}.stat-bar-row{align-items:center;gap:var(--sp-2);grid-template-columns:minmax(0,220px) 1fr auto;display:grid}.stat-bar-copy{gap:4px;min-width:0;display:grid}.stat-bar-label{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.stat-bar-detail{color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.stat-bar-track{background:#d0c9be9e;border-radius:999px;height:16px;overflow:hidden;box-shadow:inset 0 0 0 1px #5f4d340f}.stat-bar-fill{transform-origin:0;height:100%;animation:stat-bar-enter .5s var(--ease) both;border-radius:999px}.stat-bar-value{color:var(--text-1);text-align:right;font-size:13px;font-weight:600}.stat-split{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat-mini-section{gap:var(--sp-3);display:grid}.stat-mini-title{color:var(--text-1);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:14px;font-weight:700}.stat-story-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-story-card{gap:var(--sp-2);min-height:118px;padding:var(--sp-3);border-radius:var(--r-lg);background:#ede7dceb;border:1px solid #5f4d341f;display:grid}.stat-story-kicker{color:var(--text-3);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700}.stat-story-value{color:var(--text-1);font-family:var(--font-display);font-size:28px;font-weight:400;line-height:1}.stat-story-note{color:var(--text-2);font-size:13px;line-height:1.5}.stat-seasonality{gap:var(--sp-4);display:grid}.bloom-calendar{gap:var(--sp-2);grid-template-columns:repeat(12,1fr);align-items:stretch;min-height:200px;display:grid}.bloom-cell{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-1);border-radius:var(--r-md);background:#ece6dbe6;border:1px solid #5f4d3414;flex-direction:column;display:flex}.bloom-bar-wrap{align-items:flex-end;width:100%;height:110px;display:flex}.bloom-bar{background:linear-gradient(0deg, var(--brand), color-mix(in srgb, var(--brand) 60%, #a8d5b8));border-radius:var(--r-md) var(--r-md) 4px 4px;transform-origin:bottom;width:100%;min-height:2px;animation:bloom-grow .6s var(--ease) both}.bloom-cell:first-child .bloom-bar{animation-delay:50ms}.bloom-cell:nth-child(2) .bloom-bar{animation-delay:.1s}.bloom-cell:nth-child(3) .bloom-bar{animation-delay:.15s}.bloom-cell:nth-child(4) .bloom-bar{animation-delay:.2s}.bloom-cell:nth-child(5) .bloom-bar{animation-delay:.25s}.bloom-cell:nth-child(6) .bloom-bar{animation-delay:.3s}.bloom-cell:nth-child(7) .bloom-bar{animation-delay:.35s}.bloom-cell:nth-child(8) .bloom-bar{animation-delay:.4s}.bloom-cell:nth-child(9) .bloom-bar{animation-delay:.45s}.bloom-cell:nth-child(10) .bloom-bar{animation-delay:.5s}.bloom-cell:nth-child(11) .bloom-bar{animation-delay:.55s}.bloom-cell:nth-child(12) .bloom-bar{animation-delay:.6s}.bloom-current .bloom-bar{background:linear-gradient(0deg, var(--accent), color-mix(in srgb, var(--accent) 65%, #f0c8a8))}.bloom-peak{background:#c5d8c96b;box-shadow:inset 0 0 0 1px #4a7c591a}.bloom-label{color:var(--text-2);font-size:11px;font-weight:600}.bloom-current .bloom-label{color:var(--accent)}.bloom-count{color:var(--text-3);font-size:11px}.stat-empty{color:var(--text-3);font-size:13px;font-style:italic}[data-theme=dark] .statistics-scroll-region{background:radial-gradient(80% 60% at 85% 8%,#4a7c591a,#0000),radial-gradient(60% 50% at 10% 40%,#c4784a12,#0000),#13110efa}[data-theme=dark] .statistics-content{background:radial-gradient(circle at 100% 0,#4a7c592e,#0000 26%),radial-gradient(circle at 0 18%,#c4784a1f,#0000 22%),linear-gradient(#171918f5,#111312f5)}[data-theme=dark] .stats-hero,[data-theme=dark] .stat-section,[data-theme=dark] .stat-card,[data-theme=dark] .stat-ring-card,[data-theme=dark] .stat-story-card,[data-theme=dark] .bloom-cell{border-color:#f0e9dd14}[data-theme=dark] .stats-hero{background:radial-gradient(circle at 0 0,#4a7c593d,#0000 36%),radial-gradient(circle at 100% 100%,#c4784a2e,#0000 34%),linear-gradient(135deg,#212422fa,#141716f5)}[data-theme=dark] .stats-chip,[data-theme=dark] .stat-ring-card,[data-theme=dark] .stat-story-card,[data-theme=dark] .bloom-cell{background:#1f2221e0}[data-theme=dark] .stat-section{background:linear-gradient(#1d1f1efa,#161817f5)}[data-theme=dark] .stat-ring:after{background:#181a19f5}[data-theme=dark] .stat-bar-track{background:#454945db}[data-theme=dark] .stat-card{background:#1c1e1df2;border-color:#f0e9dd14}[data-theme=dark] .stat-card--brand{background:linear-gradient(#2e6b451f,#1c1e1df2)}[data-theme=dark] .stat-card--accent{background:linear-gradient(#c058301f,#1c1e1df2)}[data-theme=dark] .stat-card--ink{background:linear-gradient(#5a76a01f,#1c1e1df2)}[data-theme=dark] .stat-card--earth{background:linear-gradient(#b494481f,#1c1e1df2)}[data-theme=dark] .stat-card--sage{background:linear-gradient(#6c9e781f,#1c1e1df2)}[data-theme=dark] .stat-card--sky{background:linear-gradient(#5c90ce1f,#1c1e1df2)}[data-theme=dark] .stat-card-value{color:#f0ece4f2}[data-theme=dark] .stat-card-title{color:#c8c0b4c7}[data-theme=dark] .stat-card-sub{color:#aaa29699}[data-theme=dark] .stats-hero:before{opacity:.5}[data-theme=dark] .reports-section{background:linear-gradient(#1d1f1efa,#161817f5);border-color:#f0e9dd14}[data-theme=dark] .report-action-card{background:linear-gradient(#242624fa,#1a1c1af2);border-color:#f0e9dd14}[data-theme=dark] .report-action-card:hover:not(.is-disabled),[data-theme=dark] .report-action-card:focus-visible:not(.is-disabled){border-color:#4aaa6c6b}[data-theme=dark] .reports-yield-stat{background:#1f2221e0}[data-theme=dark] .reports-producer-row{background:#1f2221e0;border-color:#f0e9dd14}[data-theme=dark] .reports-producer-row:hover,[data-theme=dark] .reports-producer-row:focus-visible{border-color:#4aaa6c6b}@media (prefers-reduced-motion:reduce){.stats-dashboard>*,.bloom-bar,.stat-bar-fill{animation:none!important}}@media (width<=960px){.stats-hero{grid-template-columns:1fr}.stat-overview-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.stat-card{grid-column:span 3}.stat-story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.statistics-scroll-region{padding-bottom:var(--sp-2)}.statistics-content{padding:var(--sp-3)}.stats-hero{padding:var(--sp-4);gap:var(--sp-4);grid-template-columns:1fr}.stats-hero h2{font-size:30px}.stats-lede{font-size:14px}.stats-hero-rings,.stat-split,.stat-story-grid{grid-template-columns:1fr}.stat-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{grid-column:span 1;min-height:124px}.stat-layout{grid-template-columns:1fr}.stat-section{padding:var(--sp-3)}.stat-section-title{font-size:19px}.stat-bar-row{grid-template-columns:minmax(0,1fr);gap:8px}.stat-bar-value{text-align:left}.stat-bar-track{height:14px}.stat-card-value{font-size:26px}.stat-story-value{font-size:24px}.bloom-calendar{grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.bloom-bar-wrap{height:72px}.bloom-label{font-size:10px}}#toast-container{bottom:calc(24px + env(safe-area-inset-bottom));z-index:9999;gap:var(--sp-2);pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r-md);color:#fff;opacity:0;transition:opacity .26s var(--ease), transform .26s var(--ease);pointer-events:auto;text-align:center;max-width:400px;box-shadow:var(--shadow-md);padding:10px 22px;font-size:.875rem;font-weight:600;transform:translateY(12px)}.toast-visible{opacity:1;transform:translateY(0)}.toast-success{background:var(--brand)}.toast-error{background:var(--danger)}.elevation-editor{width:min(560px,94vw)}.elevation-editor-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.elevation-editor-header h3{margin-bottom:0}.elev-close-btn{color:var(--text-2);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:0 0;border:none;font-size:22px;line-height:1}.elev-close-btn:hover{color:var(--text-1);background:var(--bg-3)}.elevation-editor-scroll{border:1px solid var(--border-subtle);border-radius:var(--r-sm);max-height:min(420px,55vh);margin-bottom:var(--sp-3);overflow-y:auto}.elevation-editor-table{margin:0;font-size:13px}.elevation-editor-table th{z-index:1;position:sticky;top:0}.elev-override-input{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-2);text-align:right;width:80px;padding:4px 6px;font-size:13px}.elev-override-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-muted);outline:none}.elev-overridden{background:var(--brand-muted)}.elev-selected{outline:2px solid var(--brand);outline-offset:-2px}.elev-check-cell{text-align:center;width:28px;padding:4px!important}.elev-batch-bar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-3);border-radius:var(--r-sm);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.elev-batch-count{color:var(--text-2);white-space:nowrap;font-size:13px;font-weight:600}.elev-batch-input{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);text-align:right;width:120px;padding:4px 8px;font-size:13px}.elev-batch-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-muted);outline:none}.elev-batch-apply{background:var(--brand);color:var(--text-inv);padding:4px 12px;font-size:13px}.elev-batch-apply:hover{background:var(--brand-hover)}.elev-batch-clear{padding:4px 12px;font-size:13px}.elev-lidar-cell{text-align:right;font-variant-numeric:tabular-nums}.elev-map-container{border:1px solid var(--border-subtle);border-radius:var(--r-sm);margin-bottom:var(--sp-3);position:relative;overflow:hidden}.elev-map-container canvas{width:100%;height:auto;display:block}.elev-tooltip{white-space:nowrap;flex-direction:column;gap:1px;padding:4px 8px;line-height:1.3;display:flex}.elev-tooltip-name{font-weight:600}.elev-tooltip-val{opacity:.85;font-variant-numeric:tabular-nums;font-size:12px}.elev-edit-btn{min-width:0;padding:2px 8px;font-size:15px}.elev-save-btn{background:var(--brand);color:var(--text-inv)}.elev-save-btn:hover{background:var(--brand-hover)}[aria-busy=true]{opacity:.6;pointer-events:none}.adm-view{max-width:100%;overflow:hidden auto}.adm-layout{grid-template-columns:1fr;height:100%;display:grid}.adm-layout>*{min-width:0}.adm-sidebar{background:var(--bg-1);border-bottom:1px solid var(--border-subtle);padding:var(--sp-2) 0;flex-direction:column;min-width:0;max-width:100%;display:flex}.adm-sidebar-head{padding:0 var(--sp-4) var(--sp-2);border-bottom:none;margin-bottom:0}.adm-sidebar-title{font-family:var(--font-display);color:var(--text-1);letter-spacing:-.01em;font-size:20px;font-weight:400}.adm-nav{padding:0 var(--sp-3);box-sizing:border-box;overscroll-behavior-x:contain;flex-direction:row;gap:4px;width:100%;min-width:0;max-width:100%;display:flex;overflow-x:auto}.adm-nav-btn{align-items:center;gap:var(--sp-2);padding:10px var(--sp-3);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;transition:all .14s var(--ease);white-space:nowrap;background:0 0;border:none;flex:none;min-height:44px;font-size:12px;font-weight:500;display:flex}.adm-nav-btn:hover{background:var(--bg-2);color:var(--text-1)}.adm-nav-btn--active{background:var(--brand-muted);color:var(--brand-text);font-weight:600}.adm-nav-btn--active:hover{background:var(--brand-muted)}.adm-nav-icon{text-align:center;flex-shrink:0;width:22px;font-size:15px;display:none}.adm-main{padding:var(--sp-4);gap:var(--sp-5);box-sizing:border-box;flex-direction:column;min-width:0;max-width:100%;display:flex;overflow:hidden auto}.adm-section-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);flex-direction:column;display:flex}.adm-section-title{font-family:var(--font-display);color:var(--text-1);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:400}.adm-section-desc{color:var(--text-3);margin:2px 0 0;font-size:13px}.adm-card{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4);box-shadow:var(--shadow-sm);box-sizing:border-box;min-width:0;max-width:100%;overflow:hidden}.adm-card--form{padding:var(--sp-4);overflow:visible}.adm-card-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--sp-3);font-size:13px;font-weight:700}.adm-card-desc{color:var(--text-3);margin:0 0 var(--sp-4);font-size:13px;line-height:1.5}.adm-inv-link-box{margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--success-muted,#4a7c5914);border:1px solid var(--success,#4a7c59);border-radius:var(--r-sm)}.adm-inv-link-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.adm-inv-link-row{gap:var(--sp-2);margin-top:var(--sp-1);flex-direction:column;display:flex}.adm-inv-link-input{width:100%;font-family:var(--font-mono,monospace);box-sizing:border-box;font-size:12px}.adm-inv-link-hint{margin:var(--sp-2) 0 0;color:var(--text-3);font-size:12px}.adm-card-actions{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border-subtle)}.adm-form-row{align-items:stretch;gap:var(--sp-2);box-sizing:border-box;flex-flow:column wrap;max-width:100%;display:flex}.adm-form-row>*{min-width:0}.adm-input,.adm-select{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-2);min-height:44px;transition:border-color .14s var(--ease);box-sizing:border-box;min-width:0;padding:7px 11px;font-size:16px}.adm-input,.adm-input--sm,.adm-input--xs,.adm-select,.adm-select--sm{width:100%}.adm-input:focus,.adm-select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted);outline:none}.adm-check-label{align-items:center;gap:var(--sp-1);color:var(--text-2);white-space:normal;min-height:44px;padding:7px 0;font-size:13px;display:flex}.adm-check-label input[type=checkbox]{width:22px;height:22px;accent-color:var(--brand)}.adm-btn{justify-content:center;align-items:center;gap:var(--sp-1);border:1px solid var(--border);background:var(--bg-1);color:var(--text-1);border-radius:var(--r-sm);cursor:pointer;min-height:44px;transition:all .14s var(--ease);white-space:normal;box-sizing:border-box;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.adm-form-row>.adm-btn{width:100%}.adm-btn:hover{background:var(--bg-2);border-color:var(--text-3)}.adm-btn:disabled{opacity:.45;cursor:not-allowed}.adm-btn--sm{padding:4px 10px;font-size:12px}.adm-btn--primary{background:var(--brand);color:var(--text-inv);border-color:var(--brand)}.adm-btn--primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.adm-btn--danger{color:var(--danger);border-color:var(--danger);background:0 0}.adm-btn--danger:hover{background:var(--danger-muted)}.adm-btn--ghost{color:var(--text-2);background:0 0;border-color:#0000}.adm-btn--ghost:hover{background:var(--bg-2);color:var(--text-1)}.adm-btn-group{gap:var(--sp-2);flex-wrap:wrap;display:flex}.adm-plot-meaning-list{gap:var(--sp-2);margin-top:var(--sp-3);display:grid}.adm-plot-meaning-row{gap:var(--sp-2);grid-template-columns:minmax(90px,120px) minmax(150px,1fr) minmax(220px,1.3fr) auto;align-items:center;display:grid}.adm-plot-meaning-empty{margin:0}@media (width<=960px){.adm-plot-meaning-row{grid-template-columns:1fr}}.adm-table-wrap{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-sm);max-height:60vh;overflow:auto}.adm-table{border-collapse:collapse;width:100%;min-width:700px}.adm-table th,.adm-table td{border-bottom:1px solid var(--border-subtle);text-align:left;padding:9px 14px;font-size:13px}.adm-table th{background:var(--bg-2);color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;z-index:1;font-size:11px;font-weight:700;position:sticky;top:0}.adm-row{transition:background .1s var(--ease)}.adm-row:hover{background:var(--bg-2)}.adm-table--audit{min-width:900px}.adm-table select{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-2);padding:4px 8px;font-size:12px}.adm-cell-user{flex-direction:column;gap:1px;display:flex}.adm-username{color:var(--text-1);font-weight:600}.adm-meta{color:var(--text-3);font-size:11px}.adm-cell-date{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:12px}.adm-cell-mono{color:var(--text-3);letter-spacing:-.02em;font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:11px}.adm-cell-detail{text-overflow:ellipsis;white-space:nowrap;max-width:200px;color:var(--text-3);font-size:12px;overflow:hidden}.adm-cell-actions{flex-wrap:wrap;gap:4px;display:flex}.adm-empty{text-align:center;color:var(--text-3);font-style:italic;padding:var(--sp-6)!important}.adm-status-err{color:var(--danger);font-weight:600}.adm-method{background:var(--bg-3);border-radius:3px;padding:2px 6px;font-family:SF Mono,Cascadia Code,monospace;font-size:11px}.adm-badge{letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;display:inline-block}.adm-badge--green{color:var(--brand-text);background:#2e6b451f}.adm-badge--red{background:var(--danger-muted);color:var(--danger)}.adm-badge--amber{background:var(--accent-muted);color:var(--accent)}.adm-badge--muted{background:var(--bg-3);color:var(--text-3)}.adm-badge--blue{background:var(--blue-subtle,#dbeafe);color:var(--blue-text,#2563eb)}.adm-badge--purple{background:var(--purple-subtle,#f3e8ff);color:var(--purple-text,#7c3aed)}.adm-pagination{align-items:center;gap:var(--sp-3);row-gap:var(--sp-2);flex-wrap:wrap;display:flex}.adm-page-info{color:var(--text-3);font-variant-numeric:tabular-nums;flex:100%;font-size:12px}.adm-system-grid{gap:var(--sp-4);grid-template-columns:1fr;display:grid}.adm-dl{gap:var(--sp-1);grid-template-columns:1fr;font-size:13px;display:grid}.adm-dl dt{color:var(--text-3);font-weight:600}.adm-dl dd{color:var(--text-1);margin:0}.adm-list{color:var(--text-1);gap:var(--sp-2);margin:0;padding-left:18px;font-size:13px;display:grid}.adm-toggle-row{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.adm-toggle-label{color:var(--text-1);font-size:13px;font-weight:600}.adm-toggle{align-items:center;gap:var(--sp-2);cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.adm-toggle-track{background:var(--bg-3);border:1px solid var(--border);width:40px;height:22px;transition:all .2s var(--ease);border-radius:11px;display:block;position:relative}.adm-toggle--on .adm-toggle-track{background:var(--danger);border-color:var(--danger)}.adm-toggle-thumb{background:var(--bg-1);width:16px;height:16px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease);border-radius:50%;display:block;position:absolute;top:2px;left:2px}.adm-toggle--on .adm-toggle-thumb{transform:translate(18px)}.adm-toggle-text{color:var(--text-2);font-size:12px;font-weight:600}.adm-toggle--on .adm-toggle-text{color:var(--danger)}.adm-users-mobile{gap:var(--sp-3);flex-direction:column;display:flex}.adm-users-desktop{display:none}.adm-user-card{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4);gap:var(--sp-3);box-shadow:var(--shadow-sm);box-sizing:border-box;flex-direction:column;min-width:0;max-width:100%;display:flex}.adm-user-card-header{justify-content:flex-start;align-items:stretch;gap:var(--sp-3);flex-direction:column;display:flex}.adm-user-card-header>*{min-width:0}.adm-user-card-header .adm-select,.adm-user-card-header .adm-select--sm,.adm-user-card-header .adm-btn{width:100%}.adm-user-card-name{gap:var(--sp-1);flex-direction:column;min-width:0;display:flex}.adm-user-card-badges{gap:var(--sp-1);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.adm-user-card-meta{gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));display:grid}.adm-user-card-meta-item{padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border-radius:var(--r-sm);border:1px solid var(--border-subtle);flex-direction:column;gap:2px;min-width:0;display:flex}.adm-user-card-meta-item--full{grid-column:1/-1}.adm-user-card-meta-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-size:10px;font-weight:800}.adm-user-card-meta-value{color:var(--text-1);text-overflow:ellipsis;font-size:13px;overflow:hidden}.adm-user-card-actions{gap:var(--sp-1);flex-wrap:wrap;display:flex}.adm-user-card-actions .adm-btn{flex:140px;min-width:0}@media (width>=961px){.adm-users-mobile{display:none}.adm-users-desktop{display:block}.adm-layout{grid-template-columns:200px 1fr}.adm-sidebar{border-right:1px solid var(--border-subtle);padding:var(--sp-4) 0;border-bottom:none}.adm-sidebar-head{padding:0 var(--sp-4) var(--sp-4);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-3)}.adm-nav{padding:0 var(--sp-2);flex-direction:column;gap:2px;overflow-x:visible}.adm-nav-btn{padding:9px var(--sp-3);white-space:normal;text-align:left;flex:none;min-height:auto;font-size:13px}.adm-nav-icon{display:inline}.adm-main{padding:var(--sp-6)}.adm-section-header{gap:var(--sp-4);flex-direction:row}.adm-form-row{flex-direction:row;align-items:flex-end}.adm-input{width:180px}.adm-input--sm{width:140px}.adm-input--xs{width:90px}.adm-select,.adm-select--sm{width:120px}.adm-input,.adm-input--sm,.adm-select,.adm-select--sm{min-height:auto;font-size:13px}.adm-btn{white-space:nowrap;min-height:auto;padding:7px 14px}.adm-form-row>.adm-btn{width:auto}.adm-card{padding:var(--sp-5)}.adm-card--form{padding:var(--sp-4) var(--sp-5)}.adm-check-label{min-height:auto}.adm-check-label input[type=checkbox]{width:16px;height:16px}.adm-dl{gap:var(--sp-2) var(--sp-3);grid-template-columns:110px 1fr}.adm-dl dt{margin-top:0}.adm-system-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.adm-pagination{flex-wrap:nowrap}.adm-page-info{flex:none}.adm-toggle-row{flex-wrap:nowrap}.adm-user-card-header{flex-direction:row;justify-content:space-between;align-items:flex-start}.adm-user-card-header .adm-select,.adm-user-card-header .adm-select--sm,.adm-user-card-header .adm-btn{width:auto}.adm-user-card-meta{grid-template-columns:1fr 1fr}.adm-user-card-actions .adm-btn{flex:none}.adm-inv-link-row{flex-direction:row}.adm-inv-link-input{flex:1;width:auto}#adm-my-shademap-key{flex:1;max-width:400px}}.onboarding-overlay{z-index:9999;background:#141c1699;justify-content:center;align-items:flex-end;animation:.3s onb-fade-in;display:flex;position:fixed;inset:0}@media (width>=601px){.onboarding-overlay{align-items:center}}@keyframes onb-fade-in{0%{opacity:0}to{opacity:1}}.onboarding-card{background:var(--bg-1,#faf9f6);border-radius:var(--r-xl) var(--r-xl) 0 0;flex-direction:column;width:100%;max-height:92dvh;animation:.3s onb-card-in;display:flex;overflow-y:auto;box-shadow:0 -8px 40px #0003}.onboarding-card-header{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) 0;display:flex}.onboarding-card-language-label{color:var(--text-3,#888);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.onboarding-locale-switch{background:var(--bg-2,#f4f0e8);border-color:var(--border,#d0c8ba)}.onboarding-locale-switch .locale-switch-btn{color:var(--text-2,#6d6558)}.onboarding-locale-switch .locale-switch-btn.active{background:var(--brand,#4a7c59);color:var(--text-inv,#fff)}@media (width>=601px){.onboarding-card{border-radius:var(--r-xl);width:min(560px,92vw);max-height:85vh;box-shadow:0 24px 80px #00000040}}@keyframes onb-card-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.onboarding-progress{padding:var(--sp-3) var(--sp-4) 0;flex-shrink:0;align-items:center;gap:0;display:flex;overflow-x:auto}.onboarding-step-dot{background:var(--bg-3,#e8e6e0);width:26px;height:26px;color:var(--text-3,#888);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;transition:background .2s,color .2s;display:flex}.onboarding-step-dot.active{background:var(--brand,#4a7c59);color:var(--text-inv,#fff)}.onboarding-step-dot.done{background:var(--brand,#4a7c59);color:var(--text-inv,#fff);opacity:.7}.onboarding-step-line{background:var(--border,#ccc);flex:1;min-width:6px;height:2px}.onboarding-progress-bar{background:var(--border);height:4px;margin:var(--sp-2) var(--sp-4) 0;border-radius:2px;overflow:hidden}.onboarding-progress-fill{background:var(--brand);border-radius:2px;height:100%;transition:width .3s}.onboarding-progress-label{text-align:center;color:var(--text-3);padding:var(--sp-1) 0;letter-spacing:.02em;text-transform:uppercase;font-size:11px;font-weight:700}.onboarding-body{padding:var(--sp-4);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}@media (width>=601px){.onboarding-body{padding:var(--sp-5) var(--sp-6)}}.onboarding-body h2{margin:0 0 var(--sp-2);font-family:var(--font-display);color:var(--text-1,#2c2c2c);font-size:22px;font-weight:400;line-height:1.15}.onboarding-body h3{text-transform:uppercase;letter-spacing:.06em;color:var(--brand-text,#4a7c59);margin:var(--sp-4) 0 var(--sp-2);font-size:12px;font-weight:700}.onboarding-body p{margin:0 0 var(--sp-3);color:var(--text-2,#666);font-size:14px;line-height:1.55}.onboarding-nav{padding:var(--sp-3) var(--sp-4) calc(max(var(--sp-4), env(safe-area-inset-bottom)));border-top:1px solid var(--border,#e0ddd5);justify-content:space-between;align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.onb-nav-left,.onb-nav-right{align-items:center;gap:var(--sp-2);display:flex}.onb-nav-right{margin-left:auto}.onb-dismiss,.onb-back,.onb-next,.onb-finish{border-radius:var(--r-sm);cursor:pointer;border:none;min-height:44px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .15s,opacity .15s}.onb-dismiss,.onb-back{background:var(--bg-3,#e8e6e0);color:var(--text-1,#333)}.onb-next,.onb-finish{background:var(--brand,#4a7c59);color:var(--text-inv,#fff)}.onb-next:hover,.onb-finish:hover{background:var(--brand-hover,#3d6b4a)}.onb-dismiss:hover,.onb-back:hover{background:var(--bg-inset,#d0cdc5)}.onb-dismiss:disabled,.onb-finish:disabled,.onb-next:disabled{opacity:.5;cursor:not-allowed}.onb-field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.onb-field span{color:var(--text-3,#888);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.onb-field input,.onb-field select{border:1px solid var(--border,#ccc);border-radius:var(--r-sm);background:var(--bg-2,#fff);min-height:44px;color:var(--text-1,#333);padding:10px 12px;font-size:16px}.onb-field input:focus,.onb-field select:focus{border-color:var(--brand,#4a7c59);box-shadow:0 0 0 3px var(--brand-muted,#4a7c5926);outline:none}.onb-hint{font-style:italic;color:var(--text-3,#aaa)!important;font-size:12px!important}.onb-error{color:var(--danger,#c0392b);font-size:13px;font-weight:600}.onb-check{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);cursor:pointer;min-height:44px;font-size:14px;display:flex}.onb-check input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand,#4a7c59);flex-shrink:0}.onb-check input[type=radio]{width:18px;height:18px;accent-color:var(--brand,#4a7c59);flex-shrink:0}.onb-dims{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.onb-dims-x{color:var(--text-3,#888);padding-bottom:12px;font-size:18px}.onb-latlon{gap:var(--sp-3);margin-bottom:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.onb-geo-btn{background:var(--bg-3,#e8e6e0);border:1px solid var(--border,#ccc);border-radius:var(--r-sm);cursor:pointer;min-height:44px;margin-bottom:var(--sp-3);padding:10px 16px;font-size:14px;font-weight:600;transition:background .15s}.onb-geo-btn:hover{background:var(--bg-inset,#d5d2ca)}.onb-house-fields{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}@media (width>=601px){.onb-house-fields{grid-template-columns:repeat(4,1fr)}}.onb-grid-preview{margin:var(--sp-3) 0;justify-content:center;display:flex;overflow-x:auto}.onb-svg{border:1px solid var(--border,#ccc);border-radius:var(--r-sm);max-width:100%;height:auto}.onb-zone-item{align-items:center;gap:var(--sp-2);padding:10px var(--sp-3);border:1px solid var(--border,#e0ddd5);border-radius:var(--r-sm);margin-bottom:var(--sp-2);min-height:44px;font-size:13px;display:flex}.onb-zone-swatch{border-radius:4px;flex-shrink:0;width:16px;height:16px}.onb-zone-range{color:var(--text-3,#999);text-align:right;flex:1;font-size:11px}.onb-zone-remove{color:var(--danger,#c0392b);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:4px 8px;font-size:18px;display:flex}.onb-zone-add{margin-top:var(--sp-3)}.onb-zone-add summary{cursor:pointer;color:var(--brand-text,#4a7c59);align-items:center;min-height:44px;font-size:14px;font-weight:600;display:flex}.onb-zone-form{margin-top:var(--sp-2)}.onb-zone-form-row{gap:var(--sp-2);margin-bottom:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}@media (width<=360px){.onb-zone-form-row{grid-template-columns:1fr}}@media (width>=601px){.onb-zone-form-row{grid-template-columns:repeat(3,1fr)}.onb-zone-form-row:last-of-type{grid-template-columns:repeat(4,1fr)}}.onb-zone-form-row .onb-field{min-width:0}#onb-zone-add-btn{background:var(--brand,#4a7c59);min-height:44px;color:var(--text-inv,#fff);border-radius:var(--r-sm);cursor:pointer;border:none;width:100%;padding:10px 20px;font-size:14px;font-weight:600}@media (width>=601px){#onb-zone-add-btn{width:auto}}.onb-section{margin-bottom:var(--sp-3);border:1px solid var(--border,#e0ddd5);border-radius:var(--r-md);padding:var(--sp-3)}.onb-section summary{cursor:pointer;color:var(--text-1,#333);align-items:center;min-height:44px;font-size:14px;font-weight:600;display:flex}.onb-section .onb-hint{margin-top:var(--sp-2)}.onb-section a{color:var(--brand-text,#4a7c59)}.onb-section input[type=file]{margin-top:var(--sp-2);font-size:14px}.onb-summary{gap:var(--sp-2);margin:var(--sp-3) 0;flex-direction:column;display:flex}.onb-summary-item{justify-content:space-between;gap:var(--sp-3);padding:10px var(--sp-3);background:var(--bg-2,#f4f3ef);border-radius:var(--r-sm);font-size:14px;display:flex}.onb-summary-label{color:var(--text-3,#666);flex-shrink:0;font-weight:600}.onb-summary--compact{margin-top:var(--sp-3)}.onb-validation{border-radius:var(--r-sm);margin:var(--sp-3) 0;padding:12px 14px;font-size:13px}.onb-validation strong{margin-bottom:6px;display:block}.onb-validation ul{margin:0;padding-left:18px}.onb-validation li+li{margin-top:4px}.onb-validation--warning{background:color-mix(in srgb, var(--color-earth-2,#6d5a43) 14%, transparent);border:1px solid color-mix(in srgb, var(--color-earth-2,#6d5a43) 30%, transparent);color:var(--text-1,#2f281f)}.onb-validation--error{background:color-mix(in srgb, var(--color-red-soil,#7d3f2f) 14%, transparent);border:1px solid color-mix(in srgb, var(--color-red-soil,#7d3f2f) 34%, transparent);color:var(--text-1,#2f281f)}.onb-intro h2{font-size:24px}.onb-intro-features{gap:var(--sp-2);margin-bottom:var(--sp-2);flex-direction:column;display:flex}.onb-intro-feature{padding:var(--sp-3);background:var(--bg-2,#f4f3ef);border-radius:var(--r-md);color:var(--text-2,#333);font-size:13px;line-height:1.55}.onb-intro-feature strong{color:var(--text-1,#2c2c2c);margin-bottom:2px;font-size:14px;display:block}.onb-intro-nots{margin:var(--sp-2) 0 var(--sp-3);color:var(--text-3,#666);padding-left:20px;font-size:13px;line-height:1.7;list-style:"— "}.onb-intro-sentence{padding:var(--sp-3) var(--sp-4);background:var(--brand-muted,#4a7c590f);border-left:3px solid var(--brand,#4a7c59);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:var(--sp-3) 0;color:var(--text-1,#333);font-size:14px;line-height:1.5}.onb-intro-sentence p{margin:0!important;font-style:normal!important}.onb-welcome h2{font-size:22px}.harvest-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.harvest-card:hover{box-shadow:0 2px 8px #0000000f}.harvest-card-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.harvest-card-icon{flex-shrink:0;font-size:1.1rem}.harvest-card-quantity{color:var(--text-1);font-size:1rem;font-weight:700}.harvest-card-unit{color:var(--text-2);font-size:.85rem}.harvest-card-date{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:.8rem}.harvest-quality-chip{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-sm);padding:1px 6px;font-size:.7rem;font-weight:700}.harvest-quality-chip.quality-excellent{background:color-mix(in srgb, var(--brand) 12%, transparent);color:var(--brand)}.harvest-quality-chip.quality-good{background:var(--bg-2);color:var(--text-2)}.harvest-quality-chip.quality-fair{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.harvest-quality-chip.quality-poor{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.harvest-card-notes{color:var(--text-2);margin-bottom:var(--sp-2);font-size:.85rem;line-height:1.45}.harvest-card-tags{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.harvest-card-actions{gap:var(--sp-1);justify-content:flex-end;display:flex}.harvest-action-btn{padding:2px var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.75rem}.harvest-action-btn:hover{background:var(--bg-2)}.harvest-action-delete{color:var(--danger);border-color:var(--danger)}.harvest-filters{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.harvest-empty{text-align:center;padding:var(--sp-8) var(--sp-4)}.harvest-summary-panel{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-4)}.harvest-summary-section{margin-bottom:var(--sp-3)}.harvest-summary-section-title{margin-bottom:var(--sp-2);color:var(--text-1);font-size:.85rem;font-weight:600}.harvest-summary-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:.85rem;display:flex}.harvest-summary-label{color:var(--text-2);flex:1}.harvest-summary-value{color:var(--text-1);font-weight:600}.harvest-summary-bar{background:var(--bg-3);border-radius:3px;flex:1;max-width:120px;height:6px;overflow:hidden}.harvest-summary-bar-fill{background:var(--brand);border-radius:3px;height:100%}.procurement-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.procurement-card:hover{box-shadow:0 2px 8px #0000000f}.procurement-card.status-received{opacity:.6}.procurement-card.status-cancelled{opacity:.5}.procurement-card-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.procurement-card-icon{flex-shrink:0;font-size:1.1rem}.procurement-card-label{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden}.procurement-status-chip{border-radius:var(--r-sm);padding:1px 6px;font-size:.7rem;font-weight:600}.procurement-status-chip.status-wanted{color:#4a6d8c;background:#6b8bb31f}.procurement-status-chip.status-ordered{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.procurement-status-chip.status-shipped,.procurement-status-chip.status-received{background:color-mix(in srgb, var(--brand) 12%, transparent);color:var(--brand)}.procurement-status-chip.status-cancelled{background:var(--bg-2);color:var(--text-3)}.procurement-card-meta{gap:var(--sp-2);margin-top:var(--sp-2);margin-bottom:var(--sp-2);color:var(--text-2);flex-wrap:wrap;font-size:.8rem;display:flex}.procurement-card-vendor{color:var(--text-2);margin-bottom:var(--sp-1);font-size:.8rem}.procurement-card-cost{color:var(--text-1);font-weight:600}.procurement-card-dates{color:var(--text-3);margin-bottom:var(--sp-2);font-size:.78rem}.procurement-card-notes{color:var(--text-2);margin-bottom:var(--sp-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.45;display:-webkit-box;overflow:hidden}.procurement-card-actions{gap:var(--sp-1);flex-wrap:wrap;justify-content:flex-end;display:flex}.procurement-action-btn{padding:2px var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.75rem}.procurement-action-btn:hover{background:var(--bg-2)}.procurement-action-btn.procurement-action-transition{color:var(--brand);border-color:var(--brand)}.procurement-action-btn.procurement-action-delete{color:var(--danger);border-color:var(--danger)}.procurement-filters{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.procurement-empty{text-align:center;padding:var(--sp-8) var(--sp-4)}.saved-views-shell{flex-shrink:0;position:relative}.saved-views-btn{padding:var(--sp-2) var(--sp-3);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;white-space:nowrap;min-height:44px;font-size:.8rem}.saved-views-btn:hover{background:var(--bg-2)}.saved-views-dropdown{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);width:280px;max-height:400px;box-shadow:var(--shadow-lg);z-index:100;margin-top:var(--sp-1);position:absolute;top:100%;right:0;overflow-y:auto}.saved-views-section{padding:var(--sp-2) var(--sp-3)}.saved-views-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:var(--sp-1);font-size:.75rem;font-weight:600}.saved-views-item{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);color:var(--text-1);cursor:pointer;text-align:left;border-radius:var(--r-sm);background:0 0;border:none;font-size:.85rem;display:flex}.saved-views-item:hover{background:var(--bg-2)}.saved-views-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.saved-views-item-type{color:var(--text-3);text-transform:uppercase;flex-shrink:0;font-size:.7rem}.saved-views-item-delete{color:var(--text-3);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:.8rem}.saved-views-item-delete:hover{color:var(--danger)}.saved-views-divider{border:none;border-top:1px solid var(--border-subtle);margin:0}.saved-views-save-btn{width:calc(100% - var(--sp-6));margin:var(--sp-2) var(--sp-3);padding:var(--sp-2);border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--brand);cursor:pointer;text-align:center;background:0 0;font-size:.8rem;display:block}.saved-views-save-btn:hover{background:var(--bg-2)}.saved-views-empty{padding:var(--sp-3);text-align:center;color:var(--text-3);font-size:.8rem}@media (width<=600px){.saved-views-dropdown{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:60vh;position:fixed;inset:auto 0 0}}.mobile-fab{display:none}@media (width<=600px){.mobile-fab{bottom:calc(60px + env(safe-area-inset-bottom,0px) + 12px);background:var(--brand);width:56px;height:56px;color:var(--text-inv);cursor:pointer;z-index:500;transition:transform .2s var(--ease), background .2s var(--ease);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:300;display:flex;position:fixed;right:16px;box-shadow:0 4px 12px #0003}.mobile-fab:active{transform:scale(.92)}.mobile-fab.open{background:var(--text-2);transform:rotate(45deg)}}.mobile-fab-backdrop{display:none}.mobile-fab-backdrop[aria-hidden=false]{z-index:499;background:#0006;display:block;position:fixed;inset:0}.mobile-quick-actions{display:none}@media (width<=600px){.mobile-quick-actions[aria-hidden=false]{background:var(--bg-1);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-4);padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom,0px));z-index:501;max-height:70vh;animation:quickActionSlideUp .2s var(--ease);display:block;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -4px 20px #00000026}}@keyframes quickActionSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.mobile-quick-actions[aria-hidden=false]{animation:none}}.mobile-quick-actions-handle{background:var(--bg-3);width:36px;height:4px;margin:0 auto var(--sp-3);border-radius:2px}.quick-action-title{color:var(--text-1);margin-bottom:var(--sp-3);font-size:1rem;font-weight:600}.quick-action-grid{gap:var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.quick-action-btn{align-items:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-2);border:1px solid var(--bg-3);border-radius:var(--r-md);background:var(--bg-1);color:var(--text-1);cursor:pointer;min-height:72px;transition:background .1s var(--ease);flex-direction:column;font-size:.8rem;display:flex}.quick-action-btn:active{background:var(--bg-2)}.quick-action-icon{font-size:1.5rem}.quick-action-label{text-align:center;color:var(--text-2);font-size:.75rem;line-height:1.3}.quick-action-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.quick-action-back{cursor:pointer;color:var(--text-2);padding:var(--sp-1);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1.2rem;display:flex}.quick-action-task-list{gap:var(--sp-1);flex-direction:column;display:flex}.quick-action-task-item{width:100%;padding:var(--sp-3);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-1);text-align:left;cursor:pointer;min-height:44px;font-size:.85rem;display:block}.quick-action-task-item:active{background:var(--bg-2)}.quick-action-empty{text-align:center;padding:var(--sp-4);color:var(--text-3);font-size:.85rem}.reports-dashboard{margin-bottom:var(--sp-4)}.reports-dashboard:empty{display:none}.reports-dashboard-shell{gap:var(--sp-4);max-width:1180px;padding:0 var(--sp-5) var(--sp-5);display:grid}.reports-dashboard-header{justify-content:space-between;align-items:end;gap:var(--sp-3);display:flex}.reports-dashboard-title{color:var(--text-1);font-family:var(--font-display);margin:0;font-size:clamp(28px,3vw,38px);font-weight:400;line-height:.98}.reports-dashboard-subtitle{margin:var(--sp-2) 0 0;color:var(--text-2);font-size:14px;line-height:1.6}.reports-dashboard-controls{justify-content:flex-end;display:flex}.reports-zone-filter{min-width:min(280px,100%);color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;gap:6px;font-size:12px;font-weight:700;display:grid}.reports-grid{gap:var(--sp-3);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.reports-section{gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-xl);background:var(--bg-1);box-shadow:var(--shadow-md);grid-column:span 6;display:grid}.reports-section-header{gap:var(--sp-1);display:grid}.reports-kicker{color:var(--text-3);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.reports-section-title{color:var(--text-1);margin:0;font-size:20px;font-weight:600;line-height:1.15}.reports-section-subtitle{color:var(--text-2);margin:0;font-size:14px;line-height:1.6}.reports-actions-grid,.reports-dual-grid{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.report-action-card{gap:var(--sp-1);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-2);color:inherit;text-align:left;cursor:pointer;transition:transform .14s var(--ease), border-color .14s var(--ease), box-shadow .14s var(--ease);display:grid}.report-action-card:hover:not(.is-disabled),.report-action-card:focus-visible:not(.is-disabled){border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-1px)}.report-action-card.is-disabled,.report-action-card:disabled{cursor:default;opacity:.68}.report-action-count{color:var(--brand);font-family:var(--font-display);font-size:30px;font-weight:400;line-height:1}.report-action-title{color:var(--text-1);font-size:15px;font-weight:600}.report-action-detail{color:var(--text-2);font-size:13px;line-height:1.5}.report-action-link,.report-inline-link{color:var(--brand-text);cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:700;display:inline-flex}.report-inline-link:disabled{color:var(--text-3);cursor:default}.reports-yield-summary{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.reports-yield-stat{padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-0);color:var(--text-2);font-size:13px;line-height:1.5}.reports-producer-list{gap:var(--sp-2);display:grid}.reports-producer-row{padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-0);color:inherit;text-align:left;cursor:pointer;gap:4px;display:grid}.reports-producer-row:hover,.reports-producer-row:focus-visible{border-color:var(--brand)}.reports-producer-name{color:var(--text-1);font-size:14px;font-weight:600}.reports-producer-meta,.reports-empty-note{color:var(--text-2);font-size:12px;line-height:1.5}.planner-dashboard{width:min(100%,1180px);margin:0 auto var(--sp-4);padding:0 var(--sp-5) var(--sp-5);box-sizing:border-box}.planner-dashboard:empty{display:none}.planner-section{margin-bottom:var(--sp-4)}.planner-section-title{color:var(--text-1);margin-bottom:var(--sp-2);align-items:center;gap:var(--sp-2);font-size:.95rem;font-weight:600;display:flex}.planner-stats-grid{gap:var(--sp-2);margin-bottom:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.planner-stat-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);text-align:center}.planner-stat-value{color:var(--brand);font-size:1.3rem;font-weight:700}.planner-stat-label{color:var(--text-3);margin-top:2px;font-size:.75rem}.planner-bloom-strip{margin-bottom:var(--sp-3);gap:2px;display:flex}.planner-bloom-cell{min-width:0;padding:var(--sp-1) 0;text-align:center;border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-3);flex:1;font-size:.65rem;font-weight:600}.planner-bloom-cell.covered{background:color-mix(in srgb, var(--brand) 20%, transparent);color:var(--brand)}.planner-bloom-cell.gap{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.planner-goals{gap:var(--sp-1);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.planner-goal-btn{padding:var(--sp-2) var(--sp-3);border:1px solid var(--bg-3);border-radius:var(--r-sm);background:var(--bg-1);color:var(--text-2);cursor:pointer;min-height:44px;font-size:.8rem}.planner-goal-btn.active{background:var(--brand);color:var(--text-inv);border-color:var(--brand)}.planner-plot-group{margin-bottom:var(--sp-3)}.planner-plot-header{color:var(--text-1);margin-bottom:var(--sp-2);align-items:center;gap:var(--sp-2);font-size:.85rem;font-weight:600;display:flex}.planner-plot-zone{border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);padding:1px 6px;font-size:.7rem;font-weight:600}.planner-suggestion-card{background:var(--bg-1);border:1px solid var(--bg-3);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2);transition:box-shadow .14s var(--ease)}.planner-suggestion-card:hover{box-shadow:0 2px 8px #0000000f}.planner-suggestion-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.planner-suggestion-name{color:var(--brand);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.planner-suggestion-name:hover{text-decoration:underline}.planner-suggestion-latin{color:var(--text-3);margin-bottom:var(--sp-1);font-size:.8rem;font-style:italic}.planner-score-badge{border-radius:var(--r-sm);background:color-mix(in srgb, var(--brand) 12%, transparent);color:var(--brand);white-space:nowrap;margin-left:auto;padding:2px 8px;font-size:.8rem;font-weight:700}.planner-reason-tags{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.planner-reason-tag{padding:2px var(--sp-2);background:color-mix(in srgb, var(--brand) 8%, transparent);color:var(--brand-text);border-radius:999px;font-size:.7rem;font-weight:500;line-height:1.4;display:inline-block}.planner-suggestion-meta{gap:var(--sp-2);color:var(--text-3);flex-wrap:wrap;font-size:.78rem;display:flex}.planner-no-suggestions{text-align:center;padding:var(--sp-4);color:var(--text-3);font-size:.85rem}.planner-category-list{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.planner-category-chip{padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);font-size:.78rem}.planner-category-chip strong{color:var(--text-1)}.planner-header-section{margin-bottom:var(--sp-3)}.workflow-section{margin-top:var(--sp-6)}.workflow-card{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4);gap:var(--sp-3);margin-top:var(--sp-3);flex-direction:column;display:flex}.workflow-card-title{color:var(--text-1);font-size:1rem}.workflow-card-meta{color:var(--text-3);font-size:.8rem}.workflow-checklist{gap:var(--sp-2);flex-direction:column;display:flex}.workflow-step{align-items:center;gap:var(--sp-2);color:var(--text-2);cursor:pointer;font-size:.85rem;display:flex}.workflow-step input[type=checkbox]{accent-color:var(--brand)}@media (width<=600px){.reports-dashboard-shell,.planner-dashboard{padding:0 var(--sp-4) var(--sp-4)}.reports-dashboard-header{flex-direction:column;align-items:stretch}.reports-section{grid-column:span 12}.reports-actions-grid,.reports-dual-grid,.reports-yield-summary{grid-template-columns:1fr}.planner-stats-grid{grid-template-columns:repeat(3,1fr)}.planner-bloom-cell{padding:2px 0;font-size:.55rem}.plants-sub-header,.insights-sub-header{flex-direction:column;align-items:stretch}.plants-mode-groups{gap:var(--sp-1)}.plants-mode-toggle,.insights-mode-toggle{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:2px}.plants-mode-toggle::-webkit-scrollbar{display:none}.insights-mode-toggle::-webkit-scrollbar{display:none}.plants-mode-toggle [role=tab],.plants-mode-toggle button,.insights-mode-toggle button{padding:var(--sp-1) var(--sp-2);white-space:nowrap;flex-shrink:0;font-size:.72rem}.journal-action-btn,.task-action-btn,.issue-action-btn,.harvest-action-btn,.procurement-action-btn,.inventory-action-btn,.weather-alert-dismiss{min-height:44px;padding:var(--sp-2) var(--sp-3);font-size:.8rem}}.export-bar{gap:var(--sp-2);padding:var(--sp-2) 0;align-items:center;display:flex}@media print{.app-header,.mobile-tab-bar,.sidebar,.export-bar,.fab-container,.offline-indicator,.toast-container,button:not(.print-visible),.quick-action-sheet{display:none!important}.app-shell{display:block!important}.main-content{max-width:100%!important;padding:0!important}body{color:#000!important;background:#fff!important;font-size:12pt!important}.data-table{border-collapse:collapse!important;font-size:10pt!important}.data-table th,.data-table td{border:1px solid #333!important;padding:4px 8px!important}.card{break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important}}.plant-search-modal{gap:var(--sp-3);flex-direction:column;width:min(500px,92vw);display:flex}.plant-search-input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--r-md);width:100%;padding:var(--sp-3) var(--sp-4);background:var(--bg-2);font-size:15px;font-family:var(--font);min-height:48px;transition:border-color .16s var(--ease), box-shadow .16s var(--ease)}.plant-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-muted);outline:none}.plant-search-input::placeholder{color:var(--text-3)}.plant-search-section{flex-direction:column;display:flex}.plant-search-section-heading{margin:0 0 var(--sp-2);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:0;font-size:11px;font-weight:700}.plant-search-result{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);transition:background .12s var(--ease);display:flex}.plant-search-result:hover{background:var(--bg-2)}.plant-search-result-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.plant-search-result-info strong{color:var(--text-1);font-size:14px}.plant-search-result-info em{color:var(--text-2);font-size:13px}.plant-search-result-meta{align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:2px;display:flex}.plant-search-qty{color:var(--text-3);font-size:12px}.plant-search-plots{color:var(--text-3);font-size:12px;font-weight:500}.plant-search-result-actions{align-items:center;gap:var(--sp-1);flex-shrink:0;padding-top:2px;display:flex}.inline-plot-picker{gap:var(--sp-1);padding:var(--sp-2) 0;margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.inline-plot-picker .picker-sep{border:none;border-top:1px solid var(--border-subtle);width:100%;margin:var(--sp-1) 0}.plant-search-catalog-link-area{padding:var(--sp-1) 0;text-align:center}.plant-search-catalog-link-area .btn-link{font-size:13px}.plant-search-empty{text-align:center;padding:var(--sp-4) var(--sp-2)}.plant-search-empty p{margin:0 0 var(--sp-3);color:var(--text-3);font-size:14px}.plant-search-footer{align-items:center;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);display:flex}.plant-search-not-found{color:var(--text-3);font-size:13px}.plant-search-footer .btn-link{font-size:13px}@media (width<=600px){.plant-search-modal{width:100%;max-width:100%}}.offline-indicator-wrapper{top:var(--sp-2);right:var(--sp-2);z-index:9999;position:fixed}.offline-indicator{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);white-space:nowrap;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex}.offline-indicator--offline{background:var(--bg-danger,#dc3545);color:#fff}.offline-indicator--syncing{background:var(--bg-warning,#f0ad4e);color:#000}.offline-indicator-count{font-weight:400}.offline-sync-btn{margin-left:var(--sp-1);padding:2px var(--sp-1);border-radius:var(--r-sm);color:inherit;cursor:pointer;background:0 0;border:1px solid;font-size:.7rem}.offline-sync-btn:hover{opacity:.8}.house--clickable{cursor:pointer}.house--clickable:hover{outline:2px solid var(--brand);outline-offset:-2px}.indoor-panel{width:90vw;max-width:700px;max-height:80vh;overflow-y:auto}.indoor-panel-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.indoor-panel-header h2{margin:0}.indoor-panel-content{min-height:200px}.indoor-header{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.indoor-search{flex:1;min-width:150px}.indoor-sort{min-width:100px}.indoor-room-group{margin-bottom:var(--sp-3)}.indoor-room-group>summary{cursor:pointer;padding:var(--sp-2);background:var(--bg-1);border-radius:var(--radius);font-weight:600}.indoor-empty{color:var(--text-2);text-align:center;padding:var(--sp-6)}.indoor-card-list{gap:var(--sp-2);padding:var(--sp-2) 0;flex-direction:column;display:flex}.indoor-card-wrapper{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.indoor-card-wrapper .plant-card{border:none;margin:0}.indoor-room-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--bg-1);border-top:1px solid var(--border);font-size:.85rem;display:flex}.indoor-room-label{color:var(--text-2)}.indoor-room-edit{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);background:var(--bg-1);border-top:1px solid var(--border);display:flex}.indoor-room-edit .indoor-room-input{flex:1;margin:0}.indoor-form-actions{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.empty-state{padding:var(--sp-8) var(--sp-4);text-align:center;flex-direction:column;align-items:center;display:flex}.empty-state__icon{margin-bottom:var(--sp-3);opacity:.7;font-size:48px;line-height:1}.empty-state__headline{font-family:var(--font-display);color:var(--text-1);margin-bottom:var(--sp-1);font-size:18px}.empty-state__hint{color:var(--text-3);max-width:280px;margin-bottom:var(--sp-3);font-size:13px;line-height:1.5}.empty-state__cta{min-height:44px;padding:var(--sp-2) var(--sp-5)}.chip-input{margin-bottom:var(--sp-2)}.chip-input__label{color:var(--text-2);margin-bottom:var(--sp-1);font-size:13px;font-weight:600;display:block}.chip-input__chips{gap:var(--sp-1);margin-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.chip-input__chip{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-sm);min-height:44px;color:var(--text-1);font-size:13px;display:inline-flex}.chip-input__chip-label{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.chip-input__chip-remove{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:0;font-size:16px;transition:background .12s;display:flex}.chip-input__chip-remove:hover{background:var(--bg-3);color:var(--text-1)}.chip-input__input-wrapper{position:relative}.chip-input__field{width:100%;padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-1);min-height:44px;color:var(--text-1);font-size:1rem}.chip-input__field:focus{border-color:var(--brand);outline:none}.chip-input__dropdown{z-index:200;background:var(--bg-1);border:1px solid var(--border);border-radius:0 0 var(--r-sm) var(--r-sm);box-shadow:var(--shadow-md);border-top:none;max-height:264px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.chip-input__option{width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);text-align:left;color:var(--text-1);cursor:pointer;background:0 0;border:none;font-size:14px;transition:background 80ms;display:block}.chip-input__option:hover,.chip-input__option.focused{background:var(--bg-2)}.modal-form-actions{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.modal-form-actions .btn-primary,.modal-form-actions .btn-secondary{text-align:center;flex:1}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.modal-field-label{color:var(--text-2);margin-bottom:var(--sp-1);font-size:13px;font-weight:600;display:block}.identify-photo-preview{border-radius:var(--radius,8px);object-fit:contain;max-width:100%;max-height:200px;margin-block:var(--sp-2)}.organ-select{width:100%;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius,6px);border:1px solid var(--border);background:var(--bg-1);color:var(--text-1);font-size:1rem}.identify-loading{text-align:center;padding:var(--sp-4);color:var(--text-2)}.identify-loading:before{content:"";width:28px;height:28px;margin:0 auto var(--sp-2);border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:.8s linear infinite ux-spin;display:block}@keyframes ux-spin{to{transform:rotate(360deg)}}.identify-error,.identify-empty,.diagnose-healthy{text-align:center;padding:var(--sp-3);color:var(--text-2)}.diagnose-context{margin-block-end:var(--sp-2);font-weight:600}.candidate-list{gap:var(--sp-2);flex-direction:column;display:flex}.candidate-card{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius,8px);background:var(--bg-1)}.candidate-card__name{font-size:1rem;font-weight:600}.candidate-card__latin{color:var(--text-2);font-size:.875rem;font-style:italic}.candidate-card__family{color:var(--text-2);font-size:.8125rem}.confidence-bar{background:var(--border);height:6px;margin-block:var(--sp-1);border-radius:3px;overflow:hidden}.confidence-bar__fill{border-radius:3px;height:100%;transition:width .3s}.confidence-bar__fill--high{background:var(--ok,#2e7d32)}.confidence-bar__fill--medium{background:var(--warn,#ed6c02)}.confidence-bar__fill--low{background:var(--err,#d32f2f)}.confidence-label{margin-top:var(--sp-1);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.source-badge{border-radius:var(--radius,4px);text-transform:uppercase;letter-spacing:.02em;padding:1px 6px;font-size:.6875rem;font-weight:600;display:inline-block}.source-badge--plantnet{color:#2d6a2d;background:#2d6a2d1f}.source-badge--claude{color:#6b5ce7;background:#6b5ce71f}.diagnosis-card{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius,8px);background:var(--bg-1);margin-block-end:var(--sp-2)}.diagnosis-card__header{align-items:center;gap:var(--sp-1);flex-wrap:wrap;margin-block-end:var(--sp-1);display:flex}.confidence-badge{border-radius:var(--radius,4px);text-transform:uppercase;padding:2px 8px;font-size:.6875rem;font-weight:700}.confidence-badge--high{color:var(--ok,#2e7d32);background:#2e7d3226}.confidence-badge--medium{color:var(--warn,#ed6c02);background:#ed6c0226}.confidence-badge--low{color:var(--err,#d32f2f);background:#d32f2f26}.issue-type-tag{border-radius:var(--radius,4px);background:var(--border);color:var(--text-2);padding:2px 8px;font-size:.6875rem}.diagnosis-card__cause{margin-block:var(--sp-1);font-size:1rem;font-weight:600}.diagnosis-card__treatment-label{color:var(--text-2);margin-top:var(--sp-2);font-size:.75rem;font-weight:600}.diagnosis-card__treatment{background:var(--bg-2,#f5f5f5);padding:var(--sp-2);border-radius:var(--radius,6px);margin-block:var(--sp-1);font-size:.875rem}.diagnosis-card__history{color:var(--text-2);margin-block:var(--sp-1);font-size:.8125rem;font-style:italic}.diagnosis-disclaimer{color:var(--text-2);padding:var(--sp-1) var(--sp-2);border-left:3px solid var(--border);margin-block-end:var(--sp-3);font-size:.8125rem}.attribution-line{color:var(--text-2);text-align:center;margin-block:var(--sp-1);font-size:.75rem}.modal-file-input{width:100%;padding:var(--sp-3);border:2px dashed var(--border);border-radius:var(--r-sm);background:var(--bg-2);cursor:pointer;min-height:56px;color:var(--text-2);font-size:1rem}.modal-file-input:hover,.modal-file-input:focus{border-color:var(--brand)}.modal-textarea{width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius,6px);background:var(--bg-1);color:var(--text-1);resize:vertical;font-family:inherit;font-size:1rem}.btn-success{background:var(--ok,#2e7d32);color:#fff;border-color:var(--ok,#2e7d32)}.prompt-dialog-input{width:100%;padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-1);margin:var(--sp-2) 0;font-size:1rem}#calendar-tab-content{gap:var(--sp-4);display:grid}#calendar-tab-content .data-view-header{border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:radial-gradient(circle at top right, color-mix(in srgb, var(--brand) 12%, transparent), transparent 46%), linear-gradient(180deg, color-mix(in srgb, var(--bg-1) 94%, white 6%), var(--bg-1));box-shadow:var(--shadow-sm);padding:clamp(16px,2vw,24px)}[data-theme=dark] #calendar-tab-content .data-view-header{background:radial-gradient(circle at top right, color-mix(in srgb, var(--brand) 18%, transparent), transparent 48%), linear-gradient(180deg, color-mix(in srgb, var(--bg-1) 94%, black 6%), var(--bg-1))}#calendar-tab-content .data-view-title-row{align-items:flex-start;gap:var(--sp-3)}#calendar-tab-content .data-view-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.calendar-toolbar{gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:color-mix(in srgb, var(--bg-2) 82%, transparent);flex-wrap:wrap;align-items:stretch;display:flex}.calendar-view-toggle,.calendar-nav-toolbar{align-items:center;gap:var(--sp-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-1);min-height:52px;padding:4px;display:inline-flex;box-shadow:inset 0 1px #ffffff40}.calendar-view-btn{min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease), border-color .14s var(--ease), transform .14s var(--ease);background:0 0;border:1px solid #0000;font-size:12px;font-weight:700}.calendar-view-btn:hover{background:var(--bg-2);color:var(--text-1)}.calendar-view-btn.active{background:var(--brand);color:var(--text-inv);border-color:var(--brand);box-shadow:0 10px 18px #2e6b452e}.calendar-range-label{min-width:11rem;padding:0 var(--sp-2);color:var(--brand-text);font-family:var(--font-display);font-size:18px;line-height:1.15}.calendar-preset-field,.calendar-history-toggle{align-items:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-1);color:var(--text-2);display:inline-flex;box-shadow:inset 0 1px #ffffff38}.calendar-preset-field{flex:220px;justify-content:space-between}.calendar-preset-field>span,.calendar-history-toggle>span{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);font-size:11px;font-weight:800}#calendar-preset-select{min-width:160px;min-height:40px;color:var(--text-1);box-shadow:none;background:0 0;border:0;font-weight:600}#calendar-preset-select:focus{box-shadow:none;outline:none}.calendar-history-toggle{cursor:pointer}.calendar-history-toggle input{width:18px;height:18px;accent-color:var(--brand)}.calendar-filter-grid{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.calendar-area-filter,.calendar-plant-filter,.calendar-source-filters,.calendar-filter-state,.calendar-loading{border:1px solid var(--border-subtle);border-radius:var(--r-md);background:color-mix(in srgb, var(--bg-2) 88%, transparent)}.calendar-area-filter,.calendar-plant-filter,.calendar-source-filters{padding:var(--sp-3)}.calendar-plant-filter{margin-top:var(--sp-2)}.calendar-area-filter .chip-input,.calendar-plant-filter .chip-input{margin-bottom:0}.calendar-area-filter .chip-input__label,.calendar-plant-filter .chip-input__label{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.calendar-area-filter .chip-input__chips,.calendar-plant-filter .chip-input__chips{margin-bottom:var(--sp-2)}.calendar-area-filter .chip-input__field,.calendar-plant-filter .chip-input__field{max-width:34rem}.calendar-filter-state,.calendar-loading{padding:var(--sp-2) var(--sp-3);color:var(--text-2);font-size:13px}.calendar-source-filters{gap:var(--sp-2);flex-wrap:wrap;display:flex}.calendar-source-chip{align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--border);background:var(--bg-1);color:var(--text-2);cursor:pointer;transition:background .14s var(--ease), border-color .14s var(--ease), color .14s var(--ease), transform .14s var(--ease), box-shadow .14s var(--ease);border-radius:999px;font-size:13px;font-weight:600;display:inline-flex}.calendar-source-chip:hover{border-color:color-mix(in srgb, var(--brand) 35%, var(--border));transform:translateY(-1px)}.calendar-source-chip input{width:16px;height:16px;accent-color:var(--brand);margin:0}.calendar-source-chip:has(input:checked){background:color-mix(in srgb, var(--brand) 14%, var(--bg-1));border-color:color-mix(in srgb, var(--brand) 50%, var(--border));color:var(--brand-text);box-shadow:0 6px 16px #2e6b451f}.calendar-layout{gap:var(--sp-3);grid-template-columns:minmax(0,1fr) minmax(20rem,23rem);align-items:start;display:grid}.calendar-surface,.calendar-detail-panel,.calendar-subscriptions-panel{border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--bg-1) 95%, white 5%), var(--bg-1));box-shadow:var(--shadow-sm)}[data-theme=dark] .calendar-surface,[data-theme=dark] .calendar-detail-panel,[data-theme=dark] .calendar-subscriptions-panel{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-1) 95%, black 5%), var(--bg-1))}.calendar-surface{padding:var(--sp-3);overflow:hidden}.calendar-detail-panel{gap:var(--sp-3);padding:var(--sp-4);top:var(--sp-4);display:grid;position:sticky}.calendar-detail-empty{padding:var(--sp-4) 0;color:var(--text-2);line-height:1.6}.calendar-detail-header{gap:var(--sp-2);justify-content:space-between;align-items:flex-start;display:flex}.calendar-detail-header h3{font-family:var(--font-display);color:var(--text-1);margin:0;font-size:24px;font-weight:400;line-height:1.08}.calendar-detail-badge{letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb, var(--brand) 14%, transparent);min-height:32px;color:var(--brand-text);border-radius:999px;align-self:flex-start;align-items:center;padding:.2rem .7rem;font-size:11px;font-weight:800;display:inline-flex}.calendar-detail-badge.calendar-source-weather-alert{color:#8d431d;background:#b85d2b24}.calendar-detail-badge.calendar-source-garden-event{color:#355a74;background:#456f8a24}.calendar-detail-meta{border:1px solid var(--border-subtle);border-radius:var(--r-md);background:color-mix(in srgb, var(--bg-2) 84%, transparent);gap:0;display:grid;overflow:hidden}.calendar-detail-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);display:flex}.calendar-detail-row+.calendar-detail-row{border-top:1px solid var(--border-subtle)}.calendar-detail-row-label{color:var(--text-2);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.calendar-detail-row-value{color:var(--text-1);text-align:right;font-weight:600}.calendar-detail-description,.calendar-detail-window{margin:0}.calendar-detail-description{padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:color-mix(in srgb, var(--bg-2) 82%, transparent);color:var(--text-1);line-height:1.65}.calendar-manual-event-form{gap:.85rem;display:grid}.calendar-manual-event-form textarea{resize:vertical;min-height:6.5rem}.calendar-manual-event-plot-input .chip-input{margin-bottom:0}.calendar-detail-window{padding:var(--sp-3);border:1px solid color-mix(in srgb, var(--brand) 20%, var(--border-subtle));border-radius:var(--r-md);background:color-mix(in srgb, var(--brand) 10%, var(--bg-2));gap:.35rem;display:grid}.calendar-detail-window strong{color:var(--brand-text)}.calendar-detail-window span{color:var(--text-2);font-size:13px}.calendar-detail-section{gap:var(--sp-1);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle);display:grid}.calendar-detail-section>strong,.calendar-subscriptions-header h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);font-size:11px;font-weight:800}.calendar-detail-tags,.calendar-detail-actions,.calendar-subscriptions-list{gap:var(--sp-2);flex-wrap:wrap;display:flex}.calendar-detail-actions .btn.btn-sm{min-height:44px}.calendar-link-chip{border:1px solid var(--border);background:var(--bg-1);min-height:44px;color:var(--brand-text);cursor:pointer;transition:background .14s var(--ease), border-color .14s var(--ease), transform .14s var(--ease);border-radius:999px;justify-content:center;align-items:center;padding:.45rem .8rem;font-size:13px;font-weight:700;display:inline-flex}.calendar-link-chip:hover{background:color-mix(in srgb, var(--brand) 10%, var(--bg-1));border-color:color-mix(in srgb, var(--brand) 40%, var(--border));transform:translateY(-1px)}.calendar-subscriptions-panel{gap:var(--sp-3);margin-top:var(--sp-2);padding:var(--sp-4);display:grid}.calendar-subscriptions-header{gap:var(--sp-1);display:grid}.calendar-subscriptions-helper,.calendar-subscriptions-empty{color:var(--text-2);margin:0;line-height:1.55}.calendar-subscriptions-list{display:grid}.calendar-subscription-item{gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:color-mix(in srgb, var(--bg-2) 80%, transparent);justify-content:space-between;align-items:center;display:flex}.calendar-subscription-copy{gap:.25rem;display:grid}.calendar-subscription-copy strong{color:var(--text-1)}.calendar-subscription-copy span{color:var(--text-2);font-size:13px}.calendar-root{min-height:44rem}.calendar-event-shell{align-items:center;gap:.35rem;min-width:0;display:flex}.calendar-event-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.calendar-event-window-indicator{opacity:.92;background:currentColor;border-radius:999px;flex:none;width:.45rem;height:.45rem}.calendar-event-agenda{gap:.16rem;min-width:0;display:grid}.calendar-event-agenda-title{font-weight:700;line-height:1.22}.calendar-event-agenda-meta{color:var(--text-2);font-size:12px;line-height:1.28}.calendar-root .fc{--fc-border-color:#1d30221a;--fc-page-bg-color:transparent;--fc-neutral-bg-color:color-mix(in srgb, var(--bg-2) 80%, transparent);--fc-today-bg-color:#68a05c24;--fc-list-event-hover-bg-color:color-mix(in srgb, var(--bg-2) 88%, transparent);--fc-button-bg-color:#2d5f36;--fc-button-border-color:#2d5f36;--fc-button-hover-bg-color:#234a2a;--fc-button-hover-border-color:#234a2a;--fc-button-active-bg-color:#1e4024;--fc-button-active-border-color:#1e4024;--fc-event-bg-color:#437a4d;--fc-event-border-color:#437a4d;--fc-event-text-color:#fff;color:var(--text-1)}.calendar-root .fc-theme-standard .fc-scrollgrid,.calendar-root .fc-theme-standard td,.calendar-root .fc-theme-standard th,.calendar-root .fc-list{border-color:var(--fc-border-color)}.calendar-root .fc-scrollgrid,.calendar-root .fc-list{border-radius:var(--r-md);background:color-mix(in srgb, var(--bg-1) 96%, white 4%);overflow:hidden}.calendar-root .fc-col-header-cell{background:color-mix(in srgb, var(--bg-2) 82%, transparent)}.calendar-root .fc-col-header-cell-cushion{color:var(--text-2);letter-spacing:.08em;text-transform:uppercase;padding:10px 8px;font-size:11px;font-weight:800}.calendar-root .fc-daygrid-day-number,.calendar-root .fc-timegrid-axis-cushion,.calendar-root .fc-timegrid-slot-label-cushion{color:var(--text-2);font-size:12px;font-weight:700}.calendar-root .fc-daygrid-day-frame{min-height:8rem}.calendar-root .fc-list-day-cushion{background:color-mix(in srgb, var(--bg-2) 88%, transparent)}.calendar-root .fc-daygrid-event,.calendar-root .fc-timegrid-event{border-width:1px;border-radius:.8rem;margin:2px 4px 0;padding:.08rem .25rem;box-shadow:0 6px 16px #1d302214}.calendar-root .fc-daygrid-event .fc-event-main,.calendar-root .fc-timegrid-event .fc-event-main,.calendar-root .fc-list-event .fc-list-event-title{padding:.1rem .18rem}.calendar-root .fc-list-event{cursor:pointer}.calendar-root .fc-list-event .fc-list-event-time{color:var(--text-2);font-weight:600}.calendar-root .fc-list-event .fc-list-event-title{white-space:normal}.calendar-root .calendar-source-weather-alert{--fc-event-bg-color:#b85d2b;--fc-event-border-color:#b85d2b}.calendar-root .calendar-source-garden-event{--fc-event-bg-color:#456f8a;--fc-event-border-color:#456f8a}.calendar-root .fc-daygrid-event.calendar-source-weather-alert,.calendar-root .fc-timegrid-event.calendar-source-weather-alert{color:#7f3d1a;background:#b85d2b29;border-style:dashed}.calendar-root .fc-daygrid-event.calendar-source-garden-event,.calendar-root .fc-timegrid-event.calendar-source-garden-event{color:#27465c;background:#456f8a26}.calendar-root .fc-list-event.calendar-source-weather-alert .calendar-event-agenda-meta{color:#8d431d}.calendar-root .fc-list-event.calendar-source-garden-event .calendar-event-agenda-meta{color:#355a74}.calendar-root .calendar-has-window{border-left-width:.32rem}.calendar-root .calendar-window-state-active{border-left-color:#2e6b3a}.calendar-root .calendar-window-state-upcoming{border-left-color:#b07a24}.calendar-root .calendar-window-state-elapsed{border-left-color:#8d8a84}.calendar-root .calendar-status-completed,.calendar-root .calendar-status-skipped{opacity:.62}.calendar-root .fc-list-event.calendar-status-completed .calendar-event-agenda-title,.calendar-root .fc-list-event.calendar-status-skipped .calendar-event-agenda-title{text-decoration:line-through}@media (width<=980px){.calendar-filter-grid,.calendar-layout{grid-template-columns:1fr}.calendar-detail-panel{position:static}.calendar-root{min-height:34rem}.calendar-root .fc-daygrid-event,.calendar-root .fc-timegrid-event{font-size:.76rem}}@media (width<=720px){#calendar-tab-content .data-view-title-row{flex-direction:column}#calendar-tab-content .data-view-actions{justify-content:stretch;width:100%}#calendar-tab-content .data-view-actions>*{flex:1 1 0}.calendar-toolbar{grid-template-columns:1fr;display:grid}.calendar-view-toggle,.calendar-nav-toolbar,.calendar-preset-field,.calendar-history-toggle{width:100%}.calendar-view-toggle{justify-content:space-between}.calendar-view-btn{padding-inline:var(--sp-2);flex:1 1 0}.calendar-nav-toolbar{flex-wrap:wrap;justify-content:space-between}.calendar-range-label{width:100%;min-width:0;padding-top:var(--sp-1)}.calendar-preset-field{flex-wrap:wrap;justify-content:flex-start}#calendar-preset-select{width:100%;min-width:0}.calendar-detail-row{gap:var(--sp-1);flex-direction:column}.calendar-detail-row-value{text-align:left}}
