.zone-map-wrapper{width:100%;max-width:800px;margin:1rem auto}.zone-map-svg{display:block;width:100%;max-width:800px;height:auto;margin:0 auto .9rem;border-radius:16px;box-shadow:0 5px 12px #0f172a1f}.zone-map-svg .zone-shape{cursor:pointer;transform-box:fill-box;transform-origin:center;transition:transform .15s ease-out,filter .15s ease-out,stroke .15s ease-out,stroke-width .15s ease-out}.zone-map-svg .zone-shape:hover{filter:brightness(1.18);stroke:#000;stroke-width:.7}.zone-map-svg .zone-shape--active{filter:brightness(1.22);stroke:#000;stroke-width:1.2}.zone-tooltip{position:fixed;z-index:1100;padding:4px 8px;background:#0f172aeb;color:#fff;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none}.zone-legend{margin-top:0;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.45rem}.zone-legend-item{border:none;border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:600;color:#fff;cursor:pointer;box-shadow:0 2px 4px #0f172a2e;opacity:.9;transition:transform .1s ease,opacity .1s ease,box-shadow .1s ease}.zone-legend-item:hover{opacity:1;transform:translateY(-1px);box-shadow:0 4px 8px #0f172a38}.zone-legend-item--active{opacity:1;outline:2px solid #0f172a;outline-offset:.5px;box-shadow:0 4px 10px #0f172a4d}@media(max-width:480px){.zone-map-wrapper{margin:.75rem auto}.zone-legend{gap:.35rem}.zone-legend-item{padding:.22rem .6rem;font-size:.78rem}}.calendar-modal-backdrop{position:fixed;inset:0;padding:3rem 1rem;display:flex;justify-content:center;align-items:flex-start;background:#0f172a66;z-index:1200}.calendar-modal{max-width:1000px;width:100%;max-height:92vh;padding:1rem;background:#fff;border-radius:18px;border:1px solid rgba(148,163,184,.3);box-shadow:0 20px 40px #0f172a40;display:flex;flex-direction:column}.calendar-modal-top{background:#fff;padding-bottom:.75rem}.calendar-modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}.calendar-modal-header h2{margin:0}.calendar-modal-header button{padding:.3rem .9rem}.calendar-modal-header-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.calendar-modal-subtitle{margin:0 0 1rem;font-size:.9rem;color:#4b5563}.calendar-modal-legend{margin:0 0 .75rem;font-size:.8rem;display:flex;gap:.5rem;flex-wrap:wrap}.calendar-legend-pill{padding:.18rem .6rem;border:none;border-radius:999px;cursor:pointer;font-size:.8rem;transition:opacity .12s ease,transform .12s ease,box-shadow .12s ease}.calendar-legend-pill:hover{transform:translateY(-1px)}.calendar-legend-pill--indoors{background:#dbeafe;color:#111827}.calendar-legend-pill--direct{background:#ffedd5;color:#111827}.calendar-legend-pill--transplant{background:#dcfce7;color:#111827}.calendar-legend-pill--active{box-shadow:0 0 0 1px #0f172a40;opacity:1}.calendar-legend-pill--inactive{opacity:.4}.calendar-modal-hint{margin:0 0 .75rem;font-size:.8rem;color:#6b7280}.calendar-export-btn{padding:.3rem .9rem;border:none;border-radius:999px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;letter-spacing:.01em;box-shadow:0 4px 10px #16a34a52;transition:transform .08s ease,box-shadow .08s ease,opacity .12s ease}.calendar-export-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #16a34a61}.calendar-months{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-height:65vh;overflow:auto}@media(min-width:900px){.calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}}.calendar-empty-state{padding:1rem;border-radius:12px;background:#f9fafb;border:1px solid #e5e7eb;color:#4b5563;font-size:.95rem}.calendar-month{padding:.75rem .75rem 1rem;border-radius:14px;border:1px solid #d1e0d8;background:#f9fafb}.calendar-month-title{margin:0 0 .5rem;font-size:1rem;color:#14532d}.calendar-grid-header{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-bottom:.25rem}.calendar-grid-header-cell{text-align:center;font-size:.75rem;color:#6b7280}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.calendar-cell{height:80px;min-height:80px;padding:.25rem;background:#fff;border-radius:6px;border:1px solid #e5e7eb;box-sizing:border-box;text-align:left;display:flex;flex-direction:column}.calendar-cell--blank{background:transparent;border:none}.calendar-cell--has-events{cursor:pointer;border-color:#cbd5e1}.calendar-cell--has-events:hover{border-color:#9ca3af;box-shadow:0 0 0 1px #94a3b899}.calendar-cell-date{margin-bottom:.15rem;font-size:.75rem;color:#6b7280;flex-shrink:0}.calendar-cell-events{list-style:none;margin:0;padding:0;flex:1;overflow:hidden}.calendar-cell-event{display:flex;align-items:center;gap:.15rem;margin-bottom:.08rem;padding:.05rem .15rem;font-size:.56rem;color:#111827;border-radius:5px}.calendar-cell-emoji{font-size:.56rem}.calendar-cell-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-cell-event--indoors{background:#dbeafe}.calendar-cell-event--direct{background:#ffedd5}.calendar-cell-event--transplant{background:#dcfce7}.calendar-cell-more{margin-top:.1rem;padding:.08rem .3rem;display:inline-block;max-width:100%;font-size:.58rem;font-weight:700;line-height:1.1;color:#166534;background:#ecfdf3;border-radius:999px;white-space:nowrap}.day-detail-backdrop{position:fixed;inset:0;padding:1rem;display:flex;justify-content:center;align-items:center;background:#0f172a59;z-index:1300}.day-detail-modal{max-width:420px;width:min(420px,100%);max-height:min(82vh,720px);background:#fff;border-radius:16px;border:1px solid rgba(148,163,184,.35);box-shadow:0 20px 40px #0f172a4d;overflow:hidden;display:flex;flex-direction:column}.day-detail-header{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:1rem 1.1rem .85rem;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.day-detail-header h3{margin:0;font-size:1rem;color:#14532d}.day-detail-header button{padding:.25rem .8rem;font-size:.8rem;flex-shrink:0}.day-detail-list{list-style:none;margin:0;padding:.9rem 1.1rem 1.1rem;font-size:.9rem;overflow-y:auto;overscroll-behavior:contain}.day-detail-item{margin-bottom:.6rem;padding-bottom:.6rem;border-bottom:1px solid #f1f5f9}.day-detail-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.day-detail-method{display:block;margin-top:.15rem;font-size:.85rem;line-height:1.45;color:#4b5563}@media(max-width:480px){.day-detail-backdrop{padding:.75rem}.day-detail-modal{width:100%;max-height:86vh;border-radius:14px}.day-detail-header{padding:.9rem .95rem .8rem}.day-detail-list{padding:.8rem .95rem 1rem}}@media print{@page{size:landscape;margin:.4in}body{background:#fff}.calendar-modal-backdrop{position:static;display:block;padding:0;background:#fff}.calendar-modal{max-width:none;max-height:none;width:auto;padding:0;border:none;border-radius:0;box-shadow:none;background:transparent;overflow:visible}.calendar-modal-top,.calendar-months,.day-detail-backdrop{display:none!important}}.App{box-sizing:border-box;max-width:960px;width:100%;margin:1rem auto;padding:2rem 1.75rem;background:#fff;border-radius:18px;border:1px solid rgba(148,163,184,.25);box-shadow:0 12px 30px #0f172a14}.App h1{margin:0 0 1rem;text-align:center;font-size:2.3rem;letter-spacing:.03em;color:#14532d}.App h2{margin:0 0 .75rem;font-size:1.3rem;color:#166534}.App h3{margin:0 0 1.5rem;text-align:center;font-size:1rem;color:#14532d}.App section{margin-bottom:2rem}.location-status{margin-top:.25rem;margin-left:.25rem;font-size:.85rem}.location-status--error{color:#b91c1c}.location-status--success{color:#6b7280}.schedule-preview{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.schedule-preview--empty{font-size:.95rem;color:#4b5563}.schedule-last-frost{margin:0 0 .75rem;font-size:.9rem;color:#374151}.schedule-group-card{padding:1rem 1.25rem;background:#f6fbf7;border:1px solid #d3e4d6;border-radius:14px;transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease}.schedule-group-card:hover{transform:translateY(-1px);border-color:#bfd8c3;box-shadow:0 6px 14px #0f172a14}.schedule-group-card h3{margin:0 0 .25rem}.schedule-dates{margin:0 0 .25rem;font-size:.85rem;color:#555}.schedule-description{margin:0 0 .5rem;font-size:.85rem;color:#666}.schedule-plants{margin:0 0 0 1.2rem;padding:0;list-style:disc;font-size:.9rem}.schedule-plant-emoji{margin-right:.25rem}.schedule-plant-details{font-size:.85rem;color:#4b5563}.plant-selector-actions{display:flex;justify-content:flex-start;margin:.7rem 0 1rem}.plant-selector-action-btn,.preview-calendar-btn,.use-location-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:999px;cursor:pointer;font-weight:500;letter-spacing:.01em;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;box-shadow:0 4px 10px #16a34a59;transition:transform .08s ease,box-shadow .08s ease,background .12s ease,opacity .12s ease}.plant-selector-action-btn:hover,.preview-calendar-btn:hover,.use-location-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #16a34a66}.plant-selector-action-btn:active,.preview-calendar-btn:active,.use-location-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 3px 7px #16a34a4d;opacity:.95}.plant-selector-action-btn:focus-visible,.preview-calendar-btn:focus-visible,.use-location-btn:focus-visible,.plant-btn:focus-visible{outline:3px solid #2563eb;outline-offset:3px}.preview-calendar-btn:disabled,.use-location-btn:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.plant-selector-action-btn{gap:.35rem;padding:.42rem 1rem;font-size:.84rem;font-weight:600;box-shadow:0 4px 10px #16a34a47}.preview-calendar-btn{gap:.4rem;margin-top:1rem;padding:.45rem 1.1rem;font-size:.9rem}.use-location-btn{gap:.4rem;margin-top:.5rem;padding:.4rem 1rem;font-size:.85rem}.preview-calendar-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;border-radius:999px;background:#ffffff2e;font-size:.75rem}.plant-buttons{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,auto);grid-auto-columns:minmax(150px,1fr);gap:.5rem;align-items:stretch}.plant-btn{width:100%;min-width:150px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.35rem .9rem;border:1px solid #cbd5e1;border-radius:999px;background-color:#f9fafb;color:#1f2933;font-size:.9rem;text-align:center;cursor:pointer;transition:background-color .05s ease,color .05s ease,border-color .05s ease,box-shadow .05s ease}.plant-btn:hover{border-color:#86b38b;box-shadow:0 2px 6px #0f172a14}.plant-btn--active{background-color:#16a34a;border-color:#15803d;color:#fff;box-shadow:0 3px 8px #16a34a59}.plant-btn-emoji{margin-right:.3rem;flex-shrink:0}.calendar-preview-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}@media(max-width:480px){.App{margin:1rem auto;padding:1.25rem 1rem}.App h1{font-size:1.9rem}.plant-selector-actions{margin:.65rem 0 .9rem}.plant-buttons{display:block;column-count:2;column-gap:.5rem}.plant-btn{display:block;width:100%;min-width:0;break-inside:avoid;margin-bottom:.5rem}}html,body{height:100%;margin:0}body{min-width:320px;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;color:#111827;background-color:#e7f0ea;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;box-sizing:border-box}a{font-weight:500;color:#2563eb;text-decoration:none}a:hover{color:#1d4ed8}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9fafb;cursor:pointer;transition:border-color .25s,background-color .25s,box-shadow .25s}button:hover{border-color:#2563eb}button:focus,button:focus-visible{outline:3px solid #2563eb;outline-offset:2px}.launch-shell{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;box-sizing:border-box}.launch-card{width:100%;max-width:760px;padding:3rem 2rem;background:#fff;border:1px solid rgba(20,83,45,.12);border-radius:24px;box-shadow:0 18px 48px #0f172a14}.launch-eyebrow{margin:0 0 .75rem;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#166534}.launch-card h1{margin:0 0 1rem;font-size:clamp(2.2rem,6vw,4.5rem);line-height:1.02;color:#14532d}.launch-copy{margin:0 0 1rem;max-width:56ch;color:#374151;font-size:1.05rem}.launch-actions{display:flex;gap:.75rem;margin:1.5rem 0 .5rem}.launch-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.85rem 1.2rem;border-radius:999px;background:#166534;color:#fff;text-decoration:none;font-weight:600;box-shadow:0 8px 20px #16653438}.launch-primary:hover{background:#14532d;color:#fff}.launch-note{margin:.75rem 0 0;color:#6b7280;font-size:.95rem}.beta-banner{max-width:960px;margin:1rem auto 0;padding:.85rem 1rem;border-radius:14px;background:#ecfdf3;border:1px solid #b7e4c7;color:#14532d;font-size:.95rem}.beta-back-link{display:inline-block;margin-bottom:1rem;color:#166534;font-weight:600}@media(max-width:640px){.launch-card{padding:2rem 1.25rem;border-radius:20px}.launch-copy{font-size:1rem}}
