:root{--paper: #faf8f3;--surface: #ffffff;--surface-sunken: #f3f1ea;--ink: #1b241d;--ink-soft: #46534a;--muted: #78857b;--green: #2f6a41;--green-deep: #1d4429;--green-wash: #e8f1e9;--clay: #b4653a;--clay-wash: #f8ece4;--warn: #a3392f;--warn-wash: #f9e9e4;--on-green: #ffffff;--banner-from: #2f6a41;--banner-to: #1d4429;--hairline: rgb(27 36 29 / 9%);--shadow-low: 0 1px 2px rgb(27 36 29 / 5%), 0 3px 10px rgb(27 36 29 / 4%);--shadow-mid: 0 2px 6px rgb(27 36 29 / 6%), 0 12px 28px rgb(27 36 29 / 8%);--radius: 18px;--radius-sm: 12px;--display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--paper: #12170f;--surface: #1a2118;--surface-sunken: #222a1f;--ink: #eef2e9;--ink-soft: #c2ccbc;--muted: #8b9887;--green: #7fb98c;--green-deep: #a7d3b0;--green-wash: #22301f;--clay: #d9a17c;--clay-wash: #2e2620;--warn: #e0907f;--warn-wash: #33201c;--on-green: #10170e;--banner-from: #1f3d28;--banner-to: #2f5c3c;--hairline: rgb(238 242 233 / 12%);--shadow-low: 0 1px 2px rgb(0 0 0 / 30%);--shadow-mid: 0 2px 6px rgb(0 0 0 / 32%), 0 14px 30px rgb(0 0 0 / 26%);color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0 0 auto;height:24rem;background:radial-gradient(110% 70% at 50% -25%,var(--green-wash) 0%,transparent 72%);pointer-events:none;z-index:0}#app{position:relative;z-index:1;max-width:40rem;margin:0 auto;padding:0 max(1.15rem,env(safe-area-inset-right)) 7rem max(1.15rem,env(safe-area-inset-left))}h1,h2,h3{margin:0;font-weight:600}ul{list-style:none;margin:0;padding:0}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none}svg{display:block;flex:none}.header{padding:2.25rem 0 1.4rem}.brand{display:flex;align-items:center;gap:.45rem;margin:0 0 .85rem;color:var(--green)}.brand span{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.brand svg{width:17px;height:17px}.header h1{font-family:var(--display);font-size:clamp(2rem,8vw,2.6rem);font-weight:600;line-height:1.08;letter-spacing:-.015em}.subtitle{margin:.55rem 0 0;max-width:30rem;color:var(--ink-soft)}.progress{display:flex;align-items:center;gap:.7rem;margin-top:1.15rem}.progress-track{flex:1;height:6px;border-radius:999px;background:var(--surface-sunken);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--green-deep));transition:width .45s cubic-bezier(.22,1,.36,1)}.progress-label{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.months{position:sticky;top:.6rem;z-index:2;display:flex;gap:.15rem;margin-bottom:1.35rem;padding:.3rem;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-low)}.months button{position:relative;flex:1;padding:.52rem 0 .62rem;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:600;cursor:pointer;transition:background .18s,color .18s}@media(hover:hover){.months button:hover{color:var(--ink)}}.months button.selected{background:var(--green);color:var(--on-green)}.months button .dot{position:absolute;bottom:.28rem;left:50%;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.45;transform:translate(-50%)}.months button.selected .dot{opacity:.85}.months button.today:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:1.5px solid var(--green);border-radius:999px;opacity:.35}.months button.selected.today:after{opacity:0}.sheet{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low);overflow:hidden}.task{display:flex;gap:.95rem;align-items:flex-start;padding:1.05rem 1.15rem;transition:background .2s,opacity .3s}.task+.task{box-shadow:inset 0 1px 0 var(--hairline)}@media(hover:hover){.task:hover{background:color-mix(in srgb,var(--green-wash) 45%,transparent)}}.task:active{background:color-mix(in srgb,var(--green-wash) 45%,transparent)}.task-avatar{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--green-wash);color:var(--green)}.task-avatar svg{width:18px;height:18px}.task-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.task-body{flex:1;min-width:0}.task-plant{margin:0;color:var(--green);font-size:.73rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.task h3{margin:.15rem 0 0;font-family:var(--display);font-size:1.16rem;letter-spacing:-.01em}.task p.task-description{margin:.3rem 0 0;color:var(--ink-soft);font-size:.92rem}.check{position:relative;flex:none;width:1.65rem;height:1.65rem;margin-top:.35rem;border:1.8px solid color-mix(in srgb,var(--green) 45%,transparent);border-radius:50%;background:transparent;color:var(--on-green);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.check:after{content:"";position:absolute;top:-.55rem;right:-.55rem;bottom:-.55rem;left:-.55rem;border-radius:50%}@media(hover:hover){.check:hover{border-color:var(--green);transform:scale(1.08)}}.check:active{transform:scale(.9)}.check svg{width:15px;height:15px;margin:0 auto;stroke-width:2.6;stroke-dasharray:24;stroke-dashoffset:24}.task.done .check{border-color:var(--green);background:var(--green)}.task.done .check svg{animation:draw .35s cubic-bezier(.65,0,.35,1) forwards}@keyframes draw{to{stroke-dashoffset:0}}.task.done .task-avatar{background:var(--surface-sunken);color:var(--muted)}.task.done .task-plant,.task.done .task-description{color:var(--muted)}.task.done h3{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.group-label{margin:1.6rem 0 .7rem;color:var(--muted);font-size:.73rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.plants{display:grid;gap:.8rem}.plant{display:flex;gap:.9rem;align-items:flex-start;padding:.95rem 1rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low);transition:box-shadow .2s,transform .2s}@media(hover:hover){.plant:hover{box-shadow:var(--shadow-mid);transform:translateY(-1px)}}.plant:active{transform:scale(.99)}.plant-avatar{display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:50%;background:var(--green-wash);color:var(--green)}.plant-avatar svg{width:22px;height:22px}img.plant-avatar{object-fit:cover}.plant>.plant-avatar,.plant>.icon-button{margin-top:.1rem}.plant-body{flex:1;min-width:0}.plant h3{font-family:var(--display);font-size:1.18rem}.latin{margin:.05rem 0 0;color:var(--muted);font-size:.88rem;font-style:italic}.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.chip{padding:.12rem .55rem;border-radius:999px;background:var(--surface-sunken);color:var(--ink-soft);font-size:.74rem;font-weight:500}.chip.accent{background:var(--clay-wash);color:var(--clay)}.chip.warn{background:var(--warn-wash);color:var(--warn)}.filter-chips{display:flex;gap:.4rem;margin:.9rem calc(-1*max(1.15rem,env(safe-area-inset-right))) 0 calc(-1*max(1.15rem,env(safe-area-inset-left)));padding:0 max(1.15rem,env(safe-area-inset-right)) .25rem max(1.15rem,env(safe-area-inset-left));overflow-x:auto;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;padding:.42rem .85rem;border:1px solid var(--hairline);border-radius:999px;background:var(--surface);color:var(--ink-soft);font:inherit;font-size:.83rem;font-weight:500;cursor:pointer}.filter-chip.active{border-color:var(--green);background:var(--green);color:var(--on-green)}.icon-button{position:relative;display:grid;place-items:center;width:2.1rem;height:2.1rem;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;transition:background .2s,color .2s}.icon-button:after{content:"";position:absolute;top:-.3rem;right:-.3rem;bottom:-.3rem;left:-.3rem;border-radius:50%}@media(hover:hover){.icon-button:hover{background:var(--clay-wash);color:var(--clay)}}.icon-button:active{background:var(--clay-wash);color:var(--clay)}.icon-button.armed{background:var(--clay);color:#fff;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.12)}}.segmented{display:inline-flex;gap:.2rem;margin-bottom:1rem;padding:.25rem;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-low)}.segmented button{padding:.4rem .95rem;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:600;cursor:pointer;transition:background .18s,color .18s}.segmented button.active{background:var(--green);color:var(--on-green)}.map{position:relative;aspect-ratio:4 / 3;border-radius:var(--radius);background:radial-gradient(circle at 1px 1px,var(--hairline) 1px,transparent 1.5px) 0 0 / 26px 26px,linear-gradient(160deg,var(--green-wash),color-mix(in srgb,var(--green-wash) 55%,var(--surface)));box-shadow:inset 0 0 0 1px var(--hairline),var(--shadow-low);overflow:hidden;touch-action:none}.map.placing{cursor:crosshair;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--green) 55%,transparent),var(--shadow-low)}.map-plant{position:absolute;display:grid;gap:.2rem;justify-items:center;padding:0;border:0;background:none;transform:translate(-50%,-50%);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.map-menu{position:absolute;z-index:6;display:grid;gap:.1rem;min-width:10.5rem;padding:.35rem;border-radius:var(--radius-sm);background:var(--surface);box-shadow:0 0 0 1px var(--hairline),var(--shadow-mid);transform:translate(-50%,1.9rem);animation:menu-pop .14s ease-out}.map-menu.above{transform:translate(-50%,calc(-100% - 1.9rem))}.map-menu strong{padding:.3rem .55rem .15rem;color:var(--ink-soft);font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-menu button{display:flex;gap:.55rem;align-items:center;padding:.62rem .55rem;border:0;border-radius:calc(var(--radius-sm) - 4px);background:none;color:var(--ink);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.map-menu button:hover{background:var(--surface-sunken)}.map-menu button svg{flex-shrink:0;color:var(--ink-soft)}.map-menu button.remove,.map-menu button.remove svg{color:var(--warn)}.map-menu button.remove.armed{background:var(--warn-wash);font-weight:600}@keyframes menu-pop{0%{opacity:0;scale:.92}}.map-plant:active{cursor:grabbing}.map-plant .plant-avatar{width:2.6rem;height:2.6rem;background:var(--surface);box-shadow:var(--shadow-mid)}.map-label{padding:.05rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--shadow-low);color:var(--ink-soft);font-size:.7rem;font-weight:600;white-space:nowrap;pointer-events:none}.map-hint{position:absolute;inset:auto 1rem 1rem;margin:0;padding:.55rem .9rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-low);color:var(--ink-soft);font-size:.85rem;text-align:center;pointer-events:none}.map-sun{position:absolute;display:grid;place-items:center;width:2.4rem;height:2.4rem;padding:0;border:0;border-radius:50%;background:#f6cd4f;color:#6b4d0c;box-shadow:var(--shadow-mid),0 0 0 7px #f6cd4f38;transform:translate(-50%,-50%);cursor:grab;touch-action:none}.map-sun:active{cursor:grabbing}.map-sun svg{width:19px;height:19px}.map-sun-add{position:absolute;top:.7rem;right:.7rem;display:flex;gap:.4rem;align-items:center;padding:.35rem .8rem;border:0;border-radius:999px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-low);color:var(--ink-soft);font-size:.8rem;font-weight:600;cursor:pointer}.map-sun-add svg{width:15px;height:15px;color:#d9a53a}.tray{display:flex;flex-wrap:wrap;gap:.5rem}.tray-item{display:flex;gap:.5rem;align-items:center;padding:.3rem .8rem .3rem .35rem;border:0;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-low);color:var(--ink);font-weight:600;cursor:grab;transition:box-shadow .2s,outline-color .2s,opacity .2s;touch-action:none;user-select:none;-webkit-user-select:none}.tray-item.dragging{opacity:.35;cursor:grabbing}.tray-item img,.map-plant img,.drag-ghost img,.map-preview img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.drag-ghost{position:fixed;z-index:10;transform:translate(-50%,-50%) scale(1.08);pointer-events:none;animation:ghost-pop .16s ease;transition:opacity .15s}.drag-ghost.over-map{opacity:0}@keyframes ghost-pop{0%{transform:translate(-50%,-50%) scale(.6);opacity:.3}}.drag-ghost .plant-avatar{width:2.6rem;height:2.6rem;background:var(--surface);box-shadow:var(--shadow-mid)}.map.drop-target{box-shadow:inset 0 0 0 2.5px var(--green),var(--shadow-low)}.map-preview{pointer-events:none}.map-preview .plant-avatar{box-shadow:var(--shadow-mid),0 0 0 3px color-mix(in srgb,var(--green) 45%,transparent)}.map-plant.just-placed .plant-avatar{animation:settle .4s cubic-bezier(.34,1.56,.64,1)}@keyframes settle{0%{transform:scale(1.35)}to{transform:scale(1)}}.tray-item .plant-avatar{width:1.9rem;height:1.9rem}.tray-item .plant-avatar svg{width:15px;height:15px}.tray-item.selected{outline:2px solid var(--green)}.map-footnote{margin:.8rem 0 0;color:var(--muted);font-size:.85rem;text-align:center}.articles{display:grid;gap:.8rem}.article{display:block;padding:1.05rem 1.15rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low);transition:box-shadow .2s,transform .2s;color:inherit;text-decoration:none;touch-action:manipulation}@media(hover:hover){.article:hover{box-shadow:var(--shadow-mid);transform:translateY(-1px)}}.article:active{transform:scale(.99)}.article h3{margin-top:.35rem;font-family:var(--display);font-size:1.16rem;letter-spacing:-.01em}.article p{margin:.35rem 0 0;color:var(--ink-soft);font-size:.93rem}.article.featured{padding:0;overflow:hidden}.article-banner{position:relative;height:7.5rem;background:linear-gradient(135deg,var(--banner-from) 0%,var(--banner-to) 100%);overflow:hidden}.article-banner img{width:100%;height:100%;object-fit:cover;display:block}.article-banner svg{position:absolute;right:-1.5rem;bottom:-2.5rem;width:11rem;height:11rem;color:#fff;opacity:.16}.article.featured .article-inner{padding:1.05rem 1.15rem 1.2rem}.plant-article{display:flex;align-items:center;gap:.9rem}.plant-article-body{min-width:0}.plant-article h3{margin-top:0;font-size:1.05rem}.plant-article p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-thumb{flex-shrink:0;width:4.4rem;height:4.4rem;border-radius:calc(var(--radius) - 6px);object-fit:cover}.tag{display:inline-block;padding:.14rem .6rem;border-radius:999px;background:var(--green-wash);color:var(--green-deep);font-size:.73rem;font-weight:600;letter-spacing:.02em}.search-field{position:relative;display:flex;align-items:center}.search-field svg{position:absolute;left:1rem;color:var(--muted);pointer-events:none}.search{width:100%;padding:.9rem 1rem .9rem 2.85rem;border:1px solid transparent;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-low);color:inherit;font:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none}.search::placeholder{color:var(--muted)}.search:focus{border-color:color-mix(in srgb,var(--green) 55%,transparent);outline:none}.identify{display:flex;gap:.6rem;align-items:center;justify-content:center;margin:.75rem 0 1.4rem;padding:.85rem;border:1.5px dashed color-mix(in srgb,var(--green) 32%,transparent);border-radius:var(--radius);color:var(--ink-soft);font-size:.93rem;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:border-color .2s,background .2s,color .2s}@media(hover:hover){.identify:hover{border-color:var(--green);background:color-mix(in srgb,var(--green-wash) 60%,transparent);color:var(--green-deep)}}.identify:active{background:color-mix(in srgb,var(--green-wash) 60%,transparent)}.identify-result{display:flex;gap:.9rem;align-items:center;margin-bottom:.9rem;padding:.85rem 1rem;border-radius:var(--radius);background:var(--green-wash);box-shadow:var(--shadow-low)}.identify-result h3{font-family:var(--display);font-size:1.05rem}.identify-photo{width:3.4rem;height:3.4rem;border-radius:var(--radius-sm);object-fit:cover;box-shadow:var(--shadow-low)}.identify.disabled{opacity:.55;pointer-events:none}.identify-result.error{background:var(--warn-wash)}.identify-result.error h3{color:var(--warn)}.identify-result.error>svg{flex-shrink:0;color:var(--warn)}.skeleton-line{height:.65rem;max-width:14rem;margin-top:.5rem;border-radius:999px;background:linear-gradient(90deg,var(--surface) 0%,var(--surface-sunken) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}.skeleton-line.short{max-width:9rem}.result{display:flex;gap:.9rem;align-items:center;padding:.85rem 1rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low);transition:transform .15s}.result:active{transform:scale(.99)}.result+.result{margin-top:.6rem}.thumb{width:2.9rem;height:2.9rem;border-radius:50%;object-fit:cover}.add-button{display:grid;place-items:center;width:2.4rem;height:2.4rem;border:0;border-radius:50%;background:var(--green);color:var(--on-green);cursor:pointer;transition:background .2s,transform .2s}@media(hover:hover){.add-button:hover{background:var(--green-deep);transform:scale(1.07)}}.add-button:active{background:var(--green-deep);transform:scale(.92)}.add-button:disabled{opacity:.5;pointer-events:none}.in-garden{color:var(--green);font-size:.83rem;font-weight:600;white-space:nowrap}.in-garden.block{margin:.4rem 0 .9rem;white-space:normal}.row-link{display:flex;flex:1;gap:.9rem;align-items:center;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.detail-hero{width:100%;aspect-ratio:3 / 2;margin-top:.9rem;border-radius:var(--radius);object-fit:cover;box-shadow:var(--shadow-low)}.detail-chips{margin:.8rem 0 1rem}.detail-description{margin:0 0 1rem}.detail-section{padding:1rem 1.1rem;margin-top:1rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low)}.detail-section h2{margin:0 0 .6rem;font-family:var(--display);font-size:1.1rem}.facts{display:grid;gap:.45rem;margin:0}.facts div{display:flex;gap:.8rem;justify-content:space-between}.facts dt{color:var(--muted);font-size:.85rem}.facts dd{margin:0;font-size:.88rem;font-weight:500;text-align:right}.cal{display:grid;gap:.55rem;padding:0;margin:0;list-style:none}.cal-row{display:flex;gap:.8rem;align-items:center;justify-content:space-between}.cal-label{font-size:.85rem;font-weight:500}.cal-months{display:flex;gap:2px}.cal-month{display:grid;place-items:center;width:1.05rem;height:1.3rem;border-radius:4px;background:var(--surface-sunken);color:var(--muted);font-size:.58rem;font-weight:600}.cal-month.on{background:var(--green);color:var(--on-green)}.warn-box{display:flex;gap:.7rem;align-items:center;padding:.85rem 1.1rem;margin-top:1rem;border-radius:var(--radius);background:var(--warn-wash);color:var(--warn)}.warn-box p{margin:0;font-size:.9rem}.warn-box svg{flex-shrink:0;width:20px;height:20px}.claim{display:flex;gap:.9rem;align-items:flex-start;margin-top:1.5rem;padding:1.05rem 1.15rem 1.2rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low)}.claim-icon{display:grid;place-items:center;flex:none;width:2.9rem;height:2.9rem;border-radius:50%;background:var(--green-wash);color:var(--green)}.claim-body{flex:1;min-width:0}.claim h3{font-family:var(--display);font-size:1.16rem;letter-spacing:-.01em}.claim p{margin:.35rem 0 0;color:var(--ink-soft);font-size:.92rem}.claim .link-button{margin-top:.6rem}.claim-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem}.claim-form input{flex:1 1 11rem;min-width:0;padding:.62rem 1rem;border:1px solid var(--hairline);border-radius:999px;background:var(--surface-sunken);color:inherit;font:inherit;font-size:1rem}.claim-form input::placeholder{color:var(--muted)}.claim-form input:focus{border-color:color-mix(in srgb,var(--green) 55%,transparent);background:var(--surface);outline:none}.claim-form .primary{padding:.62rem 1.15rem;font-size:.92rem}.claim-form :disabled{opacity:.6}.primary{display:inline-flex;gap:.45rem;align-items:center;justify-content:center;padding:.72rem 1.35rem;border:0;border-radius:999px;background:var(--green);color:var(--on-green);font-weight:600;cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb,var(--green) 30%,transparent);transition:background .2s,transform .2s,box-shadow .2s}@media(hover:hover){.primary:hover{background:var(--green-deep);transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--green) 34%,transparent)}}.primary:active{transform:scale(.98)}.primary.block{width:100%;margin-bottom:1.1rem;padding:.85rem}.link-button{padding:.35rem 0;border:0;background:none;color:var(--green);font-size:.87rem;font-weight:600;cursor:pointer}.link-button:hover{text-decoration:underline}.empty{padding:2.75rem 1.5rem 3rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-low);color:var(--ink-soft);text-align:center}.empty svg{margin:0 auto .5rem;color:var(--green)}.empty h2{font-family:var(--display);font-size:1.35rem}.empty p{margin:.4rem auto 1.35rem;max-width:22rem}.skeleton{height:5.2rem;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface) 0%,var(--surface-sunken) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}.skeleton+.skeleton{margin-top:.7rem}@keyframes shimmer{to{background-position:-200% 0}}.tabbar{position:fixed;inset:auto 0 0;z-index:3;display:flex;justify-content:center;gap:.25rem;padding:.45rem max(.75rem,env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));background:color-mix(in srgb,var(--paper) 88%,transparent);box-shadow:inset 0 1px 0 var(--hairline);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tabbar button{display:flex;flex:1 1 0;max-width:8rem;flex-direction:column;gap:.15rem;align-items:center;padding:.4rem .5rem .3rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;cursor:pointer;transition:color .2s}.tabbar button svg{width:21px;height:21px;transition:transform .2s}.tabbar button.active{color:var(--green)}.tabbar button.active svg{transform:translateY(-1px)}.tabbar button:active svg{transform:scale(.88)}.tabbar button:disabled{opacity:.35;cursor:default}.notice{position:fixed;inset:auto 1rem calc(4.9rem + env(safe-area-inset-bottom));z-index:4;display:flex;gap:.45rem;align-items:center;justify-content:center;width:fit-content;max-width:min(22rem,calc(100vw - 2rem));margin:0 auto;padding:.7rem 1.1rem;border-radius:999px;background:var(--ink);color:var(--paper);font-size:.9rem;text-align:center;box-shadow:var(--shadow-mid);animation:rise .3s cubic-bezier(.22,1,.36,1)}.notice svg{flex:none}.notice.success{background:var(--green);color:var(--on-green)}.notice.error{background:var(--clay);color:#fff}@keyframes rise{0%{opacity:0;transform:translateY(.6rem)}}.view.entering{animation:enter .32s cubic-bezier(.22,1,.36,1)}@keyframes enter{0%{opacity:0;transform:translateY(.5rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:45.99rem){.tabbar{transition:transform .25s ease,opacity .25s ease}body:has(#search:focus) .tabbar{transform:translateY(110%);opacity:0;pointer-events:none}}@media(min-width:46rem){#app{display:flex;flex-direction:column;max-width:44rem;padding-bottom:4rem}.header{order:1}.tabbar{position:static;order:2;justify-content:flex-start;gap:.3rem;margin-bottom:1.5rem;padding:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.tabbar button{flex:0 0 auto;flex-direction:row;gap:.45rem;padding:.45rem .95rem;border-radius:999px;font-size:.88rem}.tabbar button.active{background:var(--surface);box-shadow:var(--shadow-low)}.view{order:3}.notice{inset:auto 1rem 1.5rem}.plants{grid-template-columns:1fr 1fr}}
