@import "https://fonts.googleapis.com/css2?family=Alegreya:wght@500;600;700&family=Nunito+Sans:wght@400;600;700&display=swap";:root{--bg-main:#f2eadf;--bg-haze:#ebdfcf;--bg-glow-a:#c7a67a26;--bg-glow-b:#72926229;--bg-grid:#fff3;--surface:#f8f1e6;--surface-soft:#efe2cf;--edge:#d8c3a6;--ink:#3c3126;--ink-soft:#6b5b47;--shadow-soft:0 14px 32px #674f3029;--font-body:"Nunito Sans", "Segoe UI", sans-serif;--font-display:"Alegreya", Georgia, serif}:root[data-theme=forest]{--bg-main:#dde8dc;--bg-haze:#c8dac7;--bg-glow-a:#58855f33;--bg-glow-b:#405f5329;--bg-grid:#ffffff29;--surface:#ecf3e8;--surface-soft:#d9e8d6;--edge:#adc6a6;--ink:#223726;--ink-soft:#425c46;--shadow-soft:0 14px 32px #37553a2e}:root[data-theme=harvest]{--bg-main:#f2dfc4;--bg-haze:#e8cda8;--bg-glow-a:#be7f2e33;--bg-glow-b:#985d2529;--bg-grid:#ffffff2e;--surface:#f9edd8;--surface-soft:#efd8b8;--edge:#d7b07f;--ink:#452a13;--ink-soft:#7b512f;--shadow-soft:0 14px 32px #72421633}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink-soft);font-family:var(--font-body);background:linear-gradient(155deg, var(--bg-glow-a), transparent 40%), linear-gradient(338deg, var(--bg-glow-b), transparent 44%), repeating-linear-gradient(45deg, var(--bg-grid) 0, var(--bg-grid) 1px, transparent 1px, transparent 16px), linear-gradient(180deg, var(--bg-main), var(--bg-haze));margin:0}#root{width:min(1180px,100%);margin:0 auto}h1,h2{color:var(--ink);font-family:var(--font-display);margin:0;font-weight:700;line-height:1.1}h1{margin-top:.4rem;font-size:clamp(2rem,5.2vw,3.35rem)}h2{font-size:clamp(1.25rem,2.2vw,1.6rem)}p{margin:0}.app-shell{gap:1.5rem;padding:2rem;display:grid;position:relative}.auth-toolbar{z-index:100;position:fixed;top:1rem;right:1rem}.preferences-link{z-index:3;border:1px solid var(--edge);color:var(--ink);cursor:pointer;background:#f9efdfe6;border-radius:999px;justify-self:end;padding:.42rem .9rem;font-weight:700;position:relative;box-shadow:0 6px 14px #3d2d1d24}.preferences-link:hover{background:#efdec6fa}.preferences-overlay{z-index:9;background:#34291d4d;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.preferences-panel{border:1px solid var(--edge);background:linear-gradient(160deg,#f8f0e3,#ecdac0);border-radius:1rem;width:min(580px,100%);max-height:min(86vh,760px);padding:1rem;overflow-y:auto;box-shadow:0 24px 42px #2c1b0d33}.preferences-section{border:1px solid var(--edge);background:#ffffff57;border-radius:.75rem;margin-top:.7rem;padding:.55rem .7rem}.preferences-section summary{cursor:pointer;color:var(--ink);font-weight:700}.preferences-section[open] summary{margin-bottom:.45rem}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.preferences-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.preferences-close,.preferences-save,.preferences-reset{border:1px solid var(--edge);cursor:pointer;color:var(--ink);border-radius:.7rem;padding:.42rem .75rem;font-weight:600}.preferences-close,.preferences-reset{background:#ffffff8c}.preferences-save{background:#a5875d59}.preferences-field{gap:.4rem;margin-top:1rem;display:grid}.preferences-field label{color:var(--ink);font-weight:700}.preferences-field input{border:1px solid var(--edge);width:100%;color:var(--ink);background:#fff9;border-radius:.65rem;padding:.65rem .7rem}.theme-picker{border:1px solid var(--edge);background:#ffffff61;border-radius:.75rem;margin:0;padding:.75rem}.theme-picker legend{color:var(--ink);padding:0 .35rem;font-weight:700}.theme-picker label{color:var(--ink);align-items:center;gap:.55rem;font-weight:600;display:flex}.theme-option{align-items:center;gap:.5rem;display:inline-flex}.theme-swatch{border:2px solid #00000040;border-radius:999px;flex-shrink:0;width:1.2rem;height:1.2rem;display:inline-block;box-shadow:0 2px 4px #00000026}.theme-swatch-earthy{background:linear-gradient(135deg,#c4a876 0%,#8a6f47 100%)}.theme-swatch-forest{background:linear-gradient(135deg,#7fa86f 0%,#5a7f52 100%)}.theme-swatch-harvest{background:linear-gradient(135deg,#d9a35a 0%,#a87a38 100%)}.theme-picker label+label{margin-top:.45rem}.hero-image-picker{border:1px solid var(--edge);background:#ffffff61;border-radius:.75rem;margin:0;padding:.75rem}.hero-image-picker legend{color:var(--ink);padding:0 .35rem;font-weight:700}.hero-image-picker label{color:var(--ink);align-items:center;gap:.55rem;font-weight:600;display:flex}.hero-image-picker label+label{margin-top:.45rem}.hero-image-option{align-items:center;gap:.5rem;display:inline-flex}.hero-image-thumb{border:1px solid #00000040;border-radius:.4rem;width:1.8rem;height:1.2rem;display:inline-block;box-shadow:0 2px 4px #00000026}.hero-image-thumb-auto{background:linear-gradient(135deg,#c9b087 0%,#7f6a52 36%,#88a37f 68%,#d0a060 100%)}.hero-image-thumb-earthy{background:linear-gradient(135deg,#d7b78c 0%,#8e6b43 100%)}.hero-image-thumb-forest{background:linear-gradient(135deg,#9abb90 0%,#4f7350 100%)}.hero-image-thumb-harvest{background:linear-gradient(135deg,#ecc17f 0%,#a87434 100%)}.preferences-grid{gap:.65rem;margin-top:0;display:grid}.preferences-weather-module{margin-top:1rem}.preferences-grid label{color:var(--ink);align-items:center;gap:.55rem;font-weight:600;display:flex}.preferences-footer{background:linear-gradient(#ecdac000,#ecdac0f2 35%);justify-content:space-between;gap:.75rem;margin-top:1rem;padding-top:.75rem;display:flex;position:sticky;bottom:0}.app-shell:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 15% 10%,#f3d3a059,#0000 42%),radial-gradient(circle at 85% 85%,#7ea07959,#0000 38%);position:absolute;inset:0}.hero-panel,.card{z-index:1;border:1px solid var(--edge);background:linear-gradient(140deg, var(--surface), var(--surface-soft));box-shadow:var(--shadow-soft);border-radius:1.25rem;position:relative}.hero-panel{grid-template-columns:minmax(0,1fr) 180px;align-items:start;gap:1.25rem;padding:2rem;animation:.56s ease-out settle;display:grid;overflow:hidden}.hero-content{min-width:0}.hero-image-wrap{border:1px solid var(--edge);background:#ffffff70;border-radius:1rem;justify-self:end;width:min(180px,100%);overflow:hidden;box-shadow:0 10px 24px #2c1b0d26}.hero-image{width:100%;height:auto;display:block}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin:0;font-size:.78rem}.subtitle{color:var(--ink-soft);margin-top:.35rem}.weather-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.5rem;display:grid}.hero-panel>.weather-strip{grid-column:1/-1;margin-top:.2rem}.five-day-forecast{flex-wrap:wrap;grid-column:1/-1;gap:2rem;margin-top:.75rem;display:flex}.forecast-day{flex-direction:column;gap:.2rem;display:flex}.forecast-icon{font-size:1.5rem;line-height:1}.subtitle-row{gap:2rem;margin-top:.35rem;display:flex}.subtitle-row .subtitle{margin-top:0}.weather-strip>div{border:1px solid var(--edge);background:#faf5ec94;border-radius:.95rem;padding:.9rem 1rem}.label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;display:inline-block}.weather-strip p{color:var(--ink);margin:.35rem 0 0;font-weight:600}.dashboard-grid{z-index:1;grid-template-columns:1.4fr 1fr;gap:1rem;display:grid;position:relative}.card{padding:1.2rem;animation:.54s ease-out both rise}.card.metrics{grid-column:1/-1}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:.9rem;display:grid}.metric-item{border:1px solid var(--edge);background:#ffffff73;border-radius:1rem;padding:.85rem}.metric-label{color:var(--ink-soft);margin:0;font-size:.79rem}.metric-value{font-size:1.45rem;font-family:var(--font-display);color:var(--ink);margin:.3rem 0}.metric-detail{margin:0;font-size:.86rem}.stack-list{gap:.65rem;margin:.8rem 0 0;padding:0;list-style:none;display:grid}.zone-draggable{cursor:default;-webkit-user-select:none;user-select:none;transition:opacity .15s,box-shadow .15s}.zone-clickable{cursor:pointer}.zone-drag-over{box-shadow:0 0 0 2px var(--edge), 0 4px 12px #2c1b0d26;background:#ffffffb8}.drag-handle{color:var(--ink-soft);opacity:.45;flex-shrink:0;margin-right:.1rem;font-size:1rem;line-height:1}.zone-draggable .list-row-content{flex:1;min-width:0}.list-row{border:1px solid var(--edge);background:#ffffff70;border-radius:.9rem;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;display:flex}.row-title{color:var(--ink);margin:0;font-weight:600}.row-meta{color:var(--ink-soft);margin:.2rem 0 0;font-size:.82rem}.weather-lookup{gap:.8rem;display:grid}.weather-lookup-embedded{border:1px solid var(--edge);background:#ffffff70;border-radius:.85rem;padding:.85rem}.weather-form{gap:.8rem;display:grid}.mode-switch{flex-wrap:wrap;gap:.8rem;display:flex}.mode-switch label{color:var(--ink);align-items:center;gap:.45rem;font-weight:600;display:inline-flex}.weather-input-grid{grid-template-columns:1fr 120px;gap:.65rem;display:grid}.weather-input-grid.single{grid-template-columns:1fr}.weather-input-grid label{color:var(--ink);gap:.35rem;font-weight:600;display:grid}.weather-input-grid input{border:1px solid var(--edge);width:100%;color:var(--ink);background:#ffffffad;border-radius:.65rem;padding:.58rem .65rem}.weather-submit{border:1px solid var(--edge);color:var(--ink);cursor:pointer;background:#a5875d4d;border-radius:.75rem;justify-self:start;padding:.5rem .8rem;font-weight:700}.weather-submit:disabled{opacity:.7;cursor:wait}.weather-error{color:#8a321f;font-weight:700}.weather-result{border:1px solid var(--edge);background:#ffffff80;border-radius:.85rem;padding:.75rem}.weather-now{color:var(--ink);font-size:1.25rem;font-family:var(--font-display);margin-top:.35rem}.chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:.28rem .65rem;font-size:.76rem}.chip-high{color:#7f321f;background:#a7583f33;border-color:#a7583f4d}.chip-medium{color:#6f5408;background:#bc964333;border-color:#bc964359}.chip-low{color:#33592a;background:#709a6333;border-color:#709a6366}.chip-neutral{color:#4f4438;background:#6e665633;border-color:#6e66564d}.chip-soil{color:#5f3c1f;background:#935e2e2e;border-color:#935e2e57}@media (width<=980px){.app-shell{gap:1rem;padding:1rem}.preferences-link{justify-self:end}.hero-panel{grid-template-columns:1fr;padding:1.25rem}.hero-image-wrap{justify-self:start;width:min(220px,100%)}.weather-strip{grid-template-columns:1fr}.five-day-forecast{gap:1.5rem}.dashboard-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.metric-grid,.weather-input-grid{grid-template-columns:1fr}.preferences-footer{flex-direction:column}.list-row{flex-direction:column;align-items:flex-start}}@keyframes settle{0%{opacity:0;transform:translateY(14px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.garden-manager{z-index:1;gap:1.25rem;display:grid;position:relative}.garden-manager-header{align-items:center;gap:1rem;display:flex}.garden-back-btn{border:1px solid var(--edge);color:var(--ink);cursor:pointer;background:#f9efdfe6;border-radius:999px;flex-shrink:0;padding:.42rem .9rem;font-weight:700;box-shadow:0 6px 14px #3d2d1d24}.garden-back-btn:hover{background:#efdec6fa}.garden-zone-title{font-family:var(--font-display);color:var(--ink);margin:.1rem 0 0}.garden-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:1rem;display:grid}.garden-bed-list{border:1px solid var(--edge);background:linear-gradient(140deg, var(--surface), var(--surface-soft));box-shadow:var(--shadow-soft);border-radius:1.25rem;padding:1rem}.garden-panel-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.garden-panel-header h3{margin:0}.garden-bed-items{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.garden-bed-item{border:1px solid var(--edge);cursor:pointer;background:#ffffff70;border-radius:.85rem;align-items:center;gap:.5rem;padding:.65rem .75rem;transition:background .15s,box-shadow .15s;display:flex}.garden-bed-item:hover{background:#ffffffb3}.garden-bed-item.active{box-shadow:0 0 0 2px var(--edge);background:#a5875d33}.garden-bed-item-meta{flex:1;min-width:0}.garden-bed-editor{border:1px solid var(--edge);background:linear-gradient(140deg, var(--surface), var(--surface-soft));box-shadow:var(--shadow-soft);border-radius:1.25rem;gap:1rem;padding:1.25rem;display:grid}.garden-placeholder{text-align:center;color:var(--ink-soft);padding:2rem}.garden-field{gap:.3rem;display:grid}.garden-field label{color:var(--ink);font-size:.86rem;font-weight:700}.garden-field input{border:1px solid var(--edge);color:var(--ink);background:#fff9;border-radius:.6rem;padding:.55rem .65rem;font-size:.95rem}.garden-type-toggle{gap:.5rem;display:flex}.garden-type-btn{border:1px solid var(--edge);color:var(--ink);cursor:pointer;background:#ffffff80;border-radius:.7rem;flex:1;padding:.5rem .75rem;font-weight:600;transition:background .15s}.garden-type-btn.active{background:#a5875d59;border-color:#a5875d80}.garden-size-row{align-items:flex-end;gap:.6rem;display:flex}.garden-size-row .garden-field{width:80px}.garden-size-row .garden-field input{width:100%}.garden-by{color:var(--ink-soft);padding-bottom:.45rem;font-weight:700}.garden-area{color:var(--ink-soft);white-space:nowrap;margin:0 0 .45rem;font-size:.86rem}.garden-presets{flex-wrap:wrap;gap:.4rem;display:flex}.garden-preset{border:1px solid var(--edge);color:var(--ink);cursor:pointer;background:#ffffff80;border-radius:999px;padding:.28rem .7rem;font-size:.82rem;transition:background .15s}.garden-preset.active{background:#a5875d4d;border-color:#a5875d73;font-weight:700}.garden-section{border-top:1px solid var(--edge);gap:.65rem;padding-top:1rem;display:grid}.garden-section-header{justify-content:space-between;align-items:center;display:flex}.garden-section-title{margin:0;font-size:1rem}.garden-section-sub{color:var(--ink-soft);font-size:.82rem;font-weight:400}.bed-grid-wrap{gap:.6rem;display:grid}.bed-grid{grid-template-columns:repeat(var(--bed-cols,4), minmax(28px, 1fr));border:1px solid var(--edge);background:var(--edge);border-radius:.75rem;gap:2px;display:grid;overflow:hidden}.bed-cell{aspect-ratio:1;background:#ffffff8c;place-items:center;padding:.1rem;transition:background .2s;display:grid}.bed-cell-planted{opacity:.88}.bed-cell-label{color:#1f160f;text-shadow:0 1px #ffffff8c;letter-spacing:.01em;cursor:help;font-size:.56rem;font-weight:800;line-height:1;position:relative}.bed-cell-label:hover:after{content:attr(data-plant-name);color:#fffaf0;letter-spacing:0;text-shadow:none;white-space:nowrap;pointer-events:none;z-index:2;background:#1c140ef2;border:1px solid #0003;border-radius:.35rem;padding:.22rem .35rem;font-size:.62rem;line-height:1;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.bed-grid-legend{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.bed-legend-item{color:var(--ink);align-items:center;gap:.35rem;font-size:.82rem;display:inline-flex}.bed-legend-marker{border:1px solid var(--edge);text-align:center;background:#fff9;border-radius:999px;min-width:2.2rem;padding:.1rem .35rem;font-size:.68rem;font-weight:800}.garden-plant-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.garden-plant-row{border:1px solid var(--edge);background:#ffffff70;border-radius:.85rem;align-items:center;gap:.65rem;padding:.6rem .8rem;display:flex}.plant-color-dot{border-radius:50%;flex-shrink:0;width:.85rem;height:.85rem;box-shadow:0 1px 3px #0003}.garden-plant-info{flex:1;min-width:0}.garden-marker-field{flex-shrink:0}.garden-marker-field input{text-align:center;text-transform:uppercase;border:1px solid var(--edge);width:3.1rem;color:var(--ink);letter-spacing:.03em;background:#fff9;border-radius:.45rem;padding:.3rem .25rem;font-size:.72rem;font-weight:800}.garden-qty{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.garden-qty button{border:1px solid var(--edge);width:1.6rem;height:1.6rem;color:var(--ink);cursor:pointer;background:#fff9;border-radius:50%;place-items:center;font-size:1rem;font-weight:700;line-height:1;display:grid}.garden-qty span{text-align:center;min-width:1.5rem;font-weight:700}.garden-add-btn{border:1px solid var(--edge);color:var(--ink);cursor:pointer;white-space:nowrap;background:#a5875d4d;border-radius:.65rem;padding:.38rem .75rem;font-weight:700}.garden-add-btn:disabled{opacity:.45;cursor:not-allowed}.garden-icon-btn{border:1px solid var(--edge);width:1.5rem;height:1.5rem;color:var(--ink-soft);cursor:pointer;background:#ffffff8c;border-radius:50%;flex-shrink:0;place-items:center;font-size:.7rem;display:grid}.garden-empty{color:var(--ink-soft);margin:0;padding:.25rem 0;font-size:.9rem}.garden-overlay{z-index:20;background:#34291d59;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.garden-modal{border:1px solid var(--edge);background:linear-gradient(160deg,#f8f0e3,#ecdac0);border-radius:1rem;grid-template-rows:auto auto 1fr auto;gap:.75rem;width:min(440px,100%);max-height:80vh;padding:1rem;display:grid;overflow:hidden;box-shadow:0 24px 42px #2c1b0d33}.garden-modal-header{justify-content:space-between;align-items:center;display:flex}.garden-modal-header h3{margin:0}.garden-plant-search{border:1px solid var(--edge);width:100%;color:var(--ink);background:#ffffffb3;border-radius:.65rem;padding:.55rem .7rem;font-size:.95rem}.garden-plant-picker{gap:.25rem;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.garden-pick-row{border:1px solid var(--edge);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:#ffffff80;border-radius:.65rem;justify-content:space-between;align-items:center;padding:.55rem .7rem;transition:background .12s;display:flex}.garden-pick-row:hover{background:#ffffffd9}.garden-spacing-tag{color:var(--ink-soft);white-space:nowrap;font-size:.78rem}.garden-custom-entry{border-top:1px solid var(--edge);padding-top:.65rem}.garden-custom-label{color:var(--ink);margin:0 0 .4rem;font-size:.86rem;font-weight:700}.garden-custom-row{align-items:center;gap:.4rem;display:flex}.garden-custom-row input[type=text]{border:1px solid var(--edge);color:var(--ink);background:#ffffffa6;border-radius:.6rem;flex:1;padding:.45rem .6rem}.garden-custom-row input[type=number]{border:1px solid var(--edge);width:56px;color:var(--ink);text-align:center;background:#ffffffa6;border-radius:.6rem;padding:.45rem .5rem}.garden-inches-label{color:var(--ink-soft);font-size:.86rem}@media (width<=980px){.garden-layout{grid-template-columns:1fr}}.zone-draggable .drag-handle{cursor:grab}.zone-draggable .drag-handle:active{cursor:grabbing}
