:root{--page:#f2eddf;--card:#fcfaf3;--card-2:#ede7d6;--ink:#24402b;--muted:#5e6852;--accent:#7acc55;--accent-text:#2f7a1a;--amber:#d99a2b;--amber-text:#8f5b1d;--water:#5b84b8;--line:#24402b1f;--troll-body:#9bb068;--shadow:0 1px 2px #24402b0f, 0 6px 18px #24402b12;--serif:"Literata", Georgia, serif;--sans:"DM Sans", -apple-system, system-ui, sans-serif}html[data-theme=dark]{--page:#121d13;--card:#1b291c;--card-2:#24402b;--ink:#f2eddf;--muted:#9aa88f;--accent:#7acc55;--accent-text:#7acc55;--amber:#e3ac45;--amber-text:#e3ac45;--water:#7ba3d4;--line:#f2eddf24;--troll-body:#9bb068;--shadow:0 1px 2px #0000004d, 0 8px 22px #00000047}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{background:var(--page);min-height:100dvh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;justify-content:center;font-size:16px;line-height:1.45;transition:background .25s,color .25s;display:flex}body:before{content:"";pointer-events:none;z-index:0;opacity:.035;background:repeating-radial-gradient(circle at 20% -10%,#0000 0 46px,currentColor 46px 46.75px),repeating-radial-gradient(circle at 95% 110%,#0000 0 62px,currentColor 62px 62.75px);position:fixed;inset:0}#root{justify-content:center;width:100%;display:flex}.app{z-index:1;width:100%;max-width:430px;min-height:100dvh;padding:20px 16px calc(84px + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:relative}header{align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.greet h1{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.2}.greet .meta{color:var(--muted);margin-top:3px;font-size:13px;font-weight:500}.head-right{align-items:center;gap:8px;margin-left:auto;display:flex}.chip{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.chip .rain{color:var(--water);font-weight:600}button.chip{font-family:var(--sans);color:var(--ink);cursor:pointer;position:relative}button.chip:after{content:"";border-radius:999px;position:absolute;inset:-6px}.theme-btn{border:1px solid var(--line);background:var(--card);width:44px;height:44px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}section.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;margin-bottom:14px;padding:16px;transition:background .25s}.card-head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.card-head h2{font-family:var(--serif);font-size:19px;font-weight:600}.card-head .sub{color:var(--muted);font-size:13px;font-weight:600}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.task{text-align:left;cursor:pointer;width:100%;min-height:48px;font-family:var(--sans);color:var(--ink);background:0 0;border:0;border-radius:12px;align-items:flex-start;gap:12px;padding:10px 4px;display:flex}.task+.task{border-top:1px solid var(--line)}.task .box{border:2px solid var(--muted);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:1px;transition:all .18s;display:flex}.task[aria-checked=true] .box{border-color:var(--accent);background:var(--accent)}.task .tick{opacity:0;transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .15s;transform:scale(.3)}.task[aria-checked=true] .tick{opacity:1;transform:scale(1)}.task .t-title{font-size:16px;font-weight:600;line-height:1.3;transition:opacity .2s}.task .t-sub{color:var(--muted);margin-top:2px;font-size:13px}.task[aria-checked=true] .t-title{opacity:.55;text-decoration:line-through;text-decoration-thickness:1.5px}.banner{background:var(--card-2);border:1px solid var(--line);border-radius:18px;margin:20px 0 14px;padding:14px 16px;position:relative;overflow:hidden}.banner .b-text{padding-right:84px;font-size:14px;font-weight:600;line-height:1.4}.banner .quip{font-family:var(--serif);color:var(--muted);margin-top:4px;padding-right:84px;font-size:13px;font-style:italic}.troll{width:72px;height:auto;position:absolute;bottom:-2px;right:8px}.week{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day{border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:8px 0;display:flex}.day.today{background:var(--card-2)}.day .d-label{letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.day .d-rain{color:var(--water);min-height:15px;font-size:11px;font-weight:600}.legend{color:var(--muted);gap:14px;margin-top:10px;font-size:12px;font-weight:600;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.soil-row{align-items:center;gap:16px;margin-top:8px;display:flex}.soil-temp{font-family:var(--serif);font-size:34px;font-weight:700;line-height:1}.soil-temp small{color:var(--muted);font-size:14px;font-weight:600;font-family:var(--sans);margin-top:4px;display:block}.soil-note{font-size:14px;line-height:1.45}.soil-note strong{color:var(--accent-text)}.zones{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;display:grid}.zone{background:var(--card-2);border:1px solid var(--line);text-align:left;border-radius:14px;padding:12px 10px}.zone .dot{border-radius:50%;width:9px;height:9px;display:inline-block}.zone .z-name{margin-top:7px;font-size:14px;font-weight:700}.zone .z-status{color:var(--muted);margin-top:1px;font-size:12px;font-weight:600}.zone.warn .z-status{color:var(--amber-text)}.plan-row{align-items:flex-start;gap:12px;min-height:48px;padding:10px 4px;display:flex}.plan-row+.plan-row{border-top:1px solid var(--line)}.plan-row .p-day{letter-spacing:.06em;width:40px;color:var(--muted);flex-shrink:0;margin-top:3px;font-size:11px;font-weight:700}.plan-row.today .p-day{color:var(--accent-text)}.plan-row .p-title{font-size:15px;font-weight:600;line-height:1.3}.plan-row .p-sub{color:var(--muted);margin-top:2px;font-size:13px}.plan-row .p-icon{flex-shrink:0;margin-top:3px;margin-left:auto}.plan-row.skip .p-title{opacity:.6;text-decoration:line-through;text-decoration-thickness:1.5px}.note-strip{background:var(--card-2);border-radius:12px;margin-top:10px;padding:11px 13px;font-size:13px;line-height:1.45}.note-strip strong{color:var(--accent-text)}.timeline{margin-top:4px}.tl-item{gap:12px;display:flex}.tl-rail{flex-direction:column;flex-shrink:0;align-items:center;width:20px;display:flex}.tl-dot{background:var(--card);border:2px solid var(--muted);border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:4px}.tl-item.now .tl-dot{background:var(--accent);border-color:var(--accent)}.tl-line{background:var(--line);flex:1;width:2px;min-height:14px;margin-top:3px}.tl-item:last-child .tl-line{display:none}.tl-body{padding-bottom:16px}.tl-item:last-child .tl-body{padding-bottom:4px}.tl-name{font-size:15px;font-weight:700;display:inline}.tl-item.now .tl-name{color:var(--accent-text)}.tl-date{color:var(--muted);margin-left:8px;font-size:12px;font-weight:600}.tl-note{color:var(--muted);margin-top:2px;font-size:13px;line-height:1.4}.yzone{align-items:flex-start;gap:12px;min-height:56px;padding:12px 4px;display:flex}.yzone+.yzone{border-top:1px solid var(--line)}.yzone .dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:6px;display:inline-block}.yzone .y-name{font-size:16px;font-weight:700}.yzone .y-status{color:var(--muted);margin-left:8px;font-size:13px;font-weight:600}.yzone.warn .y-status{color:var(--amber-text)}.yzone .y-sub{color:var(--muted);margin-top:2px;font-size:13px}.yzone .y-note{margin-top:4px;font-size:13px;line-height:1.4}.yzone .chev{flex-shrink:0;margin-top:8px;margin-left:auto}.kv{justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 4px;display:flex}.kv+.kv{border-top:1px solid var(--line)}.kv .k{color:var(--muted);font-size:13px;font-weight:600}.kv .v{text-align:right;font-size:15px;font-weight:600}.myth{font-family:var(--serif);color:var(--muted);font-size:16px;font-style:italic;line-height:1.4}.fact{margin-top:8px;font-size:15px;line-height:1.45}.fact strong{color:var(--accent-text)}.learn-row{align-items:center;gap:12px;min-height:56px;padding:12px 4px;display:flex}.learn-row+.learn-row{border-top:1px solid var(--line)}.learn-row .l-title{font-size:15px;font-weight:600;line-height:1.35}.learn-row .l-sub{color:var(--muted);margin-top:2px;font-size:13px}.learn-row .chev{flex-shrink:0;margin-left:auto}button.learn-link{text-align:left;cursor:pointer;width:100%;font-family:var(--sans);color:var(--ink);background:0 0;border:0;border-radius:12px}button.learn-link+button.learn-link{border-top:1px solid var(--line)}.guide-body h3{font-family:var(--serif);margin:14px 0 4px;font-size:16px;font-weight:600}.guide-body p{font-size:15px;line-height:1.55}.guide-body p+p,.guide-body div+div{margin-top:10px}.sources{gap:8px;margin-top:8px;list-style:none;display:grid}.sources li{color:var(--muted);font-size:13px;line-height:1.45}.sources a{color:var(--accent-text);font-weight:600;text-decoration:none}.sources a:hover{text-decoration:underline}.back-btn{order:-1}.loc-current{font-size:15px;font-weight:700}.loc-current .loc-soil{color:var(--muted);font-size:13px;font-weight:500}.loc-form{gap:8px;margin-top:10px;display:flex}.loc-form input{border:1px solid var(--line);background:var(--page);min-width:0;min-height:44px;color:var(--ink);font-family:var(--sans);border-radius:12px;flex:1;padding:0 14px;font-size:15px}.loc-form input::placeholder{color:var(--muted)}.loc-btn{background:var(--card-2);min-height:44px;color:var(--accent-text);font-family:var(--sans);cursor:pointer;border:0;border-radius:12px;flex-shrink:0;padding:0 16px;font-size:14px;font-weight:700}.loc-btn:disabled{opacity:.6;cursor:default}.loc-confirm .loc-btn{background:var(--card);margin-top:10px;display:block}.loc-note{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.45}.faq{border-radius:12px}.faq+.faq{border-top:1px solid var(--line)}.faq summary{cursor:pointer;align-items:center;gap:12px;min-height:48px;padding:12px 4px;font-size:15px;font-weight:600;line-height:1.35;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary .chev{flex-shrink:0;margin-left:auto;transition:transform .18s}.faq[open] summary .chev{transform:rotate(90deg)}.faq p{color:var(--muted);padding:0 4px 12px;font-size:13px;line-height:1.5}.loading,.error-note{text-align:center;color:var(--muted);padding:48px 16px;font-size:14px;font-weight:500}.error-note strong{color:var(--ink);font-size:16px;font-family:var(--serif);margin-bottom:6px;display:block}.foot{text-align:center;color:var(--muted);margin:10px 0 6px;font-size:12px;font-weight:500}.foot a{color:var(--accent-text);font-weight:700;text-decoration:none}.foot a:hover{text-decoration:underline}nav{background:var(--card);border-top:1px solid var(--line);width:100%;max-width:430px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:10;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}nav button{cursor:pointer;min-height:52px;font-family:var(--sans);color:var(--muted);background:0 0;border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:700;display:flex}nav button.active{color:var(--accent-text)}nav button.active svg{stroke:var(--accent-text)}nav svg{stroke:var(--muted)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:12px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.map-wrap{margin-top:4px;position:relative}.map-canvas{background:var(--card-2);border-radius:12px;width:100%;height:320px;overflow:hidden}.map-loading{color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.map-fallback{background:var(--card-2);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.5}.map-fallback strong{color:var(--accent-text)}.map-hint{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.45}.link-btn{min-height:auto;color:var(--accent-text);font-family:var(--sans);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:13px;font-weight:700}.yzone-btn{text-align:left;width:100%;font-family:var(--sans);color:var(--ink);cursor:pointer;background:0 0;border:0;padding-left:0;padding-right:0}.zone-form{margin-top:6px}.zone-form .field{margin-bottom:12px;display:block}.zone-form .f-label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;font-size:12px;font-weight:700;display:block}.zone-form input[type=text],.zone-form input[type=number],.zone-form select{border:1px solid var(--line);background:var(--page);width:100%;min-height:44px;color:var(--ink);font-family:var(--sans);border-radius:12px;padding:0 14px;font-size:15px}.zone-form .f-static{padding:10px 0 2px;font-size:15px;font-weight:700;display:block}.zone-form .f-static small,.zone-form .field-check small{color:var(--muted);font-size:12px;font-weight:500}.zone-form .field-check{cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;display:flex}.zone-form .field-check input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin-top:1px}.zone-form-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.ghost-btn{border:1px solid var(--line);min-height:44px;color:var(--ink);font-family:var(--sans);cursor:pointer;background:0 0;border-radius:12px;padding:0 14px;font-size:14px;font-weight:700}.ghost-btn.danger{color:#b4552d;border-color:currentColor;margin-left:auto}.map-draw-bar{background:var(--card);border-radius:12px;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex;position:absolute;bottom:8px;left:8px;right:8px;box-shadow:0 4px 14px #00000040}.map-draw-bar .draw-count{color:var(--muted);flex:1;font-size:12px;font-weight:700;line-height:1.3}.map-draw-bar .ghost-btn:disabled,.map-draw-bar .loc-btn:disabled{opacity:.5;cursor:default}.map-expand{background:var(--card);width:44px;height:44px;color:var(--ink);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #0000004d}.map-wrap.map-full{z-index:60;background:var(--page);margin:0;position:fixed;inset:0}.map-wrap.map-full .map-canvas{border-radius:0;height:100%}.map-wrap.map-full .map-expand{top:calc(8px + env(safe-area-inset-top))}.map-wrap.map-full .map-draw-bar{bottom:calc(12px + env(safe-area-inset-bottom));left:12px;right:12px}.zone-form .cal-actions{gap:14px;margin-top:6px}.cal-form{background:var(--card-2);border-radius:12px;margin-top:8px;padding:12px}.cal-form .field:last-of-type{margin-bottom:0}.cal-form input{background:var(--card)}
