:root{--green-deep: #2a5c45;--green-mid: #3d7a5c;--green-sage: #8aab8a;--green-light: #d4e8d4;--green-pale: #eef5ee;--terra: #c4673d;--terra-light: #f5e4da;--parchment: #f9f4ed;--cream: #fffcf7;--text-dark: #1c2e22;--text-mid: #4a6b55;--text-muted: #8a9e8d;--border: #dde8dd;--shadow: rgba(42, 92, 69, .12);--shadow-lg: rgba(42, 92, 69, .2);--radius: 16px;--radius-sm: 10px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-height: 72px;--font-display: "Lora", Georgia, serif;--font-ui: "Nunito", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;background:var(--parchment);color:var(--text-dark);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none}#root{display:flex;flex-direction:column;height:100dvh}.page-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px)}.page-header{padding:calc(var(--safe-top) + 20px) 20px 16px;background:var(--green-deep);color:#fff;position:sticky;top:0;z-index:10}.page-header h1{font-family:var(--font-display);font-size:1.6rem;font-weight:600;letter-spacing:-.01em}.page-header p{font-size:.85rem;opacity:.75;margin-top:2px;font-family:var(--font-ui)}.card{background:var(--cream);border-radius:var(--radius);box-shadow:0 2px 8px var(--shadow);border:1px solid var(--border);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.card:active{transform:scale(.98)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:50px;border:none;font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.btn-primary{background:var(--green-deep);color:#fff}.btn-primary:active{background:var(--green-mid);transform:scale(.97)}.btn-secondary{background:var(--green-pale);color:var(--green-deep)}.btn-secondary:active{background:var(--green-light)}.btn-terra{background:var(--terra);color:#fff}.btn-terra:active{opacity:.85;transform:scale(.97)}.btn-ghost{background:transparent;color:var(--text-mid);padding:8px 12px}.btn-danger{background:#fee2e2;color:#dc2626}.fab{position:fixed;bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);right:20px;width:56px;height:56px;border-radius:50%;background:var(--green-deep);color:#fff;font-size:1.5rem;border:none;box-shadow:0 4px 16px var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;transition:transform .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.fab:active{transform:scale(.92)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c2e2280;z-index:100;display:flex;align-items:flex-end;padding:0;animation:fadeIn .2s ease}.modal-sheet{background:var(--cream);border-radius:24px 24px 0 0;width:100%;max-height:92dvh;overflow-y:auto;padding:24px 20px calc(var(--safe-bottom) + 24px);animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.modal-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 20px}.modal-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--text-dark);margin-bottom:20px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-mid);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.form-input{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:.95rem;color:var(--text-dark);background:#fff;outline:none;transition:border-color .15s ease;-webkit-appearance:none}.form-input:focus{border-color:var(--green-mid)}.form-input::placeholder{color:var(--text-muted)}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238a9e8d' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}textarea.form-input{resize:none;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:50px;font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.badge-green{background:var(--green-pale);color:var(--green-deep)}.badge-terra{background:var(--terra-light);color:var(--terra)}.badge-planning{background:#eff6ff;color:#2563eb}.badge-in-progress{background:#fef9c3;color:#854d0e}.badge-done{background:var(--green-pale);color:var(--green-deep)}.section-pad{padding:16px}.section-gap{display:flex;flex-direction:column;gap:12px}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state .empty-icon{font-size:3rem;margin-bottom:12px;display:block}.empty-state h3{font-family:var(--font-display);font-size:1.1rem;color:var(--text-mid);margin-bottom:6px}.empty-state p{font-size:.9rem}.divider{height:1px;background:var(--border);margin:12px 0}.season-bar{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;border-radius:4px;overflow:hidden}.season-month{height:6px;background:var(--border);transition:background .2s}.season-month.sow{background:var(--green-sage)}.season-month.plant{background:var(--green-deep)}.season-month.harvest{background:var(--terra)}.back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:#ffffffd9;font-family:var(--font-ui);font-size:.9rem;cursor:pointer;padding:0;margin-bottom:8px}.log-entry{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.log-icon{width:32px;height:32px;border-radius:50%;background:var(--green-pale);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}.item-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.item-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.item-check.checked{background:var(--green-deep);border-color:var(--green-deep);color:#fff}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--green-deep);border-radius:3px;transition:width .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .35s ease both}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--cream);border-top:1px solid var(--border);display:flex;align-items:stretch;z-index:50;box-shadow:0 -4px 16px var(--shadow)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;border:none;background:none;color:var(--text-muted);font-family:var(--font-ui);font-size:.7rem;font-weight:600;letter-spacing:.02em;-webkit-tap-highlight-color:transparent;transition:color .15s ease}.nav-item.active{color:var(--green-deep)}.nav-icon{font-size:1.35rem;line-height:1;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.nav-item.active .nav-icon{transform:scale(1.15)}.checkbox-item{display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;border-bottom:1px solid var(--border)}.checkbox-item:last-child{border-bottom:none}.checkbox-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--green-deep)}.month-selects{display:grid;grid-template-columns:1fr 1fr;gap:8px}
