:root{--bg:#03160b;--panel:rgba(239,244,231,0.92);--ink:#eaf1e7;--panel-ink:#213126;--muted:#a9b8aa;--line:rgba(222,232,218,0.2);--accent:#7cae45;--accent-dark:#315f33;--warn:#a45d22;--danger:#9c2f2f;--shadow:0 24px 70px rgba(0,0,0,0.34);--glass:rgba(18,31,21,0.74);--glass-strong:rgba(22,36,25,0.86);--glass-line:rgba(238,246,231,0.18)}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:radial-gradient(circle at 28% 0,rgba(56,128,82,.34),transparent 32%),radial-gradient(circle at 92% 34%,rgba(75,121,42,.24),transparent 34%),linear-gradient(115deg,#021207,#06210d 44%,#08140b);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:280px minmax(460px,1fr) 360px;min-height:100vh}.details,.sidebar{background:#fbfaf6;border-right:1px solid var(--line);padding:18px;overflow:auto}.details{border-right:0;border-left:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.brand img,.brand svg{width:38px;height:38px;color:#b8df7d;background:rgba(144,190,95,.16);border:1px solid rgba(221,242,198,.2);border-radius:10px;box-shadow:0 12px 34px rgba(0,0,0,.28)}.brand svg{padding:8px}.brand img{object-fit:cover}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1.1}h2{font-size:17px}h3{display:flex;align-items:center;gap:7px;font-size:15px;margin-bottom:8px}.brand p,.empty,.toolbar span,small{color:var(--muted)}label{display:grid;grid-gap:7px;gap:7px;margin-bottom:13px;color:#405047;font-size:13px;font-weight:700}.coordinateGrid{display:grid;grid-template-columns:1fr 1fr 72px;grid-gap:8px;gap:8px}.coordinateGrid label{min-width:0}.zoomControls{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;grid-gap:8px;gap:8px;margin:12px 0}.zoomControls button{min-height:40px;margin-top:0;font-size:18px;font-weight:700}.zoomControls span{min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(218,232,210,.26);border-radius:7px;background:rgba(245,250,239,.08);color:#dbe7d8;font-size:14px;font-weight:700}input,select,textarea{width:100%;border:1px solid rgba(213,224,205,.42);border-radius:7px;background:rgba(250,252,247,.94);color:var(--panel-ink);padding:10px 11px;outline:none}textarea{min-height:74px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,174,69,.18)}.segmented{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;margin:18px 0}.photoActions button,.plantList button,.primary,.secondary,.segmented button{min-height:40px;border:1px solid rgba(218,232,210,.26);border-radius:9px;background:rgba(250,252,247,.94);color:var(--panel-ink);display:flex;align-items:center;justify-content:center;gap:8px}.primary,.segmented button.active{border-color:rgba(190,226,122,.72);background:linear-gradient(135deg,#7cae45,#315f33);color:#fff}.primary:hover{background:linear-gradient(135deg,#8cbd52,#376a3a)}.secondary{margin-top:9px}.fullWidth{width:100%;margin-top:10px}.mapPanel{min-width:0;min-height:0;position:relative;padding:20px;overflow:hidden;background:radial-gradient(circle at 72% 8%,rgba(130,175,64,.18),transparent 32%),linear-gradient(180deg,rgba(8,31,14,.42),rgba(3,14,7,.12))}.mapPanel:before{position:absolute;inset:20px;z-index:1;content:"";border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent 42%);pointer-events:none}.gardenStats{position:absolute;top:34px;right:34px;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(92px,auto));grid-gap:10px;gap:10px}.gardenStats div{display:grid;grid-gap:3px;gap:3px;min-height:58px;border:1px solid rgba(238,246,231,.22);border-radius:12px;padding:10px 12px;background:rgba(9,22,12,.72);color:#eef6ea;box-shadow:0 18px 42px rgba(0,0,0,.26);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.gardenStats span{color:#b8c9b8;font-size:11px;font-weight:700;text-transform:uppercase}.gardenStats strong{font-size:15px;white-space:nowrap}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.toolbar div:first-child{display:grid;grid-gap:4px;gap:4px}.status{display:flex;align-items:center;gap:7px;color:#dff5cf;background:rgba(124,174,69,.16);border:1px solid rgba(172,213,126,.24);border-radius:8px;padding:8px 10px;white-space:nowrap}.gardenMap{width:100%;height:100%;min-height:0;justify-self:stretch;align-self:stretch;border:1px solid rgba(230,242,222,.2);border-radius:16px;box-shadow:0 34px 90px rgba(0,0,0,.42);background:#dfe8d4;touch-action:none}.boundary{fill:rgba(231,235,220,.54)}.boundary,.boundaryOutline{stroke:#3a523f;stroke-width:.45;vector-effect:non-scaling-stroke}.boundaryOutline{fill:none;stroke-linejoin:round}.zone{stroke:rgba(32,50,36,.55);stroke-width:.225;vector-effect:non-scaling-stroke}.zone-0{fill:rgba(246,190,91,.45)}.zone-1{fill:rgba(85,151,174,.38)}.zone-2{fill:rgba(107,156,87,.42)}.zone-3{fill:rgba(179,122,88,.38)}.zone.selected{stroke:#1f5f3f;stroke-width:.45;vector-effect:non-scaling-stroke}.zoneLabel{fill:#1e3428;font-size:2.4px;font-weight:700;pointer-events:none}.swatches{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:7px;gap:7px}.swatch{min-height:28px;border:1px solid rgba(32,50,36,.28);border-radius:7px}.swatch.active{outline:3px solid rgba(47,118,81,.25);border-color:var(--accent-dark)}.handle{fill:#ffffff;stroke:var(--accent-dark);stroke-width:.35;cursor:-webkit-grab;cursor:grab;vector-effect:non-scaling-stroke}.boundaryHandle{stroke:#29382e}.plant circle,.plant rect{fill:#2f7651;stroke:#fff;stroke-width:.8;vector-effect:non-scaling-stroke}.plant .plantResizeHandle{fill:#fff;stroke:#1f5f3f;stroke-width:.45;cursor:nwse-resize}.plant text{fill:#f6f8ef;font-size:.72px;font-weight:700;paint-order:stroke;stroke:rgba(18,32,22,.86);stroke-width:.5;cursor:-webkit-grab;cursor:grab;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.selectedPlant circle{fill:#c8612a}.panel{background:rgba(248,251,243,.94);border:1px solid rgba(219,231,211,.38);border-radius:8px;padding:14px;margin-bottom:14px;box-shadow:0 7px 18px rgba(42,53,46,.06)}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.panelHeader select{max-width:170px}.formGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 10px;gap:0 10px}.formGrid label:first-child,.formGrid label:last-child,.formGrid label:nth-child(2){grid-column:1/-1}.formGrid .checkboxLabel{grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center}.formGrid .checkboxLabel input{width:auto}.search{display:flex;align-items:center;gap:7px;border:1px solid rgba(213,224,205,.4);border-radius:8px;padding-left:9px;background:rgba(250,252,247,.94);color:var(--panel-ink)}.search input{border:0;box-shadow:none;padding:9px}.plantList{display:grid;grid-gap:8px;gap:8px;max-height:230px;overflow:auto}.plantList button{align-items:flex-start;justify-content:center;flex-direction:column;padding:10px 11px;text-align:left}.plantList button span{font-weight:700}.plantList button.activePlant{border-color:var(--accent);background:rgba(226,241,215,.94)}.calendarList{display:grid;grid-gap:12px;gap:12px}.calendarMonth{border:1px solid rgba(213,224,205,.4);border-radius:8px;background:rgba(248,251,243,.94);color:var(--panel-ink);padding:12px}.calendarMonth button{width:100%;display:grid;grid-gap:4px;gap:4px;margin-top:8px;border:1px solid var(--line);border-radius:7px;background:#fbfaf6;color:var(--ink);padding:10px;text-align:left}.calendarMonth button span{color:var(--muted);font-size:13px;line-height:1.35}.empty{font-size:14px;line-height:1.35}.iconDanger{width:34px;height:34px;border:1px solid #ecc9c9;border-radius:7px;background:#fff7f7;color:var(--danger)}.photoActions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:4px}.photoActions button{margin:0}.primary:disabled{cursor:wait;opacity:.72}.plantPhoto{width:100%;max-height:220px;object-fit:cover;border-radius:8px;border:1px solid var(--line);margin-top:12px}.analysis{margin-top:12px;border:1px solid #d7d3bc;background:#fffdf0;border-radius:8px;padding:12px}.analysis p{color:#3f493f;line-height:1.4;margin-bottom:9px}.analysis strong{display:inline-block;color:var(--warn);margin-bottom:6px}.analysis ul{margin:0;padding-left:18px;color:#3f493f}.appShell{height:100vh;display:grid;grid-template-rows:1fr;overflow:hidden;padding:28px}.appHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px 10px;border-bottom:1px solid var(--line);background:#fbfaf6}.appHeader .brand{margin-bottom:0}.tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;padding:0;border-bottom:0;background:transparent;overflow:visible}.appNotice{border:1px solid rgba(172,213,126,.24);border-radius:8px;background:rgba(124,174,69,.14);color:#dff5cf;padding:8px 10px;font-size:13px;font-weight:700}.appNotice.error{background:#fff2f2;color:var(--danger)}.tabs button{min-height:46px;border:1px solid var(--glass-line);border-radius:10px;background:rgba(245,250,239,.08);color:#dbe7d8;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;text-align:center}.tabs button.active{border-color:rgba(190,226,122,.72);background:linear-gradient(135deg,rgba(124,174,69,.95),rgba(43,102,51,.95));color:#fff;box-shadow:0 12px 28px rgba(31,88,45,.28)}.workspace{min-height:0;display:grid;grid-template-columns:minmax(340px,390px) minmax(460px,1fr);overflow:hidden;border:1px solid rgba(232,244,225,.16);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02)),rgba(8,22,11,.74);box-shadow:0 34px 110px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.calendarWorkspace{grid-template-columns:minmax(0,860px);justify-content:center;padding:18px}.sidePanel{background:linear-gradient(180deg,rgba(26,41,27,.92),rgba(15,27,18,.9));border-right:1px solid var(--glass-line);padding:20px;overflow:auto;color:#eff5ea}.sideChrome{display:grid;grid-gap:12px;gap:12px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--glass-line)}.sideChrome .brand{margin-bottom:0}.sideMeta{display:grid;grid-gap:8px;gap:8px}.mapSummary{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--glass-line);border-radius:12px;background:rgba(245,250,239,.08);padding:10px 11px}.mapSummary span{color:var(--muted);font-size:13px;line-height:1.35}.calendarPanel{border:1px solid var(--glass-line);border-radius:18px;box-shadow:var(--shadow)}.sidePanel h2{margin-bottom:15px}.actionGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin:12px 0}.actionGrid .primary,.actionGrid .secondary{margin-top:0}.drawTools{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin:10px 0}.drawTools .secondary{margin-top:0}.actionGrid button:disabled,.drawTools button:disabled{cursor:not-allowed;opacity:.56}.metricBox{display:grid;grid-template-columns:1fr auto;grid-gap:8px 12px;gap:8px 12px;border:1px solid var(--glass-line);border-radius:12px;background:rgba(245,250,239,.08);padding:10px 12px;margin:10px 0 12px}.metricBox span{color:var(--muted);font-size:13px}.metricBox strong{font-size:14px;color:#f4f8ef}.primary:disabled{cursor:not-allowed;opacity:.56}.note{color:var(--muted);font-size:13px;line-height:1.4;margin-top:10px}.panelInset{border-top:1px solid var(--glass-line);margin-top:14px;padding-top:14px}.firstInset{border-top:0;margin-top:0;padding-top:0;margin-bottom:14px}.search.wide{margin-bottom:12px}.draftLine{fill:none;stroke:#c8612a;stroke-width:.45;stroke-linecap:round;stroke-linejoin:round}.draftFill,.draftLine{vector-effect:non-scaling-stroke}.draftFill{fill:rgba(200,97,42,.2);stroke:#c8612a;stroke-width:.35}.draftOutline{fill:none;stroke:#c8612a;stroke-width:.45;stroke-linejoin:round;vector-effect:non-scaling-stroke}.outsideMask{fill:rgba(244,242,235,.64);pointer-events:none}.zoneDraft{stroke:#2f7651}.zoneDraftFill{fill:rgba(47,118,81,.2);stroke:#2f7651}.draftPoint{fill:#fff;stroke:#c8612a;stroke-width:.35;cursor:-webkit-grab;cursor:grab}.draftPoint,.selectionRect{vector-effect:non-scaling-stroke}.selectionRect{fill:rgba(47,118,81,.18);stroke:#2f7651;stroke-width:.4;stroke-dasharray:1.5 1}.measureLabel{fill:#1b2b20;font-size:2.65px;font-weight:700;stroke:rgba(255,255,255,.9);stroke-width:.9}.areaLabel,.measureLabel{paint-order:stroke;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.areaLabel{fill:#11371f;font-size:3.2px;font-weight:800;stroke:rgba(255,255,255,.95);stroke-width:1.1}@media (max-width:1120px){.shell{grid-template-columns:240px 1fr}.details{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}.workspace{grid-template-columns:330px 1fr}.gardenStats{grid-template-columns:repeat(2,minmax(92px,auto))}.calendarWorkspace{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.shell{display:block}.details,.mapPanel,.sidebar{padding:14px}.appShell{height:auto;min-height:100vh;padding:12px;overflow:auto}.gardenStats{position:static;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.mapPanel:before{inset:14px}.gardenMap{width:100%;max-height:none;min-height:0}.formGrid,.photoActions,.toolbar{grid-template-columns:1fr;display:grid}.status{width:-moz-fit-content;width:fit-content}.appHeader{align-items:flex-start;flex-direction:column}.workspace{display:block;overflow:visible}.sidePanel{border-right:0;border-bottom:1px solid var(--glass-line)}.calendarWorkspace{padding:0}.calendarPanel{border-left:0;border-right:0;border-radius:0;box-shadow:none}.actionGrid,.coordinateGrid{grid-template-columns:1fr}}.landingPage,.legalPage{min-height:100vh;color:#f4f7ef}.landingHero{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;padding:28px clamp(18px,4vw,56px)}.landingNav,.legalHeader{display:flex;align-items:center;justify-content:space-between;gap:18px}.landingBrand{display:inline-flex;align-items:center;gap:12px;color:#f5f9ef;font-size:18px;font-weight:800;text-decoration:none}.landingBrand img{width:44px;height:44px;border-radius:12px;box-shadow:0 16px 44px rgba(0,0,0,.32)}.landingNavActions{display:flex;align-items:center;gap:14px}.landingNavActions a{color:#dbe7d8;font-size:14px;font-weight:700;text-decoration:none}.landingHeroGrid{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;grid-gap:clamp(36px,6vw,88px);gap:clamp(36px,6vw,88px);padding:48px 0 32px}.landingCopy{position:relative;z-index:2;display:grid;grid-gap:22px;gap:22px;min-width:0;max-width:620px}.landingEyebrow{color:#bedc82;font-size:14px;font-weight:800;letter-spacing:0;text-transform:uppercase}.landingCopy h1{color:#fffdf5;font-size:clamp(44px,6vw,78px);line-height:.95;overflow-wrap:normal;word-break:keep-all}.landingCopy>p:not(.landingEyebrow){max-width:610px;color:#dce6d5;font-size:clamp(17px,2vw,21px);line-height:1.5}.landingActions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.landingFooter a,.landingLogin{min-height:44px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px}.landingLogin{border:1px solid rgba(235,249,210,.76);background:#e8f3c4;color:#17301d;font-weight:900;text-decoration:none;box-shadow:0 18px 44px rgba(0,0,0,.26)}.landingLogin.small{min-height:38px;padding:0 14px;font-size:14px}.landingPreview{width:100%;max-width:640px;position:relative;z-index:1;justify-self:end;border:1px solid rgba(234,241,231,.18);border-radius:8px;overflow:hidden;background:rgba(12,30,15,.72);box-shadow:0 30px 90px rgba(0,0,0,.42)}.landingPreview img{display:block;width:100%;height:auto}.legalPage{padding:28px clamp(18px,4vw,56px) 56px}.landingFooter{width:min(1180px,100%);margin:0 auto;display:flex;justify-content:flex-end;padding:10px 0 0}.landingFooter a{min-height:auto;padding:0;color:rgba(219,231,216,.78);font-size:13px;font-weight:700;text-decoration:none}.legalHeader{width:min(920px,100%);margin:0 auto 28px}.legalCard{width:min(920px,100%);margin:0 auto;border:1px solid rgba(234,241,231,.18);border-radius:8px;background:rgba(250,252,247,.94);color:var(--panel-ink);padding:clamp(22px,4vw,42px);box-shadow:var(--shadow)}.legalCard h1{margin-bottom:24px;color:#14251a;font-size:34px}.legalCard section{display:grid;grid-gap:8px;gap:8px;padding:20px 0;border-top:1px solid rgba(33,49,38,.14)}.legalCard h2{color:#1b3623;font-size:17px}.legalCard p{color:#405047;line-height:1.55}@media (max-width:980px){.landingHero{min-height:auto}.landingHeroGrid{grid-template-columns:1fr;padding-top:40px}.landingCopy,.landingPreview{max-width:none}.landingPreview{justify-self:stretch}}@media (max-width:560px){.landingNav,.legalHeader{align-items:flex-start;flex-direction:column}.landingNavActions{width:100%;justify-content:space-between}}