:root{--bg-deep: #0d0d0f;--bg-card: #161619;--bg-elevated: #1c1c20;--bg-hover: #242428;--cream: #f5f0e8;--cream-dim: #a39e94;--green: #22c55e;--green-dim: #16a34a;--green-glow: rgba(34, 197, 94, .15);--red: #ef4444;--orange: #f59e0b;--blue: #3b82f6;--border: #2a2a2e;--border-light: #3a3a3e;--warm-accent: #e8853d;--warm-accent-dim: #c46b28;--warm-glow: rgba(232, 133, 61, .12);--today-glow: rgba(255, 183, 77, .15);--today-border: #ffb74d;--card-warm-bg: #1a1917;--error: #e07654;--error-dim: #c45e3e;--error-bg: rgba(224, 118, 84, .1);--error-border: rgba(224, 118, 84, .3);--error-text: #f4b8a0;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--nav-width: 72px;--nav-expanded: 200px;--content-max: 1200px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*{margin:0;padding:0;box-sizing:border-box}:focus-visible{outline:2px solid var(--green);outline-offset:2px}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--cream);min-height:100vh;line-height:1.6;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:9999}.nav{position:fixed;left:0;top:0;bottom:0;width:var(--nav-width);background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 12px;z-index:100;transition:width .4s var(--ease-out-expo)}.nav:hover,.nav.pinned{width:var(--nav-expanded)}.nav-pin{position:absolute;top:20px;right:12px;width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;opacity:0;transition:all .25s var(--ease-out-expo)}.nav:hover .nav-pin,.nav.pinned .nav-pin{opacity:1}.nav-pin:hover{background:var(--green-glow);border-color:var(--green);color:var(--green)}.nav.pinned .nav-pin{background:var(--green);border-color:var(--green);color:var(--bg-deep)}.nav-logo{display:flex;align-items:center;gap:12px;padding:8px;margin-bottom:32px;overflow:hidden}.nav-logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--green) 0%,var(--green-dim) 100%);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.nav-logo-text{font-family:var(--font-display);font-size:1.3rem;font-weight:600;white-space:nowrap;opacity:0;transform:translate(-10px);transition:all .3s var(--ease-out-expo)}.nav:hover .nav-logo-text,.nav.pinned .nav-logo-text{opacity:1;transform:translate(0)}.nav-items{display:flex;flex-direction:column;gap:6px;flex:1}.nav-item{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;cursor:pointer;transition:all .25s var(--ease-out-expo);overflow:hidden;position:relative;text-decoration:none;color:inherit}.nav-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--green);border-radius:0 2px 2px 0;transition:height .25s var(--ease-spring)}.nav-item:hover{background:var(--bg-hover)}.nav-item.active{background:var(--green-glow)}.nav-item.active:before{height:24px}.nav-item-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;transition:transform .3s var(--ease-spring)}.nav-item:hover .nav-item-icon{transform:scale(1.1)}.nav-item.active .nav-item-icon{color:var(--green)}.nav-item-text{font-size:.9rem;font-weight:500;white-space:nowrap;opacity:0;transform:translate(-10px);transition:all .3s var(--ease-out-expo)}.nav:hover .nav-item-text,.nav.pinned .nav-item-text{opacity:1;transform:translate(0)}.nav-footer{padding-top:16px;border-top:1px solid var(--border)}.nav-email{font-size:.75rem;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.nav-user-info{cursor:default;opacity:.8}.nav-user-info:hover{background:transparent}.nav-logout:hover{color:var(--danger, #ef4444)}.main{margin-left:var(--nav-width);min-height:100vh;transition:margin-left .4s var(--ease-out-expo)}.main.nav-pinned{margin-left:var(--nav-expanded)}.content{max-width:var(--content-max);margin:0 auto;padding:32px 40px}.page-header{margin-bottom:32px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.page-actions{display:flex;gap:8px;flex-shrink:0;padding-top:6px}.action-btn.small{font-size:.8rem;padding:6px 12px;border-radius:8px}.action-btn.muted{background:var(--bg-elevated);color:var(--cream-dim)}.action-btn.muted:hover{background:var(--bg-hover);color:var(--cream)}.page-title{font-family:var(--font-display);font-size:2.2rem;font-weight:600;margin-bottom:8px;letter-spacing:-.02em}.page-subtitle{color:var(--cream-dim);font-size:1rem}.tab-content{display:none;animation:fadeInUp .5s var(--ease-out-expo)}.tab-content.active{display:block}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:24px;margin-bottom:20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-title{font-family:var(--font-display);font-size:1.15rem;font-weight:500;display:flex;align-items:center;gap:10px}.card-badge{background:var(--green);color:var(--bg-deep);font-family:var(--font-body);font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.card-badge.red{background:var(--red);color:#fff}.plan-today-card{padding:10px 0 4px;border-top:1px solid var(--border);cursor:pointer;transition:opacity .15s}.plan-today-card:hover{opacity:.8}.plan-today-label{font-size:.7rem;color:var(--green);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.plan-today-name{font-weight:600;margin-top:4px;font-size:1rem}.plan-today-meta{font-size:.8rem;color:var(--cream-dim);margin-top:2px}.plan-week-mini{display:flex;flex-direction:column;gap:1px;margin-top:12px;border-top:1px solid var(--border);padding-top:8px}.plan-week-mini-day{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:6px;cursor:pointer;transition:background .15s}.plan-week-mini-day:hover,.plan-week-mini-day.current{background:var(--surface-hover)}.mini-day-name{font-size:.7rem;font-weight:600;color:var(--cream-dim);width:28px;flex-shrink:0;text-transform:capitalize}.plan-week-mini-day.current .mini-day-name{color:var(--green)}.mini-day-recipe{font-size:.8rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-day-cost{font-size:.75rem;color:var(--cream-dim);flex-shrink:0}.tip-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;font-size:.88rem;color:var(--cream-dim);animation:fadeInUp .4s var(--ease-out-expo)}.tip-emoji{font-size:1.1rem;flex-shrink:0}.tip-text{flex:1}.tip-close{background:none;border:none;color:var(--cream-dim);font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}.tip-close:hover{color:var(--cream)}.collapsible{border:1px solid var(--border);border-radius:16px;margin-bottom:12px;overflow:hidden}.collapsible-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-elevated);cursor:pointer;transition:background .2s}.collapsible-header:hover{background:var(--bg-hover)}.collapsible-title{display:flex;align-items:center;gap:12px;font-weight:500}.collapsible-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.collapsible-arrow{transition:transform .3s var(--ease-out-expo)}.collapsible.open .collapsible-arrow{transform:rotate(180deg)}.collapsible-content{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-out-expo)}.collapsible.open .collapsible-content{max-height:1000px}.collapsible-inner{padding:20px;border-top:1px solid var(--border)}.dashboard-hero{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:16px;padding:24px;margin-bottom:20px;cursor:pointer;transition:all .25s var(--ease-out-expo)}.dashboard-hero:hover{border-color:var(--border-light);transform:translateY(-2px)}.dashboard-hero-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--green);margin-bottom:8px}.dashboard-hero-recipe{font-family:var(--font-display);font-size:1.5rem;font-weight:600;line-height:1.3}.dashboard-hero-meta{display:flex;gap:16px;margin-top:8px;font-size:.88rem;color:var(--cream-dim)}.dashboard-hero-hint{margin-top:12px;font-size:.75rem;color:var(--cream-dim);opacity:.6}.dashboard-cta-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:40px 24px;text-align:center;margin-bottom:24px}.dashboard-cta-icon{font-size:3rem;margin-bottom:12px}.dashboard-cta-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin-bottom:8px}.dashboard-cta-desc{color:var(--cream-dim);font-size:.92rem;line-height:1.5;max-width:380px;margin:0 auto 20px}.dashboard-quick-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px;text-align:center;transition:all .3s var(--ease-out-expo)}.stat-card:hover{transform:translateY(-4px);border-color:var(--border-light)}.stat-value{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--green);margin-bottom:4px}.stat-label{font-size:.8rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px}.sales-list{display:flex;flex-direction:column;gap:10px}.sale-item{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-elevated);border-radius:14px;transition:all .25s var(--ease-out-expo)}.sale-item:hover{background:var(--bg-hover);transform:translate(4px)}.sale-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.sale-info{min-width:0}.sale-name{font-weight:500;font-size:.85rem;margin-bottom:2px;line-height:1.3}.sale-store{font-size:.75rem;color:var(--cream-dim)}.sale-prices{text-align:right;white-space:nowrap}.sale-price{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--green)}.sale-original{font-size:.7rem;color:var(--cream-dim);text-decoration:line-through;margin-left:4px}.sale-discount{display:inline-block;background:var(--red);color:#fff;font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:6px;margin-left:4px;vertical-align:middle}.optimizer-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.preset-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;background:var(--bg-elevated);border:2px solid var(--border);border-radius:16px;cursor:pointer;transition:all .25s var(--ease-out-expo)}.preset-btn:hover{border-color:var(--border-light);transform:translateY(-2px)}.preset-btn.active{border-color:var(--green);background:var(--green-glow)}.preset-icon{font-size:1.8rem}.preset-name{font-weight:600;font-size:.95rem}.preset-desc{font-size:.75rem;color:var(--cream-dim)}.family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.family-card{background:var(--bg-elevated);border-radius:14px;padding:16px;text-align:center}.family-icon{font-size:2rem;margin-bottom:8px}.family-label{font-size:.75rem;color:var(--cream-dim);margin-bottom:10px}.counter{display:flex;align-items:center;justify-content:center;gap:12px}.counter-btn{width:32px;height:32px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--cream);font-size:1.2rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.counter-btn:hover{background:var(--green);border-color:var(--green);color:var(--bg-deep)}.counter-value{font-family:var(--font-display);font-size:1.4rem;font-weight:600;min-width:24px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.8rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.form-input,.form-select{width:100%;padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;color:var(--cream);font-family:var(--font-body);font-size:.95rem;transition:all .2s}.form-input:focus,.form-select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow)}.form-input::placeholder{color:var(--cream-dim)}.checkbox-row{display:flex;align-items:center;gap:10px;padding:12px 0}.checkbox-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);cursor:pointer}.checkbox-row label{cursor:pointer}.form-hint{font-size:.75rem;color:var(--cream-dim);margin-top:6px}.cuisine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.anchor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.mealtype-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.cuisine-chip,.anchor-chip,.mealtype-chip{padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-family:var(--font-body);font-size:.85rem;cursor:pointer;transition:all .2s var(--ease-out-expo);display:inline-flex;align-items:center;gap:6px;justify-content:center}.cuisine-chip.active,.anchor-chip.active,.mealtype-chip.active{background:var(--green);color:var(--bg-deep);border-color:var(--green);box-shadow:0 6px 18px #22c55e40}.inline-error{margin-top:12px;padding:12px 14px;background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:#fecaca;border-radius:12px;font-size:.85rem;display:none}.btn-primary{width:100%;padding:18px 32px;background:linear-gradient(135deg,var(--green) 0%,var(--green-dim) 100%);border:none;border-radius:14px;color:var(--bg-deep);font-family:var(--font-body);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s var(--ease-out-expo);display:flex;align-items:center;justify-content:center;gap:10px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--green-glow)}.btn-primary:active{transform:translateY(0) scale(.97);box-shadow:0 2px 8px var(--green-glow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.portion-summary{background:var(--bg-elevated);border-radius:12px;padding:14px;text-align:center;margin-top:16px}.portion-summary strong{color:var(--green);font-family:var(--font-display)}.weekplan-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}.settings-sidebar{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;overflow:hidden;position:sticky;top:20px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,var(--green-glow) 0%,transparent 100%);border-bottom:1px solid var(--border);cursor:pointer}.sidebar-header h3{font-family:var(--font-display);font-size:1rem;font-weight:500;display:flex;align-items:center;gap:8px}.sidebar-toggle{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s var(--ease-out-expo)}.sidebar-toggle:hover{background:var(--green-glow);border-color:var(--green)}.settings-sidebar.collapsed .sidebar-toggle{transform:rotate(180deg)}.sidebar-content{padding:20px;max-height:calc(100vh - 120px);overflow-y:auto;transition:all .4s var(--ease-out-expo)}.settings-sidebar.collapsed .sidebar-content{max-height:0;padding:0 20px}.sidebar-section{margin-bottom:20px}.sidebar-section:last-child{margin-bottom:0}.sidebar-section-title{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.mini-preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-preset-btn{padding:10px 8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;text-align:center}.mini-preset-btn:hover{border-color:var(--border-light)}.mini-preset-btn.active{border-color:var(--green);background:var(--green-glow)}.mini-preset-btn .icon{font-size:1.2rem;margin-bottom:4px}.mini-preset-btn .label{font-size:.75rem;font-weight:500}.mini-family-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.mini-family-row:last-child{border-bottom:none}.mini-family-label{display:flex;align-items:center;gap:8px;font-size:.85rem}.mini-counter{display:flex;align-items:center;gap:8px}.mini-counter-btn{width:26px;height:26px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--cream);font-size:1rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.mini-counter-btn:hover{background:var(--green);border-color:var(--green);color:var(--bg-deep)}.mini-counter-value{font-family:var(--font-display);font-size:1.1rem;font-weight:600;min-width:20px;text-align:center}.sidebar-store-chips{display:flex;flex-wrap:wrap;gap:6px}.sidebar-store-chip{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;background:var(--bg-elevated);border:2px solid var(--border);cursor:pointer;transition:all .2s ease;font-family:var(--font-body);color:var(--cream);font-size:.75rem}.sidebar-store-chip:hover{border-color:var(--green-dim)}.sidebar-store-chip.selected{border-color:var(--green);background:var(--green-glow)}.sidebar-store-chip .chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sidebar-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--green) 0%,var(--green-dim) 100%);border:none;border-radius:12px;color:var(--bg-deep);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .25s var(--ease-out-expo);display:flex;align-items:center;justify-content:center;gap:8px}.sidebar-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--green-glow)}.sidebar-btn:active{transform:translateY(0) scale(.97);box-shadow:0 2px 8px var(--green-glow)}.sidebar-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.sidebar-confirm{text-align:center}.sidebar-confirm-text{display:block;font-size:.8rem;color:var(--cream-dim);margin-bottom:8px}.sidebar-confirm-actions{display:flex;gap:8px}.sidebar-btn.confirm{flex:1;padding:10px;font-size:.8rem}.sidebar-btn.cancel{flex:1;padding:10px;font-size:.8rem;background:var(--bg-elevated);color:var(--cream-dim)}.sidebar-btn.cancel:hover{background:var(--bg-card);box-shadow:none}.sidebar-advanced-toggle{display:flex;justify-content:space-between;align-items:center;padding:8px 0;cursor:pointer;color:var(--cream-dim);font-size:.8rem;transition:color .2s}.sidebar-advanced-toggle:hover{color:var(--cream)}.sidebar-advanced{display:flex;flex-direction:column;gap:12px;padding-top:8px}.sidebar-field-label{display:block;font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.sidebar-select,.sidebar-input{width:100%;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;color:var(--cream);font-family:var(--font-body);font-size:.8rem}.sidebar-select:focus,.sidebar-input:focus{outline:none;border-color:var(--green-dim)}.sidebar-chip-grid{display:flex;flex-wrap:wrap;gap:4px}.sidebar-chip{padding:4px 8px;border-radius:14px;background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;font-family:var(--font-body);color:var(--cream-dim);font-size:.7rem;transition:all .2s}.sidebar-chip:hover{border-color:var(--green-dim);color:var(--cream)}.sidebar-chip.active{border-color:var(--green);background:var(--green-glow);color:var(--cream)}.weekplan-main{flex:1;min-width:0}.results-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px}.results-stats{display:flex;gap:24px}.result-stat{text-align:center}.result-stat-value{font-family:var(--font-display);font-size:1.4rem;font-weight:600}.result-stat-value.cost{color:var(--cream)}.result-stat-value.savings{color:var(--green)}.result-stat-value.waste{color:var(--orange)}.result-stat-value.portions{color:var(--blue)}.result-stat-label{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px}.results-nutrition{display:flex;gap:20px;width:100%;padding-top:10px;border-top:1px solid var(--border)}.results-nutrition .nutrition-item{display:flex;flex-direction:column;align-items:center;gap:2px}.results-nutrition .nutrition-value{font-size:.95rem;font-weight:600;color:var(--cream)}.results-nutrition .nutrition-label{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px}.results-actions{display:flex;gap:8px;align-items:center}.accepted-plan-actions{display:flex;gap:8px;margin-bottom:16px}.plan-switcher{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.plan-switcher-tab{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--card-bg);color:var(--cream-dim);font-size:.85rem;cursor:pointer;transition:all .15s}.plan-switcher-tab:hover{border-color:var(--accent);color:var(--cream)}.plan-switcher-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.plan-switcher-label{font-weight:500}.plan-switcher-cost{font-size:.78rem;opacity:.8}.plan-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;vertical-align:middle;margin-left:10px}.plan-status-pill.draft{background:#fbbf241f;color:#fbbf24;border:1px solid rgba(251,191,36,.25)}.plan-status-pill.active{background:#4caf501f;color:var(--green);border:1px solid rgba(76,175,80,.25)}.plan-status-pill .pill-dot{width:6px;height:6px;border-radius:50%;animation:pill-pulse 2s ease-in-out infinite}.plan-status-pill.draft .pill-dot{background:#fbbf24}.plan-status-pill.active .pill-dot{background:var(--green)}@keyframes pill-pulse{0%,to{opacity:1}50%{opacity:.4}}.nav-status-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%}.nav-status-dot.has-active{background:var(--green);box-shadow:0 0 4px var(--green)}.nav-status-dot.has-draft{background:#fbbf24;box-shadow:0 0 4px #fbbf24}.active-plan-bar{display:flex;align-items:center;gap:12px;background:#4caf500f;border:1px solid rgba(76,175,80,.2);border-radius:12px;padding:12px 16px;margin-bottom:16px}.active-plan-bar-icon{font-size:1.4rem;flex-shrink:0}.active-plan-bar-text{flex:1;min-width:0}.active-plan-bar-title{font-weight:600;font-size:.9rem;color:var(--cream)}.active-plan-bar-meta{font-size:.75rem;color:var(--cream-dim);margin-top:2px}.draft-changes-summary{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.draft-change-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-size:.7rem;background:#fbbf241a;color:#fbbf24;border:1px solid rgba(251,191,36,.2)}.day-card.day-changed{border-color:#fbbf2459}.day-changed-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#fbbf24;box-shadow:0 0 4px #fbbf2480;flex-shrink:0}.draft-banner.identical{border-style:solid;border-color:#4caf5040;background:#4caf500a}.draft-banner.identical .draft-banner-hint{color:var(--cream-dim)}.draft-banner-btn:disabled{opacity:.4;cursor:default}.draft-active-link{display:inline-block;margin-top:4px;font-size:.75rem;color:var(--green);text-decoration:none;opacity:.8;transition:opacity .15s}.draft-active-link:hover{opacity:1;text-decoration:underline}.plan-nav{display:flex;align-items:center;gap:6px;padding-left:8px;border-left:1px solid var(--border);margin-left:8px}.plan-index{font-size:.75rem;color:var(--cream-dim);min-width:72px;text-align:center}.plan-dates{font-size:.65rem;color:var(--cream-dim);opacity:.7}.action-btn{padding:10px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;color:var(--cream);font-family:var(--font-body);font-size:.8rem;cursor:pointer;transition:all .2s var(--ease-out-expo);display:flex;align-items:center;gap:6px}.action-btn:hover{background:var(--bg-hover);border-color:var(--border-light);transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.action-btn:active{transform:translateY(0) scale(.97);box-shadow:none}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:24px;position:relative}.day-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:14px;min-height:160px;transition:all .3s var(--ease-out-expo);position:relative}@keyframes weekGridOut{0%{opacity:1;transform:scale(1)}to{opacity:.35;transform:scale(.98)}}@keyframes weekGridPulse{0%,to{opacity:.3}50%{opacity:.6}}@keyframes dayCardIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.week-grid.is-leaving{animation:weekGridOut .25s var(--ease-out-expo) forwards;pointer-events:none}.week-grid.is-loading{opacity:.35;pointer-events:none}.week-grid.is-loading:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,var(--green-glow) 50%,transparent 75%);background-size:200% 100%;animation:shimmerSlide 1.2s ease infinite;border-radius:16px;pointer-events:none}@keyframes shimmerSlide{0%{background-position:200% 0}to{background-position:-200% 0}}.week-grid.is-entering .day-card{animation:dayCardIn .35s var(--ease-out-expo) both}.week-grid.is-entering .day-card:nth-child(1){animation-delay:0s}.week-grid.is-entering .day-card:nth-child(2){animation-delay:.05s}.week-grid.is-entering .day-card:nth-child(3){animation-delay:.1s}.week-grid.is-entering .day-card:nth-child(4){animation-delay:.15s}.week-grid.is-entering .day-card:nth-child(5){animation-delay:.2s}.week-grid.is-entering .day-card:nth-child(6){animation-delay:.25s}.week-grid.is-entering .day-card:nth-child(7){animation-delay:.3s}.day-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px;flex-wrap:wrap}.day-actions-left{display:flex;align-items:center;gap:8px}.day-action-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);border-radius:10px;padding:4px 10px;font-size:.65rem;cursor:pointer;transition:all .2s ease}.day-action-btn:hover{border-color:var(--green);color:var(--green)}.day-lock{font-size:.65rem;color:var(--cream-dim);cursor:pointer;padding:2px 6px;border-radius:10px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.day-lock:hover{color:var(--cream);background:#ffffff0f}.day-lock.is-locked{color:var(--green);background:var(--green-glow)}.day-reject{font-size:.65rem;color:var(--cream-dim);cursor:pointer;padding:2px 6px;border-radius:10px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.day-reject:hover{color:#ff6b6b;background:#ff6b6b1a}.day-menu-wrapper{position:relative;margin-left:auto}.day-menu-trigger{background:none;border:none;color:var(--cream-dim);font-size:1.1rem;cursor:pointer;padding:0 4px;border-radius:6px;transition:all .15s ease;line-height:1;letter-spacing:1px}.day-menu-trigger:hover,.day-menu-trigger.active{color:var(--cream);background:var(--bg-hover)}.day-menu-dropdown{position:fixed;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:12px;padding:6px;min-width:180px;z-index:500;box-shadow:0 8px 24px #0006;animation:menuFadeIn .15s var(--ease-out-expo)}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.day-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:none;border:none;border-radius:8px;color:var(--cream);font-size:.8rem;font-family:var(--font-body);cursor:pointer;transition:background .15s ease;text-align:left}.day-menu-item:hover{background:var(--bg-hover)}.day-menu-item.danger{color:#ff6b6b}.day-menu-item.danger:hover{background:#ff6b6b1a}.day-menu-divider{height:1px;background:var(--border);margin:4px 6px}.day-menu-guest-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:8px}.day-menu-item-label{font-size:.8rem;color:var(--cream)}.day-menu-guest-controls{display:flex;align-items:center;gap:8px}.day-menu-guest-btn{width:24px;height:24px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--cream);cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.day-menu-guest-btn:hover{border-color:var(--green);color:var(--green)}.day-menu-guest-count{font-size:.85rem;min-width:16px;text-align:center;font-weight:600}.day-locked-badge{font-size:.65rem;margin-left:2px}.day-guest-badge{font-size:.6rem;color:var(--green);background:var(--green-glow);padding:1px 5px;border-radius:8px;margin-left:2px}.rejected-section{border-top:1px solid var(--border);padding-top:10px;margin-top:6px}.rejected-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.72rem;color:var(--cream-dim);-webkit-user-select:none;user-select:none;padding:4px 0}.rejected-header:hover{color:var(--cream)}.rejected-count{background:#ff6b6b26;color:#ff6b6b;border-radius:8px;padding:1px 7px;font-size:.65rem}.rejected-list{display:none;flex-direction:column;gap:4px;margin-top:6px}.rejected-list.open{display:flex}.rejected-item{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:var(--cream-dim);background:var(--bg-deep);padding:5px 8px;border-radius:8px}.rejected-item-name{text-decoration:line-through;opacity:.7}.rejected-undo{cursor:pointer;font-size:.65rem;color:var(--green-dim);padding:2px 6px;border-radius:6px;transition:all .15s ease}.rejected-undo:hover{color:var(--green);background:var(--green-glow)}.taste-stats{display:flex;gap:12px;margin-bottom:16px}.taste-stat{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:12px 16px;text-align:center}.taste-stat-value{font-size:1.4rem;font-weight:700;color:var(--cream)}.taste-stat-value.liked{color:var(--green)}.taste-stat-value.disliked{color:#ff6b6b}.taste-stat-label{font-size:.7rem;color:var(--cream-dim);margin-top:2px}.taste-filter-bar{display:flex;gap:6px;margin-bottom:16px}.taste-filter{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:6px 14px;border-radius:20px;font-size:.75rem;cursor:pointer;transition:all .15s ease}.taste-filter:hover{border-color:var(--green-dim);color:var(--cream)}.taste-filter.active{border-color:var(--green);background:var(--green-glow);color:var(--green)}.taste-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.taste-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease}.taste-card.rated-high{border-color:var(--green-dim)}.taste-card.rated-low{border-color:#ff6b6b4d}.taste-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.taste-card-name{font-size:.85rem;font-weight:600;color:var(--cream);flex:1}.taste-card-pop{display:flex;align-items:center;gap:4px;font-size:.65rem;color:var(--cream-dim);white-space:nowrap}.taste-card-pop-bar{width:40px;height:4px;background:var(--bg-deep);border-radius:2px;overflow:hidden}.taste-card-pop-fill{height:100%;border-radius:2px;background:var(--green-dim)}.taste-card-pol{font-size:.6rem;padding:1px 6px;border-radius:6px}.taste-card-pol.low{background:#4caf501a;color:#66bb6a}.taste-card-pol.med{background:#ffc1071a;color:#ffc107}.taste-card-pol.high{background:#ff6b6b1a;color:#ff6b6b}.taste-card-meta{display:flex;gap:6px;font-size:.68rem;color:var(--cream-dim);flex-wrap:wrap;align-items:center}.taste-card-tag{background:var(--bg-deep);padding:2px 8px;border-radius:8px}.taste-card-rating{display:flex;align-items:center;gap:2px;margin-top:2px}.taste-star{font-size:1.1rem;cursor:pointer;transition:transform .1s ease;-webkit-user-select:none;user-select:none;line-height:1}.taste-star:hover{transform:scale(1.25)}.taste-star.filled{color:#f5b731}.taste-star.empty{color:var(--border)}.taste-rating-label{font-size:.65rem;color:var(--cream-dim);margin-left:6px}.taste-prefs-section{margin-bottom:24px}.taste-prefs-title{font-size:.8rem;font-weight:600;color:var(--cream);margin-bottom:10px;display:flex;align-items:center;gap:6px}.taste-prefs-subtitle{font-size:.68rem;color:var(--cream-dim);margin-bottom:8px}.taste-pref-chips{display:flex;flex-wrap:wrap;gap:6px}.taste-pref-chip{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:6px 14px;border-radius:20px;font-size:.75rem;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.taste-pref-chip:hover{border-color:var(--green-dim);color:var(--cream)}.taste-pref-chip.liked{border-color:var(--green);background:var(--green-glow);color:var(--green)}.taste-pref-chip.disliked{border-color:#ff6b6b66;background:#ff6b6b14;color:#ff8a8a}.taste-pref-chip .chip-icon{margin-right:2px}.taste-pref-indicator{display:inline-block;margin-left:4px;font-size:.65rem;opacity:.8}.taste-divider{height:1px;background:var(--border);margin:20px 0}.taste-mealtype-bar{display:flex;gap:4px;margin-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.taste-mealtype-bar::-webkit-scrollbar{display:none}.taste-mealtype-tab{display:flex;align-items:center;gap:5px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:6px 12px;border-radius:8px;font-size:.72rem;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.taste-mealtype-tab:hover{border-color:var(--green-dim);color:var(--cream)}.taste-mealtype-tab.active{border-color:var(--green);background:var(--green-glow);color:var(--green)}.taste-mealtype-count{font-size:.6rem;opacity:.6}.taste-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.taste-sort-bar{display:flex;gap:4px}.taste-sort-btn{background:transparent;border:1px solid transparent;color:var(--cream-dim);padding:4px 8px;border-radius:6px;font-size:.65rem;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:3px}.taste-sort-btn:hover{color:var(--cream)}.taste-sort-btn.active{color:var(--green);border-color:var(--green-dim);background:var(--green-glow)}.taste-sort-arrow{font-size:.55rem}.taste-card-mealtype{font-size:.6rem;font-weight:600;padding:1px 7px;border-radius:6px;letter-spacing:.02em}.taste-card-mealtype.mt-breakfast{background:#ffb74d26;color:#ffb74d}.taste-card-mealtype.mt-lunch{background:#81c78426;color:#81c784}.taste-card-mealtype.mt-dinner{background:#90a4ff26;color:#90a4ff}.taste-card-mealtype.mt-snack{background:#ff8a6526;color:#ff8a65}.taste-card-mealtype.mt-dessert{background:#ce93d826;color:#ce93d8}.taste-count{font-size:.7rem;color:var(--cream-dim);font-weight:400}.taste-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 0;color:var(--cream-dim);font-size:.8rem}.taste-loading-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s cubic-bezier(.4,0,.2,1) infinite}.taste-load-more{text-align:center;padding:16px 0 4px}.taste-load-more-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:8px 20px;border-radius:8px;font-size:.75rem;cursor:pointer;transition:all .15s ease}.taste-load-more-btn:hover{border-color:var(--green-dim);color:var(--cream)}.guest-controls{display:inline-flex;align-items:center;gap:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:2px 6px;font-size:.65rem;color:var(--cream)}.guest-btn{width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--cream);font-size:.7rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.guest-btn:hover{border-color:var(--green);color:var(--green)}.guest-count{min-width:24px;text-align:center}.day-card:hover{border-color:var(--border-light)}.day-card.drag-over{border-color:var(--green);background:var(--green-glow);transform:scale(1.02)}.day-card.shopping-day:after{content:"🛒";position:absolute;top:-8px;right:-8px;font-size:1.1rem;background:var(--bg-card);border-radius:50%;padding:2px}.day-card.skipped{opacity:.45;border-style:dashed}.day-card.skipped .skipped-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80px;pointer-events:none}.day-card.skipped .skipped-content .meal-name{color:var(--cream-dim);font-style:italic;font-size:.85rem}.day-skip-btn{width:18px;height:18px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--cream-dim);font-size:.6rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;flex-shrink:0}.day-skip-btn:hover{border-color:var(--cream);color:var(--cream)}.day-card.skipped .day-skip-btn{border-color:var(--green);color:var(--green)}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border);gap:4px}.day-name{font-family:var(--font-display);font-weight:600;font-size:.9rem;flex:1}.day-date{font-size:.7rem;color:var(--cream-dim)}.meal-item{position:relative;background:var(--bg-elevated);border:1px solid transparent;border-radius:10px;padding:12px;cursor:grab;transition:all .2s var(--ease-out-expo);-webkit-user-select:none;user-select:none}.meal-item:hover{background:var(--bg-hover);border-color:var(--border-light)}.meal-item:active,.meal-item.dragging{cursor:grabbing;opacity:.7;transform:rotate(2deg) scale(1.02);box-shadow:0 8px 24px #0000004d;z-index:100}.drag-handle{position:absolute;top:8px;right:8px;font-size:.75rem;color:var(--cream-dim);opacity:0;transition:opacity .2s ease;cursor:grab;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.meal-item:hover .drag-handle{opacity:.6}.meal-item:active .drag-handle,.meal-item.dragging .drag-handle{opacity:1;color:var(--green)}.day-card.drag-over{border-color:var(--green)!important;background:var(--green-glow)}.meal-emoji{font-size:1.2rem;margin-bottom:6px;display:block}.meal-name{font-size:.8rem;font-weight:500;margin-bottom:4px;line-height:1.3}.meal-cost{font-size:.7rem;color:var(--cream-dim)}.meal-sale-badge{display:inline-block;background:#22c55e26;color:#86efac;font-size:.55rem;font-weight:600;padding:2px 5px;border-radius:4px;margin-top:5px;border:1px solid rgba(34,197,94,.35)}.meal-savings{font-size:.6rem;color:var(--cream-dim);margin-top:4px}.meal-nutrition{font-size:.55rem;color:var(--cream-dim);opacity:.7;margin-top:2px;letter-spacing:.02em}.macro-bar{margin-top:4px}.macro-bar-track{display:flex;height:4px;border-radius:2px;overflow:hidden;background:var(--bg-elevated)}.macro-bar-segment{height:100%;min-width:2px}.macro-bar-segment.protein{background:#3b82f6}.macro-bar-segment.carbs{background:#f59e0b}.macro-bar-segment.fat{background:#ef4444}.deal-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:.65rem;font-weight:600;background:#10b9811f;color:#34d399;border:1px solid rgba(16,185,129,.35)}.deal-badge.strong{background:#f973161f;color:#fdba74;border:1px solid rgba(249,115,22,.35)}.pantry-use-day{font-size:.7rem;color:var(--green);white-space:nowrap}.pantry-use-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:.65rem;font-weight:600;background:#10b9811a;color:#6ee7b7;border:1px solid rgba(16,185,129,.25)}.pantry-source-tag{font-size:.6rem;color:#93c5fd;font-weight:500;margin-left:4px}.pantry-thaw-day{font-size:.7rem;color:#93c5fd;white-space:nowrap}.pantry-thaw-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:.65rem;font-weight:600;background:#60a5fa1a;color:#93c5fd;border:1px solid rgba(96,165,250,.25);cursor:help}.shopping-product-meta{font-size:.7rem;color:var(--cream-dim);margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.shopping-recipe-tag{font-size:.6rem;color:var(--cream-dim);opacity:.7;font-style:italic}.shopping-product-badges{margin-top:3px}.pantry-value{font-size:.7rem;color:var(--cream-dim);white-space:nowrap}.shopping-item.pantry-item{border-left:3px solid var(--green-dim)}.shopping-item.pantry-item.freezer-item{border-left:3px solid #60a5fa}.freezer-source-tag{display:inline-block;font-size:.65rem;font-weight:600;color:#93c5fd;background:#60a5fa1f;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}.shopping-item.staple-item{border-left:3px solid rgba(251,191,36,.4)}.pantry-quick-add{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:var(--green);padding:4px 10px;border-radius:6px;font-size:.65rem;cursor:pointer;white-space:nowrap;transition:all .15s}.pantry-quick-add:hover{background:#22c55e4d}.shopping-item.checked .pantry-quick-add{opacity:.4}.shelf-life-warning{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:.65rem;font-weight:600;background:#ef44441a;color:#fca5a5;border:1px solid rgba(239,68,68,.3);cursor:help}.shopping-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;position:relative;z-index:1;margin-top:0}.shopping-preview+.shopping-preview{margin-top:10px}.floating-tooltip{position:fixed;background:#1a1f2e;border:1px solid var(--green-dim);border-radius:8px;padding:8px 12px;font-size:.75rem;color:var(--cream);max-width:300px;white-space:normal;z-index:99999;pointer-events:none;box-shadow:0 6px 20px #00000080;opacity:0;transition:opacity .12s ease}.floating-tooltip.visible{opacity:1}.planb-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin:16px 0}.planb-header{font-family:var(--font-display);font-size:.95rem;margin-bottom:10px;display:flex;align-items:center;gap:8px}.planb-list{display:grid;gap:8px}.planb-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:8px 12px;font-size:.85rem}.planb-item span{color:var(--cream-dim);font-size:.75rem}.shopping-preview-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;border-bottom:1px solid var(--border)}.shopping-preview.collapsed .shopping-preview-header{border-bottom-color:transparent}.shopping-preview-header h3{font-family:var(--font-display);font-size:1rem;font-weight:600;display:flex;align-items:center;gap:10px;color:var(--cream)}.shopping-count{background:var(--green);color:var(--bg-deep);font-family:var(--font-body);font-size:.7rem;font-weight:600;padding:3px 8px;border-radius:12px}.shopping-preview-toggle{font-size:.9rem;transition:transform .3s var(--ease-out-expo)}.shopping-preview.collapsed .shopping-preview-toggle{transform:rotate(-90deg)}.shopping-preview-content{max-height:400px;overflow:auto;transition:max-height .4s var(--ease-out-expo)}.shopping-preview.collapsed .shopping-preview-content{max-height:0;overflow:hidden}.shopping-preview-list{padding:4px 12px 12px;display:grid;grid-template-columns:1fr;gap:0}.shopping-preview-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 8px;font-size:.88rem;border-bottom:1px solid rgba(42,42,46,.6)}.shopping-preview-item:last-child{border-bottom:none}.shopping-preview-item.on-sale .product-name{color:var(--green)}.shopping-preview-item .product-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.shopping-preview-item .product-qty{color:#f5f0e880;font-size:.78rem;font-variant-numeric:tabular-nums;text-align:right}.shopping-preview-item .product-price{font-family:var(--font-display);font-weight:600;color:var(--green);font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.shopping-preview-see-all{display:block;text-align:center;padding:10px;color:var(--green);font-size:.85rem;text-decoration:none;border-radius:10px;transition:background .15s}.shopping-preview-see-all:hover{background:var(--bg-elevated)}.shopping-preview-item{position:relative}.results-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.result-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px;text-align:center}.result-value{font-family:var(--font-display);font-size:1.6rem;font-weight:600;margin-bottom:4px}.result-value.cost{color:var(--cream)}.result-value.savings{color:var(--green)}.result-value.waste{color:var(--orange)}.result-label{font-size:.75rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px}.empty-day{color:var(--cream-dim);font-size:.85rem;text-align:center;padding:20px 0}@media(max-width:1100px){.weekplan-layout{grid-template-columns:1fr}.settings-sidebar{position:relative;top:0}.week-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:700px){.week-grid{grid-template-columns:repeat(2,1fr)}.results-header{flex-direction:column;gap:16px}.results-stats{flex-wrap:wrap;justify-content:center}.draft-banner{flex-direction:column;align-items:stretch;gap:10px}.draft-banner-actions{flex-direction:row-reverse;justify-content:flex-end}.draft-banner-btn{text-align:center;flex:1}.active-plan-bar{flex-wrap:wrap;gap:8px}.active-plan-bar .action-btn{width:100%;text-align:center}}.shopping-summary{display:flex;gap:16px;margin-bottom:20px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.shopping-summary-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.shopping-summary-value{font-size:1.3rem;font-weight:700;font-family:var(--font-display);color:var(--green)}.shopping-summary-value.savings{color:var(--orange)}.shopping-summary-label{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.05em}.shopping-filters{display:flex;gap:10px;margin-bottom:20px}.filter-btn{padding:10px 18px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;color:var(--cream);font-family:var(--font-body);font-size:.85rem;cursor:pointer;transition:all .2s var(--ease-out-expo)}.filter-btn:hover,.filter-btn.active{background:var(--green-glow);border-color:var(--green)}.filter-btn:active{transform:scale(.97)}.shopping-category{margin:16px 0 6px;padding:6px 10px;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase;color:var(--cream-dim);border-left:3px solid var(--green);background:#22c55e14;border-radius:8px}.shopping-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-elevated);border-radius:12px;margin-bottom:8px;transition:all .2s}.shopping-item:hover{background:var(--bg-hover)}.shopping-item.on-sale{border-left:3px solid var(--green)}.shopping-item{position:relative}.shopping-check{width:24px;height:24px;border-radius:8px;border:2px solid var(--border);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.shopping-check:hover{border-color:var(--green)}.shopping-check.checked{background:var(--green);border-color:var(--green);color:var(--bg-deep)}.shopping-item.checked{opacity:.45}.shopping-item.checked .shopping-product{text-decoration:line-through}.leftover-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px}.leftover-card:last-child{margin-bottom:0}.leftover-card-name{font-weight:600;font-size:.9rem;font-family:var(--font-display);color:var(--cream);margin-bottom:6px}.leftover-card-meta{font-size:.78rem;color:#f5f0e88c;margin-bottom:8px}.leftover-card-ingredients{display:flex;flex-wrap:wrap;gap:4px}.leftover-ingr{font-size:.68rem;padding:2px 8px;border-radius:8px;background:var(--bg-deep);color:var(--cream-dim)}.leftover-ingr.from-leftovers{background:#4caf501f;color:var(--green);border:1px solid rgba(76,175,80,.2)}.leftover-ingr.need-to-buy{background:#ffc10714;color:#ffc107;border:1px solid rgba(255,193,7,.15)}.leftover-add-btn{margin-top:10px;font-size:.75rem;padding:5px 12px}.leftover-none{font-size:.78rem;color:var(--cream-dim);padding:8px 0}.weekly-history{margin-top:16px;background:var(--bg-card);border-radius:14px;overflow:hidden}.weekly-history-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;font-size:.85rem;color:var(--cream-dim);transition:color .2s}.weekly-history-header:hover{color:var(--cream)}.weekly-history-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;background:var(--bg-elevated);font-size:.7rem;margin-left:6px;padding:0 6px}.weekly-history-list{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}.weekly-history-back{background:none;border:none;color:var(--green);font-size:.8rem;cursor:pointer;padding:8px 0;text-align:left}.weekly-history-item{background:var(--bg-elevated);border-radius:10px;padding:10px 12px;cursor:pointer;transition:all .2s}.weekly-history-item:hover{background:var(--bg-deep)}.weekly-history-item.active{border-left:3px solid var(--green)}.weekly-history-dates{font-family:var(--font-display);font-size:.85rem;font-weight:600}.weekly-history-meta{font-size:.75rem;color:var(--cream-dim);margin-top:2px}.weekly-history-recipes{font-size:.7rem;color:var(--cream-dim);opacity:.7;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-hero{background:var(--bg-card);border-radius:14px;padding:20px;margin-bottom:16px;border:1px solid rgba(255,255,255,.06)}.hub-hero-stats{display:flex;align-items:center;gap:6px;font-size:1.05rem;font-weight:600;color:var(--cream);flex-wrap:wrap}.hub-hero-sep{color:var(--cream-dim);opacity:.5}.hub-hero-activated{font-size:.78rem;color:var(--cream-dim);margin-top:6px}.hub-hero-links{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:.78rem}.hub-hero-link{background:none;border:none;padding:0;color:var(--cream-dim);text-decoration:none;cursor:pointer;font-size:inherit;font-family:inherit}.hub-hero-link:hover{color:var(--cream);text-decoration:underline}.hub-today{margin-bottom:16px;cursor:pointer}.hub-today-label{font-size:.8rem;color:var(--cream-dim);margin-bottom:8px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.hub-today-card{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:2px solid var(--blue);border-radius:14px;padding:16px;transition:transform .15s,box-shadow .15s}.hub-today-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f626}.hub-today-emoji{font-size:2rem;flex-shrink:0}.hub-today-info{flex:1;min-width:0}.hub-today-name{font-size:1rem;font-weight:600;color:var(--cream);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-today-meta{font-size:.78rem;color:var(--cream-dim);margin-top:3px}.hub-today-cost{font-size:.95rem;font-weight:700;color:var(--blue);flex-shrink:0}.hub-section-title{font-size:.75rem;color:#f5f0e873;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0 0 10px}.hub-days-section{margin-bottom:16px}.hub-compact-days{display:flex;flex-direction:column;gap:2px;background:var(--bg-card);border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}.hub-compact-day{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;transition:background .15s}.hub-compact-day:hover{background:#ffffff0a}.hub-compact-day.skipped{opacity:.4;cursor:default}.hub-compact-day-name{font-size:.78rem;color:var(--cream-dim);width:28px;flex-shrink:0;font-weight:600}.hub-compact-day-emoji{font-size:1.15rem;flex-shrink:0;width:24px;text-align:center}.hub-compact-day-recipe{flex:1;font-size:.88rem;color:var(--cream);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-compact-day-cost{font-size:.8rem;color:var(--cream-dim);flex-shrink:0;font-weight:500}.hub-quick-links{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.hub-quick-link{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:13px 16px;font-size:.85rem;color:var(--cream);text-decoration:none;transition:background .15s}.hub-quick-link:hover{background:#ffffff0a}.hub-quick-link span:last-child{color:var(--green);font-weight:600;font-size:.8rem}.hub-history{margin-top:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}.hub-history-list{display:flex;flex-direction:column;gap:8px}.hub-history-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden}.hub-history-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;transition:background .15s}.hub-history-card-header:hover{background:#ffffff08}.hub-history-card-info{flex:1;min-width:0}.hub-history-dates{font-size:.88rem;font-weight:600;color:var(--cream)}.hub-history-meta{font-size:.8rem;color:#f5f0e88c;margin-top:2px}.hub-history-recipes{font-size:.76rem;color:#f5f0e866;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-history-chevron{font-size:.7rem;color:var(--cream-dim);opacity:.5}.hub-history-detail{padding:0 16px 16px;border-top:1px solid rgba(255,255,255,.04)}.hub-history-detail .hub-compact-days{margin-top:12px;background:var(--bg-elevated)}.hub-restore-btn{margin-top:12px;width:100%;padding:10px;font-size:.85rem}.hub-history-edit-hint{font-size:.72rem;color:var(--cream-dim);opacity:.6;margin-top:12px;margin-bottom:4px;padding-left:2px}.hub-history-edited-badge{display:inline-block;font-size:.65rem;font-weight:500;color:var(--blue);background:rgba(var(--blue-rgb, 100, 149, 237),.12);padding:1px 6px;border-radius:4px;margin-left:8px;vertical-align:middle}.hub-history-day-wrap{border-radius:8px;transition:background .15s}.hub-history-day-wrap.editing{background:#ffffff08}.hub-history-editable{cursor:pointer}.hub-history-editable:hover{background:#ffffff0a}.hub-history-editable.confirmed .hub-compact-day-recipe{color:var(--cream)}.hub-history-editable.skipped .hub-compact-day-recipe{color:var(--cream-dim);opacity:.6}.hub-history-editable.substituted .hub-compact-day-recipe{color:var(--cream)}.hub-original-recipe{text-decoration:line-through;opacity:.45;font-size:.78rem;margin-right:4px}.hub-override-label{color:var(--cream);font-size:.82rem}.hub-eaten-check{color:var(--green);margin-left:6px;font-size:.75rem}.hub-day-edit-panel{padding:8px 12px 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.hub-day-edit-opt{font-size:.78rem;padding:5px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--cream-dim);cursor:pointer;transition:all .15s}.hub-day-edit-opt:hover{background:#ffffff0f;color:var(--cream)}.hub-day-edit-opt.active{border-color:var(--green);color:var(--green);background:rgba(var(--green-rgb, 76, 175, 80),.1)}.hub-day-edit-sub{display:flex;gap:4px;flex:1;min-width:160px}.hub-day-edit-input{flex:1;font-size:.78rem;padding:5px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--cream);outline:none;transition:border-color .15s}.hub-day-edit-input:focus{border-color:#fff3}.hub-day-edit-input::placeholder{color:var(--cream-dim);opacity:.5}.hub-day-edit-save{font-size:.75rem;padding:5px 10px;border-radius:8px;border:none;background:var(--green);color:#fff;cursor:pointer;font-weight:500;white-space:nowrap}.hub-day-edit-clear{font-size:.72rem;padding:3px 8px;border:none;background:transparent;color:var(--cream-dim);opacity:.6;cursor:pointer;text-decoration:underline}.hub-day-edit-clear:hover{opacity:1}.history-banner{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border-left:3px solid var(--green);border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:.85rem;color:var(--cream-dim)}.draft-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg-card);border:2px dashed rgba(255,255,255,.15);border-radius:12px;padding:14px 18px;margin-bottom:16px}.draft-banner.first-time{border-color:var(--green);background:#4caf500f}.draft-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.draft-banner-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cream-dim)}.first-time .draft-banner-label{color:var(--green)}.draft-banner-hint{font-size:.85rem;color:var(--cream);line-height:1.3}.draft-banner-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.draft-banner-discard{background:none;border:none;color:var(--cream-dim);font-size:.8rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s,background .15s}.draft-banner-discard:hover{color:var(--cream);background:#ffffff0f}.draft-banner-btn{flex-shrink:0;padding:8px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:transparent;color:var(--cream);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.draft-banner-btn:hover{background:#ffffff14;border-color:#ffffff40}.draft-banner-btn.primary{background:var(--green);border-color:var(--green);color:#fff}.draft-banner-btn.primary:hover{filter:brightness(1.1)}.sticky-activate{display:none}@media(max-width:768px){.sticky-activate{display:block;position:fixed;bottom:calc(60px + env(safe-area-inset-bottom,0px));left:0;right:0;padding:12px 16px;background:linear-gradient(transparent,var(--bg-dark) 30%);z-index:90;pointer-events:none}.sticky-activate-btn{display:block;width:100%;padding:14px;border:none;border-radius:12px;background:var(--green);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;pointer-events:auto;box-shadow:0 4px 20px #0006}.sticky-activate-btn:active{filter:brightness(.9)}}.accepted-badge{display:inline-flex;align-items:center;gap:4px;color:var(--green);font-size:.75rem;font-weight:600;opacity:.85}.shopping-product{flex:1;min-width:0}.shopping-product-name{font-weight:500;margin-bottom:2px}.shopping-product-store{font-size:.8rem;color:var(--cream-dim)}.shopping-quantity{text-align:right;font-size:.8rem;display:flex;flex-direction:column;gap:2px;white-space:nowrap}.shopping-quantity .qty-buy{color:var(--green);font-weight:600}.shopping-quantity .qty-use{color:var(--cream-dim)}.shopping-price{font-family:var(--font-display);font-weight:600;min-width:70px;text-align:right}.shopping-price .price-sale{color:var(--green)}.modal-overlay{position:fixed;inset:0;background:#080a0eb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-overlay.active{display:flex}.modal-card{position:relative;width:min(680px,100%);height:min(80vh,700px);background:var(--bg-card);border:1px solid var(--border-light);border-radius:20px;padding:0;overflow:hidden;box-shadow:0 24px 80px #00000080,0 0 0 1px #ffffff0a;display:flex;flex-direction:column}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;flex-shrink:0}.modal-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;line-height:1.2;color:var(--cream)}.modal-subtitle{font-size:.8rem;color:var(--cream-dim)}.modal-close{position:absolute;top:14px;right:14px;z-index:2;border:none;background:#ffffff14;color:var(--cream-dim);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;transition:all .2s ease}.modal-close:hover{background:#ffffff24;color:var(--cream)}.modal-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 24px 20px;background:linear-gradient(180deg,rgba(232,133,61,.08) 0%,transparent 100%);border-bottom:1px solid var(--border);flex-shrink:0}.modal-hero-emoji{font-size:3rem;line-height:1;margin-bottom:12px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.modal-hero-text{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px}.modal-day-chip{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--warm-accent);background:#e8853d1f;padding:3px 10px;border-radius:20px}.modal-hero-stats{display:flex;align-items:center;gap:0}.modal-stat{font-size:.78rem;color:var(--cream-dim);padding:0 12px}.modal-stat-val{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--cream)}.modal-stat-sep{width:1px;height:16px;background:var(--border)}.modal-stat-save{color:var(--green);font-weight:600}.modal-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}@media(max-width:900px){.modal-grid{grid-template-columns:1fr}}.modal-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:14px}.modal-section+.modal-section{margin-top:10px}.modal-tab-content{flex:1;overflow-y:auto;min-height:0;padding:16px 20px 20px}.modal-tab-content>*{animation:tabFadeIn .25s ease}@keyframes tabFadeIn{0%{opacity:0}to{opacity:1}}.modal-section h3{margin:0 0 10px;font-size:.78rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.modal-section h4{margin:0 0 10px;font-size:.85rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.08em}.ingredient-list{display:grid;gap:6px;font-size:.85rem;list-style:none;padding-left:0}.ingredient-list li{display:flex;gap:8px}.ingredient-item{display:flex;justify-content:space-between;gap:10px}.ingredient-qty{text-align:right;white-space:nowrap}.ingredient-pkg{font-size:.72rem;color:var(--cream-dim);opacity:.7}.alt-plan{border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:10px;background:#ffffff05;display:flex;flex-direction:column;gap:6px}.alt-plan-header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:600}.alt-plan-meta{font-size:.8rem;color:var(--cream-dim)}.alt-delta{font-weight:600}.alt-delta.positive{color:#f87171}.alt-delta.negative{color:var(--green)}.alt-action{align-self:flex-start;margin-top:4px}.overlay-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.overlay-select{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:6px 10px;color:var(--cream);font-size:.8rem}.pantry-tab-status{font-size:.72rem;color:var(--text-dim);margin-top:2px;min-height:1em}.pantry-tab-status:empty{display:none}.pantry-status-btn{background:var(--bg-elevated);color:var(--cream);border:1px solid var(--green-dim);border-radius:6px;padding:5px 14px;font-size:.82rem;cursor:pointer;transition:all .15s;white-space:nowrap}.pantry-status-btn:hover{background:var(--green-dim);color:var(--bg-deep)}.pantry-status-btn.just-clicked{background:var(--green);color:var(--bg-deep);border-color:var(--green)}.pantry-confirm-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s}.pantry-confirm-dialog{background:var(--bg-elevated);border:1px solid var(--green-dim);border-radius:12px;padding:24px 28px;max-width:340px;text-align:center}.pantry-confirm-dialog h3{margin:0 0 8px;font-size:1.1rem;color:var(--cream)}.pantry-confirm-dialog p{margin:0 0 20px;font-size:.88rem;color:var(--text-dim)}.pantry-confirm-buttons{display:flex;gap:10px;justify-content:center}.pantry-confirm-buttons button{padding:8px 20px;border-radius:6px;font-size:.88rem;cursor:pointer;border:1px solid var(--green-dim)}.pantry-confirm-yes{background:var(--green);color:var(--bg-deep);border-color:var(--green)!important;font-weight:600}.pantry-confirm-no{background:transparent;color:var(--cream)}.pantry-tabs{display:flex;gap:8px;margin-bottom:20px}.pantry-tab{flex:1;padding:16px 24px;background:var(--bg-elevated);border:2px solid var(--border);border-radius:14px;cursor:pointer;transition:all .25s var(--ease-out-expo);text-align:center;color:var(--cream)}.pantry-tab:hover{border-color:var(--border-light)}.pantry-tab.active{border-color:var(--green);background:var(--green-glow)}.pantry-tab-icon{font-size:2rem;margin-bottom:8px}.pantry-tab-name{font-weight:600}.pantry-tab-count{display:inline-block;font-size:.7rem;font-weight:500;background:var(--green-dim);color:#fff;border-radius:8px;padding:1px 6px;margin-left:4px;vertical-align:middle}.pantry-tab-count:empty{display:none}.pantry-tab-desc{font-size:.75rem;color:var(--cream-dim)}.pantry-filter{position:relative;margin-bottom:12px}.pantry-filter-input{width:100%;padding:10px 36px 10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.95rem}.pantry-filter-input::placeholder{color:var(--cream-dim)}.pantry-filter-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--cream-dim);font-size:1.2rem;cursor:pointer;padding:10px 12px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.pantry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.pantry-grid>.pantry-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;background:var(--bg-elevated);border:1.5px solid var(--border-light);border-radius:12px;cursor:pointer;transition:all .2s;position:relative;text-align:center}.pantry-grid>.pantry-item:hover{border-color:var(--border-light)}.pantry-grid>.pantry-item.have{border-color:var(--green);background:var(--green-glow)}.pantry-item-check{width:18px;height:18px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.65rem;transition:all .2s;flex-shrink:0;position:absolute;top:8px;right:8px}.pantry-item.have .pantry-item-check{background:var(--green);border-color:var(--green);color:var(--bg-deep)}.pantry-item-name{font-size:.85rem;font-weight:500;line-height:1.3;min-height:2.4em;display:flex;align-items:center;gap:6px;padding:0 20px;color:var(--cream)}.pantry-item-qty{font-size:.7rem;color:var(--cream-dim);font-weight:400;white-space:nowrap}.pantry-item-controls{display:flex;align-items:center;gap:10px}.pantry-count{min-width:32px;text-align:center;font-weight:600;font-size:.9rem;color:var(--cream)}.pantry-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--border-light);background:var(--bg-card);color:var(--cream);font-size:1rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.pantry-btn:hover{border-color:var(--green);color:var(--green)}.pantry-btn:active{background:var(--green-glow);border-color:var(--green);color:var(--green)}.pantry-btn:disabled{opacity:.35;cursor:default;border-color:var(--border);color:var(--cream-dim)}.pantry-btn:disabled:hover{border-color:var(--border);color:var(--cream-dim)}.pantry-btn-minus,.pantry-btn-plus{width:44px;height:44px;font-size:1.2rem}.pantry-item-usage{font-size:.7rem;color:var(--green);font-weight:500;margin-top:-4px}.pantry-quick-section{margin-bottom:16px}.pantry-quick-label{font-size:.78rem;color:var(--cream-dim);margin:0 0 8px;font-weight:500}.pantry-quick-chips{display:flex;flex-wrap:wrap;gap:8px}.pantry-quick-chip{padding:6px 14px;border-radius:20px;border:1.5px solid var(--border-light);background:var(--bg-elevated);color:var(--cream);font-size:.82rem;cursor:pointer;transition:all .2s;white-space:nowrap}.pantry-quick-chip:hover{border-color:var(--green);color:var(--green);background:var(--green-glow)}.pantry-quick-chip:active{background:var(--green-dim);border-color:var(--green);color:var(--bg-deep)}.pantry-summary{font-size:.82rem;color:var(--cream-dim);margin-bottom:12px;padding:8px 12px;background:var(--bg-elevated);border-radius:8px;border:1px solid var(--border)}.pantry-empty-value{text-align:center}.pantry-empty-title{font-size:1.05rem;font-weight:600;color:var(--cream);margin:0 0 8px}.pantry-empty-desc{font-size:.88rem;color:var(--cream-dim);line-height:1.5;max-width:320px;margin:0 auto}.empty-state{text-align:center;padding:60px 20px;color:var(--cream-dim)}.empty-state-icon{font-size:4rem;margin-bottom:16px;opacity:.5}.empty-state p{max-width:400px;margin:0 auto;line-height:1.6}.modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000}.modal-card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;width:min(420px,92vw);z-index:2001;box-shadow:0 20px 60px #00000073}.modal-card h3{margin:0 0 12px;font-family:var(--font-display)}.modal-actions{display:flex;gap:8px;margin-top:16px}.btn-secondary{padding:12px 18px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;color:var(--cream);cursor:pointer;font-family:var(--font-body);font-size:.9rem;transition:all .2s var(--ease-out-expo)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-light);transform:translateY(-1px);box-shadow:0 2px 8px #0000001f}.btn-secondary:active{transform:translateY(0) scale(.97);box-shadow:none}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;text-align:center;padding:24px;gap:12px}.error-boundary-icon{font-size:3rem}.error-boundary h2{font-family:var(--font-display);font-size:1.5rem}.error-boundary p{color:var(--cream-dim);max-width:400px}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh}.loading-screen .spinner{width:40px;height:40px}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s cubic-bezier(.4,0,.2,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px;color:var(--cream-dim);animation:fadeInUp .4s var(--ease-out-expo)}.help-container{max-width:780px;display:flex;flex-direction:column;gap:16px}.help-chapter{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:border-color .3s ease}.help-chapter:hover{border-color:var(--border-light)}.help-chapter.open{border-color:var(--green-dim)}.help-chapter-header{display:flex;align-items:center;gap:20px;padding:24px 28px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s ease}.help-chapter-header:hover{background:var(--bg-elevated)}.help-chapter-number{font-family:var(--font-display);font-size:1.8rem;font-weight:700;color:var(--green);opacity:.5;min-width:48px;line-height:1;letter-spacing:-.02em;transition:opacity .3s ease}.help-chapter.open .help-chapter-number{opacity:1}.help-chapter-info{flex:1}.help-chapter-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;margin-bottom:2px;color:var(--cream)}.help-chapter-desc{font-size:.82rem;color:var(--cream-dim)}.help-chapter-toggle{font-size:1.6rem;color:var(--cream-dim);transition:transform .35s var(--ease-out-expo);line-height:1;font-weight:300}.help-chapter.open .help-chapter-toggle{transform:rotate(45deg)}.help-chapter-body{max-height:0;overflow:hidden;transition:max-height .5s var(--ease-out-expo)}.help-chapter.open .help-chapter-body{max-height:3000px}.help-chapter-body>:first-child{border-top:1px solid var(--border)}.help-item{display:flex;gap:18px;padding:22px 28px;border-bottom:1px solid var(--border);opacity:0;transform:translateY(8px);animation:helpItemIn .4s var(--ease-out-expo) forwards}.help-chapter.open .help-item{opacity:1;transform:translateY(0)}.help-chapter.open .help-item:nth-child(1){animation-delay:.05s}.help-chapter.open .help-item:nth-child(2){animation-delay:.1s}.help-chapter.open .help-item:nth-child(3){animation-delay:.15s}.help-chapter.open .help-item:nth-child(4){animation-delay:.2s}.help-chapter.open .help-item:nth-child(5){animation-delay:.25s}@keyframes helpItemIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.help-item:last-child{border-bottom:none}.help-item-icon{font-size:1.4rem;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:10px;margin-top:2px}.help-item-content h3{font-family:var(--font-display);font-size:1rem;font-weight:600;margin-bottom:6px;color:var(--cream)}.help-item-content p{font-size:.88rem;color:var(--cream-dim);line-height:1.65}.help-item-content strong{color:var(--cream);font-weight:600}.help-item-content em{color:var(--green);font-style:normal}.help-list{list-style:none;padding:0;margin-top:10px;display:flex;flex-direction:column;gap:6px}.help-list li{font-size:.85rem;color:var(--cream-dim);padding-left:18px;position:relative;line-height:1.55}.help-list li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;background:var(--green);border-radius:50%;opacity:.6}.help-list li strong{color:var(--cream)}.help-tip{margin-top:12px;padding:12px 16px;background:var(--green-glow);border-left:3px solid var(--green-dim);border-radius:0 8px 8px 0;font-size:.82rem;color:var(--cream-dim);line-height:1.55}.help-tip-label{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-right:8px}.help-faq{border-bottom:1px solid var(--border)}.help-faq:first-child{border-top:1px solid var(--border)}.help-faq:last-child{border-bottom:none}.help-faq-q{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;cursor:pointer;font-size:.92rem;font-weight:500;color:var(--cream);transition:background .2s ease}.help-faq-q:hover{background:var(--bg-elevated)}.help-faq-arrow{font-size:1.2rem;color:var(--cream-dim);transition:transform .3s var(--ease-out-expo)}.help-faq.open .help-faq-arrow{transform:rotate(90deg)}.help-faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-out-expo)}.help-faq.open .help-faq-a{max-height:300px}.help-faq-a p{padding:0 28px 18px;font-size:.85rem;color:var(--cream-dim);line-height:1.65}.help-faq-a strong{color:var(--cream)}.help-faq-a em{color:var(--green);font-style:normal}@media(max-width:1200px){.week-grid{grid-template-columns:repeat(4,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.nav{width:100%;height:auto;position:fixed;inset:auto 0 0;flex-direction:row;padding:8px 16px;border-right:none;border-top:1px solid var(--border);justify-content:space-around}.nav:hover{width:100%}.nav-logo,.nav-footer,.nav-item-text{display:none}.nav-items{flex-direction:row;gap:0;justify-content:space-around;width:100%}.nav-item{padding:12px 16px}.nav-item:before{display:none}.main{margin-left:0;margin-bottom:70px}.content{padding:20px 16px}.optimizer-grid{grid-template-columns:1fr}.week-grid,.results-summary{grid-template-columns:repeat(2,1fr)}.family-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.stats-grid{grid-template-columns:1fr 1fr}.family-grid{grid-template-columns:1fr}.preset-grid{grid-template-columns:1fr 1fr}.pantry-tabs{flex-direction:column}}@media(max-width:520px){.week-grid{grid-template-columns:1fr}}.onboarding-overlay{position:fixed;inset:0;background:#080a0eeb;display:none;align-items:center;justify-content:center;z-index:2000;padding:16px}.onboarding-overlay.active{display:flex}.onboarding-card{width:min(480px,100%);background:var(--bg-card);border:1px solid var(--border-light);border-radius:24px;padding:32px 28px;text-align:center}.onboarding-header{margin-bottom:24px}.onboarding-logo{font-size:2.5rem;display:block;margin-bottom:8px}.onboarding-header h2{font-family:var(--font-display);font-size:1.6rem;margin:0}.onboarding-header p{color:var(--cream-dim);font-size:.9rem;margin:6px 0 0}.onboarding-step{display:none}.onboarding-step.active{display:block}.onboarding-step h3{font-family:var(--font-display);font-size:1.15rem;margin:0 0 16px}.onboarding-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.onboard-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;background:var(--bg-elevated);border:2px solid var(--border);border-radius:16px;color:var(--cream);cursor:pointer;transition:all .2s ease;font-family:var(--font-body);font-size:.9rem}.onboard-option:hover{border-color:var(--green-dim);background:var(--bg-hover)}.onboard-option.selected{border-color:var(--green);background:var(--green-glow)}.onboard-icon{font-size:1.8rem}.onboard-hint{color:var(--cream-dim);font-size:.8rem;margin:0 0 12px}.onboard-counters{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.onboard-counter-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-elevated);border-radius:12px}.onboard-counter{display:flex;align-items:center;gap:12px}.onboard-counter button{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--cream);cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center}.onboard-counter button:hover{border-color:var(--green);color:var(--green)}.onboard-counter span{font-size:1.2rem;min-width:24px;text-align:center;font-weight:600}.onboard-stores{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.onboard-store{display:flex;align-items:center;gap:8px;padding:12px;border-radius:12px;background:var(--bg-elevated);border:2px solid var(--border);cursor:pointer;transition:all .2s ease;font-family:var(--font-body);color:var(--cream);font-size:.85rem}.onboard-store:hover{border-color:var(--green-dim)}.onboard-store.selected{border-color:var(--green);background:var(--green-glow)}.onboard-store-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.onboard-next{width:100%;padding:12px;border-radius:12px;background:var(--green);color:var(--bg-deep);border:none;font-weight:600;font-size:.95rem;cursor:pointer;font-family:var(--font-body)}.onboard-next:hover{filter:brightness(1.1)}.onboard-skip{background:none;border:none;color:var(--cream-dim);font-size:.8rem;cursor:pointer;margin-top:12px;font-family:var(--font-body);transition:color .2s ease}.onboard-skip:hover{color:var(--cream)}.onboard-later-hint{color:var(--cream-dim);font-size:.7rem;margin-top:12px;opacity:.7}.onboarding-progress{margin-top:20px}.progress-dots{display:flex;gap:6px;justify-content:center}.progress-dots .dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .3s ease}.progress-dots .dot.active{background:var(--green)}.recipe-tabs{display:flex;gap:2px;margin:0;background:var(--bg-elevated);padding:4px 20px;flex-shrink:0;border-bottom:1px solid var(--border)}.recipe-tab{flex:1;padding:10px 14px;border-radius:10px;border:none;background:transparent;color:var(--cream-dim);cursor:pointer;font-family:var(--font-body);font-size:.8rem;font-weight:500;transition:all .2s ease}.recipe-tab.active{background:#ffffff12;color:var(--cream);font-weight:600}.recipe-tab:hover:not(.active){color:var(--cream);background:#ffffff08}.recipe-tab-content{display:none}.recipe-tab-content.active{display:block}.recipe-meta-bar{display:flex;gap:16px;flex-wrap:wrap;padding:12px;background:var(--bg-elevated);border-radius:12px;margin-bottom:14px;font-size:.85rem}.recipe-meta-bar>div{display:flex;align-items:center;gap:4px}.nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:4px 0}.nutrition-grid .nutrition-item{position:relative}.nutrition-grid .nutrition-item+.nutrition-item:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--border)}.recipe-section-label{font-size:.75rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-weight:600}.recipe-instructions{padding:16px;background:var(--bg-elevated);border-radius:14px}.recipe-step{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.recipe-step:last-child{border-bottom:none}.step-number{width:28px;height:28px;border-radius:50%;background:var(--green);color:var(--bg-deep);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}.step-text{font-size:.9rem;line-height:1.5;padding-top:3px}.mobile-more-wrapper{display:none}@media(max-width:700px){.nav{position:fixed!important;inset:auto 0 0!important;width:100%!important;height:64px!important;flex-direction:row!important;padding:0 8px!important;z-index:999;border-top:1px solid var(--border);border-right:none;align-items:center}.nav-logo,.nav-footer,.nav-pin{display:none!important}.nav-items{flex-direction:row!important;width:auto!important;flex:1;height:100%!important;justify-content:space-around!important;gap:0!important;padding:0!important}.nav-item.mobile-overflow{display:none!important}.nav-item.mobile-main{flex-direction:column!important;gap:2px!important;padding:8px 6px!important;font-size:.65rem!important;min-width:0!important}.nav-item .nav-item-icon{font-size:1.2rem!important}.nav-item .nav-item-text{display:block!important;font-size:.6rem!important}.nav-status-dot{top:2px!important;right:2px!important;width:6px!important;height:6px!important}.mobile-more-wrapper{display:flex;position:relative;height:100%;align-items:center}.mobile-more-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;background:none;border:none;color:var(--cream-dim);cursor:pointer;font-family:var(--font-body);font-size:.6rem;transition:color .2s}.mobile-more-btn .nav-item-icon{font-size:1.2rem}.mobile-more-btn.active{color:var(--green)}.mobile-more-panel{position:absolute;bottom:72px;right:-8px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:8px;min-width:200px;box-shadow:0 -8px 32px #0006;animation:moreSlideUp .2s ease-out}@keyframes moreSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mobile-more-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;color:var(--cream);font-size:.85rem;cursor:pointer;text-decoration:none;transition:background .15s}.mobile-more-item:hover,.mobile-more-item.active{background:var(--green-glow)}.mobile-more-item.active{color:var(--green)}.mobile-more-divider{height:1px;background:var(--border);margin:4px 8px}.main{margin-left:0!important;padding-bottom:80px!important}.shopping-check{width:36px!important;height:36px!important;border-radius:10px}.shopping-item{padding:12px!important;gap:12px!important}.shopping-summary{flex-wrap:wrap;gap:12px;padding:12px 16px}.shopping-filters{flex-wrap:wrap;gap:8px}.filter-btn{padding:8px 14px;font-size:.8rem}.settings-sidebar.collapsed .sidebar-content{max-height:0;padding:0 20px}.weekplan-layout{gap:16px}.results-header{flex-direction:column;gap:12px;padding:12px 14px!important}.results-stats{flex-wrap:wrap;justify-content:center;gap:12px 16px}.result-stat-value{font-size:1.1rem!important}.results-nutrition{justify-content:center;gap:16px}.results-nutrition .nutrition-value{font-size:.85rem}.results-actions{flex-wrap:wrap;justify-content:center;gap:8px}.desktop-only{display:none!important}.stat-item{min-width:60px}.tab-header h1{font-size:1.3rem}.tab-header p{font-size:.8rem}.day-menu-trigger{width:44px!important;height:44px!important;font-size:1.1rem!important}.shopping-check{min-width:44px!important;min-height:44px!important}.filter-btn,.action-btn{min-height:44px}.day-menu-item{min-height:44px;padding:12px 16px!important}.sidebar-btn{min-height:44px}.modal-overlay{padding:0!important}.modal-card{width:100%!important;max-height:100vh!important;height:100vh;border-radius:0!important}.modal-hero{padding:20px 16px 16px}.modal-hero-emoji{font-size:2.4rem}.modal-title{font-size:1.25rem!important}.modal-tab-content{padding:12px 14px 14px}.settings-sidebar{border-radius:12px}.settings-sidebar .sidebar-content{padding:12px!important}.week-grid{grid-template-columns:1fr!important}.onboarding-card{padding:24px 16px}.onboard-option{padding:14px 10px}.onboard-counter button{width:44px;height:44px}}.store-group{margin-bottom:16px}.store-group-header{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:6px;background:var(--bg-elevated);border-radius:12px;font-weight:600;font-size:.9rem}.store-group-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.store-group-total{margin-left:auto;color:var(--green);font-size:.85rem}.store-group-items{display:flex;flex-direction:column;gap:2px}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ef44441a;border:1px solid var(--red);border-radius:8px;color:var(--red);margin-bottom:16px}.error-icon{font-size:1.2rem;font-weight:700;flex-shrink:0}.pantry-status-date{font-size:.65rem;color:var(--cream-dim);margin-top:-4px}.shopping-group{margin-bottom:16px}.shopping-group-total{margin-left:auto;color:var(--green);font-size:.85rem}.checkbox-group{display:flex;flex-direction:column;gap:12px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.85rem;color:var(--cream)}.checkbox-label input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}.meal-overlay-loading{text-align:center;padding:40px}.meal-overlay-loading p{margin-top:12px;color:var(--cream-dim)}.meal-overlay-alternatives{display:flex;flex-direction:column;gap:12px}.meal-overlay-alt-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;justify-content:space-between;align-items:center}.alt-card-info{flex:1}.alt-card-name{font-weight:600;margin-bottom:4px}.alt-card-meta{font-size:.85rem;color:var(--cream-dim);display:flex;gap:12px}.meal-overlay-sale-ingredients{display:flex;flex-wrap:wrap;gap:8px}.info-label{font-size:.75rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.05em}.info-value{font-family:var(--font-display);font-weight:600}.info-value.savings{color:var(--green)}.nutrition-item{text-align:center;flex:1;padding:10px 4px}.nutrition-value{display:block;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--cream);margin-bottom:2px}.nutrition-label{font-size:.65rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.06em}.nutrition-assessment{display:flex;flex-direction:column;gap:14px}.nutrition-assessment-row{display:flex;flex-direction:column;gap:4px}.nutrition-assessment-header{display:flex;justify-content:space-between;align-items:center}.nutrition-assessment-label{font-size:.82rem;color:var(--cream);font-weight:500}.nutrition-assessment-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:6px}.nutrition-assessment-badge.high{color:#7ecba1;background:#7ecba11f}.nutrition-assessment-badge.mid{color:var(--cream-dim);background:#ffffff0f}.nutrition-assessment-badge.low{color:#f0c070;background:#f0c0701f}.nutrition-assessment-bar{height:4px;border-radius:2px;background:#ffffff14;overflow:hidden}.nutrition-assessment-fill{height:100%;border-radius:2px;transition:width .4s ease}.nutrition-assessment-fill.high{background:#7ecba1}.nutrition-assessment-fill.mid{background:#ffffff40}.nutrition-assessment-fill.low{background:#f0c070}.nutrition-assessment-desc{font-size:.7rem;color:var(--cream-dim);font-style:italic}.ingredient-name{flex:1}.findrecipe-layout{display:grid;grid-template-columns:300px 1fr;gap:24px;align-items:start}.findrecipe-sidebar{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:20px;position:sticky;top:20px}.findrecipe-section-title{font-family:var(--font-display);font-size:.95rem;font-weight:500;margin-bottom:12px;color:var(--cream)}.findrecipe-search-wrap{position:relative;margin-bottom:12px}.findrecipe-search-input{width:100%;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.9rem;font-family:var(--font-body);outline:none;transition:border-color .2s}.findrecipe-search-input:focus{border-color:var(--green)}.findrecipe-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;margin-top:4px;max-height:240px;overflow-y:auto;z-index:50}.findrecipe-dropdown-item{padding:10px 14px;cursor:pointer;font-size:.85rem;transition:background .15s}.findrecipe-dropdown-item:hover,.findrecipe-dropdown-item.highlighted{background:var(--bg-hover)}.findrecipe-dropdown-item:first-child{border-radius:10px 10px 0 0}.findrecipe-dropdown-item:last-child{border-radius:0 0 10px 10px}.findrecipe-selected-section{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.findrecipe-selected-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.8rem;color:var(--cream-dim)}.findrecipe-clear-link{background:none;border:none;color:var(--red);font-size:.78rem;cursor:pointer;font-family:var(--font-body);opacity:.8;transition:opacity .15s}.findrecipe-clear-link:hover{opacity:1}.findrecipe-cuisine-section{margin-bottom:14px}.findrecipe-cuisine-chips{display:flex;flex-wrap:wrap;gap:6px}.findrecipe-cuisine-chip{display:flex;align-items:center;gap:4px;padding:5px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.78rem;font-family:var(--font-body);cursor:pointer;transition:all .15s}.findrecipe-cuisine-chip:hover{border-color:var(--green);background:var(--green-glow)}.findrecipe-cuisine-chip.active{border-color:var(--green);background:var(--green-glow);color:var(--green);font-weight:600}.findrecipe-quickpicks{margin-bottom:14px}.findrecipe-quickpicks-title{font-size:.78rem;color:var(--cream-dim);margin-bottom:8px;font-weight:500}.findrecipe-quickpicks-items{display:flex;flex-wrap:wrap;gap:6px}.findrecipe-quickpick-btn{padding:7px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.82rem;font-family:var(--font-body);cursor:pointer;transition:all .15s}.findrecipe-quickpick-btn:hover{border-color:var(--green);background:var(--green-glow)}.findrecipe-suggestions{margin-bottom:14px}.findrecipe-suggestions-title{font-size:.78rem;color:var(--cream-dim);margin-bottom:8px;font-weight:500}.findrecipe-suggestions-items{display:flex;flex-wrap:wrap;gap:6px}.findrecipe-suggestion-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.8rem;font-family:var(--font-body);cursor:pointer;transition:all .15s}.findrecipe-suggestion-btn:hover{border-color:var(--green);background:var(--green-glow)}.findrecipe-suggestion-count{font-size:.7rem;background:var(--bg-hover);color:var(--cream-dim);padding:1px 5px;border-radius:6px;min-width:16px;text-align:center}.findrecipe-bottom{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.findrecipe-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;min-height:20px}.findrecipe-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--green-glow);border:1px solid var(--green);border-radius:20px;font-size:.8rem;color:var(--green)}.findrecipe-chip-remove{background:none;border:none;color:var(--green);cursor:pointer;font-size:1rem;line-height:1;padding:0;opacity:.7;transition:opacity .15s}.findrecipe-chip-remove:hover{opacity:1}.findrecipe-pantry-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--cream-dim);cursor:pointer;margin-bottom:16px}.findrecipe-pantry-toggle input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}.findrecipe-results{min-height:200px}.findrecipe-results-header{font-size:.85rem;color:var(--cream-dim);margin-bottom:16px}.findrecipe-cuisine-divider{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--cream-dim);margin:20px 0 12px;display:flex;align-items:center;gap:10px}.findrecipe-cuisine-divider:before,.findrecipe-cuisine-divider:after{content:"";flex:1;height:1px;background:var(--border)}.findrecipe-results-grid{display:flex;flex-direction:column;gap:12px}.findrecipe-result-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.findrecipe-card-name{font-weight:600;font-size:.85rem;color:var(--cream);margin-bottom:6px}.findrecipe-card-meta{font-size:.72rem;color:var(--cream-dim);margin-bottom:8px}.findrecipe-card-cost{font-size:.75rem;margin-bottom:8px}.findrecipe-card-cost-buy{font-weight:600;color:var(--cream)}.findrecipe-card-cost-have{color:var(--cream-dim)}.findrecipe-card-ingredients{display:flex;flex-wrap:wrap;gap:4px}.findrecipe-ingr{font-size:.68rem;padding:2px 8px;border-radius:8px;background:var(--bg-deep);color:var(--cream-dim)}.findrecipe-ingr small{opacity:.7;margin-left:2px}.findrecipe-ingr--have{background:#4caf501f;color:var(--green);border:1px solid rgba(76,175,80,.2)}.findrecipe-ingr--pantry{background:#4caf500f;color:var(--cream-dim);border:1px solid rgba(76,175,80,.12)}.findrecipe-ingr--missing{background:#ffc10714;color:#ffc107;border:1px solid rgba(255,193,7,.15)}.findrecipe-servings-section{padding:8px 0}.findrecipe-servings-control{display:flex;align-items:center;gap:12px;margin-top:6px}.findrecipe-servings-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.findrecipe-servings-btn:hover:not(:disabled){background:var(--green-dim)}.findrecipe-servings-btn:disabled{opacity:.3;cursor:default}.findrecipe-servings-value{font-size:1.2rem;font-weight:600;color:var(--cream);min-width:24px;text-align:center}.findrecipe-error{background:#ef44441a;border:1px solid var(--red);border-radius:12px;padding:14px;color:var(--red);font-size:.85rem;margin-bottom:16px}.findrecipe-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--cream-dim);gap:16px}.findrecipe-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s cubic-bezier(.4,0,.2,1) infinite}.findrecipe-spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s cubic-bezier(.4,0,.2,1) infinite;vertical-align:middle;margin-right:6px}.findrecipe-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--cream-dim);text-align:center}.findrecipe-empty-icon{font-size:3rem;margin-bottom:12px}.findrecipe-empty-hint{font-size:.82rem;color:#f5f0e873;margin-top:6px}.findrecipe-inspiration{padding:24px;color:var(--cream-dim)}.findrecipe-inspo-header{margin-bottom:20px}.findrecipe-inspo-greeting{font-size:1.2rem;font-weight:600;color:var(--cream);margin-bottom:6px}.findrecipe-inspo-subtitle{font-size:.88rem;color:#f5f0e899;margin:0}.findrecipe-inspo-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.findrecipe-inspo-tag{background:#f5f0e812;border:1px solid rgba(245,240,232,.12);border-radius:20px;padding:5px 14px;font-size:.82rem;color:var(--cream-dim);cursor:default}.findrecipe-inspo-howto{display:flex;flex-direction:column;gap:12px}.findrecipe-howto-step{display:flex;align-items:flex-start;gap:12px;font-size:.85rem;color:#f5f0e88c}.findrecipe-howto-num{display:flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;background:#22c55e26;color:var(--green);border-radius:50%;font-size:.75rem;font-weight:700}.findrecipe-scroll-fab{display:none}@media(max-width:768px){.findrecipe-scroll-fab{display:block;position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:var(--cream);color:var(--bg-deep);border:none;border-radius:24px;padding:10px 24px;font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 4px 20px #0006;z-index:50;animation:fab-bounce .4s var(--ease-spring)}@keyframes fab-bounce{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.findrecipe-layout{grid-template-columns:1fr}.findrecipe-sidebar{position:static}}@media print{*{color:#000!important;background:#fff!important;box-shadow:none!important}body{margin:0;padding:20px;font-family:DM Sans,sans-serif}.nav,.modal-overlay,.onboarding-overlay,.settings-sidebar,.day-menu-wrapper,.day-skip-btn,.drag-handle,.btn-primary,.action-btn,.plan-nav,.results-actions button,.shopping-preview-see-all,.shopping-filters,.page-subtitle,.tip-banner,.sticky-activate,.mobile-more-wrapper,.weekly-history,.pantry-quick-add,.page-actions{display:none!important}.main{margin:0!important;padding:0!important}.content{padding:0!important;max-width:100%!important}.weekplan-layout{display:block!important}.weekplan-main{padding:0!important}.results-header{border:1px solid #ddd!important;padding:10px!important;margin-bottom:12px!important;border-radius:6px!important}.results-stats{gap:16px!important}.result-stat-value{font-size:1rem!important}.results-nutrition{gap:12px!important}.week-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important;gap:6px!important}.day-card{border:1px solid #ccc!important;padding:8px!important;border-radius:6px!important;break-inside:avoid}.day-header{margin-bottom:4px!important;padding-bottom:4px!important;border-bottom:1px solid #ddd!important}.day-name{font-weight:700!important}.meal-name{font-size:.8rem!important}.meal-cost{font-size:.75rem!important}.meal-emoji{font-size:1rem!important}.meal-item{cursor:default!important}.shopping-preview{break-before:page;border:1px solid #ddd!important;border-radius:6px!important}.shopping-preview-content{max-height:none!important}.shopping-preview-item{font-size:.8rem!important}.shopping-list{break-inside:avoid}.shopping-item{border:none!important;border-bottom:1px solid #eee!important;padding:6px 0!important}.shopping-check{border:1px solid #999!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;border-radius:3px!important}.shopping-check.checked:after{content:"✓";font-size:12px}.shopping-summary{border:1px solid #ddd!important;border-radius:6px!important;margin-bottom:12px!important}.shopping-category{font-weight:700!important;border-bottom:2px solid #ccc!important;padding:4px 0!important}}.metabolism-tab{padding:1rem 1.5rem;max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem}.metabolism-title{font-family:var(--font-display);font-size:1.5rem;margin:0}.metabolism-error{background:#ef44441a;border:1px solid var(--red);padding:.5rem 1rem;border-radius:8px;color:var(--red);font-size:.85rem}.metabolism-simulating{font-size:.75rem;color:var(--cream-dim);text-align:center;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.metabolism-week-strip{display:flex;flex-direction:column;gap:.5rem}.metabolism-week-nav{display:flex;align-items:center;justify-content:center;gap:.75rem}.metabolism-week-arrow{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.25rem .5rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .15s}.metabolism-week-arrow:hover{background:var(--bg-hover)}.metabolism-week-label{font-size:.9rem;color:var(--cream-dim);min-width:160px;text-align:center}.metabolism-week-days{display:flex;gap:.25rem}.metabolism-week-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:.3rem .2rem;border-radius:6px;cursor:pointer;transition:all .15s;font-size:.7rem}.metabolism-week-day:hover{border-color:var(--green-dim);color:var(--cream)}.metabolism-week-day.planned{border-style:dashed;opacity:.75}.metabolism-week-day.actual{border-color:var(--border-light)}.metabolism-week-day.active{background:var(--green);color:#000;border-color:var(--green);font-weight:600}.metabolism-week-day-name{font-weight:600;text-transform:uppercase;font-size:.65rem}.metabolism-week-day-num{font-size:.85rem;font-weight:600}.metabolism-week-day-fb{font-size:.6rem;opacity:.8}.metabolism-compact-profile{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.metabolism-compact-profile-bar{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;color:var(--cream);padding:.6rem .75rem;cursor:pointer;font-size:.8rem;text-align:left}.metabolism-compact-stats{color:var(--cream-dim)}.metabolism-compact-toggle{color:var(--green);font-size:.75rem}.metabolism-compact-form{padding:.5rem .75rem .75rem;border-top:1px solid var(--border)}.metabolism-compact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.metabolism-compact-grid label{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem}.metabolism-compact-grid label>span:first-child{color:var(--cream-dim);font-size:.7rem}.metabolism-compact-grid input[type=number],.metabolism-compact-grid select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.3rem .4rem;border-radius:6px;font-size:.8rem;width:100%}.metabolism-input-row{display:flex;align-items:center;gap:.3rem}.metabolism-input-row input{flex:1}.metabolism-unit{color:var(--cream-dim);font-size:.7rem;min-width:18px}.metabolism-slider-row{display:flex;align-items:center;gap:.4rem}.metabolism-slider-row input[type=range]{flex:1;accent-color:var(--green)}.metabolism-slider-val{font-weight:600;min-width:14px;text-align:center;font-size:.8rem}.metabolism-save-btn{width:100%;background:var(--green);color:#000;border:none;padding:.45rem;border-radius:8px;font-weight:600;cursor:pointer;margin-top:.5rem;transition:background .15s}.metabolism-save-btn:hover{background:var(--green-dim)}.metabolism-day-header{display:flex;flex-direction:column;gap:.3rem}.metabolism-day-mode{align-self:flex-start;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--cream-dim);background:var(--bg-elevated)}.metabolism-day-mode.plan{border-color:#22c55e66;color:var(--green)}.metabolism-day-mode.actual{border-color:#3b82f666;color:#60a5fa}.metabolism-day-title{font-family:var(--font-display);font-size:1rem;font-weight:600}.metabolism-day-summary{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.8rem}.metabolism-day-stat{white-space:nowrap}.metabolism-day-stat.stat-good{color:var(--green)}.metabolism-day-stat.stat-warn{color:var(--orange)}.metabolism-day-stat.stat-bad{color:var(--red)}.metabolism-day-stat.stat-ketone{color:#a855f7}.metabolism-plan-info{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.75rem;color:var(--cream-dim);padding:.4rem .6rem;background:var(--bg-elevated);border-radius:6px;border:1px solid var(--border)}.metabolism-plan-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;overflow:hidden}.metabolism-plan-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:.6rem .75rem;background:none;border:none;cursor:pointer;color:var(--cream);font-size:.82rem;text-align:left}.metabolism-plan-card-header:hover{background:#f5f0e80a}.metabolism-plan-card-main{flex:1;min-width:0}.metabolism-plan-card-toggle{font-size:.75rem;color:var(--green);white-space:nowrap;flex-shrink:0}.metabolism-plan-card-details{padding:0 .75rem .75rem;border-top:1px solid var(--border)}.metabolism-timeline{display:flex;flex-direction:column;gap:0}.metabolism-timeline-empty{text-align:center;padding:2rem;color:var(--cream-dim);font-size:.9rem}.metabolism-block{display:flex;gap:.75rem;border-left:3px solid var(--border);padding:.5rem 0 .5rem .75rem;position:relative}.metabolism-block.state-burning{border-left-color:var(--green)}.metabolism-block.state-fed{border-left-color:var(--red)}.metabolism-block.state-fasting{border-left-color:#6b7280}.metabolism-block.state-ketosis{border-left-color:#a855f7}.metabolism-block.state-hungry{border-left-color:#f97316}.metabolism-time-label{font-size:.75rem;font-weight:600;color:var(--cream-dim);min-width:38px;flex-shrink:0;padding-top:.1rem}.metabolism-block-content{flex:1;min-width:0}.metabolism-meal-block{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;margin:.2rem 0}.metabolism-meal-block.clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.metabolism-meal-block.clickable:hover{border-color:var(--accent, #e8a87c);box-shadow:0 0 0 1px var(--accent, #e8a87c)}.metabolism-recipe-hint{font-size:.65rem;color:var(--accent, #e8a87c);opacity:.7;margin-left:auto}.metabolism-meal-block.clickable:hover .metabolism-recipe-hint{opacity:1}.metabolism-meal-header{display:flex;align-items:center;gap:.4rem}.metabolism-meal-emoji{font-size:1rem}.metabolism-meal-name{font-size:.85rem;font-weight:600;flex:1}.metabolism-meal-macros{font-size:.75rem;color:var(--cream-dim);margin-top:.15rem}.metabolism-event-delete{background:none;border:none;color:var(--cream-dim);cursor:pointer;padding:0 .25rem;font-size:.8rem;opacity:.4;transition:opacity .15s,color .15s}.metabolism-event-delete:hover{opacity:1;color:var(--red)}.metabolism-event-planned{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--green);border:1px solid rgba(34,197,94,.4);padding:1px 6px;border-radius:999px}.metabolism-impact-lines{margin-top:.3rem;display:flex;flex-direction:column;gap:.15rem}.metabolism-impact{font-size:.8rem}.metabolism-impact.impact-good{color:var(--green)}.metabolism-impact.impact-bad{color:var(--red)}.metabolism-impact.impact-neutral{color:var(--cream-dim)}.metabolism-impact-tips{margin-top:.2rem;padding-top:.2rem;border-top:1px dashed var(--border)}.metabolism-tip{display:block;font-size:.75rem;color:var(--cream-dim);padding:.1rem 0}.metabolism-warnings{margin-top:.3rem}.metabolism-warning{font-size:.8rem;color:#f97316;background:#f9731614;padding:.25rem .5rem;border-radius:4px;margin-top:.15rem}.metabolism-suggestion-block{background:none;border:none;border-left:3px dashed var(--border);opacity:.7}.metabolism-suggestion-card{display:flex;gap:.5rem;align-items:flex-start;padding:.5rem;border:1px dashed var(--border);border-radius:8px;background:#22c55e0a}.metabolism-suggestion-emoji{font-size:1.2rem}.metabolism-suggestion-info{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem}.metabolism-suggestion-limits{font-size:.7rem;color:var(--cream-dim)}.metabolism-suggestion-reasoning{font-size:.75rem;color:var(--cream-dim);font-style:italic}.metabolism-suggestion-tips{margin-top:.2rem}.metabolism-suggestion-inline{margin-top:.3rem;padding:.3rem .5rem;border-radius:6px;border:1px dashed var(--border);background:#22c55e0a}.metabolism-suggestion-inline.deviates{background:#ef44440f;border-color:#ef44444d}.metabolism-suggestion-card-small{display:flex;gap:.4rem;align-items:center;font-size:.75rem}.metabolism-suggestion-emoji-small{font-size:.85rem}.metabolism-suggestion-label{color:var(--cream-dim);margin-right:.3rem}.metabolism-suggestion-name{font-weight:500}.metabolism-deviation-badge{color:var(--red);font-weight:600;font-size:.7rem;margin-left:.3rem}.metabolism-match-badge{color:var(--green);font-weight:600;font-size:.8rem;margin-left:.2rem}.metabolism-exercise-block{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.5rem .75rem;margin:.15rem 0}.metabolism-state-block{padding:.3rem 0 .3rem .75rem}.metabolism-state-label{font-size:.8rem;font-weight:500;color:var(--cream-dim)}.metabolism-state-metrics{display:flex;gap:.5rem;font-size:.7rem;color:var(--cream-dim);margin-top:.1rem}.metabolism-metric{white-space:nowrap}.metabolism-metric.ketone{color:#a855f7;font-weight:500}.metabolism-metric.burn{color:var(--green);font-weight:500}.metabolism-fasting-progress{display:flex;align-items:center;gap:.4rem;margin-top:.25rem}.metabolism-fasting-bar{flex:1;max-width:100px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.metabolism-fasting-fill{height:100%;background:linear-gradient(90deg,var(--green-dim),#a855f7);border-radius:2px;transition:width .3s ease}.metabolism-fasting-label{font-size:.65rem;color:var(--cream-dim);white-space:nowrap}.metabolism-state-annotations{margin-top:.15rem}.metabolism-state-annotation{font-size:.75rem;color:var(--orange);padding:.1rem 0}.metabolism-transition-block{border-left-width:3px;border-left-style:dashed;padding:.25rem 0}.metabolism-transition-block .metabolism-block-content{padding:.3rem .5rem;background:var(--bg-elevated);border-radius:4px;border:1px dashed var(--border)}.metabolism-transition-label{font-size:.8rem;font-weight:600}.state-hungry .metabolism-transition-label{color:var(--orange)}.state-burning .metabolism-transition-label{color:var(--green)}.state-fed .metabolism-transition-label{color:var(--red, #ef4444)}.state-ketosis .metabolism-transition-label{color:var(--purple, #a855f7)}.metabolism-transition-annotations{margin-top:.1rem}.metabolism-transition-annotation{font-size:.7rem;color:var(--cream-dim);padding:.05rem 0}.metabolism-add-event{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem}.metabolism-add-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.metabolism-add-header h3{font-family:var(--font-display);font-size:1rem;margin:0}.metabolism-mode-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.metabolism-mode-toggle button{background:var(--bg-elevated);border:none;color:var(--cream-dim);padding:.25rem .6rem;font-size:.75rem;cursor:pointer}.metabolism-mode-toggle button.active{background:var(--green);color:#000;font-weight:600}.metabolism-copy-btn{width:100%;background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:.4rem;border-radius:6px;font-size:.8rem;cursor:pointer;margin-bottom:.75rem;transition:background .15s}.metabolism-copy-btn:hover{background:var(--bg-hover);color:var(--cream)}.metabolism-copy-msg{font-size:.78rem;color:var(--cream-dim);text-align:center;margin-top:-.4rem;margin-bottom:.5rem}.metabolism-preset-time-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.metabolism-preset-time-label{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--cream-dim)}.metabolism-preset-time-label input[type=time]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.25rem .4rem;border-radius:6px;font-size:.8rem;width:90px}.metabolism-preset-time-clear{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:.2rem .4rem;border-radius:4px;font-size:.7rem;cursor:pointer}.metabolism-preset-time-clear:hover{color:var(--cream)}.metabolism-exercise-time-input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.2rem .4rem;border-radius:6px;font-size:.7rem;width:80px}.metabolism-preset-filters{display:flex;gap:.3rem;margin-bottom:.75rem;flex-wrap:wrap}.metabolism-preset-filter{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:.25rem .5rem;border-radius:4px;font-size:.7rem;cursor:pointer}.metabolism-preset-filter.active{background:var(--green);color:#000;border-color:var(--green);font-weight:600}.metabolism-preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.4rem;margin-bottom:.75rem}.metabolism-preset-item{display:flex;flex-direction:column;gap:.15rem;background:var(--bg-elevated);border:1px solid var(--border);padding:.5rem;border-radius:8px;cursor:pointer;text-align:left;transition:border-color .15s;color:var(--cream)}.metabolism-preset-item:hover{border-color:var(--green)}.metabolism-preset-name{font-size:.8rem;font-weight:500}.metabolism-preset-macros{font-size:.7rem;color:var(--cream-dim)}.metabolism-macro-good{color:var(--green)}.metabolism-macro-warn{color:var(--orange)}.metabolism-preset-kcal{font-size:.65rem;color:var(--cream-dim)}.metabolism-exercise-presets{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.metabolism-exercise-label{font-size:.75rem;color:var(--cream-dim)}.metabolism-preset-exercise{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.3rem .5rem;border-radius:6px;font-size:.7rem;cursor:pointer}.metabolism-preset-exercise:hover{border-color:var(--blue)}.metabolism-add-event label{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.5rem;font-size:.8rem}.metabolism-add-event label>span:first-child{color:var(--cream-dim);font-size:.75rem}.metabolism-add-event input,.metabolism-add-event select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.4rem .5rem;border-radius:6px;font-size:.85rem}.metabolism-add-row{display:flex;gap:1rem}.metabolism-add-row>label{flex:1}.metabolism-macro-row{display:flex;gap:.75rem}.metabolism-macro-row>label{flex:1}.metabolism-add-btn{width:100%;background:var(--green);color:#000;border:none;padding:.5rem;border-radius:8px;font-weight:600;cursor:pointer;margin-top:.5rem;transition:background .15s}.metabolism-add-btn:hover{background:var(--green-dim)}.metabolism-subtabs{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.metabolism-subtab{flex:1;background:var(--bg-elevated);border:none;color:var(--cream-dim);padding:.4rem .5rem;font-size:.8rem;cursor:pointer;transition:all .15s}.metabolism-subtab:not(:last-child){border-right:1px solid var(--border)}.metabolism-subtab.active{background:var(--green);color:#000;font-weight:600}.metabolism-subtab:hover:not(.active){background:var(--bg-hover);color:var(--cream)}.metabolism-curves{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.75rem}.metabolism-curves-svg{width:100%;height:auto}.metabolism-curves-axis{font-size:9px;fill:var(--cream-dim);font-family:var(--font-body)}.metabolism-curves-legend{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border)}.metabolism-curves-legend-item{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--cream-dim);cursor:pointer;background:none;border:none;padding:.15rem .3rem;border-radius:4px;transition:opacity .15s ease}.metabolism-curves-legend-item:hover{background:var(--bg-hover)}.metabolism-curves-legend-item.disabled{opacity:.4}.metabolism-curves-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.metabolism-curves-summary{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.7rem}.metabolism-curves-stat{color:var(--cream-dim)}.metabolism-curves-stat.burning{color:var(--green)}.metabolism-curves-stat.hungry{color:var(--orange)}.metabolism-curves-stat.bad{color:var(--red)}.metabolism-curves-stat.ketone{color:#a855f7}.metabolism-curves-readout{display:flex;gap:.75rem;flex-wrap:wrap;padding:.4rem .5rem;background:var(--bg-elevated);border-radius:6px;margin-bottom:.4rem;font-size:.7rem;font-variant-numeric:tabular-nums}.metabolism-curves-readout-time{font-weight:700;color:var(--cream);min-width:3rem}.metabolism-curves-readout-state{color:var(--cream-dim);margin-left:auto;font-style:italic}.metabolism-curves-event-label{font-family:var(--font-body);pointer-events:none}.metabolism-curves-events{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}.metabolism-curves-event-tag{font-size:.6rem;padding:.15rem .4rem;border:1px solid;border-radius:4px;white-space:nowrap}.metabolism-curves-empty{text-align:center;padding:2rem;color:var(--cream-dim);font-size:.85rem}.metabolism-optimizer{display:flex;flex-direction:column;gap:.75rem}.metabolism-optimizer-empty{text-align:center;padding:2rem;color:var(--cream-dim);font-size:.85rem}.metabolism-optimizer-header{display:flex;justify-content:space-between;align-items:center}.metabolism-optimizer-header h3{font-family:var(--font-display);font-size:1rem;margin:0}.metabolism-optimizer-refresh{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream);padding:.3rem .6rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .15s}.metabolism-optimizer-refresh:hover{background:var(--bg-hover)}.metabolism-optimizer-refresh:disabled{opacity:.5;cursor:not-allowed}.metabolism-optimizer-targets{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.75rem;color:var(--cream-dim);padding:.35rem .6rem;background:var(--bg-elevated);border-radius:6px;border:1px solid var(--border)}.metabolism-optimizer-totals{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;margin-bottom:.25rem}.metabolism-optimizer-totals-row{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.75rem;align-items:center;margin-bottom:.25rem}.metabolism-optimizer-total-label{color:var(--cream-dim);min-width:5rem}.metabolism-optimizer-total-value{color:var(--cream);font-weight:600}.metabolism-optimizer-total-macro{color:var(--cream-dim)}.metabolism-optimizer-remaining{color:var(--green);font-size:.7rem}.metabolism-optimizer-remaining.over{color:var(--red, #ef4444)}.metabolism-optimizer-progress-bar{height:4px;background:var(--border);border-radius:2px;margin-top:.35rem;overflow:hidden}.metabolism-optimizer-progress-fill{height:100%;background:var(--green);border-radius:2px;transition:width .3s ease}.metabolism-optimizer-progress-fill.over{background:var(--red, #ef4444)}.metabolism-optimizer-progress-fill.moderate{background:var(--orange, #f59e0b)}.metabolism-optimizer-progress-fill.low{background:var(--red, #ef4444)}.metabolism-optimizer-state{display:flex;gap:12px;font-size:.75rem;color:var(--cream-dim);padding:4px 0;flex-wrap:wrap}.metabolism-optimizer-state span{background:var(--bg-elevated);padding:2px 8px;border-radius:4px;font-variant-numeric:tabular-nums}.metabolism-optimizer-meal-macros{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.72rem;padding:.2rem 0}.macro-kcal{color:var(--cream);font-weight:600}.macro-p{color:#60a5fa}.macro-k{color:#fbbf24}.macro-f{color:#f97316}.macro-fiber{color:#34d399}.macro-gi{color:var(--cream-dim)}.metabolism-optimizer-meals{display:flex;flex-direction:column;gap:.5rem}.metabolism-optimizer-meal{display:flex;flex-direction:column;gap:.3rem}.metabolism-optimizer-meal-slot{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.metabolism-optimizer-slot-emoji{font-size:1rem}.metabolism-optimizer-slot-time{font-weight:600;color:var(--cream-dim)}.metabolism-optimizer-slot-type{color:var(--cream-dim)}.metabolism-optimizer-meal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem}.metabolism-optimizer-meal-top{display:flex;justify-content:space-between;align-items:center}.metabolism-optimizer-recipe-name{font-size:.85rem}.metabolism-optimizer-score{font-size:.7rem;font-weight:600;padding:.1rem .35rem;border-radius:4px}.metabolism-optimizer-score.score-great{background:#22c55e26;color:var(--green)}.metabolism-optimizer-score.score-ok{background:#eab30826;color:#eab308}.metabolism-optimizer-score.score-poor{background:#ef444426;color:var(--red)}.metabolism-optimizer-meal-meta{display:flex;gap:.6rem;font-size:.7rem;color:var(--cream-dim);margin-top:.15rem}.metabolism-optimizer-reasons{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}.metabolism-optimizer-reason{font-size:.65rem;color:var(--cream-dim);background:var(--bg-elevated);padding:.1rem .3rem;border-radius:3px}.metabolism-optimizer-limits{font-size:.7rem;color:var(--cream-dim);margin-top:.15rem;font-style:italic}.metabolism-optimizer-actions{display:flex;gap:.4rem;margin-top:.4rem}.metabolism-optimizer-add-btn{flex:1;background:var(--green);color:#000;border:none;padding:.35rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s}.metabolism-optimizer-add-btn:hover{background:var(--green-dim)}.metabolism-optimizer-alt-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--cream-dim);padding:.35rem .5rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .15s}.metabolism-optimizer-alt-btn:hover{background:var(--bg-hover);color:var(--cream)}.metabolism-optimizer-alts{display:flex;flex-direction:column;gap:.2rem;padding-left:1rem}.metabolism-optimizer-alt-item{display:flex;align-items:center;gap:.5rem;background:var(--bg-elevated);border:1px solid var(--border);padding:.35rem .5rem;border-radius:6px;cursor:pointer;transition:border-color .15s;text-align:left;color:var(--cream);font-size:.8rem}.metabolism-optimizer-alt-item:hover{border-color:var(--green)}.metabolism-optimizer-alt-name{flex:1}.metabolism-optimizer-alt-meta{font-size:.65rem;color:var(--cream-dim)}.metabolism-variant-strip{display:flex;gap:.5rem;margin-bottom:.75rem}.metabolism-variant-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--cream-dim);cursor:pointer;transition:all .15s ease}.metabolism-variant-btn.active{border-color:var(--green);color:var(--cream);background:#22c55e14}.metabolism-variant-btn:hover:not(.active){border-color:var(--border-light);color:var(--cream)}.metabolism-variant-label{font-size:.7rem;font-weight:600}.metabolism-variant-kcal{font-size:.65rem;opacity:.7}.metabolism-optimizer-meal.slot-locked{border-left:3px solid var(--green)}.metabolism-slot-lock-badge{font-size:.6rem;color:var(--green);margin-left:auto}.metabolism-slot-action-btn{padding:.3rem .5rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--cream-dim);cursor:pointer;font-size:.65rem;transition:all .15s ease}.metabolism-slot-action-btn:hover{background:var(--bg-hover);color:var(--cream)}.metabolism-slot-action-btn.lock:hover{border-color:var(--green);color:var(--green)}.metabolism-slot-action-btn.unlock:hover{border-color:var(--orange);color:var(--orange)}.metabolism-slot-action-btn.skip:hover{border-color:var(--cream-dim)}.metabolism-optimizer-slot-skipped{display:flex;align-items:center;gap:.5rem;padding:.6rem;background:var(--bg-card);border:1px dashed var(--border);border-radius:8px;opacity:.6}.metabolism-slot-skipped-label{font-size:.7rem;color:var(--cream-dim);font-style:italic}.metabolism-slot-budget-note{font-size:.6rem;color:var(--green);margin-left:auto}.metabolism-optimizer-detail-btn{padding:.3rem .6rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--cream-dim);cursor:pointer;font-size:.7rem;transition:all .15s ease}.metabolism-optimizer-detail-btn:hover{background:var(--bg-hover);color:var(--cream);border-color:var(--blue)}.metabolism-ingredient-breakdown{margin-top:.5rem;padding:.6rem;background:var(--bg-deep);border-radius:6px;border:1px solid var(--border)}.metabolism-ingredient-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.metabolism-ingredient-portion{font-size:.7rem;color:var(--cream-dim);font-weight:500}.metabolism-ingredient-weight{font-size:.65rem;color:var(--cream-dim);opacity:.7}.metabolism-ingredient-list{display:flex;flex-direction:column;gap:.25rem}.metabolism-ingredient-row{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;padding:.2rem 0;font-size:.7rem;border-bottom:1px solid rgba(255,255,255,.03)}.metabolism-ingredient-row:last-child{border-bottom:none}.metabolism-ingredient-name{color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metabolism-ingredient-qty{color:var(--cream-dim);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.metabolism-ingredient-grams{font-size:.6rem;opacity:.6}.metabolism-ingredient-macros{display:flex;gap:.3rem;font-size:.6rem;white-space:nowrap}.metabolism-ingredient-insights{margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.2rem}.metabolism-ingredient-insight{font-size:.65rem;color:var(--cream-dim)}.metabolism-ingredient-insight.warning{color:var(--orange)}.metabolism-optimizer-day{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden}.metabolism-optimizer-day-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .75rem;background:transparent;border:none;color:var(--cream);cursor:pointer;font-size:.8rem;text-align:left;transition:background .15s}.metabolism-optimizer-day-header:hover{background:var(--bg-hover)}.metabolism-optimizer-day-name{font-weight:600;min-width:4rem}.metabolism-optimizer-day-type{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border:1px solid var(--border);border-radius:999px}.metabolism-optimizer-day-slots-count{font-size:.7rem;color:var(--cream-dim)}.metabolism-optimizer-day-macros{display:flex;gap:.4rem;font-size:.7rem;margin-left:auto}.metabolism-optimizer-day-cost{font-size:.7rem;color:var(--green);font-weight:600;min-width:2.5rem;text-align:right}.metabolism-optimizer-day-chevron{font-size:.6rem;color:var(--cream-dim)}.metabolism-optimizer-day-progress{height:3px;background:var(--border);overflow:hidden}.metabolism-optimizer-day-slots{display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.metabolism-optimizer-sale-badge{font-size:.65rem;color:var(--green);font-weight:600}.metabolism-optimizer-reason.good{color:var(--green)}.metabolism-optimizer-reason.warn,.macro-p.warn,.macro-k.warn{color:var(--orange, #f97316)}.metabolism-optimizer-insights{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.metabolism-optimizer-insight{font-size:.72rem;padding:.3rem .6rem;border-radius:5px;border-left:3px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim)}.metabolism-optimizer-insight.green{border-left-color:var(--green, #22c55e);color:var(--green, #22c55e)}.metabolism-optimizer-insight.orange{border-left-color:var(--orange, #f97316);color:var(--orange, #f97316)}.metabolism-optimizer-insight.blue{border-left-color:#60a5fa;color:#60a5fa}.metabolism-optimizer-breakdown{margin-top:.3rem;padding:.3rem .4rem;background:var(--bg-elevated);border-radius:5px;border:1px solid var(--border)}.metabolism-optimizer-breakdown strong{font-size:.65rem;color:var(--cream-dim);display:block;margin-bottom:.2rem}.metabolism-optimizer-breakdown-items{display:flex;gap:.35rem;flex-wrap:wrap}.metabolism-optimizer-breakdown-item{font-size:.6rem;padding:.1rem .25rem;border-radius:3px;background:#ffffff0a;font-variant-numeric:tabular-nums}.metabolism-optimizer-breakdown-item.positive{color:var(--green, #22c55e)}.metabolism-optimizer-breakdown-item.negative{color:var(--orange, #f97316)}.metabolism-optimizer-alternatives{margin-top:.3rem;padding:.3rem .4rem;background:var(--bg-elevated);border-radius:5px;border:1px solid var(--border)}.metabolism-optimizer-alternatives strong{font-size:.65rem;color:var(--cream-dim);display:block;margin-bottom:.2rem}.metabolism-optimizer-alt{display:flex;align-items:baseline;gap:.4rem;font-size:.65rem;color:var(--cream-dim);padding:.1rem 0}.metabolism-optimizer-alt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metabolism-optimizer-alt-score{font-variant-numeric:tabular-nums;white-space:nowrap}.metabolism-optimizer-alt-reason{font-size:.6rem;color:var(--cream-dim);opacity:.7;white-space:nowrap}@media(max-width:600px){.metabolism-tab{padding:.75rem}.metabolism-compact-grid{grid-template-columns:repeat(2,1fr)}.metabolism-preset-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.metabolism-optimizer-day-macros{display:none}}.profile-grid{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start}.profile-col-main,.profile-col-side{display:flex;flex-direction:column;gap:16px}.profile-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.profile-section-title{padding:14px 20px 0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--cream)}.profile-section-body{padding:8px 20px 20px}.profile-hint{font-size:.8rem;color:var(--cream-dim);margin-bottom:12px;line-height:1.4}.profile-summary{margin-top:12px;padding:8px 12px;background:var(--bg-elevated);border-radius:8px;font-size:.85rem;color:var(--cream-dim);text-align:center}.profile-counter-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.profile-counter-label{font-size:.9rem}.profile-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.profile-chip{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim);font-size:.8rem;cursor:pointer;transition:all .15s ease}.profile-chip:hover{border-color:var(--border-light);color:var(--cream)}.profile-chip.active{border-color:var(--green);background:var(--green-glow);color:var(--green)}.profile-preset-list{display:flex;flex-direction:column;gap:8px}.profile-preset-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);cursor:pointer;transition:all .15s ease;text-align:left}.profile-preset-card:hover{border-color:var(--border-light)}.profile-preset-card.active{border-color:var(--green);background:var(--green-glow)}.profile-preset-icon{font-size:1.4rem;flex-shrink:0}.profile-preset-name{font-weight:600;font-size:.9rem}.profile-preset-desc{font-size:.75rem;color:var(--cream-dim);margin-top:1px}.profile-store-list{display:flex;flex-direction:column;gap:6px}.profile-store-chip{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim);cursor:pointer;font-size:.85rem;transition:all .15s ease}.profile-store-chip:hover{border-color:var(--border-light);color:var(--cream)}.profile-store-chip.active{border-color:var(--green);background:var(--green-glow);color:var(--green)}.profile-store-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.profile-field{margin-bottom:10px}.profile-field-label{display:block;font-size:.8rem;color:var(--cream-dim);margin-bottom:4px}.profile-field-hint{font-size:.75rem;color:var(--cream-dim);margin-top:4px;opacity:.8}.profile-input,.profile-select{width:100%;padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.85rem;font-family:inherit}.profile-input:focus,.profile-select:focus{border-color:var(--green);outline:none}.profile-saved-badge{display:inline-block;margin-left:10px;padding:2px 10px;border-radius:12px;background:var(--green-glow);color:var(--green);font-size:.75rem;font-weight:600;animation:profileSavedFade 1.2s ease-out forwards}.profile-notif-error{display:inline-block;margin-left:10px;font-size:.8rem;color:var(--red)}@keyframes profileSavedFade{0%{opacity:1}70%{opacity:1}to{opacity:0}}.profile-active-summary{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);font-size:.8rem;color:var(--cream-dim)}.profile-active-icon{font-size:1.1rem}.profile-active-sep{color:var(--border-light)}@media(max-width:768px){.profile-grid{grid-template-columns:1fr}}.admin-shell{display:flex;min-height:100vh;background:var(--bg-deep)}.admin-nav{width:220px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem 0;position:fixed;top:0;left:0;bottom:0;z-index:100}.admin-nav-brand{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1rem}.admin-nav-icon{font-size:1.2rem}.admin-nav-title{font-family:var(--font-display);font-weight:600;color:var(--green);font-size:1rem}.admin-nav-items{flex:1;display:flex;flex-direction:column;gap:2px}.admin-nav-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;color:var(--cream-dim);text-decoration:none;font-size:.85rem;transition:background .15s,color .15s}.admin-nav-item:hover{background:var(--bg-hover);color:var(--cream)}.admin-nav-item.active{background:var(--green-glow);color:var(--green)}.admin-nav-item-icon{font-size:1rem}.admin-nav-footer{border-top:1px solid var(--border);padding-top:.5rem;margin-top:.5rem}.admin-nav-user{padding:.4rem 1rem;color:var(--cream-dim);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-main{flex:1;margin-left:220px;padding:2rem;max-width:1200px}.admin-page{animation:adminFadeIn .2s ease-out}@keyframes adminFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.admin-page-title{font-family:var(--font-display);font-size:1.5rem;color:var(--cream);margin-bottom:1.5rem}.admin-loading{padding:3rem;text-align:center;color:var(--cream-dim)}.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}.admin-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.2rem;text-decoration:none;transition:border-color .15s,transform .15s}.admin-stat-card:hover{border-color:var(--green);transform:translateY(-2px)}.admin-stat-value{font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1.1}.admin-stat-label{color:var(--cream-dim);font-size:.8rem;margin-top:.3rem}.admin-quick-actions h2{font-size:1rem;color:var(--cream-dim);margin-bottom:.75rem}.admin-filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.admin-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--cream);padding:.5rem .75rem;font-size:.85rem;font-family:var(--font-body);outline:none;transition:border-color .15s}.admin-input:focus{border-color:var(--green)}.admin-search{min-width:250px}.admin-filters select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--cream);padding:.5rem .75rem;font-size:.85rem;cursor:pointer}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:1rem}.admin-table th{text-align:left;padding:.6rem .75rem;color:var(--cream-dim);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.admin-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);color:var(--cream)}.admin-table tbody tr:hover{background:var(--bg-hover)}.admin-table-compact td{padding:.35rem .5rem;font-size:.8rem}.admin-td-name{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-empty{text-align:center;color:var(--cream-dim);padding:2rem!important}.admin-link{color:var(--green);text-decoration:none}.admin-link:hover{text-decoration:underline}.admin-status{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.admin-status-queued{background:#94a3b826;color:#94a3b8}.admin-status-processing{background:#3b82f626;color:var(--blue)}.admin-status-review{background:#a855f726;color:#a855f7}.admin-status-approved{background:#22c55e26;color:var(--green)}.admin-status-rejected{background:#ef444426;color:var(--red)}.admin-status-merged{background:#f59e0b26;color:var(--orange)}.admin-status-failed{background:#ef444440;color:var(--red)}.admin-queue-stats{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.admin-pill{padding:.25rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:500;background:var(--bg-elevated);color:var(--cream-dim)}.admin-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.85rem;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.admin-btn:hover{background:var(--bg-hover);border-color:var(--border-light)}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn-sm{padding:.3rem .6rem;font-size:.8rem}.admin-btn-approve{border-color:var(--green);color:var(--green)}.admin-btn-approve:hover{background:var(--green-glow)}.admin-btn-reject{border-color:var(--red);color:var(--red)}.admin-btn-reject:hover{background:#ef44441a}.admin-btn-xs{padding:.2rem .45rem;font-size:.75rem}.admin-btn-danger{border-color:var(--red);color:var(--red)}.admin-btn-danger:hover{background:#ef44441a}.admin-btn-primary{border-color:var(--green);color:var(--green)}.admin-btn-primary:hover{background:var(--green-glow)}.admin-status-pill{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.02em}.status-active{background:#22c55e26;color:var(--green)}.status-expired{background:#94a3b826;color:#94a3b8}.status-upcoming{background:#3b82f626;color:var(--blue)}.status-inactive{background:#f59e0b26;color:var(--orange)}.admin-td-price{font-weight:600;color:var(--green);white-space:nowrap}.admin-td-price-orig{color:var(--cream-dim);white-space:nowrap}.admin-td-dates{white-space:nowrap;font-size:.8rem}.admin-savings{color:var(--green);font-weight:600;font-size:.85rem}.admin-expiry-soon{color:var(--orange);font-weight:600}.admin-expiry-past{color:var(--red);font-size:.8rem}.admin-row-muted{opacity:.5}.admin-actions{white-space:nowrap}.admin-actions .admin-btn+.admin-btn{margin-left:.25rem}.admin-edit-row{background:var(--bg-elevated)!important}.admin-date-range{display:flex;align-items:center;gap:.35rem}.admin-date-range input[type=date]{max-width:130px}.admin-checkbox-inline{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;cursor:pointer}.admin-checkbox-inline input[type=checkbox]{accent-color:var(--green)}.admin-action-row{display:flex;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}.admin-merge-row{display:flex;gap:.5rem;margin-top:.5rem}.admin-merge-row .admin-input{flex:1}.admin-pagination{display:flex;align-items:center;gap:1rem;margin-top:1rem}.admin-pagination button{padding:.4rem .8rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);cursor:pointer;font-size:.8rem}.admin-pagination button:disabled{opacity:.4;cursor:not-allowed}.admin-pagination span{color:var(--cream-dim);font-size:.8rem}.admin-review-grid{display:flex;flex-direction:column;gap:1.5rem}.admin-review-section{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.admin-review-section h3{font-size:.9rem;color:var(--green);margin-bottom:.75rem}.admin-review-section p{margin:.3rem 0;font-size:.85rem}.admin-error-text{color:var(--red)}.admin-completeness-bar,.admin-similarity-bar{height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.admin-completeness-fill{height:100%;background:var(--green);border-radius:4px;transition:width .3s}.admin-similarity-fill{height:100%;border-radius:4px;transition:width .3s}.admin-match-list{margin:.5rem 0 0 1rem;font-size:.8rem;color:var(--cream-dim)}.admin-json-editor{width:100%;background:var(--bg-deep);border:1px solid var(--border);border-radius:6px;color:var(--cream);font-family:SF Mono,Fira Code,monospace;font-size:.8rem;padding:.75rem;resize:vertical;margin-bottom:.5rem}.admin-notes{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--cream);font-family:var(--font-body);font-size:.85rem;padding:.5rem .75rem;resize:vertical;margin-bottom:.5rem}.admin-form{display:flex;flex-direction:column;gap:1rem;max-width:700px}.admin-field{display:flex;flex-direction:column;gap:.3rem}.admin-field>span{font-size:.8rem;color:var(--cream-dim);font-weight:500}.admin-field textarea{font-family:var(--font-body);resize:vertical}.admin-field-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.admin-checkbox{flex-direction:row;align-items:center;gap:.5rem;cursor:pointer}.admin-checkbox input[type=checkbox]{accent-color:var(--green)}.admin-filter-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.75rem}.admin-filter-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end}.admin-filter-row select,.admin-filter-row .admin-input{min-width:140px;flex:1}.admin-filter-range{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--cream-dim)}.admin-filter-range span{white-space:nowrap}.admin-input-sm{max-width:80px;padding:.35rem .5rem!important;font-size:.8rem!important}.admin-sort-select{min-width:160px}.admin-active-filters{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}.admin-filter-chip{background:#22c55e26;color:var(--green);padding:.25rem .6rem;border-radius:99px;font-size:.75rem;cursor:pointer;transition:background .15s}.admin-filter-chip:hover{background:#22c55e40}.admin-completeness-info{font-size:.75rem;color:var(--cream-dim);padding:.25rem 0}.admin-completeness-text{font-size:.8rem;color:var(--cream-dim);margin:.25rem 0 .75rem}.admin-info-text{font-size:.8rem;color:var(--cream-dim);margin:.5rem 0}.admin-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.admin-tab{background:transparent;border:none;padding:.6rem 1.2rem;color:var(--cream-dim);font-size:.85rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.admin-tab:hover{color:var(--cream)}.admin-tab.active{color:var(--green);border-bottom-color:var(--green)}.admin-revisions{display:flex;flex-direction:column;gap:.75rem}.admin-revision-item{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.75rem 1rem;border-left:3px solid var(--border)}.admin-revision-item:hover{border-left-color:var(--green)}.admin-revision-header{display:flex;gap:1rem;align-items:center;margin-bottom:.3rem}.admin-revision-action{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:4px;text-transform:uppercase}.admin-revision-created{background:#22c55e26;color:var(--green)}.admin-revision-updated{background:#3b82f626;color:var(--blue)}.admin-revision-deleted{background:#ef444426;color:var(--red)}.admin-revision-merged{background:#f59e0b26;color:var(--orange)}.admin-revision-by{font-size:.8rem;color:var(--cream-dim)}.admin-revision-date{font-size:.75rem;color:var(--cream-dim);margin-left:auto}.admin-revision-reason{font-size:.8rem;color:var(--cream-dim);font-style:italic;margin:.25rem 0}.admin-revision-fields{font-size:.75rem;color:var(--cream-dim);margin:.25rem 0}.admin-bulk-bar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:#22c55e14;border:1px solid rgba(34,197,94,.2);border-radius:6px;margin-bottom:1rem;font-size:.85rem}.admin-bulk-bar>span{color:var(--green);font-weight:600;white-space:nowrap}.admin-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.admin-compare-col h4{font-size:.8rem;text-transform:uppercase;color:var(--cream-dim);margin-bottom:.5rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.admin-compare-field{display:flex;gap:.5rem;padding:.3rem .5rem;font-size:.8rem;border-radius:3px;margin-bottom:1px}.admin-compare-diff{background:#f59e0b14;border-left:2px solid var(--orange)}.admin-compare-key{color:var(--cream-dim);min-width:100px;flex-shrink:0;font-weight:500}.admin-compare-val{color:var(--cream);word-break:break-all}.admin-compare-summary{font-size:.8rem;color:var(--orange);margin-top:.75rem;font-weight:600}.admin-validation-list{display:flex;flex-direction:column;gap:.4rem}.admin-validation-item{display:flex;gap:.5rem;align-items:flex-start;padding:.4rem .6rem;border-radius:4px;font-size:.8rem}.admin-validation-error{background:#ef444414;color:var(--red)}.admin-validation-warning{background:#f59e0b14;color:var(--orange)}.admin-validation-info{background:#3b82f614;color:var(--blue)}.admin-validation-icon{flex-shrink:0}.admin-match-item{padding:.3rem 0}.admin-match-radio{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8rem}.admin-match-radio input[type=radio]{accent-color:var(--green)}.admin-match-name{flex:1;color:var(--cream)}.admin-match-score{color:var(--cream-dim);font-size:.75rem;font-weight:600}.admin-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:768px){.admin-nav{width:60px}.admin-nav-title,.admin-nav-item span:not(.admin-nav-item-icon),.admin-nav-user{display:none}.admin-nav-item{justify-content:center;padding:.6rem}.admin-nav-item-icon{font-size:1.2rem}.admin-main{margin-left:60px;padding:1rem}.admin-field-row{grid-template-columns:1fr}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-filter-row{flex-direction:column}.admin-compare-grid{grid-template-columns:1fr}.admin-bulk-bar{flex-wrap:wrap}.admin-ingredient-actions{flex-direction:column;gap:2px}}.admin-ingredients-section{margin-top:1.5rem}.admin-ingredients-section h3{margin-bottom:.75rem}.admin-input-sm{padding:.25rem .4rem;font-size:.85rem;min-width:0}.admin-ingredient-name{display:block;font-weight:500;color:var(--cream);font-size:.9rem}.admin-ingredient-slug{display:block;font-size:.75rem;color:var(--cream-dim);opacity:.7}.admin-ingredient-actions{display:flex;gap:4px;align-items:center}.admin-btn-icon{background:transparent;border:1px solid var(--border);color:var(--cream-dim);width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;padding:0;transition:all .15s}.admin-btn-icon:hover:not(:disabled){background:var(--bg-hover);color:var(--cream);border-color:var(--border-light)}.admin-btn-icon:disabled{opacity:.3;cursor:not-allowed}.admin-btn-icon-danger:hover:not(:disabled){background:#ef444426;color:var(--red);border-color:var(--red)}.admin-add-ingredient{display:flex;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.admin-add-ingredient-label{font-size:.85rem;color:var(--cream-dim);white-space:nowrap}.admin-product-search{position:relative;flex:1;max-width:320px}.admin-product-search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:6px;margin-top:4px;max-height:240px;overflow-y:auto;box-shadow:0 8px 24px #0006}.admin-product-search-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem .75rem;background:transparent;border:none;color:var(--cream);cursor:pointer;font-size:.85rem;text-align:left;transition:background .1s}.admin-product-search-item:hover{background:var(--bg-hover)}.admin-product-search-item+.admin-product-search-item{border-top:1px solid var(--border)}.admin-variant-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.admin-variant-brand-selected{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:var(--bg-hover);border-radius:6px;font-size:.9rem;color:var(--cream)}.admin-brand-variants-section h3{margin:0}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.admin-create-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.admin-product-search-name{font-weight:500}.admin-product-search-unit{font-size:.75rem;color:var(--cream-dim);opacity:.7;margin-left:.5rem}.weekplan-page{max-width:var(--content-max);margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.page-header-actions{display:flex;align-items:center;gap:8px}.page-subtitle{font-size:.85rem;color:#f5f0e880;margin-top:4px;line-height:1.4;font-weight:400}.weekplan-settings-section{margin-top:4px;margin-bottom:20px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);overflow:hidden}.weekplan-settings-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:none;border:none;color:#f5f0e899;font-size:.85rem;cursor:pointer;transition:color .15s}.weekplan-settings-toggle:hover{color:var(--cream)}.weekplan-settings-toggle>span:first-child{font-weight:600;color:#f5f0e8b3}.weekplan-settings-hint{flex:1;text-align:left;font-size:.78rem;color:#f5f0e859}.weekplan-settings-chevron{font-size:.7rem;opacity:.5}.weekplan-settings-body{padding:0 16px 16px;border-top:1px solid var(--border);animation:fadeSlideDown .2s var(--ease-out-expo)}.weekplan-settings-body .quick-controls{margin-bottom:0;margin-top:12px}.plan-nav-inline{display:flex;align-items:center;gap:4px}.plan-nav-label{font-size:.8rem;color:#f5f0e88c;min-width:36px;text-align:center}.empty-state-hint{font-size:.88rem;color:#f5f0e88c;margin-top:8px;line-height:1.5}.empty-state-icon{font-size:3rem;margin-bottom:12px}.empty-state-content{text-align:center;padding:2.5rem 1.25rem}.empty-state-spinner{margin:0 auto 1rem}.empty-state-error{color:var(--danger, #ef4444)}.empty-state-title{font-size:1.1rem}.empty-state-action{margin-top:1rem;width:auto}.week-grid-empty{grid-column:1 / -1}.shopping-preview-empty{padding:1.25rem;color:var(--cream-dim);text-align:center}.pantry-price{color:var(--cream-dim)}.leftover-suggestions-list{padding:.75rem}.quick-controls{margin-bottom:12px}.quick-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.quick-chip{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-card);color:var(--cream);font-size:.85rem;cursor:pointer;transition:all .2s var(--ease-out-expo);white-space:nowrap}.quick-chip:hover{border-color:var(--warm-accent);background:var(--warm-glow)}.quick-chip.active{border-color:var(--warm-accent);background:var(--warm-glow);color:var(--warm-accent)}.quick-chip-on{border-color:#7ecba1;color:#7ecba1}.quick-chip-regen{background:var(--warm-accent);border-color:var(--warm-accent);color:#fff;font-weight:700;padding:8px 20px;font-size:.88rem;letter-spacing:.01em;box-shadow:0 2px 12px #e8853d40}.quick-chip-regen:hover{background:var(--warm-accent-dim);border-color:var(--warm-accent-dim);box-shadow:0 4px 18px #e8853d59;transform:translateY(-1px)}.quick-chip-regen:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.quick-expand{margin-top:10px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;animation:fadeSlideDown .2s var(--ease-out-expo)}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.quick-counter-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;font-size:.9rem}.quick-counter{display:flex;align-items:center;gap:12px}.quick-counter button{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.quick-counter button:hover:not(:disabled){border-color:var(--warm-accent);background:var(--warm-glow)}.quick-counter button:disabled{opacity:.3;cursor:not-allowed}.quick-counter span{min-width:24px;text-align:center;font-weight:600}.quick-preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-preset-btn{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.85rem;cursor:pointer;transition:all .15s}.quick-preset-btn:hover{border-color:var(--warm-accent);background:var(--warm-glow)}.quick-preset-btn.active{border-color:var(--warm-accent);background:var(--warm-glow);color:var(--warm-accent)}.quick-preset-icon{font-size:1.1rem}.quick-preset-desc{font-size:.72rem;color:var(--cream-dim);font-weight:400}.quick-store-grid{display:flex;flex-wrap:wrap;gap:8px}.quick-store-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream);font-size:.85rem;cursor:pointer;transition:all .15s}.quick-store-chip:hover{border-color:var(--warm-accent)}.quick-store-chip.selected{border-color:var(--warm-accent);background:var(--warm-glow)}.stats-bar{display:flex;gap:2px;padding:0;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:24px;overflow:hidden}.stats-bar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:14px 12px;position:relative}.stats-bar-item+.stats-bar-item:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--border)}.stats-bar-value{font-size:1.3rem;font-weight:700;color:var(--cream);font-family:var(--font-display);line-height:1.2}.stats-bar-item.savings .stats-bar-value{color:var(--green)}.stats-bar-label{font-size:.68rem;color:#f5f0e880;text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.week-grid-new{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:28px}.day-card-new{background:var(--card-warm-bg);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:all .25s var(--ease-out-expo)}.day-card-new:hover{border-color:var(--border-light);transform:translateY(-2px);box-shadow:0 8px 24px #0003}.day-card-new.today{border-color:var(--today-border);background:linear-gradient(135deg,var(--today-glow) 0%,var(--card-warm-bg) 50%);box-shadow:0 0 20px var(--today-glow)}.day-card-new.tomorrow{border-color:#ffb74d4d}.day-card-new.skipped{opacity:.5}.day-card-leftover{border-style:dashed;border-color:var(--green);background:linear-gradient(135deg,rgba(76,175,80,.06) 0%,var(--card-warm-bg) 60%)}.day-card-leftover:hover{border-color:var(--green)}.day-card-leftover-badge{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--green);padding:2px 8px;border-radius:6px;background:#4caf501f}.day-card-remove{margin-left:auto;font-size:.7rem;padding:2px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim);cursor:pointer;transition:all .15s ease}.day-card-remove:hover{border-color:var(--warm-accent);color:var(--warm-accent);background:#ff6b6b14}.day-card-header{display:flex;align-items:center;gap:8px;padding:10px 14px 0;font-size:.8rem;color:#f5f0e899}.day-card-label{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:#f5f0e8b3}.day-card-label.today-label{color:var(--today-border);font-weight:700}.day-card-date{margin-left:auto;font-size:.75rem;color:#f5f0e880;font-variant-numeric:tabular-nums}.day-card-locked{font-size:.65rem;padding:1px 6px;border-radius:6px;background:var(--bg-elevated);border:1px solid var(--border)}.day-card-guests{font-size:.7rem;padding:1px 5px;border-radius:6px;background:var(--blue);color:#fff}.day-card-unskip{font-size:.7rem;padding:2px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim);cursor:pointer}.day-card-unskip:hover{border-color:var(--warm-accent);color:var(--warm-accent)}.day-card-body{display:flex;align-items:center;gap:12px;padding:12px 14px 14px;cursor:pointer}.day-card-body.skipped-body{padding:16px 14px;justify-content:center}.day-card-skipped-text{color:var(--cream-dim);font-style:italic;font-size:.9rem}.day-card-emoji{font-size:2.2rem;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.day-card-info{flex:1;min-width:0}.day-card-recipe{font-size:1.02rem;font-weight:600;font-family:var(--font-display);line-height:1.3;color:var(--cream)}.day-card-meta{display:flex;gap:4px;font-size:.8rem;color:#f5f0e899;margin-top:3px}.day-card-meta span+span:before{content:"·";margin-right:4px;color:#f5f0e84d}.satiety-tag{font-size:.7rem;font-weight:500;padding:1px 5px;border-radius:4px}.satiety-tag.high{color:#a8e6a3}.satiety-tag.mid{color:var(--cream-dim)}.satiety-tag.low{color:#f0c070}.quality-tag{font-size:.7rem;font-weight:500;padding:1px 5px;border-radius:4px}.quality-tag.high{color:#7ecba1}.day-card-nutrition-tip{font-size:.68rem;color:#f0c070;margin-top:3px;font-style:italic;opacity:.85}.day-card-sale{flex-shrink:0;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:8px;background:#ef444426;color:var(--red);border:1px solid rgba(239,68,68,.2)}.day-card-new.drag-over{border-color:var(--warm-accent);background:var(--warm-glow)}.day-card-body.dragging{opacity:.5}.week-grid-new.is-leaving{opacity:0;transform:scale(.98);transition:all .2s ease-out}.week-grid-new.is-loading{opacity:0}.decision-insights{display:flex;flex-direction:column;gap:8px;margin:16px 0;padding:12px 16px;background:#f5f0e808;border-radius:12px;border:1px solid rgba(245,240,232,.08)}.decision-insight{display:flex;gap:10px;font-size:.9rem;line-height:1.4}.decision-insight.green .insight-bullet{color:#a8e6a3}.decision-insight.blue .insight-bullet{color:#70a1ff}.decision-insight.orange .insight-bullet{color:#f0c070}.decision-insight.green .insight-text,.decision-insight.blue .insight-text,.decision-insight.orange .insight-text{color:var(--cream)}.solver-info{margin-top:32px;padding:16px;font-size:.75rem;color:var(--cream-dim);text-align:center;opacity:.5;border-top:1px solid rgba(245,240,232,.05)}.solver-label{font-weight:600;text-transform:uppercase;letter-spacing:.05em}.solver-preset{font-style:italic}.custom-recipes-tab{padding-bottom:40px}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:24px}.recipe-card-mini{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.recipe-card-name{font-weight:600;font-size:1.1rem;color:var(--cream)}.recipe-card-meta{font-size:.85rem;color:var(--cream-dim)}.recipe-card-actions{display:flex;gap:8px;margin-top:8px}.recipe-edit-modal{max-width:660px;width:95%}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-textarea{width:100%;padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;color:var(--cream);font-family:var(--font-body);font-size:.9rem;resize:vertical}.form-textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow)}.form-textarea::placeholder{color:var(--cream-dim)}@media(max-width:500px){.form-row{flex-direction:column;gap:0}}.ingredient-edit-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}.ing-input-name{flex:2;padding:8px;border-radius:6px;border:1px solid var(--border);background:#222;color:#fff}.ing-input-qty,.ing-input-unit{flex:.5;padding:8px;border-radius:6px;border:1px solid var(--border);background:#222;color:#fff}.ing-remove{background:none;border:none;color:var(--red);font-size:1.5rem;cursor:pointer}.ingredients-edit-section h3{font-size:1rem;margin:20px 0 12px;color:var(--cream)}.week-grid-new.is-entering .day-card-new{animation:cardFadeIn .4s var(--ease-out-expo) both}.week-grid-new.is-entering .day-card-new:nth-child(1){animation-delay:0s}.week-grid-new.is-entering .day-card-new:nth-child(2){animation-delay:.04s}.week-grid-new.is-entering .day-card-new:nth-child(3){animation-delay:.08s}.week-grid-new.is-entering .day-card-new:nth-child(4){animation-delay:.12s}.week-grid-new.is-entering .day-card-new:nth-child(5){animation-delay:.16s}.week-grid-new.is-entering .day-card-new:nth-child(6){animation-delay:.2s}.week-grid-new.is-entering .day-card-new:nth-child(7){animation-delay:.24s}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.quick-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.week-grid-new{grid-template-columns:1fr;gap:8px}.stats-bar{gap:0}.stats-bar-item{padding:10px 8px}.stats-bar-value{font-size:1.1rem}.page-header-actions{flex-wrap:wrap}.quick-preset-grid{grid-template-columns:1fr 1fr}.shopping-preview-list{padding:2px 8px 8px}.shopping-preview-item{gap:8px;padding:9px 4px;font-size:.85rem}}.rp-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:rpFadeIn .2s ease}@keyframes rpFadeIn{0%{opacity:0}to{opacity:1}}.rp-panel{background:var(--bg-card);border:1px solid var(--border-light);border-radius:20px;padding:24px;width:min(520px,100%);height:min(580px,85vh);display:flex;flex-direction:column;box-shadow:0 24px 80px #00000080;animation:rpSlideUp .3s var(--ease-out-expo)}@keyframes rpSlideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.rp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px;flex-shrink:0}.rp-header-text{display:flex;flex-direction:column;gap:2px}.rp-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin:0}.rp-subtitle{font-size:.8rem;color:var(--cream-dim)}.rp-close{border:1px solid var(--border);background:var(--bg-elevated);color:var(--cream-dim);border-radius:10px;padding:4px 10px;font-size:1.2rem;cursor:pointer;transition:all .15s;line-height:1}.rp-close:hover{border-color:var(--cream-dim);color:var(--cream)}.rp-reroll{display:flex;align-items:center;gap:10px;padding:14px 18px;background:linear-gradient(135deg,#e8853d1f,#22c55e14);border:1px solid var(--warm-accent-dim);border-radius:14px;color:var(--cream);cursor:pointer;transition:all .2s var(--ease-out-expo);flex-shrink:0;flex-wrap:wrap;font-family:var(--font-body);font-size:.9rem;font-weight:600;text-align:left}.rp-reroll:hover:not(:disabled){border-color:var(--warm-accent);background:linear-gradient(135deg,#e8853d33,#22c55e1f);transform:translateY(-1px);box-shadow:0 4px 16px #e8853d26}.rp-reroll:disabled{opacity:.7;cursor:wait}.rp-reroll.loading .rp-reroll-icon{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--warm-accent);border-radius:50%;animation:spin .8s linear infinite}.rp-reroll-icon{font-size:1.2rem;flex-shrink:0}.rp-reroll-hint{font-size:.75rem;color:var(--cream-dim);font-weight:400;width:100%;padding-left:30px;margin-top:-4px}.rp-suggestion{padding:16px 18px;background:linear-gradient(135deg,#22c55e1a,#e8853d0f);border:1px solid var(--green-dim);border-radius:14px;animation:rpCardIn .25s var(--ease-out-expo)}.rp-suggestion-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:4px}.rp-suggestion-name{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--cream);margin-bottom:12px}.rp-suggestion-actions{display:flex;gap:8px}.rp-suggestion-accept{padding:8px 18px;background:var(--green);color:var(--bg-deep);border:none;border-radius:10px;font-family:var(--font-body);font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s}.rp-suggestion-accept:hover{background:var(--green-dim);transform:translateY(-1px);box-shadow:0 3px 12px #22c55e40}.rp-suggestion-another{padding:8px 14px;background:var(--bg-elevated);color:var(--cream-dim);border:1px solid var(--border);border-radius:10px;font-family:var(--font-body);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.rp-suggestion-another:hover:not(:disabled){border-color:var(--cream-dim);color:var(--cream)}.rp-suggestion-another:disabled{opacity:.6;cursor:wait}.rp-divider{display:flex;align-items:center;gap:12px;margin:16px 0;flex-shrink:0}.rp-divider:before,.rp-divider:after{content:"";flex:1;height:1px;background:var(--border)}.rp-divider span{font-size:.75rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.rp-search-wrap{position:relative;flex-shrink:0;margin-bottom:12px}.rp-search{width:100%;padding:11px 36px 11px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;color:var(--cream);font-size:.9rem;font-family:var(--font-body);outline:none;transition:border-color .2s}.rp-search:focus{border-color:var(--green)}.rp-search::placeholder{color:var(--cream-dim)}.rp-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--cream-dim);cursor:pointer;font-size:1.1rem;padding:4px 6px;border-radius:6px;line-height:1}.rp-search-clear:hover{color:var(--cream)}.rp-results{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;min-height:0}.rp-empty{text-align:center;padding:32px 16px;color:var(--cream-dim);font-size:.85rem}.rp-recipe-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .15s ease;text-align:left;color:var(--cream);width:100%;font-family:var(--font-body);animation:rpCardIn .25s var(--ease-out-expo) both}@keyframes rpCardIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.rp-recipe-card:hover{border-color:var(--green);background:var(--bg-hover)}.rp-recipe-main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.rp-recipe-name{font-weight:600;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-recipe-tags{display:flex;gap:6px;flex-wrap:wrap}.rp-tag{font-size:.7rem;color:var(--cream-dim);background:#ffffff0d;padding:2px 8px;border-radius:6px;border:1px solid var(--border)}.rp-recipe-meta{display:flex;gap:8px;flex-shrink:0;align-items:center}.rp-meta-item{font-size:.75rem;color:var(--cream-dim);white-space:nowrap}@media(max-width:600px){.rp-overlay{padding:0}.rp-panel{width:100%;max-height:100vh;height:100vh;border-radius:0}}.undo-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--warm-glow);border:1px solid var(--warm-accent-dim);border-radius:12px;font-size:.85rem;color:var(--cream);animation:undoSlideIn .3s var(--ease-out-expo);margin-bottom:8px}.undo-banner-btn{background:var(--warm-accent);color:#fff;border:none;border-radius:8px;padding:6px 16px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s}.undo-banner-btn:hover{background:var(--warm-accent-dim)}@keyframes undoSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.rejected-recipes-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;margin-top:4px}.rejected-label{font-size:.78rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.04em}.rejected-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:.82rem;background:#b4503c26;color:var(--cream-dim);border:1px solid rgba(180,80,60,.3)}.rejected-chip-x{background:none;border:none;color:var(--cream-dim);cursor:pointer;font-size:1rem;line-height:1;padding:0 2px;opacity:.6;transition:opacity .15s}.rejected-chip-x:hover{opacity:1;color:var(--cream)}@media(min-width:1200px){.week-grid-new{grid-template-columns:repeat(4,1fr)}}.mealprep-hero{background:linear-gradient(135deg,#22c55e1a,#e8853d0f);border:1px solid rgba(34,197,94,.22);border-radius:20px;padding:28px;margin-bottom:24px}.mealprep-hero-header{margin-bottom:16px}.mealprep-hero-badge{display:inline-block;background:var(--green);color:#0d0d0f;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:4px 12px;border-radius:20px}.mealprep-hero-product{margin-bottom:20px}.mealprep-hero-product-name{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--cream);margin-bottom:6px}.mealprep-hero-pricing{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mealprep-sale-price{font-size:1.25rem;font-weight:700;color:var(--green)}.mealprep-original-price{font-size:.95rem;color:#f5f0e880;text-decoration:line-through}.mealprep-savings-tag{display:inline-block;background:#22c55e33;color:var(--green);font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:10px}.mealprep-savings-tag.small{font-size:.68rem;padding:1px 6px}.mealprep-hero-store{font-size:.85rem;color:#f5f0e899;margin-top:2px}.mealprep-hero-stats{display:flex;gap:20px;flex-wrap:wrap;margin:14px 0 18px;padding:14px 0;border-top:1px solid rgba(245,240,232,.08);border-bottom:1px solid rgba(245,240,232,.08)}.mealprep-hero-stat{display:flex;flex-direction:column;min-width:60px}.mealprep-hero-stat-value{font-size:1.1rem;font-weight:700;color:var(--cream);line-height:1.2}.mealprep-hero-stat-label{font-size:.72rem;color:#f5f0e88c;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.mealprep-hero-recipes{margin-bottom:16px}.mealprep-hero-recipes-label{font-size:.82rem;color:#f5f0e899;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.mealprep-hero-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:14px;border-top:1px solid rgba(245,240,232,.08)}.mealprep-hero-totals{display:flex;gap:16px;font-size:.88rem;color:#f5f0e8b3}.mealprep-recipe-card{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px;background:#f5f0e806;border:1px solid rgba(245,240,232,.06);border-radius:12px;margin-bottom:8px;transition:border-color .15s,background .15s}.mealprep-recipe-card:hover{border-color:#f5f0e824;background:#f5f0e80a}.mealprep-recipe-emoji{font-size:1.4rem;line-height:1;flex-shrink:0;margin-top:2px;width:28px;text-align:center}.mealprep-recipe-info{flex:1;min-width:0}.mealprep-recipe-name{font-weight:600;font-size:.92rem;color:var(--cream);margin-bottom:5px;line-height:1.3}.mealprep-recipe-meta{display:flex;gap:4px;font-size:.8rem;color:#f5f0e894;flex-wrap:wrap}.mealprep-recipe-meta span{white-space:nowrap}.mealprep-recipe-meta span+span:before{content:"·";margin-right:4px}.mealprep-freshness{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.freshness-badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;color:#f5f0e899;padding:2px 8px;border-radius:10px;border:1px solid rgba(245,240,232,.1)}.freshness-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.freshness-freeze{border-color:#6db3f240}.mealprep-more-deals{display:flex;flex-direction:column;gap:0}.mealprep-deal-row{border-bottom:1px solid rgba(245,240,232,.06)}.mealprep-deal-row:last-child{border-bottom:none}.mealprep-deal-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 4px;background:none;border:none;color:var(--cream);cursor:pointer;font-size:.92rem;text-align:left;transition:opacity .15s}.mealprep-deal-toggle:hover{opacity:.8}.mealprep-deal-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mealprep-deal-product{font-weight:600}.mealprep-deal-count{font-size:.8rem;color:#f5f0e88c}.mealprep-deal-chevron{font-size:.82rem;color:#f5f0e873;flex-shrink:0}.mealprep-deal-expanded{padding:0 4px 16px}.mealprep-deal-pricing{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.mealprep-deal-store{font-size:.85rem;color:#f5f0e88c}.mealprep-pantry-matches{display:flex;flex-direction:column;gap:20px}.mealprep-pantry-label{font-size:.88rem;color:#f5f0e899;margin-bottom:10px}.mealprep-pantry-label strong{color:var(--cream)}.mealprep-section-desc{font-size:.88rem;color:#f5f0e88c;margin:-4px 0 18px;line-height:1.45}.mealprep-evergreen-grid{display:flex;flex-direction:column;gap:0}.mealprep-evergreen-group{border-bottom:1px solid rgba(245,240,232,.06)}.mealprep-evergreen-group:last-child{border-bottom:none}.mealprep-evergreen-toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:14px 4px;background:none;border:none;color:var(--cream);cursor:pointer;font-size:.92rem;text-align:left;transition:opacity .15s}.mealprep-evergreen-toggle:hover{opacity:.85}.mealprep-evergreen-header-left{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.mealprep-evergreen-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-top:1px}.mealprep-evergreen-name{font-weight:600}.mealprep-evergreen-macros{font-size:.76rem;color:#e8b33d}.mealprep-evergreen-pairings-preview{font-size:.76rem;color:#f5f0e880}.mealprep-evergreen-count{font-size:.8rem;color:#f5f0e880}.mealprep-evergreen-recipes{padding:0 4px 16px}.mealprep-macros{display:flex;gap:8px;font-size:.76rem;color:#e8b33d;margin-top:5px}.mealprep-session-info{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.mealprep-session-badge{display:inline-flex;align-items:center;font-size:.78rem;color:#f5f0e899;background:#f5f0e80d;padding:4px 11px;border-radius:10px}.mealprep-copy-btn{display:inline-flex;align-items:center;gap:6px;background:#22c55e1f;color:var(--green);border:1px solid rgba(34,197,94,.25);border-radius:10px;padding:8px 16px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s}.mealprep-copy-btn:hover{background:#22c55e38;border-color:#22c55e66}.mealprep-hero-actions{margin-top:14px}.mealprep-search-section{padding:20px!important}.mealprep-search-input-wrap{position:relative}.mealprep-search-input{width:100%;background:#f5f0e80d;border:1px solid rgba(245,240,232,.1);border-radius:12px;padding:12px 40px 12px 16px;font-size:.92rem;color:var(--cream);outline:none;transition:border-color .2s}.mealprep-search-input::placeholder{color:#f5f0e84d}.mealprep-search-input:focus{border-color:#22c55e66}.mealprep-search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#f5f0e880;font-size:1rem;cursor:pointer;padding:4px;line-height:1}.mealprep-search-status{font-size:.88rem;color:#f5f0e880;margin-top:12px;text-align:center}.mealprep-search-result{margin-top:16px}.mealprep-search-result-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mealprep-search-result-name{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--cream)}.mealprep-search-actions{margin-top:12px}.mealprep-plan-section{border-color:#6db3f238}.mealprep-plan-group{padding:18px 0;border-bottom:1px solid rgba(245,240,232,.06)}.mealprep-plan-group:last-child{border-bottom:none;padding-bottom:0}.mealprep-plan-group-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.mealprep-plan-overlap{display:inline-flex;align-items:center;font-size:.78rem;font-weight:600;color:#6db3f2;background:#6db3f21a;padding:3px 10px;border-radius:10px}.mealprep-plan-shared{font-size:.85rem;color:#f5f0e88c;margin-bottom:10px}.mealprep-plan-recipes{display:flex;flex-direction:column;gap:8px}.mealprep-components-grid{display:flex;flex-direction:column;gap:0}.mealprep-component{border-bottom:1px solid rgba(245,240,232,.06)}.mealprep-component:last-child{border-bottom:none}.mealprep-component-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 4px;background:none;border:none;color:var(--cream);cursor:pointer;font-size:.92rem;text-align:left;transition:opacity .15s;gap:10px}.mealprep-component-header:hover{opacity:.85}.mealprep-component-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mealprep-component-type{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#e8b33d;background:#e8b33d1a;padding:3px 9px;border-radius:6px}.mealprep-component-name{font-weight:600}.mealprep-component-quick{display:flex;align-items:center;gap:8px;flex-shrink:0}.mealprep-component-macro{font-size:.76rem;color:#e8b33d}.mealprep-component-cost{font-size:.76rem;color:var(--green)}.mealprep-component-time{font-size:.76rem;color:#f5f0e88c}.mealprep-component-uses{font-size:.8rem;color:#f5f0e880}.mealprep-component-body{padding:0 4px 20px}.mealprep-component-yield{font-size:.88rem;color:var(--cream);background:#22c55e12;border:1px solid rgba(34,197,94,.16);border-radius:10px;padding:9px 14px;margin-bottom:14px;line-height:1.4}.mealprep-component-macros-full{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.mealprep-macro-pill{display:inline-flex;align-items:center;font-size:.76rem;color:#f5f0e899;background:#f5f0e80d;padding:4px 10px;border-radius:10px}.mealprep-macro-pill.protein{color:#e8b33d;background:#e8b33d14}.mealprep-component-ingredients{background:#f5f0e808;border:1px solid rgba(245,240,232,.07);border-radius:12px;padding:14px 16px;margin-bottom:14px}.mealprep-component-main-ing{font-weight:600;font-size:.92rem;color:var(--cream);margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid rgba(245,240,232,.07)}.mealprep-component-ing{font-size:.85rem;color:#f5f0e899;padding:3px 0}.mealprep-component-prep-tip{font-size:.88rem;color:var(--cream);font-style:italic;margin-bottom:12px;padding-left:12px;border-left:2px solid var(--green);line-height:1.45}.mealprep-component-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.mealprep-component-usein{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mealprep-component-usein-label{font-size:.78rem;color:#f5f0e88c;font-weight:600}.mealprep-component-usein-tag{display:inline-block;font-size:.74rem;color:var(--cream);background:#6db3f214;border:1px solid rgba(109,179,242,.18);border-radius:8px;padding:3px 9px}.mealprep-component-plan-match{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.mealprep-plan-match-badge{font-size:.74rem;font-weight:700;color:#6db3f2;background:#6db3f21a;padding:3px 10px;border-radius:8px}.mealprep-component-usein-tag.plan{background:#6db3f214;border-color:#6db3f238;color:#6db3f2}.mealprep-safety-warning{font-size:.78rem;color:#e8b33d;background:#e8b33d0f;border:1px solid rgba(232,179,61,.16);border-radius:8px;padding:8px 12px;margin-top:6px;line-height:1.45}.mealprep-evergreen-tips{background:#f5f0e808;border:1px solid rgba(245,240,232,.07);border-radius:12px;padding:14px 16px;margin-bottom:14px}.mealprep-tips-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#f5f0e880;margin-bottom:8px}.mealprep-tip{font-size:.85rem;color:var(--cream);padding:3px 0 3px 14px;position:relative;line-height:1.45}.mealprep-tip:before{content:"•";position:absolute;left:0;color:var(--green)}.mealprep-pairings{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}.mealprep-pairings-label{font-size:.78rem;color:#f5f0e880;margin-right:2px}.mealprep-pairing-tag{display:inline-block;font-size:.74rem;color:var(--cream);background:#22c55e1a;border:1px solid rgba(34,197,94,.18);border-radius:8px;padding:3px 9px}.mealprep-session-info .mealprep-session-badge:first-child{color:var(--cream);background:#22c55e1f;border:1px solid rgba(34,197,94,.22);font-weight:600;font-size:.82rem;padding:4px 12px}.mealprep-deal-expanded,.mealprep-component-body,.mealprep-evergreen-recipes{animation:mealprep-expand .2s ease-out}@keyframes mealprep-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mealprep-search-clear:hover{background:#f5f0e814;color:var(--cream)}.mealprep-search-result{padding-top:16px;border-top:1px solid rgba(245,240,232,.08)}.mealprep-safety-warning{position:relative;padding-left:28px}.mealprep-safety-warning:before{content:"⚠";position:absolute;left:10px;top:8px;font-size:.82rem;font-style:normal}.freshness-dot{box-shadow:0 0 4px currentColor}.freshness-freeze{background:#6db3f20d}.mealprep-component-plan-match{margin-top:10px;padding-top:10px;border-top:1px solid rgba(109,179,242,.1)}.mealprep-plan-match-badge{border:1px solid rgba(109,179,242,.18)}.mealprep-no-plan-guidance{display:flex;align-items:center;gap:10px;font-size:.88rem;color:#f5f0e899;background:#6db3f20d;border:1px solid rgba(109,179,242,.12);border-radius:12px;padding:14px 18px;margin-bottom:20px;line-height:1.45}.mealprep-no-plan-guidance a,.mealprep-no-plan-guidance button{color:#6db3f2;text-decoration:none;font-weight:600;background:none;border:none;cursor:pointer;padding:0;font-size:inherit}.mealprep-no-plan-guidance a:hover,.mealprep-no-plan-guidance button:hover{text-decoration:underline}.mealprep-empty-state{text-align:center;padding:48px 24px;color:#f5f0e880;font-size:.92rem}.mealprep-empty-state p{margin:0;line-height:1.5}.mealprep-empty-icon{font-size:2.2rem;margin-bottom:10px;opacity:.7}.mealprep-empty-text{max-width:320px;margin:0 auto}.mealprep-plan-group-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.mealprep-plan-group-actions button{display:inline-flex;align-items:center;gap:6px;background:#f5f0e80d;color:#f5f0e899;border:1px solid rgba(245,240,232,.1);border-radius:10px;padding:7px 14px;font-size:.8rem;cursor:pointer;transition:all .15s}.mealprep-plan-group-actions button:hover{background:#f5f0e81a;color:var(--cream);border-color:#f5f0e82e}.mealprep-component-actions{margin-top:12px}.mealprep-search-wrapper{margin-bottom:16px}.mealprep-plan-section+.card,.mealprep-plan-section+.mealprep-hero,.card+.mealprep-hero{margin-top:4px}@media(max-width:768px){.mealprep-hero{padding:20px 16px;border-radius:16px}.mealprep-hero-product-name{font-size:1.25rem}.mealprep-hero-pricing{gap:8px}.mealprep-recipe-card{padding:12px 10px;gap:10px}.mealprep-recipe-emoji{font-size:1.2rem;width:24px}.mealprep-recipe-meta{gap:4px;font-size:.76rem}.mealprep-session-info{gap:6px}.mealprep-component-header{flex-wrap:wrap;padding:12px 4px}.mealprep-component-quick{flex-shrink:1;flex-wrap:wrap;gap:6px}.mealprep-evergreen-toggle{padding:14px 4px;min-height:48px}.mealprep-deal-toggle{min-height:48px;padding:12px 4px}.mealprep-search-input{padding:14px 44px 14px 16px;font-size:1rem}.mealprep-search-clear{width:36px;height:36px;right:8px}.mealprep-component-body{padding:0 2px 16px}.mealprep-copy-btn{width:100%;justify-content:center;padding:12px 16px}.mealprep-section-desc{margin:-4px 0 12px;font-size:.82rem}}@media(max-width:480px){.mealprep-hero{padding:16px 12px;border-radius:14px}.mealprep-hero-product-name{font-size:1.15rem}.mealprep-component-header{flex-direction:column;align-items:flex-start}.mealprep-component-quick{width:100%;margin-top:4px}.mealprep-evergreen-toggle{flex-direction:column;gap:6px}.mealprep-evergreen-header-right{align-self:flex-start}.mealprep-freshness,.mealprep-plan-group-meta{flex-direction:column;gap:4px}.mealprep-deal-summary{gap:6px}.mealprep-recipe-card{padding:8px;gap:8px}.mealprep-recipe-emoji{font-size:1.2rem}.mealprep-recipe-name{font-size:.88rem}}.checkin-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s var(--ease-out-expo)}.checkin-card{background:var(--bg-card);border:1px solid var(--border);border-radius:24px;padding:28px;width:100%;max-width:520px;max-height:80vh;overflow-y:auto;animation:scaleIn .4s var(--ease-spring)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.checkin-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.checkin-emoji{font-size:2rem;flex-shrink:0}.checkin-header h2{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin-bottom:4px}.checkin-subtitle{font-size:.85rem;color:var(--cream-dim)}.checkin-close{margin-left:auto;background:none;border:none;color:var(--cream-dim);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;flex-shrink:0}.checkin-close:hover{color:var(--cream)}.checkin-days{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.checkin-day{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:14px 16px;transition:border-color .2s}.checkin-day:has(.checkin-status-btn.active){border-color:var(--green);background:var(--green-glow)}.checkin-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.checkin-day-name{font-weight:600;font-size:.85rem;color:var(--green)}.checkin-day-recipe{font-size:.85rem;color:var(--cream-dim);text-align:right;flex:1;margin-left:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkin-day-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.checkin-status-btn{padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:.95rem;transition:all .2s var(--ease-out-expo)}.checkin-status-btn:hover{border-color:var(--border-light);transform:scale(1.05)}.checkin-status-btn.active{border-color:var(--green);background:var(--green-glow)}.checkin-rating-sep{color:var(--border);margin:0 2px}.checkin-rating-btn{padding:4px 8px;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;font-size:.95rem;opacity:.5;transition:all .2s}.checkin-rating-btn:hover{opacity:1}.checkin-rating-btn.active{opacity:1;border-color:var(--green)}.checkin-rating-btn.active.like{background:#22c55e26}.checkin-rating-btn.active.dislike{background:#ef444426;border-color:var(--red)}.checkin-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.checkin-progress{font-size:.8rem;color:var(--cream-dim)}.checkin-save-error{font-size:.8rem;color:var(--red)}.checkin-btn{padding:12px 24px;border-radius:12px;border:none;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .25s var(--ease-out-expo)}.checkin-btn.primary{background:var(--green);color:var(--bg-deep)}.checkin-btn.primary:hover{background:var(--green-dim);transform:translateY(-1px);box-shadow:0 4px 12px var(--green-glow)}.checkin-btn.primary:active{transform:translateY(0) scale(.97);box-shadow:none}.checkin-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.checkin-result{text-align:center;padding:20px 0}.checkin-result-emoji{font-size:3.5rem;margin-bottom:16px;animation:bounceIn .6s var(--ease-spring)}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.checkin-result h2{font-family:var(--font-display);font-size:1.3rem;margin-bottom:20px}.checkin-adherence-score{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:16px}.adherence-value{font-family:var(--font-display);font-size:3rem;font-weight:700;color:var(--green)}.adherence-label{font-size:.8rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:1px}.checkin-result-text{color:var(--cream-dim);margin-bottom:24px;font-size:.95rem}.tip-banner.smart-tip{border-left:3px solid var(--warm-accent);animation:slideInRight .4s var(--ease-out-expo)}.tip-banner.smart-tip[data-tip-type=budget]{border-left-color:var(--green)}.tip-banner.smart-tip[data-tip-type=health]{border-left-color:var(--blue)}.tip-banner.smart-tip[data-tip-type=simplicity]{border-left-color:var(--orange)}@keyframes slideInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.tip-action{color:var(--green);margin-left:8px;text-decoration:none;font-weight:500;white-space:nowrap}.tip-action:hover{text-decoration:underline}.insights-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.insights-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.insights-title{font-family:var(--font-display);font-size:1.15rem;font-weight:500}.insights-meta{font-size:.8rem;color:var(--cream-dim)}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.insight-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:18px;cursor:pointer;transition:all .3s var(--ease-out-expo)}.insight-card:hover{transform:translateY(-3px);border-color:var(--border-light);box-shadow:0 8px 24px #0000004d}.insight-card.expanded{border-color:var(--green);background:var(--green-glow)}.insight-card-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.insight-card-emoji{font-size:1.3rem}.insight-card-title{font-weight:600;font-size:.9rem}.insight-card-body{display:flex;flex-direction:column;gap:8px}.insight-stat-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.insight-stat-row.secondary{font-size:.78rem;color:var(--cream-dim)}.insight-stat-value{font-family:var(--font-display);font-size:1.8rem;font-weight:600;color:var(--green)}.insight-stat-label{font-size:.8rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.5px}.insight-favorites-list{display:flex;flex-direction:column;gap:6px}.insight-favorite-item{display:flex;align-items:center;gap:8px;font-size:.85rem}.favorite-rank{font-weight:700;color:var(--warm-accent);min-width:24px}.favorite-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-count{color:var(--cream-dim);font-size:.75rem;font-weight:600}.insight-empty{text-align:center;padding:32px 16px;color:var(--cream-dim);margin-top:24px;border-top:1px solid var(--border)}.insight-empty-emoji{display:block;font-size:2.5rem;margin-bottom:12px;opacity:.5}.insight-empty p{font-size:.9rem;max-width:300px;margin:0 auto}@media(max-width:600px){.checkin-card{padding:20px 16px;border-radius:20px;max-height:90vh}.checkin-day-actions{gap:4px}.checkin-status-btn{padding:5px 8px;font-size:.85rem}.insights-grid{grid-template-columns:1fr 1fr}.insight-stat-value{font-size:1.5rem}}@media(max-width:400px){.insights-grid{grid-template-columns:1fr}.checkin-footer{flex-direction:column}.checkin-btn.primary{width:100%}}
