:root{--bg:#f7f5ef;--surface:#fff;--text:#24301f;--muted:#66705f;--line:#dfe3d6;--green:#3f7d3a;--green-strong:#2f6a2b;--green-soft:#e3f0df;--amber:#8a5a00;--amber-soft:#fbefd5;--red:#b3261e;--red-soft:#fbe3e1;--soil:#ead9bf;--soil-line:#c9b18d;--bed:#8a6a43;--bed-text:#fffaf0;--bed-selected:#3f7d3a;--tap:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#151a13;--surface:#1f261c;--text:#e8eee2;--muted:#a3ad9a;--line:#34402f;--green:#8cc683;--green-strong:#a6d89e;--green-soft:#26381f;--amber:#f0c36a;--amber-soft:#3a2f17;--red:#ff8a80;--red-soft:#3d1d1a;--soil:#3b3226;--soil-line:#5e4f3b;--bed:#a9845a;--bed-text:#1b150d;--bed-selected:#8cc683;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.6}h1,h2{word-break:keep-all;overflow-wrap:anywhere;line-height:1.3}h2{margin:0 0 8px;font-size:1.1rem}.page{max-width:640px;margin:0 auto;padding:16px}.page.center{flex-direction:column;justify-content:center;min-height:100dvh;display:flex}.page.with-tabs{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.topbar{justify-content:space-between;align-items:center;max-width:640px;margin:0 auto;padding:12px 16px 0;display:flex}.brand{color:var(--green);margin:0;font-size:1.4rem;font-weight:700}.lead{font-size:1.05rem}.tabs{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabs a{min-height:56px;color:var(--muted);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.tabs a.active{color:var(--green);box-shadow:inset 0 3px 0 var(--green)}.stack{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.stack-sm{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.card{word-break:auto-phrase;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;margin:0;padding:14px}fieldset.card{gap:10px;display:grid}legend{padding:0 4px;font-weight:700}.cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cards .card p{margin:4px 0 0}.card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row{color:var(--muted);gap:4px;font-size:.9rem;display:grid}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);min-height:var(--tap);border-radius:8px;width:100%;min-width:0;padding:8px 10px;font-size:1rem}input[aria-invalid=true]{border-color:var(--red)}.with-unit{align-items:center;gap:6px;display:flex}.unit{color:var(--muted);flex:none}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.choice{min-height:var(--tap);align-items:flex-start;gap:10px;padding:6px 0;display:flex}.choice input{flex:none;width:22px;min-height:22px;margin-top:3px}.choice>span{display:grid}.note{background:var(--amber-soft);color:var(--amber);border-radius:8px;margin:0;padding:8px 10px}.button{font:inherit;min-height:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;text-align:center;border-radius:10px;justify-content:center;align-items:center;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--green);border-color:var(--green);color:var(--surface)}.button.danger{color:var(--red);border-color:var(--red)}.button.large{width:100%;min-height:56px;font-size:1.05rem}.button.small{min-height:40px;padding:4px 12px}.link{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;min-height:40px;text-decoration:underline}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.toolbar{align-items:center;gap:8px;display:flex}.toolbar select{flex:1}.segmented{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.segmented button{font:inherit;min-height:var(--tap);background:var(--surface);color:var(--text);cursor:pointer;border:none}.segmented button.active{background:var(--green-soft);color:var(--green-strong);font-weight:700}.chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chip{font:inherit;border:1px solid var(--line);background:var(--surface);min-width:64px;min-height:44px;color:var(--text);cursor:pointer;border-radius:999px;padding:4px 14px}.chip.active{border-color:var(--bed-selected);background:var(--green-soft);color:var(--green-strong);font-weight:700}.field-map{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;max-height:60vh;display:block}.field-soil{fill:var(--soil);stroke:var(--soil-line);stroke-width:.04px}.field-dim{fill:var(--muted)}.bed rect{fill:var(--bed);stroke:none}.bed text{fill:var(--bed-text);pointer-events:none;font-weight:700}.bed.clickable{cursor:pointer}.bed.selected rect{fill:var(--bed-selected)}.bed.preview rect{fill:var(--green);fill-opacity:.35;stroke:var(--green);stroke-width:.05px;stroke-dasharray:.15 .1}.bed.preview text{fill:var(--green-strong)}.bed.preview.problem rect{fill:var(--red);stroke:var(--red)}.bed.preview.problem text{fill:var(--red)}.badge{border-radius:999px;padding:2px 8px;font-size:.8rem}.badge.now{background:var(--green-soft);color:var(--green)}.badge.soon{background:var(--amber-soft);color:var(--amber)}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--red);background:var(--red-soft);border-radius:8px;margin:0;padding:8px 10px}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented.four{grid-template-columns:repeat(4,1fr)}.planting{pointer-events:none}.planting rect{stroke-width:.04px}.planting text{font-weight:700}.planting.active rect{fill:var(--green);stroke:var(--green-strong)}.planting.active text{fill:var(--surface)}.planting.planned rect{fill:var(--surface);fill-opacity:.75;stroke:var(--green);stroke-dasharray:.15 .1}.planting.planned text{fill:var(--green-strong)}.planting.past rect{fill:var(--amber-soft);stroke:var(--amber)}.planting.past text{fill:var(--amber)}.badge.status-active{background:var(--green-soft);color:var(--green)}.badge.status-planned{background:var(--surface);color:var(--green);border:1px dashed var(--green)}.badge.status-done{background:var(--line);color:var(--muted)}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-actions input[type=date]{flex:140px;width:auto}.rotation{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:14px}.rotation h3{margin:0 0 6px;font-size:1rem}.rotation p{margin:6px 0 0}.rotation.ok{border-color:var(--green)}.rotation.ok h3{color:var(--green)}.rotation.insufficient{border-color:var(--amber);background:var(--amber-soft)}.rotation.insufficient h3,.rotation.caution h3{color:var(--amber)}.rotation.caution{border-color:var(--amber);background:var(--amber-soft);border-width:2px}.rotation.occupied{border-color:var(--red);background:var(--red-soft);border-width:2px}.rotation.occupied h3{color:var(--red)}.findings{margin:6px 0 0;padding-left:1.2em}.alternatives{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.task-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.task-main{gap:2px;min-width:0;display:grid}.task-row>.button{white-space:nowrap;flex:none}.task-main strong{word-break:auto-phrase;overflow-wrap:anywhere}.link.place span{white-space:nowrap}.link.place{text-align:left;min-height:32px;padding:0;font-size:.85rem}.badge.late{background:var(--red-soft);color:var(--red)}.done-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.done-row>.link{white-space:nowrap;flex:none}.row-actions select{flex:160px;width:auto}.suggestion p{margin:0}.suggestion.full,.suggestion.no_beds{opacity:.85}.spots{gap:8px;display:grid}.spot{font:inherit;text-align:left;min-height:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;gap:2px;padding:8px 12px;display:grid}.spot-place{font-weight:700}.spot-level{font-size:.85rem}.spot.ok{border-color:var(--green)}.spot.ok .spot-level{color:var(--green)}.spot.insufficient,.spot.caution{border-color:var(--amber)}.spot.insufficient .spot-level,.spot.caution .spot-level{color:var(--amber)}.crop-link{font:inherit;color:inherit;text-align:left;cursor:pointer;gap:4px;width:100%;display:grid}.link.back,.link.guide-link{justify-self:start;padding:0}.guide h3{margin:0;font-size:1.05rem}.guide p{margin:0}.guide-title{margin:0;font-size:1.5rem}.review{border-radius:8px;padding:8px 10px;font-size:.9rem}.review.ok{background:var(--green-soft);color:var(--green-strong)}.review.partial{background:var(--amber-soft);color:var(--amber)}.unverified{border:1px dashed var(--amber);color:var(--amber);white-space:nowrap;vertical-align:middle;border-radius:6px;margin-left:6px;padding:0 6px;font-size:.75rem;line-height:1.6;display:inline-block}.facts{gap:6px;margin:0;padding:0;list-style:none;display:grid}.facts li{grid-template-columns:6.5em minmax(0,1fr);gap:8px;display:grid}.fact-label{color:var(--muted);font-size:.9rem}.steps{gap:8px;margin:0;padding-left:1.4em;display:grid}.steps li>span{display:block}.sources{grid-template-columns:minmax(0,1fr);gap:8px;margin:0;padding-left:1.2em;display:grid}.sources a{color:var(--green-strong);overflow-wrap:anywhere}.source-note{display:block}.season-chart{width:100%;display:block}.season-chart .month-band{fill:var(--surface)}.season-chart .month-band.alt{fill:var(--bg)}.season-chart .month-label{fill:var(--muted);font-size:13px}.season-chart .row-label{fill:var(--text);font-size:14px}.season-chart .today-line{stroke:var(--red);stroke-width:1.5px}.season-bar.sow{fill:var(--amber)}.season-bar.plant{fill:var(--bed)}.season-bar.harvest{fill:var(--green)}.season-bar.unverified{fill-opacity:.25;stroke:currentColor;stroke-width:1.5px;stroke-dasharray:4 3}.season-bar.sow.unverified{color:var(--amber)}.season-bar.plant.unverified{color:var(--bed)}.season-bar.harvest.unverified{color:var(--green)}.hint{background:var(--green-soft);color:var(--text);border-radius:8px;margin:0;padding:10px 12px;font-size:.95rem}.hint strong{color:var(--green-strong);margin-right:4px}.field-map.editable{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.field-map.editable .bed{touch-action:none;cursor:grab}.field-map.dragging,.field-map.dragging .bed{cursor:grabbing}.field-map.editable .bed.locked{cursor:not-allowed}.bed.dragging rect{fill-opacity:.85;stroke:var(--green-strong);stroke-width:.06px}.bed.dragging.problem rect{fill:var(--red);stroke:var(--red)}.handle{fill:var(--surface);stroke:var(--green-strong);stroke-width:.06px;cursor:ew-resize;touch-action:none}.drag-size{fill:var(--green-strong);pointer-events:none;font-weight:700}.record-card{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;gap:4px;display:grid}.record-meta{flex-wrap:wrap;gap:4px 12px;display:flex}.record-entry{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:10px 12px;display:grid}.record-entry .badge{justify-self:start}.record-date{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}.record-text{min-width:0;display:grid}@media (width<=400px){.record-entry{grid-template-columns:auto minmax(0,1fr) auto}.record-entry .record-text{grid-area:2/1/auto/-1}}.badge.entry-harvest{background:var(--green-soft);color:var(--green)}.badge.entry-memo{background:var(--line);color:var(--text)}.row-actions input[type=number]{flex:120px;width:auto}textarea{font:inherit;box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:8px;padding:10px}.record-head p{margin:0}.field-map.preview-movable{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.field-map .bed.preview.movable{touch-action:none;cursor:grab}.field-map.dragging .bed.preview.movable{cursor:grabbing}.plant-guide>summary{cursor:pointer;min-height:40px;padding:8px 0;font-weight:700}.glossary{background:var(--green-soft);border-radius:8px;padding:4px 10px;font-size:.9rem}.glossary>summary{cursor:pointer;min-height:36px;color:var(--text);align-items:center;display:flex}.glossary dl{gap:6px;margin:4px 0 8px;display:grid}.glossary dt{font-weight:700}.glossary dd{margin:0}
