.Login{min-height:100%;display:grid;place-items:center;padding:var(--space-lg);background:radial-gradient(circle at 20% 10%,var(--sage-pale) 0%,transparent 40%),radial-gradient(circle at 80% 90%,var(--cream-deep) 0%,transparent 50%),var(--cream)}.Login__card{width:100%;max-width:380px;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);box-shadow:var(--shadow-md)}.Login__title{font-family:var(--font-display);font-size:40px;font-weight:500;letter-spacing:-.01em;margin:0 0 var(--space-xs);color:var(--moss-deep)}.Login__subtitle{font-family:var(--font-hand);font-size:22px;color:var(--ink-muted);margin:0 0 var(--space-lg)}.Login__form{display:flex;flex-direction:column;gap:var(--space-md)}.Login__field{display:flex;flex-direction:column;gap:var(--space-xs)}.Login__label{font-size:13px;font-weight:500;color:var(--ink-soft);letter-spacing:.02em;text-transform:uppercase}.Login__field input{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px;font-size:16px;color:var(--ink);transition:border-color .12s ease,background .12s ease}.Login__field input:focus{outline:none;border-color:var(--moss-light);background:var(--paper)}.Login__field input:disabled{opacity:.6;cursor:not-allowed}.Login__submit{background:var(--moss);color:var(--paper);border:none;border-radius:var(--radius-md);padding:12px 16px;font-weight:500;font-size:15px;letter-spacing:.02em;transition:background .12s ease,transform 80ms ease}.Login__submit:hover:not(:disabled){background:var(--moss-deep)}.Login__submit:active:not(:disabled){transform:translateY(1px)}.Login__submit:disabled{opacity:.6;cursor:not-allowed}.Login__banner{border-radius:var(--radius-md);padding:12px 14px;font-size:14px;line-height:1.5}.Login__banner code{font-family:var(--font-mono);font-size:12.5px;background:#0000000d;padding:1px 5px;border-radius:var(--radius-sm)}.Login__banner--ok{background:var(--sage-pale);color:var(--moss-deep);border:1px solid var(--sage)}.Login__banner--warn{background:#d4a64a26;color:var(--bark);border:1px solid rgba(212,166,74,.4);margin-bottom:var(--space-md)}.Login__banner--err{background:#b66b481f;color:var(--terracotta);border:1px solid rgba(182,107,72,.35)}.Layout{min-height:100vh;display:grid;grid-template-columns:64px 1fr;grid-template-rows:56px 1fr;grid-template-areas:"rail topbar" "rail main";background:var(--cream)}.Layout__rail{grid-area:rail;background:var(--moss-deep);color:var(--cream);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:6px;position:sticky;top:0;height:100vh}.Layout__brand{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--cream);margin-bottom:12px;letter-spacing:.02em}.Layout__rail-spacer{flex:1}.Layout__rail-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-md);color:var(--sage);text-decoration:none;transition:background .15s,color .15s}.Layout__rail-btn:hover{background:#ffffff0f;color:var(--cream)}.Layout__rail-btn--active{background:var(--moss);color:var(--cream)}.Layout__rail-btn--disabled{opacity:.3;cursor:not-allowed}.Layout__rail-btn--disabled:hover{background:transparent;color:var(--sage)}.Layout__rail-btn svg{width:22px;height:22px}.Layout__topbar{grid-area:topbar;display:flex;justify-content:flex-end;align-items:center;gap:var(--space-md);padding:0 var(--space-lg);border-bottom:1px solid var(--line-soft);background:var(--paper)}.Layout__email{font-size:13px;color:var(--ink-muted);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Layout__signout{font-size:13px;background:transparent;border:1px solid var(--line);color:var(--ink-soft);padding:6px 12px;border-radius:var(--radius-sm)}.Layout__signout:hover:not(:disabled){background:var(--cream-deep)}.Layout__signout:disabled{opacity:.5;cursor:progress}.Layout__main{grid-area:main;min-width:0;overflow-x:hidden}.Layout__tabbar{display:none}@media (max-width: 700px){.Layout{grid-template-columns:1fr;grid-template-rows:1fr 64px;grid-template-areas:"main" "tabbar";min-height:100dvh}.Layout__rail,.Layout__topbar{display:none}.Layout__main{grid-area:main;overflow-y:auto}.Layout__tabbar{grid-area:tabbar;display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0)}.Layout__tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:6px 0 4px}.Layout__tab-icon{display:grid;place-items:center;width:26px;height:26px}.Layout__tab-icon svg{width:22px;height:22px}.Layout__tab--active{color:var(--moss-deep)}}.PlantsList{padding:var(--space-lg) var(--space-xl);max-width:1200px;margin:0 auto}@media (max-width: 640px){.PlantsList{padding:var(--space-md)}}.PlantsList__loading{padding:var(--space-xl);color:var(--ink-muted);font-size:14px}.PlantsList__header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.PlantsList__eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin-bottom:4px}.PlantsList__title{font-family:var(--font-display);font-size:32px;font-weight:500;margin:0 0 4px}.PlantsList__count{margin:0;font-size:13px;color:var(--ink-muted)}.PlantsList__toolbar{display:flex;gap:var(--space-sm);align-items:center}.PlantsList__filter{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px;color:var(--ink);font-family:var(--font-body)}.PlantsList__add{background:var(--moss);color:var(--cream);border:1px solid var(--moss);border-radius:var(--radius-sm);padding:7px 14px;font-size:13px;font-weight:500}.PlantsList__add:hover{background:var(--moss-deep)}.PlantsList__error{padding:10px 12px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:14px;margin:0 0 var(--space-md)}.PlantsList__tablewrap{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-md);overflow:hidden}.PlantsList__table{width:100%;border-collapse:collapse;font-size:14px}.PlantsList__table thead{background:var(--cream-deep);border-bottom:1px solid var(--line)}.PlantsList__table th{text-align:left;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);padding:12px 14px}.PlantsList__table th button{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit}.PlantsList__table th button:hover{color:var(--ink)}.PlantsList__row{border-top:1px solid var(--line-soft);cursor:pointer;transition:background .1s}.PlantsList__row:hover{background:var(--cream)}.PlantsList__table td{padding:12px 14px;vertical-align:middle}.PlantsList__name a{color:var(--ink);text-decoration:none;font-weight:500}.PlantsList__name a:hover{color:var(--moss);text-decoration:underline}.PlantsList__cultivar{color:var(--ink-muted);font-style:italic}.PlantsList__sci{font-style:italic;color:var(--ink-soft)}.PlantsList__faint{color:var(--ink-faint)}.PlantsList__status{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--cream);color:var(--ink-soft)}.PlantsList__status--alive{background:var(--sage-pale);color:var(--moss-deep);border-color:var(--sage)}.PlantsList__status--dead{background:#5d4a3a1f;color:var(--soil);border-color:var(--soil)}.PlantsList__status--removed{background:var(--cream-deep);color:var(--ink-faint)}.PlantsList__status--needs_identification{background:#d4a64a2e;color:#8a6a1f;border-color:var(--honey)}@media (max-width: 640px){.PlantsList__col-sci,.PlantsList__col-date{display:none}}.PlantsList__empty{max-width:940px;margin:0 auto;padding:var(--space-2xl) var(--space-xl) var(--space-xl);text-align:center}@media (max-width: 640px){.PlantsList__empty{padding:var(--space-xl) var(--space-md) var(--space-md)}}.PlantsList__empty-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-faint);margin-bottom:var(--space-md)}.PlantsList__empty-title{font-family:var(--font-display);font-size:56px;font-weight:400;line-height:1.05;margin:0 0 var(--space-md)}.PlantsList__empty-title em{font-family:var(--font-display);font-style:italic;color:var(--moss)}@media (max-width: 640px){.PlantsList__empty-title{font-size:40px}}.PlantsList__empty-lede{max-width:560px;margin:0 auto var(--space-xl);font-size:16px;color:var(--ink-muted);line-height:1.6}.PlantsList__cta-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);text-align:left}@media (max-width: 800px){.PlantsList__cta-row{grid-template-columns:1fr}}.PlantsList__cta{display:flex;flex-direction:column;gap:var(--space-sm);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-lg);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s}.PlantsList__cta:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.PlantsList__cta--soon{opacity:.55;pointer-events:none}.PlantsList__cta-num{font-family:var(--font-display);font-style:italic;font-size:28px;color:var(--moss);line-height:1}.PlantsList__cta-title{font-family:var(--font-display);font-size:20px;line-height:1.2;font-weight:500}.PlantsList__cta-desc{font-size:13px;color:var(--ink-muted)}.Modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f2a228c;display:grid;place-items:center;padding:var(--space-md);z-index:100}.Modal{background:var(--paper);border-radius:var(--radius-lg);border:1px solid var(--line);padding:var(--space-lg);max-width:480px;width:100%;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.Modal__title{font-family:var(--font-display);font-size:22px;margin:0 0 6px}.Modal__subtitle{margin:0 0 var(--space-md);font-size:13px;color:var(--ink-muted)}.Modal__form{display:flex;flex-direction:column;gap:var(--space-md)}.Modal__field{display:flex;flex-direction:column;gap:6px}.Modal__field>span{font-size:13px;color:var(--ink-soft);font-weight:500}.Modal__field>span>em{font-style:italic;font-weight:400;color:var(--ink-faint);margin-left:6px}.Modal__field input,.Modal__field select,.Modal__field textarea{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px;color:var(--ink);font-family:var(--font-body)}.Modal__field input:focus,.Modal__field select:focus,.Modal__field textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.Modal__field textarea{resize:vertical}.Modal__error{margin:0;padding:10px 12px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:14px}.Modal__actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.MapPin__pulse{animation:MapPin__pulse 1.6s ease-in-out infinite;transform-origin:center;transform-box:fill-box}@keyframes MapPin__pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.SymbolPicker{display:flex;flex-direction:column;gap:var(--space-md)}.SymbolPicker__group{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:6px 10px 10px;margin:0}.SymbolPicker__legend{font-size:12px;font-weight:500;color:var(--ink-soft);padding:0 4px}.SymbolPicker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.SymbolPicker__tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s,box-shadow .12s}.SymbolPicker__tile:hover{background:var(--cream-deep);border-color:var(--moss-soft, var(--line))}.SymbolPicker__tile--selected{background:var(--cream-deep);border-color:var(--moss);box-shadow:0 0 0 2px #4a5d3f2e}.SymbolPicker__label{font-size:11px;color:var(--ink-soft);line-height:1}.SymbolPicker__tile--selected .SymbolPicker__label{color:var(--ink);font-weight:500}.BedPositionPicker{display:flex;flex-direction:column;gap:6px;align-items:stretch}.BedPositionPicker__svg{width:220px;height:220px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);cursor:crosshair;align-self:flex-start}.BedPositionPicker__meta{display:flex;align-items:center;gap:var(--space-sm);font-size:12px;color:var(--ink-soft);min-height:22px}.BedPositionPicker__hint{font-style:italic}.BedPositionPicker__clear{background:transparent;border:none;color:var(--terracotta);font-size:12px;font-family:inherit;cursor:pointer;padding:0}.BedPositionPicker__clear:hover{text-decoration:underline}.PlantForm{display:flex;flex-direction:column;gap:var(--space-md);max-width:760px}.PlantForm__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media (max-width: 640px){.PlantForm__row{grid-template-columns:1fr}}.PlantForm__field{display:flex;flex-direction:column;gap:6px}.PlantForm__field>span{font-size:13px;color:var(--ink-soft);font-weight:500}.PlantForm__field>span>em{font-style:italic;font-weight:400;color:var(--ink-faint);margin-left:6px}.PlantForm__note{margin:0;padding:8px 10px;background:#4a5d3f0f;border:1px dashed var(--line);border-radius:var(--radius-sm);font-size:12px;color:var(--ink-muted)}.PlantForm__field input,.PlantForm__field select,.PlantForm__field textarea{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px;color:var(--ink);font-family:var(--font-body)}.PlantForm__field input:focus,.PlantForm__field select:focus,.PlantForm__field textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.PlantForm__field textarea{resize:vertical;min-height:120px;font-family:var(--font-body)}.PlantForm__error{margin:0;padding:10px 12px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:14px}.PlantForm__actions{display:flex;gap:var(--space-sm);justify-content:flex-end;border-top:1px solid var(--line-soft);padding-top:var(--space-md)}.PlantForm__btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:8px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500}.PlantForm__btn:disabled{opacity:.55;cursor:progress}.PlantForm__btn--ghost:hover:not(:disabled){background:var(--cream-deep)}.PlantForm__btn--primary{background:var(--moss);color:var(--cream);border-color:var(--moss)}.PlantForm__btn--primary:hover:not(:disabled){background:var(--moss-deep)}.PlantPage{padding:var(--space-lg) var(--space-xl);max-width:900px;margin:0 auto}@media (max-width: 640px){.PlantPage{padding:var(--space-md)}}.PlantPage__crumbs{font-size:13px;color:var(--ink-faint);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:8px}.PlantPage__crumbs a{color:var(--ink-muted);text-decoration:none}.PlantPage__crumbs a:hover{color:var(--moss);text-decoration:underline}.PlantPage__crumbs em{font-style:italic;color:var(--ink-soft)}.PlantPage__title{font-family:var(--font-display);font-size:32px;font-weight:500;margin:0 0 var(--space-sm)}.PlantPage__hint{margin:0 0 var(--space-lg);padding:10px 12px;background:var(--cream-deep);border:1px solid var(--clay);border-radius:var(--radius-md);font-size:13px;color:var(--ink-soft)}.PlantPage__loading{padding:var(--space-xl);color:var(--ink-muted);font-size:14px}.PlantPage__error{padding:var(--space-md);background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:14px;margin:var(--space-lg)}.GardenMap{width:100%;height:100%;display:flex}.GardenMap svg{flex:1;min-height:0}.PlantPhotosTab__loading,.PlantPhotosTab__error{padding:16px;font-family:var(--font-body);font-size:13px;color:var(--ink-muted)}.PlantPhotosTab__error{color:#7a2521}.PlantPhotosTab__empty{padding:24px 16px;text-align:center;color:var(--ink-muted)}.PlantPhotosTab__empty p{margin:0 0 6px;font-size:14px}.PlantPhotosTab__emptyHint{font-size:12px;color:var(--ink-faint);font-family:var(--font-mono)}.PlantPhotosTab__emptyHint code{background:var(--cream-deep);padding:1px 4px;border-radius:2px}.PlantPhotosTab__head{display:flex;justify-content:flex-end}.PlantPhotosTab__add{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--moss);background:transparent;color:var(--moss-deep);font-family:var(--font-body);font-size:13px;padding:6px 12px;border-radius:var(--radius-pill);cursor:pointer}.PlantPhotosTab__add:hover{background:var(--moss);color:var(--cream)}.PlantPhotosTab__add:disabled{opacity:.6;cursor:progress}.PlantPhotosTab__add svg{width:14px;height:14px}.PlantPhotosTab__addErr{margin:8px 0 0;padding:6px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:12px;text-align:left}.PlantPhotosTab__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;padding:12px 0 0}.PlantPhotosTab__cell{position:relative;aspect-ratio:1 / 1;background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow:hidden;padding:0;cursor:pointer}.PlantPhotosTab__cell:hover{border-color:var(--line)}.PlantPhotosTab__thumb{width:100%;height:100%;object-fit:cover;display:block}.PlantPhotosTab__thumbLoading{width:100%;height:100%;background:linear-gradient(135deg,var(--cream),var(--cream-deep))}.PlantPhotosTab__thumbErr{width:100%;height:100%;display:grid;place-items:center;color:var(--terracotta);font-size:18px}.PlantPhotosTab__date{position:absolute;bottom:4px;left:4px;background:#1f2a22a6;color:var(--paper);padding:2px 6px;border-radius:2px;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.PhotoViewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1411eb;z-index:1000;display:grid;place-items:center;cursor:zoom-out}.PhotoViewer__img{max-width:96vw;max-height:92vh;object-fit:contain;display:block}.PhotoViewer__close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:#1f2a22b3;color:var(--paper);border:none;font-size:18px;cursor:pointer;display:grid;place-items:center}.PhotoViewer__meta{position:absolute;bottom:16px;left:16px;background:#1f2a22b3;color:var(--paper);padding:4px 10px;border-radius:2px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.ObsTab{display:flex;flex-direction:column;gap:var(--space-sm)}.ObsTab__loading{padding:var(--space-md);color:var(--ink-faint);font-size:13px}.ObsTab__addRow{width:100%;border:1px dashed var(--line);background:var(--cream);color:var(--moss-deep);font-family:var(--font-display);font-style:italic;font-size:14px;padding:10px 14px;border-radius:var(--radius-sm);cursor:pointer;text-align:left}.ObsTab__addRow:hover{background:var(--cream-deep);border-color:var(--moss)}.ObsTab__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}.ObsTab__item{border-bottom:1px solid var(--line-soft);padding:var(--space-sm) 0;display:flex;flex-direction:column;gap:4px}.ObsTab__item:last-child{border-bottom:none}.ObsTab__itemHead{display:flex;align-items:center;gap:10px;font-size:12px}.ObsTab__date{color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.06em}.ObsTab__kind{display:inline-block;border:1px solid var(--line);border-radius:var(--radius-pill);padding:1px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--moss-deep);background:var(--sage-pale)}.ObsTab__body{font-size:14px;line-height:1.5;color:var(--ink);white-space:pre-wrap}.ObsTab__empty{margin:0;padding:var(--space-md);color:var(--ink-muted);font-size:13px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--cream)}.ObsTab__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.ObsTab__appendOnly{margin:0;padding-top:var(--space-sm);font-size:11px;color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.04em;text-align:center}.ObsForm{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream)}.ObsForm__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}@media (max-width: 480px){.ObsForm__row{grid-template-columns:1fr}}.ObsForm__field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-muted)}.ObsForm__field span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.ObsForm__field input,.ObsForm__field select,.ObsForm__field textarea{border:1px solid var(--line);background:var(--paper);font-family:var(--font-body);font-size:14px;color:var(--ink);padding:8px 10px;border-radius:var(--radius-sm)}.ObsForm__field textarea{resize:vertical;line-height:1.5}.ObsForm__field input:focus,.ObsForm__field select:focus,.ObsForm__field textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.ObsForm__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.ObsForm__actions{display:flex;justify-content:flex-end;gap:8px}.ObsForm__btn{padding:7px 14px;font-size:13px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:var(--radius-sm);cursor:pointer}.ObsForm__btn:hover{background:var(--cream-deep)}.ObsForm__btn--primary{background:var(--moss);color:var(--cream);border-color:var(--moss)}.ObsForm__btn--primary:hover{background:var(--moss-deep);color:var(--cream)}.ObsForm__btn:disabled{opacity:.6;cursor:not-allowed}.AttrTab{display:flex;flex-direction:column;gap:var(--space-sm)}.AttrTab__loading{padding:var(--space-md);color:var(--ink-faint);font-size:13px}.AttrTab__list{list-style:none;padding:0;margin:0}.AttrTab__row{display:grid;grid-template-columns:130px 1fr auto;align-items:baseline;gap:12px;padding:8px 4px;border-bottom:1px dashed var(--line-soft);font-size:14px}.AttrTab__row:last-child{border-bottom:none}.AttrTab__k{color:var(--ink-muted);text-transform:lowercase;font-size:13px;letter-spacing:.02em}.AttrTab__v{color:var(--ink)}.AttrTab__del{background:transparent;border:none;color:var(--ink-faint);font-size:18px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;cursor:pointer}.AttrTab__del:hover{color:var(--terracotta);background:var(--cream-deep)}.AttrTab__add{align-self:flex-start;border:1px dashed var(--line);background:transparent;color:var(--moss-deep);font-family:var(--font-display);font-style:italic;font-size:14px;padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer}.AttrTab__add:hover{background:var(--cream-deep);border-color:var(--moss)}.AttrTab__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.AttrTab__hint{margin:0;padding-top:var(--space-sm);font-size:11px;color:var(--ink-muted);font-family:var(--font-mono);line-height:1.5;letter-spacing:.04em}.AttrForm{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream)}.AttrForm__row{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-sm)}@media (max-width: 480px){.AttrForm__row{grid-template-columns:1fr}}.AttrForm__field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-muted)}.AttrForm__field span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.AttrForm__field input{border:1px solid var(--line);background:var(--paper);font-family:var(--font-body);font-size:14px;color:var(--ink);padding:8px 10px;border-radius:var(--radius-sm)}.AttrForm__field input:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.AttrForm__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.AttrForm__actions{display:flex;justify-content:flex-end;gap:8px}.AttrForm__btn{padding:7px 14px;font-size:13px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:var(--radius-sm);cursor:pointer}.AttrForm__btn:hover{background:var(--cream-deep)}.AttrForm__btn--primary{background:var(--moss);color:var(--cream);border-color:var(--moss)}.AttrForm__btn--primary:hover{background:var(--moss-deep)}.AttrForm__btn:disabled{opacity:.6;cursor:not-allowed}.TasksTab{display:flex;flex-direction:column;gap:var(--space-sm)}.TasksTab__loading{padding:var(--space-md);color:var(--ink-faint);font-size:13px}.TasksTab__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.TasksTab__row{display:flex;align-items:flex-start;gap:12px;padding:10px 4px;border-bottom:1px dashed var(--line-soft)}.TasksTab__row:last-child{border-bottom:none}.TasksTab__tick{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--moss);background:transparent;cursor:pointer;margin-top:2px;position:relative}.TasksTab__tick:hover{background:var(--sage-pale)}.TasksTab__tick:disabled{opacity:.4;cursor:progress}.TasksTab__tick--done{background:var(--moss);border-color:var(--moss);cursor:default}.TasksTab__tick--done:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--cream);font-size:14px;font-weight:600}.TasksTab__body{flex:1;min-width:0}.TasksTab__name{font-size:14px;color:var(--ink);line-height:1.4}.TasksTab__row--done .TasksTab__name{color:var(--ink-faint);text-decoration:line-through}.TasksTab__meta{font-size:12px;color:var(--ink-faint);margin-top:2px;font-family:var(--font-mono);letter-spacing:.04em}.TasksTab__add{align-self:flex-start;border:1px dashed var(--line);background:transparent;color:var(--moss-deep);font-family:var(--font-display);font-style:italic;font-size:14px;padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer}.TasksTab__add:hover{background:var(--cream-deep);border-color:var(--moss)}.TasksTab__divider{margin-top:var(--space-md);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);border-top:1px solid var(--line-soft);padding-top:var(--space-sm)}.TasksTab__list--done{opacity:.85}.TasksTab__empty{margin:0;padding:var(--space-md);color:var(--ink-muted);font-size:13px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--cream)}.TasksTab__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.TaskForm{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream)}.TaskForm__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}@media (max-width: 480px){.TaskForm__row{grid-template-columns:1fr}}.TaskForm__field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-muted)}.TaskForm__field span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.TaskForm__field input,.TaskForm__field select,.TaskForm__field textarea{border:1px solid var(--line);background:var(--paper);font-family:var(--font-body);font-size:14px;color:var(--ink);padding:8px 10px;border-radius:var(--radius-sm)}.TaskForm__field textarea{resize:vertical;line-height:1.5}.TaskForm__field input:focus,.TaskForm__field select:focus,.TaskForm__field textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.TaskForm__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.TaskForm__actions{display:flex;justify-content:flex-end;gap:8px}.TaskForm__btn{padding:7px 14px;font-size:13px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:var(--radius-sm);cursor:pointer}.TaskForm__btn:hover{background:var(--cream-deep)}.TaskForm__btn--primary{background:var(--moss);color:var(--cream);border-color:var(--moss)}.TaskForm__btn--primary:hover{background:var(--moss-deep)}.TaskForm__btn:disabled{opacity:.6;cursor:not-allowed}.LogTab{display:flex;flex-direction:column;gap:var(--space-sm)}.LogTab__loading{padding:var(--space-md);color:var(--ink-faint);font-size:13px}.LogTab__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.LogTab__empty{margin:0;padding:var(--space-md);color:var(--ink-muted);font-size:13px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--cream)}.LogTab__list{list-style:none;padding:0;margin:0}.LogTab__row{display:flex;gap:12px;padding:var(--space-sm) 0;border-bottom:1px dashed var(--line-soft)}.LogTab__row:last-child{border-bottom:none}.LogTab__dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--moss);margin-top:6px}.LogTab__body{flex:1;font-size:13px;color:var(--ink-soft);line-height:1.5}.LogTab__date{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:2px}.LogTab__text strong{color:var(--ink);font-weight:500}.LogTab__appendOnly{margin:0;padding-top:var(--space-sm);font-size:11px;color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.04em;text-align:center}.PlantDetail{position:relative;min-height:calc(100vh - 56px);background:var(--cream)}.PlantDetail__map{display:none;position:absolute;top:0;right:0;bottom:0;left:0;cursor:default}.PlantDetail__map:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#1f2a222e;pointer-events:none}@media (min-width: 900px){.PlantDetail__map{display:block}.PlantDetail__panel{position:absolute;top:var(--space-lg);right:var(--space-lg);bottom:var(--space-lg);width:480px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow-y:auto}}.PlantDetail__panel{background:var(--paper);border:1px solid var(--line);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);margin:0 auto;max-width:760px}@media (min-width: 900px){.PlantDetail__panel{margin:0;max-width:none}}@media (max-width: 640px){.PlantDetail__panel{padding:var(--space-md);border:none;background:var(--cream)}}.PlantDetail__panelHeader{display:flex;justify-content:space-between;align-items:center}.PlantDetail__crumbs{font-size:13px;color:var(--ink-faint);display:flex;align-items:center;gap:8px}.PlantDetail__crumbs a{color:var(--ink-muted);text-decoration:none}.PlantDetail__crumbs a:hover{color:var(--moss);text-decoration:underline}.PlantDetail__crumbs em{font-style:italic;color:var(--ink-soft)}.PlantDetail__close{background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--ink-muted);font-size:14px;display:grid;place-items:center}.PlantDetail__close:hover{background:var(--cream-deep);color:var(--ink)}.PlantDetail__heading h1{font-family:var(--font-display);font-size:28px;font-weight:500;margin:0 0 4px;line-height:1.15}.PlantDetail__cultivar{font-style:italic;color:var(--moss)}.PlantDetail__sci{margin:0 0 var(--space-sm);font-size:14px;font-style:italic;color:var(--ink-muted)}.PlantDetail__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--ink-muted)}.PlantDetail__status{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--cream);color:var(--ink-soft)}.PlantDetail__status--alive{background:var(--sage-pale);color:var(--moss-deep);border-color:var(--sage)}.PlantDetail__status--needs_identification{background:#d4a64a2e;color:#8a6a1f;border-color:var(--honey)}.PlantDetail__status--dead{background:#5d4a3a1f;color:var(--soil);border-color:var(--soil)}.PlantDetail__status--removed{background:var(--cream-deep);color:var(--ink-faint)}.PlantDetail__edit{margin-left:auto;font-size:13px;color:var(--moss);text-decoration:none;border:1px solid var(--moss);padding:4px 10px;border-radius:var(--radius-sm)}.PlantDetail__edit:hover{background:var(--moss);color:var(--cream)}.PlantDetail__tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;border-bottom:1px solid var(--line-soft);padding-bottom:6px}.PlantDetail__tab{display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink-muted);padding:8px 4px 6px;font-family:var(--font-body);font-weight:500;cursor:pointer;position:relative;transition:color .12s ease,background-color .12s ease}.PlantDetail__tabIcon{display:grid;place-items:center}.PlantDetail__tabIcon svg{width:20px;height:20px;color:var(--moss)}.PlantDetail__tabLabel{font-size:11px;letter-spacing:.02em;line-height:1}.PlantDetail__tab:hover{background:var(--cream-deep);color:var(--ink)}.PlantDetail__tab:hover .PlantDetail__tabIcon svg{color:var(--moss-deep)}.PlantDetail__tab--active{color:var(--moss-deep);background:var(--cream);border-color:var(--line-soft)}.PlantDetail__tab--active:after{content:"";position:absolute;left:18%;right:18%;bottom:-7px;height:2px;background:var(--terracotta);border-radius:1px}.PlantDetail__tab--active:hover{background:var(--cream);color:var(--moss-deep)}@media (max-width: 480px){.PlantDetail__tabs{gap:2px}.PlantDetail__tab{padding:6px 2px 4px}.PlantDetail__tabIcon svg{width:18px;height:18px}.PlantDetail__tabLabel{font-size:10px}}.PlantDetail__tabBody{flex:1}.PlantDetail__loading{padding:var(--space-xl);color:var(--ink-muted)}.PlantDetail__error{margin:var(--space-lg);padding:var(--space-md);background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta)}.NotesTab{display:flex;flex-direction:column;gap:var(--space-sm)}.NotesTab__textarea{width:100%;min-height:200px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--ink);resize:vertical}.NotesTab__textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.NotesTab__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.NotesTab__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.NotesTab__hint{font-size:12px;color:var(--ink-faint);font-style:italic}.ComingSoon{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--ink-muted)}.ComingSoon__lede{font-family:var(--font-display);font-size:22px;margin:0 0 var(--space-sm);color:var(--ink-soft)}.ComingSoon__hint{margin:0;font-size:13px}.ComingSoon__hint code{font-family:var(--font-mono);font-size:12px;background:var(--cream-deep);padding:1px 4px;border-radius:3px}.PlantDetail__hero{position:relative;height:240px;margin:-16px -16px 16px;border-radius:0;display:grid;place-items:center;color:var(--paper);font-family:var(--font-display);font-style:italic;letter-spacing:.02em;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.18)}.PlantDetail__heroClose{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#00000073;color:var(--paper);border:none;font-size:18px;display:grid;place-items:center}.PlantDetail--mobile .PlantDetail__panel{padding:16px;background:var(--paper);border:none;margin:0;max-width:none}.PlantDetail--mobile .PlantDetail__heading h1{font-size:24px}.NotesTab__searchHint{margin:0 0 var(--space-sm);padding:8px 12px;background:var(--cream-deep);border:1px dashed var(--line);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.NotesTab__searchHint svg{width:12px;height:12px;flex-shrink:0}.AddPlantOnMapModal{max-width:640px}.AddPlantOnMapModal__form{gap:var(--space-md)}.PinchZoom{position:relative;width:100%;height:100%;overflow:hidden;touch-action:none}.PinchZoom__inner{width:100%;height:100%;will-change:transform}.PinchZoom__reset{position:absolute;top:12px;right:12px;padding:8px 12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--paper);border:none;border-radius:var(--radius-pill);box-shadow:var(--shadow-md);z-index:5}.MapPage{display:flex;flex-direction:column;width:100%;height:calc(100vh - 56px);overflow:hidden}.MapPage__loading{padding:var(--space-xl);color:var(--ink-muted);font-size:14px}.MapPage__error{padding:10px 12px;margin:var(--space-lg);background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:14px}.MapPage__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl) var(--space-xl);text-align:center;height:100%}.MapPage__empty-title{font-family:var(--font-display);font-size:32px;font-weight:500;margin:0}.MapPage__empty-lede{max-width:440px;margin:0;font-size:15px;color:var(--ink-muted);line-height:1.6}.MapPage__empty-cta{display:inline-block;background:var(--moss);color:var(--cream);border:1px solid var(--moss);border-radius:var(--radius-sm);padding:9px 18px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s}.MapPage__empty-cta:hover{background:var(--moss-deep)}.MapPage__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:10px var(--space-lg);border-bottom:1px solid var(--line-soft);background:var(--paper);flex-shrink:0;flex-wrap:wrap}.MapPage__title-block{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.MapPage__title{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--ink)}.MapPage__meta{font-size:13px;color:var(--ink-muted)}.MapPage__tools{display:flex;gap:2px;align-items:center}.MapPage__tool{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:13px;border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-soft);background:transparent;border:1px solid transparent;-webkit-user-select:none;user-select:none;font-family:inherit}.MapPage__tool:hover{background:#4a5d3f0f;color:var(--ink)}.MapPage__tool--active{background:var(--cream-deep);border-color:var(--line);color:var(--ink);font-weight:500}.MapPage__tool--disabled{opacity:.4;cursor:not-allowed}.MapPage__tool--cta{background:var(--moss);color:var(--cream);border-color:var(--moss);font-weight:500}.MapPage__tool--cta:hover{background:var(--moss-deep, #3e5034);color:var(--cream)}.MapPage__tool--cta:disabled{opacity:.55;cursor:not-allowed}.MapPage__hint{padding:6px var(--space-lg);font-size:12px;color:var(--ink-muted);background:#4a5d3f0f;border-bottom:1px solid var(--line-soft);flex-shrink:0}.MapPage__hint--placing{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);background:#b66b481a;color:var(--terracotta);font-weight:500}.MapPage__hint-cancel{background:transparent;border:1px solid var(--terracotta);color:var(--terracotta);border-radius:var(--radius-sm);padding:3px 10px;font-size:12px;font-family:inherit;cursor:pointer}.MapPage__hint-cancel:hover{background:#b66b4826}.MapPage__tool-icon{width:14px;height:14px}.MapPage__canvas{flex:1;min-height:0;background:var(--cream);padding:var(--space-md)}.MapPage--mobile{height:100%}.MapPage--mobile .MapPage__toolbar{padding:8px 14px;border-bottom:1px solid var(--line-soft)}.MapPage--mobile .MapPage__title{font-size:16px}.MapPage--mobile .MapPage__meta{font-size:11px}.MapPage--mobile .MapPage__canvas{padding:0;background:var(--paper)}.CameraCard{display:flex;align-items:center;gap:18px;width:100%;margin:0;padding:28px 24px;background:var(--moss-deep);color:var(--paper);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);position:relative;overflow:hidden;text-align:left;cursor:pointer}.CameraCard:disabled{cursor:progress;opacity:.85}.CameraCard:before{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:#b4dcaa14;pointer-events:none}.CameraCard__btn{width:64px;height:64px;background:var(--terracotta);color:var(--paper);border-radius:50%;display:grid;place-items:center;flex-shrink:0;position:relative;z-index:1;box-shadow:0 4px 16px #b66b4866}.CameraCard__btn svg{width:28px;height:28px}.CameraCard__text{flex:1;position:relative;z-index:1;display:flex;flex-direction:column;gap:4px}.CameraCard__title{font-family:var(--font-display);font-size:22px;font-style:italic;font-weight:500;letter-spacing:-.01em;line-height:1.05}.CameraCard__sub{font-size:12px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--sage-pale)}.Today{background:var(--paper);min-height:100%;padding-bottom:32px}.Today__head{padding:18px 22px 16px}.Today__eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--terracotta);margin-bottom:4px}.Today__date{font-family:var(--font-display);font-size:32px;font-weight:500;font-style:italic;color:var(--moss-deep);letter-spacing:-.02em;line-height:1}.Today__dot{font-style:italic;color:var(--terracotta)}.Today__cameraWrap{margin:0 22px 18px}.Today__untagged{margin:0 22px 22px;padding:14px 16px;background:var(--cream-deep);border:1px solid var(--clay);border-radius:var(--radius-md);display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.Today__untaggedBadge{width:32px;height:32px;border-radius:50%;background:var(--terracotta);color:var(--paper);display:grid;place-items:center;font-family:var(--font-display);font-style:italic;font-size:14px;font-weight:600;flex-shrink:0}.Today__untaggedText{flex:1;display:flex;flex-direction:column;gap:2px}.Today__untaggedTitle{font-size:13px;font-weight:500;color:var(--ink)}.Today__untaggedSub{font-size:11px;color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.04em}.Today__untaggedArrow{color:var(--terracotta);display:grid;place-items:center}.Today__untaggedArrow svg{width:16px;height:16px}.Today__sectionH{padding:0 22px;margin-bottom:10px;display:flex;align-items:baseline;justify-content:space-between}.Today__sectionTitle{font-family:var(--font-display);font-size:18px;font-style:italic;font-weight:500;color:var(--moss-deep);letter-spacing:-.01em}.Today__sectionMeta{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.Today__empty{margin:0 22px;padding:24px 18px;background:var(--cream);border:1px dashed var(--line);border-radius:var(--radius-md);text-align:center;color:var(--ink-muted)}.Today__empty p{margin:0 0 6px;font-size:14px}.Today__emptyHint{font-size:12px;color:var(--ink-faint);font-family:var(--font-mono)}.Today__error{margin:16px 22px 0;padding:10px 12px;background:#fdecea;border:1px solid #f1b8b3;color:#7a2521;border-radius:var(--radius-md);font-size:13px}.Today__loading{margin:0 22px;padding:18px;font-size:13px;color:var(--ink-faint)}.Today__tasks{list-style:none;padding:0 22px;margin:0 0 32px;display:flex;flex-direction:column}.Today__task{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line-soft)}.Today__task:last-child{border-bottom:none}.Today__task--pending{opacity:.5}.Today__task--pending .Today__taskName{text-decoration:line-through}.Today__taskTick{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--moss);background:transparent;cursor:pointer;display:grid;place-items:center;position:relative;-webkit-tap-highlight-color:transparent}.Today__taskTick:hover{background:var(--sage-pale)}.Today__task--pending .Today__taskTick{background:var(--moss);border-color:var(--moss)}.Today__taskTickInner{color:var(--cream);font-size:16px;font-weight:600}.Today__taskBody{flex:1;min-width:0}.Today__taskName{font-size:15px;color:var(--ink);line-height:1.35}.Today__taskLink{color:inherit;text-decoration:none}.Today__taskLink:hover{color:var(--moss);text-decoration:underline}.Today__taskMeta{margin-top:2px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--ink-muted)}.Today__taskMetaOverdue{color:var(--terracotta)}.Today__undo{position:fixed;bottom:76px;left:50%;transform:translate(-50%);width:min(calc(100vw - 24px),540px);background:var(--ink);color:var(--paper);border-radius:var(--radius-md);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:var(--shadow-lg);z-index:90;overflow:hidden}@media (min-width: 700px){.Today__undo{bottom:24px}}.Today__undoText{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--paper)}.Today__undoText svg{width:14px;height:14px;flex-shrink:0}.Today__undoBtn{background:transparent;border:1px solid var(--paper);color:var(--paper);border-radius:var(--radius-pill);padding:4px 12px;font-size:12px;letter-spacing:.04em;cursor:pointer}.Today__undoBtn:hover{background:#ffffff1f}.Today__undoBar{position:absolute;bottom:0;left:0;height:2px;width:100%;background:var(--terracotta);transform-origin:left center;animation:today-undo-drain linear forwards}@keyframes today-undo-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (min-width: 700px){.Today{background:var(--cream);max-width:560px;margin:0 auto;padding:24px 0 64px}.Today__head{padding:0 4px 18px}.Today__cameraWrap{margin:0 4px 18px}.Today__untagged{margin:0 4px 22px}.Today__sectionH{padding:0 4px}.Today__empty{margin:0 4px}}.Tag{background:var(--paper);min-height:100%;display:flex;flex-direction:column;padding-bottom:76px}.Tag__loading{padding:32px;font-family:var(--font-body);color:var(--ink-muted)}.Tag__top{padding:8px 22px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line-soft)}.Tag__topTitle{font-family:var(--font-display);font-size:22px;font-weight:500;font-style:italic;color:var(--moss-deep);letter-spacing:-.01em}.Tag__topMeta{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-top:2px}.Tag__cancel{background:none;border:none;font-size:14px;color:var(--terracotta);padding:8px;cursor:pointer;font-family:var(--font-body)}.Tag__photo{height:280px;position:relative;background:var(--ink);flex-shrink:0;overflow:hidden}.Tag__photoImg{width:100%;height:100%;object-fit:cover;display:block}.Tag__photoPlaceholder{width:100%;height:100%;display:grid;place-items:center;color:var(--paper);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg,var(--soil),var(--bark))}.Tag__photoCounter{position:absolute;top:14px;left:14px;background:#1f2a22b3;color:var(--paper);padding:5px 10px;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.Tag__photoMeta{position:absolute;bottom:14px;left:14px;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--paper);background:#1f2a2299;padding:4px 10px;border-radius:2px}.Tag__photoSkip{position:absolute;bottom:14px;right:14px;background:#1f2a22b3;color:var(--paper);padding:6px 14px;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;border:none;cursor:pointer}.Tag__body{padding:16px 22px 0;flex:1}.Tag__search{height:42px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);padding:0 14px;display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--ink-muted)}.Tag__search svg{width:14px;height:14px;flex-shrink:0}.Tag__search input{border:none;outline:none;background:transparent;flex:1;font-size:14px;font-family:var(--font-body);color:var(--ink)}.Tag__search input::placeholder{color:var(--ink-muted)}.Tag__sectionH{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);margin:14px 0 8px}.Tag__row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;margin-bottom:6px;border-radius:var(--radius-md);background:var(--cream);border:1px solid var(--line-soft);text-align:left;font-family:var(--font-body);cursor:pointer}.Tag__row:hover{border-color:var(--line)}.Tag__row--selected{background:var(--sage-pale);border-color:var(--moss)}.Tag__row--action{background:var(--cream-deep)}.Tag__rowPin{width:22px;height:22px;border-radius:50%;background:var(--terracotta);flex-shrink:0;display:grid;place-items:center;position:relative}.Tag__rowPin:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--paper)}.Tag__rowPin--moss{background:var(--moss)}.Tag__rowPin--honey{background:var(--honey)}.Tag__rowPin--rose{background:var(--rose-faded)}.Tag__rowPin--sage{background:var(--sage)}.Tag__rowPin--terracotta{background:var(--terracotta)}.Tag__rowPin--clay{background:var(--terracotta-soft)}.Tag__rowPin--neutral{background:var(--ink-muted)}.Tag__rowPin--veg{border-radius:4px}.Tag__rowPin--veg:after{border-radius:1px}.Tag__rowBody{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.Tag__rowName{font-size:13px;font-weight:500;color:var(--ink);font-family:var(--font-display);font-style:italic}.Tag__rowName em{font-style:italic;color:var(--ink-soft)}.Tag__rowName--plain{font-style:normal;font-family:var(--font-body);font-weight:500}.Tag__rowMeta{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;color:var(--ink-muted);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.Tag__rowCheck{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--ink-faint);flex-shrink:0;position:relative;background:var(--paper)}.Tag__row--selected .Tag__rowCheck{background:var(--moss);border-color:var(--moss)}.Tag__row--selected .Tag__rowCheck:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--paper);font-size:11px}.Tag__rowCheck--arrow{border:none;background:transparent;color:var(--terracotta);font-size:22px;font-family:var(--font-body);display:grid;place-items:center;line-height:1}.Tag__noResults{padding:14px 12px;font-size:13px;color:var(--ink-muted);text-align:center;font-family:var(--font-body)}.Tag__bottom{position:fixed;left:0;right:0;bottom:0;padding:12px 22px;border-top:1px solid var(--line-soft);display:flex;gap:10px;background:var(--paper);z-index:30}.Tag__btnSecondary{flex:1;height:44px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--ink);font-family:var(--font-body);cursor:pointer}.Tag__btnPrimary{flex:2;height:44px;background:var(--moss-deep);color:var(--paper);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;font-family:var(--font-body);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.Tag__btnPrimary:disabled{background:var(--ink-faint);cursor:not-allowed}.Tag__btnPrimary svg{width:14px;height:14px}.Tag__error{margin:12px 22px;padding:10px 12px;background:#fdecea;border:1px solid #f1b8b3;color:#7a2521;border-radius:var(--radius-md);font-size:13px}.Tag--done{display:grid;place-items:center;padding:64px 22px 96px}.Tag__doneCard{text-align:center;max-width:360px}.Tag__doneCheck{width:64px;height:64px;border-radius:50%;background:var(--moss);color:var(--paper);display:grid;place-items:center;font-size:32px;margin:0 auto 16px}.Tag__doneCard h1{font-family:var(--font-display);font-size:32px;font-style:italic;font-weight:500;color:var(--moss-deep);margin:0 0 4px}.Tag__doneCard p{font-size:14px;color:var(--ink-muted);margin:0 0 24px}.Tag__doneBtn{height:44px;padding:0 24px;background:var(--moss-deep);color:var(--paper);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;font-family:var(--font-body);cursor:pointer}@media (min-width: 700px){.Tag{max-width:480px;margin:0 auto;border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft)}.Tag__bottom{position:sticky;bottom:0;left:auto;right:auto}}.More{padding:24px 22px 32px;max-width:560px;margin:0 auto}.More__head{margin-bottom:22px}.More__eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--terracotta);margin-bottom:4px}.More__email{font-family:var(--font-display);font-size:22px;font-style:italic;color:var(--moss-deep);word-break:break-all}.More__list{list-style:none;padding:0;margin:0 0 28px;border:1px solid var(--line);background:var(--paper);border-radius:var(--radius-md);overflow:hidden}.More__item{padding:14px 16px;border-bottom:1px solid var(--line-soft);font-size:14px;color:var(--ink)}.More__item:last-child{border-bottom:none}.More__item:has(.More__link){padding:0}.More__link{display:block;padding:14px 16px;color:var(--ink);text-decoration:none}.More__link:hover{background:var(--cream-deep);color:var(--moss-deep)}.More__item--disabled{color:var(--ink-faint);font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.More__signout{width:100%;padding:12px 16px;background:transparent;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-soft);font-size:14px}.More__signout:hover:not(:disabled){background:var(--cream-deep)}.More__signout:disabled{opacity:.5;cursor:progress}.Tasks{padding:var(--space-lg);max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md)}@media (max-width: 700px){.Tasks{padding:var(--space-md) var(--space-sm)}}.Tasks__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.Tasks__head h1{font-family:var(--font-display);font-size:32px;font-weight:500;margin:0 0 4px;color:var(--ink)}.Tasks__meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-faint)}.Tasks__headRight{display:flex;align-items:center;gap:var(--space-sm)}.Tasks__search{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-pill);font-size:13px;color:var(--ink-muted)}.Tasks__search svg{width:14px;height:14px;flex-shrink:0}.Tasks__search input{background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:13px;color:var(--ink);width:160px}.Tasks__new{background:var(--moss);color:var(--cream);border:1px solid var(--moss);border-radius:var(--radius-pill);padding:6px 14px;font-size:13px;font-family:var(--font-body);cursor:pointer}.Tasks__new:hover{background:var(--moss-deep)}.Tasks__filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line-soft);padding-bottom:var(--space-sm)}.Tasks__filter{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;color:var(--ink-muted);cursor:pointer}.Tasks__filter:hover{background:var(--cream);color:var(--ink)}.Tasks__filter--active{background:var(--ink);color:var(--cream);border-color:var(--ink)}.Tasks__filter--active:hover{background:var(--ink);color:var(--cream)}.Tasks__catDot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.Tasks__select{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;color:var(--ink-muted);font-family:var(--font-body)}.Tasks__loading,.Tasks__empty{margin:0;padding:var(--space-md);color:var(--ink-muted);font-size:14px;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--cream)}.Tasks__error{margin:0;padding:8px 10px;background:#b66b4814;border:1px solid var(--terracotta-soft);border-radius:var(--radius-sm);color:var(--terracotta);font-size:13px}.Tasks__section{display:flex;flex-direction:column}.Tasks__sectionH{display:flex;align-items:baseline;gap:12px;padding:var(--space-md) 0 var(--space-sm);border-bottom:1px solid var(--line-soft)}.Tasks__sectionH--clickable{cursor:pointer}.Tasks__sectionH--clickable:hover{color:var(--moss)}.Tasks__sectionTitle{font-family:var(--font-display);font-size:16px;color:var(--ink);font-weight:500}.Tasks__section--overdue .Tasks__sectionTitle{color:var(--terracotta);font-style:italic}.Tasks__sectionMeta{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-faint)}.Tasks__sectionToggle{margin-left:auto;color:var(--ink-faint)}.Tasks__row{display:grid;grid-template-columns:28px 100px 1fr 120px 140px;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px dashed var(--line-soft);font-size:14px}.Tasks__row:last-child{border-bottom:none}@media (max-width: 700px){.Tasks__row{grid-template-columns:28px 70px 1fr;grid-template-areas:"tick date name" "tick . cat" "tick . loc"}.Tasks__row .Tasks__cat{grid-area:cat}.Tasks__row .Tasks__loc{grid-area:loc;font-size:12px}.Tasks__row .Tasks__nameCol{grid-area:name}.Tasks__row .Tasks__date{grid-area:date}.Tasks__row .Tasks__tick{grid-area:tick}}.Tasks__row--done{opacity:.7}.Tasks__tick{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--moss);background:transparent;cursor:pointer;position:relative}.Tasks__tick:hover{background:var(--sage-pale)}.Tasks__tick:disabled{cursor:default}.Tasks__tick--done{background:var(--moss);border-color:var(--moss)}.Tasks__tick--done:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--cream);font-size:14px;font-weight:600}.Tasks__date{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.04em}.Tasks__date--overdue{color:var(--terracotta)}.Tasks__dateAgo{font-size:10px;color:var(--terracotta);font-style:italic}.Tasks__name{color:var(--ink);line-height:1.3}.Tasks__row--done .Tasks__name{text-decoration:line-through;color:var(--ink-faint)}.Tasks__plant{font-size:12px;font-style:italic;color:var(--moss);text-decoration:none}.Tasks__plant:hover{text-decoration:underline}.Tasks__cat{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-muted)}.Tasks__loc{font-size:13px;color:var(--ink-muted)}.Tasks__newForm{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream)}.Tasks__newRow{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-sm)}@media (max-width: 700px){.Tasks__newRow{grid-template-columns:1fr}}.Tasks__newField{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-muted)}.Tasks__newField--wide{grid-column:span 1}.Tasks__newField span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.Tasks__newField input,.Tasks__newField select{border:1px solid var(--line);background:var(--paper);font-family:var(--font-body);font-size:14px;color:var(--ink);padding:8px 10px;border-radius:var(--radius-sm)}.Tasks__newField input:focus,.Tasks__newField select:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px #4a5d3f1f}.Tasks__newField select:disabled{opacity:.6}.Tasks__newActions{display:flex;justify-content:flex-end;gap:8px}.Tasks__newBtn{padding:7px 14px;font-size:13px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:var(--radius-sm);cursor:pointer}.Tasks__newBtn:hover{background:var(--cream-deep)}.Tasks__newBtn--primary{background:var(--moss);color:var(--cream);border-color:var(--moss)}.Tasks__newBtn--primary:hover{background:var(--moss-deep)}.Tasks__newBtn:disabled{opacity:.6;cursor:not-allowed}:root{--cream: #f4efe6;--cream-deep: #ebe3d4;--paper: #faf6ef;--ink: #1f2a22;--ink-soft: #3a4a3f;--ink-muted: #6b7a6f;--ink-faint: #98a39b;--moss: #4a5d3f;--moss-deep: #2f3d28;--moss-light: #7a8c6e;--sage: #b5c2a3;--sage-pale: #dde3d2;--terracotta: #b66b48;--terracotta-soft: #d49377;--clay: #c89070;--soil: #5d4a3a;--bark: #3d3026;--rose-faded: #c89098;--sky-faded: #a8b8c4;--honey: #d4a64a;--line: #d4cab8;--line-soft: #e3dccb;--shadow-sm: 0 1px 2px rgba(47, 61, 40, .08);--shadow-md: 0 4px 12px rgba(47, 61, 40, .1);--shadow-lg: 0 12px 32px rgba(47, 61, 40, .14);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-hand: "Caveat", cursive}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-weight:400;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;color:var(--ink);margin:0}button{font:inherit;color:inherit;cursor:pointer}input,textarea,select{font:inherit;color:inherit}a{color:var(--moss)}
