.tg-landing{--color-accent-50: #e8f5ee;--color-accent-500: #1e9e55;--color-accent-600: #178247;--color-accent-700: #126838;--color-bg: #f7f4ef;--color-surface: #ffffff;--color-surface-2: #f2eee7;--color-text: #1f1f1f;--color-text-soft: #3f3f3f;--color-muted: #6b6b6b;--color-faint: #9a9a9a;--color-border: #e0ddd7;--color-border-strong: #c9c5bd;--color-success: #1e9e55;--color-success-soft: #e8f5ee;--color-warning: #b7791f;--color-warning-soft: #fbf1dd;--color-error: #b42318;--color-error-soft: #fbe9e7;--color-info: #2563eb;--color-info-soft: #e8effc;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-md: 18px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 30px;--text-3xl: 40px;--text-4xl: 52px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 6px;--radius: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(31, 31, 31, .04), 0 2px 8px rgba(31, 31, 31, .05);--shadow-raised: 0 4px 12px rgba(31, 31, 31, .07), 0 8px 24px rgba(31, 31, 31, .06);--shadow-lg: 0 12px 32px rgba(31, 31, 31, .12), 0 24px 48px rgba(31, 31, 31, .08);--shadow-focus: 0 0 0 3px rgba(30, 158, 85, .35);--duration-fast: .12s;--duration-base: .18s;--duration-slow: .28s;--ease-out: cubic-bezier(.16, 1, .3, 1);background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}.tg-landing *{box-sizing:border-box}.tg-landing a{color:inherit;text-decoration:none}.tg-landing :focus-visible{outline:none;box-shadow:var(--shadow-focus);border-color:var(--color-accent-500)}.tg-container{max-width:75rem;margin:0 auto;padding:0 var(--space-6)}.tg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);white-space:nowrap}.tg-btn-primary{background:var(--color-accent-500);color:#fff}.tg-btn-primary:hover{background:var(--color-accent-600)}.tg-btn-primary:active{background:var(--color-accent-700)}.tg-btn-outline{background:transparent;border-color:var(--color-accent-500);color:var(--color-accent-700)}.tg-btn-outline:hover{background:var(--color-accent-50)}.tg-btn-ghost{background:transparent;color:var(--color-text-soft);padding:0 var(--space-4)}.tg-btn-ghost:hover{background:var(--color-surface-2)}.tg-nav{position:sticky;top:0;z-index:40;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.tg-nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.tg-wordmark{font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;color:var(--color-text);display:flex;align-items:center;gap:var(--space-2)}.tg-wordmark-mark{color:var(--color-accent-500)}.tg-nav-actions{display:flex;align-items:center;gap:var(--space-2)}.tg-nav-actions .tg-version{font-size:var(--text-xs);color:var(--color-faint);margin-right:var(--space-2)}.tg-nav-actions .tg-nav-signin{display:inline-flex}@media (max-width: 640px){.tg-nav-actions .tg-nav-signin{display:none}}.tg-hero{position:relative;overflow:hidden;min-height:80vh;display:flex;align-items:center}.tg-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.tg-hero-inner{position:relative;z-index:1;padding-top:var(--space-16);padding-bottom:var(--space-16);max-width:40rem}.tg-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-accent-50);color:var(--color-accent-700);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;margin-bottom:var(--space-6)}.tg-hero h1{font-size:var(--text-4xl);line-height:1.15;letter-spacing:-.01em;font-weight:700;margin:0 0 var(--space-5) 0;color:var(--color-text)}.tg-hero p{font-size:var(--text-lg);line-height:1.55;color:var(--color-text-soft);margin:0 0 var(--space-8) 0;max-width:34rem}.tg-hero-cta{display:flex;gap:var(--space-3);flex-wrap:wrap}@media (max-width: 640px){.tg-hero{min-height:auto;padding-top:var(--space-10)}.tg-hero h1{font-size:var(--text-3xl)}.tg-hero p{font-size:var(--text-base)}}.tg-section{padding:var(--space-20) 0}.tg-section-tight{padding:var(--space-16) 0}.tg-section-head{max-width:34rem;margin:0 0 var(--space-10) 0}.tg-section-head h2{font-size:var(--text-2xl);letter-spacing:-.01em;line-height:1.3;font-weight:700;margin:0 0 var(--space-3) 0;color:var(--color-text)}.tg-section-head p{color:var(--color-muted);font-size:var(--text-base);margin:0}.tg-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}@media (max-width: 860px){.tg-feature-grid{grid-template-columns:1fr}}.tg-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-6);transition:box-shadow var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.tg-card:hover{box-shadow:var(--shadow-raised);transform:translateY(-2px);border-color:var(--color-border-strong)}.tg-card-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--color-accent-50);color:var(--color-accent-600);margin-bottom:var(--space-4)}.tg-card h3{font-size:var(--text-md);font-weight:600;margin:0 0 var(--space-2) 0;color:var(--color-text)}.tg-card p{font-size:var(--text-sm);color:var(--color-muted);margin:0}.tg-mock-shell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.tg-mock-titlebar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-2)}.tg-mock-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border-strong)}.tg-mock-titlebar span{font-size:var(--text-xs);color:var(--color-faint);margin-left:var(--space-2)}.tg-mock-nav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border)}.tg-mock-nav-title{font-size:var(--text-md);font-weight:700;color:var(--color-text)}.tg-mock-nav-links{display:flex;gap:var(--space-5);font-size:var(--text-sm);color:var(--color-muted)}.tg-mock-nav-links span:first-child{color:var(--color-accent-700);font-weight:600}@media (max-width: 640px){.tg-mock-nav-links{display:none}}.tg-mock-body{padding:var(--space-6);background:var(--color-bg)}.tg-mock-heading{font-size:var(--text-lg);font-weight:600;margin:0 0 var(--space-1) 0;color:var(--color-text)}.tg-mock-subheading{font-size:var(--text-sm);color:var(--color-muted);margin:0 0 var(--space-5) 0}.tg-mock-list{display:flex;flex-direction:column;gap:var(--space-3)}.tg-mock-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.tg-mock-plant{display:flex;align-items:center;gap:var(--space-3);min-width:0}.tg-mock-avatar{width:36px;height:36px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--color-accent-50);color:var(--color-accent-600);display:flex;align-items:center;justify-content:center}.tg-mock-plant-text{min-width:0}.tg-mock-nickname{font-size:var(--text-sm);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tg-mock-meta{font-size:var(--text-xs);color:var(--color-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tg-chip{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);flex-shrink:0;white-space:nowrap}.tg-chip-dot{width:6px;height:6px;border-radius:50%}.tg-chip-warning{background:var(--color-warning-soft);color:var(--color-warning)}.tg-chip-warning .tg-chip-dot{background:var(--color-warning)}.tg-chip-success{background:var(--color-success-soft);color:var(--color-accent-700)}.tg-chip-success .tg-chip-dot{background:var(--color-success)}.tg-chip-info{background:var(--color-info-soft);color:var(--color-info)}.tg-chip-info .tg-chip-dot{background:var(--color-info)}.tg-mock-caption{text-align:center;color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-4)}.tg-principles{display:flex;align-items:center;justify-content:center;text-align:center;gap:var(--space-6);flex-wrap:wrap}.tg-principles p{margin:0;color:var(--color-muted);font-size:var(--text-base);padding:0 var(--space-6)}.tg-principles-divider{width:1px;height:20px;background:var(--color-border-strong)}@media (max-width: 640px){.tg-principles{flex-direction:column;gap:var(--space-4)}.tg-principles-divider{width:32px;height:1px}.tg-principles p{padding:0}}.tg-cta-band{background:var(--color-accent-50)}.tg-cta-band-inner{text-align:center;padding:var(--space-20) 0;display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.tg-cta-band h2{font-size:var(--text-2xl);letter-spacing:-.01em;font-weight:700;color:var(--color-accent-700);margin:0;max-width:28rem}.tg-footer{border-top:1px solid var(--color-border);background:var(--color-bg)}.tg-footer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-8);padding:var(--space-16) 0 var(--space-8)}@media (max-width: 720px){.tg-footer-grid{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.tg-footer-grid{grid-template-columns:1fr}}.tg-footer-brand p{color:var(--color-muted);font-size:var(--text-sm);max-width:20rem;margin:var(--space-3) 0 0 0}.tg-footer-col h3{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-faint);margin:0 0 var(--space-3) 0;font-weight:600}.tg-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.tg-footer-col a{font-size:var(--text-sm);color:var(--color-text-soft);display:inline-flex;align-items:center;min-height:24px}.tg-footer-col a:hover{color:var(--color-accent-700)}.tg-footer-bottom{border-top:1px solid var(--color-border);padding:var(--space-5) 0;color:var(--color-faint);font-size:var(--text-xs);text-align:center}.tg-footer-wordmark{color:var(--color-faint);font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;transition:color .15s ease}.tg-footer-wordmark:hover{color:var(--color-accent-700)}:root{--color-accent-50: #E8F5EE;--color-accent-100: #C7E7D3;--color-accent-200: #9DD3B1;--color-accent-300: #6FBC8C;--color-accent-400: #43A869;--color-accent-500: #1E9E55;--color-accent-600: #178247;--color-accent-700: #126838;--color-accent-800: #0D4F2A;--color-accent-900: #08361C;--color-accent: var(--color-accent-500);--color-accent-hover: var(--color-accent-600);--color-accent-soft: var(--color-accent-50);--color-accent-tint: rgba(30, 158, 85, .08);--color-bg: #F7F4EF;--color-surface: #FFFFFF;--color-surface-2: #F2EEE7;--color-overlay: rgba(0, 0, 0, .45);--color-text: #1F1F1F;--color-text-soft: #3F3F3F;--color-muted: #6B6B6B;--color-faint: #9A9A9A;--color-border: #E0DDD7;--color-border-strong: #C9C5BD;--color-success: #1E9E55;--color-success-soft:#E8F5EE;--color-warning: #B7791F;--color-warning-soft:#FBF1DD;--color-error: #B42318;--color-error-hover: #8C1C13;--color-error-soft: #FBE9E7;--color-info: #2563EB;--color-info-soft: #E8EFFC;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.5rem;--text-4xl: 3.25rem;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.55;--leading-relaxed:1.7;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--tracking-tight: -.01em;--tracking-normal: 0;--tracking-wide: .04em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--container-max: 75rem;--container-narrow: 24rem;--container-prose: 48rem;--nav-height: 3.5rem;--radius-sm: .375rem;--radius: .75rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 2px 8px rgba(0, 0, 0, .06);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .07);--shadow-raised: 0 8px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 3px rgba(30, 158, 85, .35);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .12s;--duration-base: .18s;--duration-slow: .28s;--z-base: 0;--z-sticky: 100;--z-dropdown:1000;--z-modal: 2000;--z-toast: 3000;--focus-ring: 0 0 0 3px rgba(30, 158, 85, .35)}@media (prefers-color-scheme: dark){:root[data-theme=auto]{--color-bg: #1A1A18;--color-surface: #242420;--color-surface-2: #2E2E29;--color-text: #F2EEE7;--color-text-soft: #D8D4CD;--color-muted: #9A968E;--color-faint: #6B6862;--color-border: #3A3A35;--color-border-strong: #4A4A44;--color-overlay: rgba(0, 0, 0, .65);--shadow: 0 2px 8px rgba(0, 0, 0, .4);--shadow-raised: 0 8px 24px rgba(0, 0, 0, .5)}}:root{--color-accent: #1E9E55;--color-accent-hover: #178247;--color-bg: #F7F4EF;--color-surface: #FFFFFF;--color-text: #1F1F1F;--color-muted: #6B6B6B;--color-border: #E0DDD7;--color-error: #B42318;--radius: .75rem;--shadow: 0 2px 8px rgba(0, 0, 0, .06);--shadow-raised: 0 8px 24px rgba(0, 0, 0, .08);--nav-height: 3.5rem}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.55}#root{min-height:100%}.app-nav{position:sticky;top:0;z-index:100;height:var(--nav-height);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow)}.app-nav-inner{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:75rem;margin:0 auto;padding:0 1.5rem;gap:1rem}.app-nav-brand{font-size:1.125rem;font-weight:700;color:var(--color-text);text-decoration:none;white-space:nowrap}.app-nav-links{display:flex;align-items:center;gap:.25rem}.app-nav-links a,.app-nav-logout{display:inline-flex;align-items:center;color:var(--color-text);text-decoration:none;font-size:.9375rem;font-weight:500;padding:.5rem .75rem;border-radius:var(--radius);white-space:nowrap;border:none;background:transparent;cursor:pointer;font-family:inherit;transition:background-color .15s ease,color .15s ease}.app-nav-links a.active,.app-nav-links a:hover,.app-nav-logout:hover{background-color:#1e9e5514;color:var(--color-accent)}.app-nav-logout:hover{color:var(--color-error);background-color:#b423180f}.app-nav-cta{margin-left:.5rem;padding:.5rem 1rem;font-size:.9375rem}.app-version{font-size:.75rem;color:var(--color-muted);font-weight:500;padding:.5rem .25rem;white-space:nowrap}.icon-flip{display:inline-block;transform:scaleX(-1)}.version-badge{position:fixed;right:.75rem;bottom:.75rem;z-index:100;font-size:.75rem;font-weight:500;color:var(--color-muted);pointer-events:none}.page{width:100%;max-width:75rem;margin:0 auto;min-height:calc(100vh - var(--nav-height));padding:2rem 1.5rem 3rem}.page.auth,.page.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center}.page.welcome,.page.auth{text-align:center}.page.auth .card,.card.narrow{width:100%;max-width:24rem}.card{width:100%;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;transition:box-shadow .15s ease,transform .15s ease}.card.interactive:hover,.env-card:hover,.post-grid article:hover{transform:translateY(-2px);box-shadow:var(--shadow-raised)}.page.welcome .card .button-group{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}h1,h2,h3,p{margin:0 0 1rem}h1{font-size:1.875rem;font-weight:700;line-height:1.2}h2{font-size:1.5rem;font-weight:600}h3{font-size:1.25rem;font-weight:600}h4{font-size:1.05rem;font-weight:600;margin:1.25rem 0 .5rem}p{color:var(--color-text)}.tagline,.detail,.placeholder,.empty{color:var(--color-muted)}.tagline{font-size:1.125rem}.placeholder,.empty{margin-top:1.5rem;font-style:italic}.form{display:flex;flex-direction:column;gap:.75rem}.page.auth .form{align-items:center}.form label{font-size:.875rem;font-weight:500}.form input,.form select,.form textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;background-color:var(--color-surface);color:var(--color-text);font-family:inherit}.form textarea{resize:vertical}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent)}.form select:disabled,.form input:disabled{opacity:.6;background-color:var(--color-bg)}.error{color:var(--color-error);font-size:.875rem;margin:0}.hint{margin-top:1rem;font-size:.875rem;text-align:center;color:var(--color-muted)}.hint a{color:var(--color-accent);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.25rem;border:1px solid transparent;border-radius:var(--radius);font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.btn-secondary{background-color:transparent;color:var(--color-accent);border-color:var(--color-accent)}.btn-secondary:hover:not(:disabled){background-color:#1e9e5514}.btn-ghost{background-color:transparent;color:var(--color-accent);border-color:transparent;padding:.5rem .25rem}.loading{color:var(--color-muted)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-header h1{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:0}.micro-climate-icon{height:1.2em;width:auto;vertical-align:middle}.page-header p{margin:0}.new-menu{position:relative;display:inline-block}.new-menu-trigger{min-width:6rem}.new-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:12rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-raised);padding:.25rem;z-index:1000}.new-menu-item{display:block;width:100%;text-align:left;padding:.625rem .875rem;border-radius:calc(var(--radius) - .25rem);border:none;background:transparent;font:inherit;color:var(--color-text);cursor:pointer;transition:background-color .15s ease,color .15s ease}.new-menu-item:hover:not(:disabled){background-color:#1e9e5514;color:var(--color-accent)}.new-menu-item:disabled{opacity:.45;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:2000}.modal-card{width:100%;max-width:28rem;max-height:calc(100vh - 2rem);overflow-y:auto;background-color:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-raised);animation:modal-in .15s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(.5rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:transparent;border:none;border-radius:var(--radius);font-size:1.5rem;line-height:1;color:var(--color-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease}.modal-close:hover{background-color:#0000000a;color:var(--color-text)}.modal-body{padding:1.5rem}.today-layout{margin-top:1.5rem}.env-grid,.post-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 900px){.env-grid,.post-grid{grid-template-columns:repeat(2,1fr)}}.env-meta,.plant-list{list-style:none;margin:0;padding:0}.env-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.25rem 1rem;margin:.75rem 0 1rem}.env-meta li{padding:.25rem 0;font-size:.9375rem}.env-meta strong{color:var(--color-text);font-weight:600}.plant-list{display:flex;flex-direction:column;gap:.75rem}.plant-item{display:flex;flex-direction:column;padding:1rem 1rem 1rem 1.25rem;background-color:var(--color-bg);border-radius:var(--radius);border-left:3px solid var(--color-accent)}.plant-nickname{font-weight:600}.plant-detail{font-size:.875rem;color:var(--color-muted)}.plant-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.plant-actions .btn{padding:.375rem .75rem;font-size:.875rem;border-radius:.5rem}.note-form{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.75rem}.note-form .btn{padding:.375rem .75rem;font-size:.875rem;border-radius:.5rem}.note-form textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:inherit;background-color:var(--color-surface);color:var(--color-text);resize:vertical}.care-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.375rem;font-size:.875rem;color:var(--color-muted)}.care-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.25rem 0}.care-type{font-weight:600;color:var(--color-text);text-transform:capitalize}.care-notes{color:var(--color-muted);flex:1 1 auto}.care-time{margin-left:auto;font-size:.75rem;color:var(--color-muted);white-space:nowrap}.climate-panel{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.climate-panel h4{margin-bottom:.5rem}.env-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.env-card-header h3{margin:0;font-size:1.25rem}.env-card-header h3 a{color:inherit;text-decoration:none}.env-card-header h3 a:hover{color:var(--color-accent)}.plant-count{font-size:.875rem;color:var(--color-muted);white-space:nowrap}.env-card .explanation,.environment-detail .explanation{color:var(--color-muted);font-size:.9375rem;margin:0 0 .75rem}.env-card-actions,.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem}.page-header-actions{margin-top:0}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.section-header h2{margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.env-list{display:flex;flex-direction:column;gap:1.5rem}.environment-detail .card{margin-bottom:1.5rem}.environment-detail .card h2{margin-top:0;margin-bottom:1rem}.card>.climate-panel{margin-top:0;padding-top:0;border-top:none}@media (max-width: 640px){.page{padding:1rem}.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}.card{padding:1.25rem}h1{font-size:1.5rem}.care-time{margin-left:0;width:100%}.app-nav{height:auto;min-height:var(--nav-height)}.app-nav-inner{padding:.5rem 1rem;flex-wrap:nowrap}}.post-page{display:flex;flex-direction:column;gap:1.5rem}.post-page .page-header{margin-bottom:0}.comments-list{list-style:none;margin:0 0 1.5rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.comment{padding:1rem 1.25rem;background-color:var(--color-bg);border-radius:var(--radius)}.comment p{margin:0 0 .5rem}.comment-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.comment-meta .btn{padding:.375rem .75rem;font-size:.875rem;border-radius:.5rem}.btn-danger{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-danger:hover:not(:disabled){background-color:#8c1c13}.post-grid h4 a{color:inherit;text-decoration:none}.post-grid h4 a:hover{color:var(--color-accent)}.post-grid .detail a{color:var(--color-accent);text-decoration:none}.post-grid .detail a:hover{text-decoration:underline}.fields-table{width:100%;border-collapse:collapse;font-size:.9375rem}.fields-table th,.fields-table td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.fields-table th{font-weight:600;color:var(--color-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.03em}.actions-header{width:3rem}.actions-cell{text-align:right}.default-field-row{background-color:#1e9e550a}.default-badge{display:inline-block;margin-left:.5rem;padding:.125rem .375rem;background-color:var(--color-bg);color:var(--color-muted);border:1px solid var(--color-border);border-radius:999px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.action-menu{padding:.25rem .5rem;font-weight:700;min-height:0}.add-field-form{margin-top:1rem}.capitalize{text-transform:capitalize}.field-menu{position:relative;display:inline-flex}.field-menu-dropdown{position:absolute;top:calc(100% + .25rem);right:0;min-width:7rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-raised);padding:.25rem;z-index:100}.field-menu-item{display:block;width:100%;text-align:left;padding:.5rem .75rem;border-radius:calc(var(--radius) - .25rem);border:none;background:transparent;font:inherit;font-size:.9375rem;color:var(--color-text);cursor:pointer;transition:background-color .15s ease,color .15s ease}.field-menu-item:hover{background-color:#1e9e5514;color:var(--color-accent)}.field-menu-item-danger:hover{color:var(--color-error);background-color:#b423180f}.field-delete-actions{display:flex;gap:.75rem;margin-top:1rem}.micro-climates .section-header,.plant-care-section .section-header{margin-bottom:1rem}.micro-climates .detail,.plant-care-section .detail{margin-top:.25rem;margin-bottom:0}.micro-climate-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.micro-climate-card{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius)}.micro-climate-main{flex:1;text-align:left}.micro-climate-actions{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0}.micro-climate-name{display:block;font-weight:600;font-size:1.0625rem;color:var(--color-text)}.micro-climate-meta{display:block;font-size:.875rem;color:var(--color-muted);margin-top:.125rem}.plant-care-section{margin-top:1.5rem}.plant-care-label{display:block;font-weight:600;font-size:.9375rem;margin-bottom:.5rem;color:var(--color-text)}.plant-care-select-wrapper{position:relative;display:inline-block;width:100%;max-width:24rem;margin-bottom:1rem}.plant-care-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:100%;padding:.625rem 2.5rem .625rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius);background-color:var(--color-surface);color:var(--color-text);font:inherit;font-size:1rem;font-weight:500;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.plant-care-select:hover{border-color:var(--color-accent)}.plant-care-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #1e9e5526}.plant-care-select-arrow{position:absolute;top:50%;right:.875rem;transform:translateY(-50%);pointer-events:none;color:var(--color-muted);font-size:.75rem}.plant-care-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.select-all{display:inline-flex;align-items:center;gap:.5rem;font-weight:500;cursor:pointer}.selected-count{color:var(--color-muted);font-size:.875rem}.plant-care-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.plant-care-row{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.plant-care-header{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background-color:var(--color-bg)}.plant-checkbox{display:inline-flex;align-items:center}.plant-name{flex:1;text-align:left;background:transparent;border:none;padding:0;cursor:pointer}.plant-name .plant-meta{display:block;font-size:.8125rem;color:var(--color-muted);margin-top:.125rem}.expand-btn{padding:.25rem .5rem}.plant-care-details{padding:1rem;background-color:var(--color-surface);border-top:1px solid var(--color-border)}.climate-logger form{display:grid;gap:.75rem}.climate-field-input{display:grid;gap:.25rem}.climate-recent-logs{margin-top:1.5rem}.climate-recent-logs h5{margin:0 0 .5rem;font-size:1rem}.account-menu{position:relative}.account-menu-trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;cursor:pointer;line-height:1}.account-avatar{width:2.25rem;height:2.25rem;border-radius:50%;object-fit:cover;border:2px solid var(--color-border);transition:border-color .15s ease,box-shadow .15s ease}.account-avatar-initials{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent),#147a42);color:#fff;font-size:.8125rem;font-weight:700}.account-menu-trigger:hover .account-avatar,.account-menu-trigger[aria-expanded=true] .account-avatar{border-color:var(--color-accent);box-shadow:0 0 0 3px #1e9e5526}.account-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:12rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.5rem 0;z-index:200}.account-menu-header{padding:.5rem .875rem;border-bottom:1px solid var(--color-border);margin-bottom:.25rem}.account-menu-name{display:block;font-weight:600;font-size:.9375rem;color:var(--color-text)}.account-menu-email{display:block;font-size:.8125rem;color:var(--color-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-item{display:flex;align-items:center;width:100%;padding:.625rem .875rem;border:none;background:transparent;color:var(--color-text);font:inherit;font-size:.9375rem;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .15s ease}.account-menu-item:hover{background-color:#1e9e5514;color:var(--color-accent)}.account-menu-logout:hover{color:var(--color-error);background-color:#b423180f}.avatar-uploader{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.avatar-preview{width:5rem;height:5rem;border-radius:50%;object-fit:cover;border:2px solid var(--color-border);display:inline-flex;align-items:center;justify-content:center}.avatar-preview-placeholder{background:linear-gradient(135deg,var(--color-accent),#147a42);color:#fff;font-size:1.25rem;font-weight:700}.avatar-uploader-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.section-title{display:inline-flex;align-items:center;gap:.5rem;margin:0}.info-tooltip{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:help}.info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:50%;background-color:var(--color-muted);color:#fff;font-size:.6875rem;font-weight:700;line-height:1}.info-tooltip:hover .info-tooltip-icon{background-color:var(--color-accent)}.info-tooltip-text{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);width:14rem;padding:.5rem .75rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);font-size:.8125rem;color:var(--color-text);line-height:1.4;opacity:0;visibility:hidden;pointer-events:none;z-index:100;transition:opacity .15s ease,visibility .15s ease}.info-tooltip:hover .info-tooltip-text,.info-tooltip:focus-within .info-tooltip-text{opacity:1;visibility:visible}.plant-care-env-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.plant-care-env-label{font-weight:600;font-size:.9375rem;color:var(--color-text)}.plant-care-select-wrapper-inline{width:auto;max-width:none;margin-bottom:0}.plant-care-select-inline{width:auto;min-width:8rem;padding:.375rem 1.75rem .375rem .625rem;font-size:.875rem;font-weight:500}@media (max-width: 640px){.plant-care-env-row{flex-wrap:wrap}}.climate-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.climate-status.compact{flex-direction:row;flex-wrap:wrap;gap:.75rem}.climate-status-item{display:flex;align-items:center;gap:.5rem;font-size:.9375rem}.climate-status.compact .climate-status-item{gap:.375rem}.climate-status-name{display:inline-flex;align-items:center;gap:.25rem;color:var(--color-muted);font-weight:500}.climate-status-value{font-weight:600;color:var(--color-text)}.climate-status-value.in-range{color:var(--color-accent, #1e9e55)}.climate-status-value.out-of-range{color:var(--color-error, #b72318)}@media (max-width: 640px){.climate-status.compact{flex-direction:column;gap:.25rem}}.climate-trends-card{padding-top:1.25rem}.climate-trends .section-header{margin-bottom:1rem}.trend-days{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.trend-days label{font-weight:500;color:var(--color-muted)}.trend-days select{padding:.375rem 1.5rem .375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius);background-color:var(--color-surface);color:var(--color-text);font:inherit;font-size:.875rem}.trend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.trend-chart{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem}.trend-chart-title{margin:0 0 .5rem;font-size:.9375rem;font-weight:600}.trend-chart-unit{display:block;margin-top:.25rem;font-size:.75rem;color:var(--color-muted)}.trend-chart-svg{width:100%;height:auto;overflow:visible;display:block}.trend-target-band{fill:#1e9e5514}.trend-grid-line{stroke:var(--color-border);stroke-width:1;stroke-dasharray:2,2}.trend-axis-line{stroke:var(--color-border);stroke-width:1}.trend-axis-text{fill:var(--color-muted);font-size:10px}.trend-line{stroke:var(--color-text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.trend-dot{stroke:#fff;stroke-width:1}.trend-dot.in-range{fill:var(--color-accent)}.trend-dot.out-of-range{fill:var(--color-error)}@media (max-width: 640px){.app-nav-links{gap:.25rem}.account-avatar{width:2rem;height:2rem}}
