.login-screen{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:80vh;text-align:center}.login-screen h1{color:var(--color-primary);font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.login-tagline{color:var(--color-text-light);font-size:1rem;font-style:italic;margin-bottom:1.25rem;margin-top:-.5rem}.login-subtitle{color:var(--color-text-muted);font-size:1.1rem;margin-bottom:.5rem}.landing-page .login-subtitle{color:var(--color-primary);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.google-login-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 1px 3px #5a463214;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .2s}.google-login-btn--primary{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 2px 8px #e07a3a33;color:var(--color-white);font-size:1.05rem;padding:.85rem 2.5rem}.google-login-btn--primary:hover{background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 4px 12px #e07a3a4d;transform:translateY(-1px)}.google-login-btn:hover{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 4px 12px #e07a3a40;color:var(--color-white);transform:translateY(-1px)}.login-email-toggle{background:none;border:none;color:var(--color-text-light);cursor:pointer;font-family:inherit;font-size:.85rem;margin-top:1.25rem;padding:0;text-decoration:underline;transition:color .15s}.login-email-toggle:hover{color:var(--color-primary)}.login-invite-note{color:var(--color-text-light);font-size:.85rem;font-style:italic;margin-bottom:.5rem;margin-top:0}.login-not-allowed{color:var(--color-text-muted);font-size:1rem;margin:.25rem 0}.login-request-section{margin-top:1.5rem;text-align:center}.login-request-form{display:flex;flex-direction:column;gap:.5rem;margin:0 auto;max-width:300px}.login-request-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;padding:.5rem .75rem}.login-request-textarea{min-height:2.5rem;resize:vertical}.login-request-btn{background:var(--color-accent);border:none;border-radius:var(--radius-sm);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;margin-top:.25rem;padding:.5rem 1.25rem;transition:background .15s}.login-request-btn--secondary{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-primary)}.login-request-btn--secondary:hover:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.login-request-btn:hover:not(:disabled){background:var(--color-primary)}.login-request-btn:disabled{cursor:default;opacity:.5}.login-request-success{color:var(--color-sage);font-size:.95rem;font-weight:600}.login-request-error{color:#c0392b;font-size:.85rem;margin:0}.login-auth-section{align-items:center;margin:0 auto;max-width:320px}.login-auth-form,.login-auth-section{display:flex;flex-direction:column;width:100%}.login-auth-form{gap:.5rem}.login-switch-text{color:var(--color-text-light);font-size:.85rem;margin:.75rem 0 0}.login-link-btn{background:none;border:none;color:var(--color-accent);cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;padding:0;text-decoration:underline}.login-link-btn:hover{color:var(--color-primary)}.login-divider{align-items:center;display:flex;gap:.75rem;margin:1rem 0;width:100%}.login-divider:after,.login-divider:before{background:var(--color-border);content:"";flex:1 1;height:1px}.login-divider span{color:var(--color-text-light);font-size:.8rem;text-transform:lowercase}.turnstile-container{display:flex;justify-content:center;margin:.5rem 0}.landing-page{overflow-x:hidden}.landing-page .login-screen{min-height:auto;padding-bottom:2rem;padding-top:10vh}.login-hero-subtext{color:var(--color-text-muted);font-size:.95rem;line-height:1.5;margin-bottom:2rem;margin-top:.25rem;max-width:420px;padding:0 1rem}.landing-features{margin:0 auto;max-width:900px;padding:2rem 1.5rem 3rem}.landing-feature{align-items:center;display:flex;gap:3rem;margin-bottom:4rem}.landing-feature--reverse{flex-direction:row-reverse}.landing-feature-img{flex:0 0 auto;max-width:340px}.landing-feature-img img{border-radius:16px;box-shadow:0 4px 24px #1b49651a;height:auto;width:100%}.landing-feature-text{flex:1 1;min-width:0}.landing-feature-text h2{color:var(--color-primary);font-size:1.4rem;font-weight:700;line-height:1.3;margin-bottom:.75rem}.landing-feature-text p{color:var(--color-text-muted);font-size:1rem;line-height:1.6;margin:0}.landing-cta{margin-top:1rem;padding:2rem 0;text-align:center}.landing-cta .google-login-btn--primary{font-size:1.1rem;padding:1rem 3rem}@media (max-width:700px){.landing-feature,.landing-feature--reverse{flex-direction:column;gap:1.25rem;margin-bottom:3rem;text-align:center}.landing-feature-img{margin:0 auto;max-width:280px}.landing-feature-text h2{font-size:1.2rem}.landing-feature-text p{font-size:.9rem}.landing-cta .google-login-btn--primary{font-size:1rem;padding:.85rem 2.5rem}}.app-footer{color:var(--color-text-light);font-size:.8rem;margin-top:auto;padding:1.5rem 1rem 1rem;text-align:center}.footer-controls{gap:.75rem;justify-content:space-between;margin-bottom:.5rem}.footer-controls,.footer-left{align-items:center;display:flex}.footer-left{gap:.25rem}.language-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);cursor:pointer;font-size:.8rem;outline:none;padding:.25rem .4rem;transition:border-color .15s}.language-dropdown:focus,.language-dropdown:hover{border-color:var(--color-primary)}.scheme-toggle{display:flex;gap:.2rem}.scheme-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--color-text-light);cursor:pointer;display:flex;height:1.4rem;justify-content:center;opacity:.4;padding:0;transition:opacity .15s,transform .15s;width:1.4rem}.scheme-btn.active{opacity:1;transform:scale(1.1)}.scheme-btn:hover{opacity:.75}.scheme-btn svg{fill:currentColor;height:14px;width:14px}.kitchen-bar,.kitchen-bar-left,.kitchen-bar-right{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.kitchen-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-family:inherit}.kitchen-name,.kitchen-select{color:var(--color-primary);font-size:.85rem;font-weight:600;padding:.35rem .7rem}.kitchen-name-editable{cursor:pointer;transition:background .15s}.kitchen-name-editable:hover{background:#f5ebe0}.kitchen-rename-form{display:inline}.kitchen-rename-input{background:var(--color-bg);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-primary);font-family:inherit;font-size:.85rem;font-weight:600;outline:none;padding:.35rem .7rem;width:12rem}.kitchen-bar-btn{background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;padding:.3rem .8rem;transition:all .2s}.kitchen-bar-btn:hover{background:var(--color-accent-deep);transform:scale(1.02)}.kitchen-bar-btn-muted{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:500;padding:.3rem .8rem;transition:all .15s}.kitchen-bar-btn-muted:hover{border-color:#8a7560;color:var(--color-primary)}.kitchen-user-email{color:var(--color-text-muted);font-size:.8rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signout-compact{display:none}.kitchen-invites{display:flex;flex-wrap:wrap;gap:.4rem}.kitchen-invite-badge{align-items:center;background:var(--color-fresh-bg);border-radius:var(--radius-pill);color:var(--color-chip-text);display:flex;font-size:.8rem;gap:.3rem;padding:.2rem .6rem}.invite-accept-btn{background:var(--color-sage);border:none;border-radius:var(--radius-sm);color:var(--color-white);cursor:pointer;font-size:.72rem;font-weight:600;padding:.15rem .5rem}.invite-form-inline{align-items:center;display:flex;gap:.3rem}.invite-email-input{border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:.8rem;padding:.3rem .5rem;width:180px}.invite-status{color:var(--color-sage);font-size:.75rem;font-weight:500}.app,.loading{display:flex;flex-direction:column;min-height:100vh}.loading{align-items:center;color:#6b5e4b;font-size:1.2rem;font-weight:500;gap:1.25rem;justify-content:center}.loading-icon{height:100px;object-fit:contain;width:100px}.app-topbar{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--color-surface-translucent);border-bottom:1px solid #e2d6c880;box-shadow:0 1px 3px #5a46320d;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:calc(env(safe-area-inset-top, 0px) + .5rem) 1rem .5rem;position:sticky;top:0;z-index:50}.topbar-left{align-items:flex-start;display:flex;flex-direction:column;gap:0}.brand-icon{height:1.4em;margin-right:.35em;vertical-align:middle;width:auto}.login-screen h1 .brand-icon{height:2rem}.app-logo{color:var(--color-primary);font-size:1.2rem;font-weight:700;white-space:nowrap}.app-tagline{color:var(--color-text-light);font-size:.8rem;font-style:italic;white-space:nowrap}.app-nav,.topbar-right{align-items:center;display:flex}.app-nav{background:#0000;border-bottom:none;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem;padding:.5rem 1rem}.nav-tabs{display:flex;gap:.3rem}.nav-tab{background:var(--color-surface-glass);border:none;color:var(--color-text-muted);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:.4rem 1.1rem;transition:all .2s}.nav-tab,.nav-tab:first-child,.nav-tab:last-child{border-radius:var(--radius-pill)}.nav-tab:last-child{border-right:none}.nav-tab:hover{background:#e07a3a1f;color:var(--color-primary)}.nav-tab.active{background:var(--color-primary);box-shadow:var(--shadow-drop);color:var(--color-white)}.nav-tab.active+.nav-tab{border-left-color:#0000}.week-nav-wrapper{flex-direction:column}.week-nav,.week-nav-wrapper{align-items:center;display:flex}.week-nav{gap:.4rem}.week-nav-btn{align-items:center;background:var(--color-surface-glass);border:none;border-radius:50%;color:var(--color-primary);cursor:pointer;display:flex;font-family:inherit;font-size:1.1rem;font-weight:500;height:30px;justify-content:center;line-height:1;padding:0;transition:all .2s;width:30px}.week-nav-btn:hover{background:var(--color-accent);box-shadow:0 2px 8px #e07a3a40;color:var(--color-white)}.week-label{color:var(--color-primary);font-size:.85rem;font-weight:600;min-width:110px;text-align:center}.week-label-btn{background:none;border:1px solid #0000;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;padding:.15rem .5rem;transition:all .2s}.week-label-btn:hover{background:var(--color-surface-glass);border-color:var(--color-accent)}.week-progress-inline{background:#e2d6c8;border-radius:2px;height:4px;margin-top:.25rem;overflow:hidden;width:100%}.week-progress-inline-fill{background:var(--color-accent);border-radius:2px;height:100%;transition:width .4s ease}.week-progress-inline-fill.complete{animation:celebrate .6s ease-out;background:var(--color-success)}@keyframes celebrate{0%{transform:scaleY(1)}30%{transform:scaleY(2.5)}50%{transform:scaleY(1)}70%{transform:scaleY(1.8)}to{transform:scaleY(1)}}.nav-tab-pantry{display:none}@media (max-width:860px){.nav-tab-pantry{display:inline-block}}.rank-badge{align-items:center;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-primary);cursor:pointer;display:flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:.3rem;padding:.25rem .6rem;transition:all .2s;white-space:nowrap}.rank-badge:hover{background:#c4a48414;border-color:var(--color-accent)}.rank-badge-emoji{font-size:1rem;line-height:1}.rank-badge-label{font-size:.78rem}.rank-badge-xp{color:var(--color-text-muted);font-size:.72rem;font-weight:500}.rank-badge-glow{animation:rank-glow 1.2s ease-out}@keyframes rank-glow{0%{box-shadow:0 0 0 0 #4caf5099}30%{border-color:#4caf50;box-shadow:0 0 12px 4px #4caf5073}to{box-shadow:0 0 0 0 #4caf5000}}.xp-toast{animation:xp-float 1.5s ease-out forwards;background:var(--color-accent);border-radius:var(--radius-md);color:var(--color-white);font-size:.9rem;font-weight:700;padding:.4rem .8rem;pointer-events:none;position:fixed;right:1.5rem;top:5rem;z-index:200}@keyframes xp-float{0%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(-20px)}to{opacity:0;transform:translateY(-40px)}}.rank-detail-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}.rank-detail-panel{background:var(--color-bg);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 8px 30px #00000026;max-height:80vh;max-width:420px;overflow-y:auto;padding:1.5rem;position:relative;width:100%}.rank-detail-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1.3rem;line-height:1;padding:.2rem .5rem;position:absolute;right:.8rem;top:.8rem}.rank-detail-header{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-bottom:.5rem}.rank-detail-emoji{font-size:2rem}.rank-detail-title{color:var(--color-primary);font-size:1.3rem;font-weight:700;margin:0}.rank-detail-xp{color:var(--color-text-muted);font-size:.85rem;margin-bottom:.5rem;text-align:center}.rank-xp-bar{background:#e2d6c8;height:8px;margin-bottom:1rem;overflow:hidden;width:100%}.rank-xp-bar,.rank-xp-fill{border-radius:var(--radius-sm)}.rank-xp-fill{background:var(--color-accent);height:100%;transition:width .3s ease}.rank-xp-fill.complete{background:var(--color-success)}.rank-encouragement{background:#c4a4841a;border-radius:var(--radius-md);color:var(--color-accent);color:var(--color-accent-deep,var(--color-accent));font-size:.85rem;font-weight:600;margin-bottom:1rem;padding:.5rem;text-align:center}.rank-bonuses h3,.rank-ladder h3,.rank-weeks h3{color:var(--color-text-muted);font-size:.8rem;font-weight:700;letter-spacing:.05em;margin:.8rem 0 .4rem;text-transform:uppercase}.rank-week-row{align-items:center;display:flex;font-size:.8rem;gap:.4rem;margin-bottom:.3rem}.rank-week-label{color:var(--color-text-muted);flex-shrink:0;width:4.5rem}.rank-week-bar{background:#e2d6c8;border-radius:var(--radius-sm);flex:1 1;height:6px;overflow:hidden}.rank-week-fill{background:var(--color-accent);border-radius:var(--radius-sm);height:100%}.rank-week-stats{color:var(--color-primary);font-weight:600}.rank-week-pts,.rank-week-stats{flex-shrink:0;text-align:right;width:2.5rem}.rank-week-pts{color:var(--color-accent);font-weight:700}.rank-no-data{color:var(--color-text-muted);font-size:.85rem;font-style:italic}.rank-bonus-row{display:flex;font-size:.8rem;justify-content:space-between;margin-bottom:.2rem}.rank-ladder-row{align-items:center;border-radius:var(--radius-sm);color:var(--color-text-muted);display:flex;font-size:.8rem;gap:.4rem;margin-bottom:.15rem;padding:.3rem .5rem}.rank-ladder-emoji{flex-shrink:0;font-size:1rem;text-align:center;width:1.4rem}.rank-ladder-name{flex-shrink:0;width:5.5rem}.rank-ladder-bar{background:#e2d6c8;border-radius:var(--radius-sm);flex:1 1;height:6px;overflow:visible;position:relative}.rank-ladder-fill{background:var(--color-text-muted);border-radius:var(--radius-sm);height:100%;opacity:.35;transition:width .3s ease}.rank-ladder-fill.current{background:var(--color-accent);opacity:1}.rank-ladder-marker{background:var(--color-accent);border:2px solid var(--color-bg);border-radius:50%;box-shadow:0 0 0 2px var(--color-accent);height:10px;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}.rank-ladder-row.current{background:#c4a48426;color:var(--color-primary);font-weight:700}.app-main{margin:0 auto;max-width:1400px;padding:0 1rem}.main-layout{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:1fr 340px}.days-column{min-width:0}.pantry-column{position:sticky;top:1rem}.week-grid{display:flex;flex-direction:column;gap:.75rem}.day-card{background:var(--color-surface);border:none;border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);overflow:visible;position:relative;transition:all .25s}.day-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.day-card:has(.meal-name-wrapper:focus-within){z-index:10}.day-card.past-day{filter:saturate(.6);opacity:.6}.day-card.past-day:hover{filter:saturate(.8);opacity:.8}.planned-badge{align-items:center;background:#22c55e;border-radius:50%;color:#fff;display:inline-flex;font-size:.6rem;font-weight:700;height:1rem;justify-content:center;line-height:1;margin-left:.4rem;vertical-align:middle;width:1rem}.day-card-header{background:var(--color-bg);border-bottom:1px solid #f0e8dd;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:.5rem 1rem}.day-card-header h2{color:var(--color-primary);font-size:.95rem;font-weight:600;text-transform:capitalize}.day-card.collapsed .day-card-header{border-bottom:none}.collapse-indicator{color:#a08060;display:inline-block;font-size:.8em;width:1em}.collapsed-meals-summary{color:#7a6a5a;display:flex;font-size:.85rem;gap:1rem;margin-top:.2rem}.collapsed-meal-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-card-body{border-radius:0 0 var(--radius-2xl) var(--radius-2xl);display:flex;gap:1rem;padding:.6rem 1rem}.meal-type-slots{display:flex;flex:1 1;flex-direction:column;min-width:0}.meal-type-slots+.meal-type-slots{border-left:1px solid var(--color-subtle-bg);padding-left:1rem}.meal-slot{padding:.4rem 0}.meal-slot+.meal-slot{border-top:1px solid var(--color-subtle-bg)}.meal-slot-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.3rem}.drag-handle{border-radius:4px;color:var(--color-drag-handle);cursor:grab;font-size:1rem;line-height:1;margin-bottom:.4rem;margin-right:.15rem;padding:.15rem .25rem;touch-action:none;transition:color .15s,background .15s;user-select:none;-webkit-user-select:none}.drag-handle:hover{background:#0000000d;color:var(--color-drag-handle-hover)}.drag-handle:active{cursor:grabbing}.meal-slot.dragging{border-radius:8px;opacity:.4;outline:2px dashed var(--color-accent);outline-offset:-2px}.meal-slot.drag-over{background:#e8a04614;border-radius:8px;outline:2px solid var(--color-accent);outline-offset:-2px}.touch-drag-ghost{background:#fff;background:var(--color-white,#fff);border-radius:12px;box-shadow:0 8px 24px #0000002e;color:#4a3728;color:var(--color-primary,#4a3728);font-size:.9rem;font-weight:600;max-width:200px;overflow:hidden;padding:.5rem 1rem;pointer-events:none;position:fixed;text-overflow:ellipsis;transform:translate(-50%);white-space:nowrap;z-index:10000}.meal-type-label{color:#8b8ba7;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.meal-type-label.lunch{color:var(--color-accent-dark)}.meal-type-label.dinner{color:var(--color-sage)}.add-course-btn{background:none;border:1px dashed var(--color-dashed-border);border-radius:var(--radius-xl);color:var(--color-muted-ui);cursor:pointer;font-size:.68rem;font-weight:600;letter-spacing:.04em;padding:.15rem .5rem;transition:all .15s}.add-course-btn:hover{background:#f0f2ff;border-color:#6a7fd4;color:#6a7fd4}.course-label{color:#aac;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.remove-course-btn{background:none;border:none;border-radius:var(--radius-xs);color:#c09090;cursor:pointer;font-size:.68rem;font-weight:600;padding:.1rem .4rem;transition:all .15s}.remove-course-btn:hover{background:#ffeaea;color:#c04040}.edit-btn{background:none;border:1px solid #e2e2ea;border-radius:var(--radius-md);color:var(--color-accent-dark);cursor:pointer;font-size:.75rem;font-weight:500;padding:.25rem .65rem;transition:all .15s}.edit-btn:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:var(--color-white)}.meal-name{color:var(--color-text);font-size:.95rem;font-weight:600;margin-bottom:.3rem}.meal-empty{color:var(--color-dashed-border);font-size:.85rem;font-style:italic}.ingredient-list{display:flex;flex-wrap:wrap;gap:.3rem;list-style:none}.ingredient-chip{background:linear-gradient(135deg,var(--color-chip-bg-start),var(--color-chip-bg-end));border-radius:var(--radius-pill);color:var(--color-chip-text);font-size:.75rem;font-weight:500;padding:.2rem .65rem}.ingredient-chip .qty{color:var(--color-muted-ui);font-weight:500;margin-right:.2rem}.meal-name-input{background:var(--color-bg);border:1px solid #0000;border-radius:var(--radius-md);color:var(--color-text);flex:1 1;font-family:inherit;font-size:.9rem;font-weight:600;margin-bottom:.4rem;min-width:0;outline:none;padding:.4rem .6rem;transition:all .2s;width:100%}.meal-name-input:hover{background:var(--color-bg-hover)}.meal-name-input:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.meal-name-input::placeholder{color:var(--color-dashed-border);font-style:italic;font-weight:400}.inline-ingredients{display:flex;flex-direction:column;gap:.3rem}.inline-ingredient-row{align-items:center;display:flex;gap:.3rem}.inline-qty{background:var(--color-input-bg);border:1px solid #0000;border-radius:var(--radius-sm);color:var(--color-muted-ui);font-family:inherit;font-size:.8rem;font-weight:500;outline:none;padding:.3rem .4rem;text-align:center;transition:all .2s;width:66px}.inline-qty:hover{background:var(--color-input-hover-bg)}.inline-qty:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.inline-ing-name{background:var(--color-input-bg);border:1px solid #0000;border-radius:var(--radius-sm);color:var(--color-sage-dark);flex:0.6 1;font-family:inherit;font-size:.8rem;min-width:0;outline:none;padding:.3rem .5rem;transition:all .2s}.inline-ing-name:hover{background:#edf2eb}.inline-ing-name:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.inline-ing-name::placeholder{color:var(--color-dashed-border);font-style:italic}.ing-autocomplete-wrapper{flex:0.6 1;min-width:0;position:relative}.ing-autocomplete-wrapper .inline-ing-name{box-sizing:border-box;width:100%}.ing-suggestions{background:var(--color-surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);left:0;max-height:180px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.ing-suggestion-item{color:var(--color-sage-dark);cursor:pointer;font-size:.8rem;padding:.35rem .5rem;transition:background .1s}.ing-suggestion-item.highlighted{background:#fdf0e6}.inline-remove-btn{background:none;border:none;color:#d0d0e0;cursor:pointer;flex-shrink:0;font-size:.85rem;line-height:1;padding:.2rem;transition:color .15s}.inline-remove-btn:hover{color:#e74c3c}.inline-add-btn{background:none;border:1px dashed #d8d8e8;border-radius:var(--radius-md);color:#a0a0c0;cursor:pointer;font-family:inherit;font-size:.72rem;font-weight:500;margin-top:.15rem;padding:.25rem .5rem;transition:all .15s}.inline-add-btn:hover{background:#fdf0e6;border-color:var(--color-accent-dark);color:var(--color-accent-dark)}.pantry-view-tabs{display:flex;gap:.3rem;margin-bottom:.75rem}.pantry-view-tab{background:var(--color-surface-glass);border:none;color:var(--color-text-muted);cursor:pointer;flex:1 1;font-family:inherit;font-size:.82rem;font-weight:600;padding:.4rem .8rem;transition:all .2s}.pantry-view-tab,.pantry-view-tab:first-child,.pantry-view-tab:last-child{border-radius:var(--radius-pill)}.pantry-view-tab:last-child{border-right:none}.pantry-view-tab:hover{background:#e07a3a1f;color:var(--color-primary)}.pantry-view-tab.active{background:var(--color-primary);box-shadow:var(--shadow-drop);color:var(--color-white)}.pantry-view-tab.active+.pantry-view-tab{border-left-color:#0000}.shopping-list{display:flex;flex-direction:column;gap:.75rem}.shopping-list-empty{color:var(--color-text-muted);padding:2rem 1rem;text-align:center}.shopping-list-empty-icon{color:var(--color-success);display:block;font-size:2rem;margin-bottom:.5rem}.shopping-list-empty p{font-size:.9rem;margin:0}.shopping-section{background:var(--color-surface);border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.shopping-section-header{background:var(--color-bg);border-bottom:1px solid #f0e8dd;color:var(--color-primary);font-size:.85rem;font-weight:600;padding:.5rem .75rem}.shopping-item{align-items:center;border-bottom:1px solid #f0ebe4;display:flex;gap:.5rem;padding:.45rem .75rem;transition:background .1s}.shopping-item:last-child{border-bottom:none}.shopping-item--checked{background:#f5faf5}.shopping-item--checked .shopping-item-name{color:#a0a0a0;text-decoration:line-through}.shopping-check{align-items:center;background:var(--color-surface);border:2px solid #d0c8bc;border-radius:var(--radius-sm);color:var(--color-white);cursor:pointer;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:22px;justify-content:center;padding:0;transition:all .2s;width:22px}.shopping-check:hover{border-color:var(--color-success);transform:scale(1.1)}.shopping-check--done{background:var(--color-success);border-color:var(--color-success)}.shopping-item-name{color:var(--color-text);flex:1 1;font-size:.85rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-item-need{color:#a08060;font-size:.75rem;white-space:nowrap}.shopping-item-qty{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:inherit;font-size:.82rem;outline:none;padding:.2rem .4rem;text-align:center;transition:all .2s;width:50px}.shopping-item-qty:focus{border-color:var(--color-success);box-shadow:var(--shadow-focus-success)}.shopping-confirm-btn{background:var(--color-success);border:none;border-radius:var(--radius-lg);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;margin-top:.25rem;padding:.5rem 1rem;transition:all .2s}.shopping-confirm-btn:hover{background:#5a9e3c;transform:scale(1.02)}.shopping-toolbar{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.5rem}.shopping-toolbar-actions{display:flex;gap:.5rem;margin-left:auto}.shopping-counter{font-size:.82rem}.shopping-counter,.shopping-share-btn{color:var(--color-primary);font-weight:600}.shopping-share-btn{background:none;border:1px solid var(--color-border-dark);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:.8rem;padding:.35rem .75rem;transition:all .15s}.shopping-share-btn:hover{background:var(--color-bg);border-color:var(--color-primary)}.shopping-share-btn:disabled{cursor:default;opacity:.5}.shopping-success-banner{background:var(--color-success-banner-bg);border:1px solid var(--color-success-banner-border);border-radius:var(--radius-lg);color:var(--color-success-banner-text);font-size:.85rem;font-weight:500;margin-bottom:.5rem;padding:.5rem .75rem;text-align:center}.shopping-badge{align-items:center;background:var(--color-accent);border-radius:var(--radius-md);color:var(--color-white);display:inline-flex;font-size:.65rem;font-weight:700;height:16px;justify-content:center;margin-left:4px;min-width:16px;padding:0 4px;vertical-align:middle}.shared-list-page{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;margin:0 auto;max-width:480px;padding:1.5rem 1rem}.shared-list-title{color:var(--color-primary);font-size:1.4rem;font-weight:700;margin:0 0 .25rem}.shared-list-week{color:var(--color-text-muted);font-size:.85rem;margin:0 0 .75rem}.shared-list-loading{color:var(--color-text-muted);padding:2rem 0;text-align:center}.shared-list-error{color:var(--color-danger);padding:2rem 0;text-align:center}.pantry-review-shopping{background:none;border:1px solid #6ab04c;border-radius:var(--radius-md);color:var(--color-success);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;padding:.35rem .8rem;transition:all .15s}.pantry-review-shopping:hover{background:var(--color-success);color:var(--color-white)}.pantry-sections{display:flex;flex-direction:column;gap:1rem;position:relative}.pantry-toast{animation:pantry-toast-in .25s ease-out;background:var(--color-toast-bg);border-radius:var(--radius-lg);bottom:2rem;color:var(--color-toast-text);font-size:.9rem;left:50%;padding:.6rem 1.2rem;position:fixed;transform:translateX(-50%);z-index:1000}@keyframes pantry-toast-in{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.pantry-card{background:var(--color-surface);border:none;border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);overflow:hidden}.pantry-header{background:var(--color-bg);border-bottom:1px solid #f0e8dd;padding:.6rem 1rem}.pantry-header--clickable{align-items:center;cursor:pointer;display:flex;justify-content:space-between;-webkit-user-select:none;user-select:none}.pantry-collapse-arrow{color:var(--color-text-muted);font-size:1rem;transition:transform .2s}.pantry-collapse-arrow--collapsed{transform:rotate(-90deg)}.pantry-toggle{align-items:center;color:#555;cursor:pointer;display:flex;font-size:.82rem;gap:.4rem;padding:.1rem 0}.pantry-toggle input{cursor:pointer}.pantry-header--fresh{background:var(--color-bg);border-bottom:1px solid #f0e8dd}.pantry-header h2{color:var(--color-primary);font-size:.95rem;font-weight:600}.pantry-body{padding:.8rem 1rem}.pantry-table-header{align-items:center;border-bottom:1px solid var(--color-subtle-bg);display:flex;gap:.3rem;margin-bottom:.3rem;padding-bottom:.4rem}.pantry-table-header span{color:var(--color-muted-ui);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.pantry-col-name{flex:1 1}.pantry-col-num{text-align:center;width:50px}.pantry-col-action{width:22px}.pantry-row{align-items:center;display:flex;gap:.3rem;margin-bottom:.3rem}.pantry-row--empty{opacity:.4}.pantry-input{background:var(--color-bg);border:1px solid #0000;border-radius:var(--radius-sm);font-family:inherit;font-size:.8rem;outline:none;padding:.3rem .4rem;transition:all .2s}.pantry-input:hover{background:var(--color-bg-hover)}.pantry-input:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.pantry-input-name{color:var(--color-sage-dark);flex:1 1;min-width:0}.pantry-input-name--fresh{background:var(--color-fresh-bg);color:var(--color-fresh-text)}.pantry-input-name--fresh:hover{background:var(--color-fresh-hover)}.pantry-input-name--fresh:focus{background:var(--color-surface)}.pantry-input-name::placeholder{color:var(--color-dashed-border);font-style:italic}.pantry-input-num{color:var(--color-muted-ui);font-weight:500;text-align:center;width:50px}.pantry-input-num.pantry-input-shortage{color:#dc2626;font-weight:600}.pantry-input-readonly{color:var(--color-muted-ui);cursor:default}.pantry-input-readonly,.pantry-input-readonly:focus,.pantry-input-readonly:hover{background:var(--color-subtle-bg)}.pantry-input-readonly:focus{border-color:#0000}.ing-warning{cursor:default;flex-shrink:0;font-size:.8rem;line-height:1;text-align:center;width:1.2em}.ing-warning--shortage{filter:hue-rotate(320deg) saturate(2)}.ing-not-in-pantry{background:none;border:none;cursor:pointer;flex-shrink:0;font-size:.8rem;line-height:1;opacity:.7;padding:0;text-align:center;transition:opacity .15s;width:1.2em}.ing-not-in-pantry:hover{opacity:1}.ing-status-placeholder{display:inline-block;flex-shrink:0;width:1.2em}.ing-shortage{background:#fff5f5;border-color:#d32f2f;color:var(--color-danger-alt)}[data-scheme=dark] .ing-shortage{background:#d32f2f2e;border-color:var(--color-danger-alt)}.pantry-add-btn{margin-top:.4rem;width:100%}.pantry-review-banner{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-xl);display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1rem}.pantry-review-text{display:flex;flex-direction:column;gap:.15rem}.pantry-review-text strong{color:var(--color-primary);font-size:.9rem}.pantry-review-text span{color:var(--color-text-muted);font-size:.8rem}.pantry-review-actions{display:flex;gap:.5rem}.pantry-review-confirm{background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;padding:.35rem .8rem;transition:all .2s}.pantry-review-confirm:hover{background:var(--color-accent-deep);transform:scale(1.02)}.pantry-review-dismiss{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;font-family:inherit;font-size:.8rem;padding:.35rem .8rem;transition:all .15s}.pantry-review-dismiss:hover{border-color:#c0a882;color:var(--color-primary)}.header-abbr{display:none}.month-layout{margin:0 auto;max-width:1200px}.month-grid-header{grid-gap:1px;display:grid;gap:1px;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:2px}.month-day-header{color:var(--color-text-muted);font-size:.75rem;font-weight:700;padding:.3rem 0;text-align:center;text-transform:uppercase}.month-grid{grid-gap:1px;background:var(--color-border);border-radius:var(--radius-md);display:grid;gap:1px;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden}.month-cell{background:var(--color-surface);cursor:pointer;min-height:90px;min-width:0;overflow:hidden;padding:.3rem;transition:background .15s}.month-cell:hover{background:var(--color-bg-hover)}.month-cell.other-month{background:var(--color-bg-warm);opacity:.6}.month-cell.other-month:hover{opacity:.8}.month-cell.today{box-shadow:inset 0 0 0 2px var(--color-accent)}.month-cell-day{color:var(--color-primary);font-size:.8rem;font-weight:700;margin-bottom:.15rem}.month-cell.other-month .month-cell-day{color:var(--color-text-muted)}.month-cell-meals{display:flex;flex-direction:column;gap:1px}.month-meal-entry{align-items:flex-start;color:var(--color-text);display:flex;font-size:.65rem;gap:2px;line-height:1.2;overflow:hidden}.month-meal-icon{flex-shrink:0;font-size:.55rem}.month-meal-names{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-guide{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:640px;padding:3rem 1.5rem;text-align:center}.welcome-title{color:var(--color-primary);font-size:1.6rem;font-weight:700;margin-bottom:.25rem}.welcome-subtitle{color:var(--color-text-light);font-size:1rem;margin-bottom:2rem}.welcome-paths{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;width:100%}.welcome-path{align-items:center;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:.5rem;padding:1.5rem 1.25rem;transition:all .25s}.welcome-path:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.welcome-path-icon{font-size:2rem}.welcome-path-label{color:var(--color-primary);font-size:1.05rem;font-weight:600}.welcome-path-desc{color:var(--color-text-light);font-size:.85rem;line-height:1.4}.welcome-hint{color:var(--color-text-muted);font-size:.85rem;font-style:italic;margin-top:1.5rem}@media (max-width:480px){.welcome-paths{grid-template-columns:1fr}.welcome-guide{padding:2rem 1rem}}@media (max-width:860px){.main-layout{grid-template-columns:1fr}.pantry-column{position:static}}@media (max-width:600px){.month-layout{overflow-x:hidden}.month-cell{min-height:60px;padding:.2rem}.month-day-header{font-size:.6rem;padding:.2rem 0}.month-cell-day{font-size:.7rem}.month-meal-icon{display:none}.month-meal-entry{font-size:.55rem}}.recipes-section{margin:0 auto;max-width:700px}.recipes-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.recipes-header h2{color:var(--color-primary);font-size:1.3rem;font-weight:700}.recipe-new-btn{background:var(--color-accent);border:none;border-radius:var(--radius-lg);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:.45rem 1rem;transition:all .2s}.recipe-new-btn:hover{background:var(--color-accent-deep);transform:scale(1.02)}.recipes-list{display:flex;flex-direction:column;gap:.75rem}.recipe-card{background:var(--color-surface);border:none;border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);cursor:pointer;padding:.8rem 1rem;transition:all .25s}.recipe-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.recipe-card-header{align-items:flex-start;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.4rem}.recipe-card-actions{align-items:center;display:flex;flex-shrink:0;gap:.3rem}.recipe-fav-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1.2rem;line-height:1;padding:.1rem .2rem;transition:color .2s,transform .15s}.recipe-fav-btn:hover{transform:scale(1.2)}.recipe-fav-btn.active{color:var(--color-accent)}.recipe-plan-btn{background:var(--color-accent);border:none;border-radius:var(--radius-lg);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:600;padding:.25rem .6rem;transition:all .2s;white-space:nowrap}.recipe-plan-btn:hover{background:var(--color-accent-deep);transform:scale(1.02)}.quick-slot-dialog{background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card-hover);max-width:320px;padding:1.2rem;width:90vw}.quick-slot-dialog h3{color:var(--color-text);font-size:1rem;font-weight:600;margin:0 0 .8rem}.quick-slot-grid{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.8rem}.quick-slot-row{align-items:center;display:flex;gap:.5rem}.quick-slot-day{color:var(--color-text);font-size:.85rem;font-weight:500;min-width:5.5rem}.quick-slot-btn{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;font-size:.95rem;padding:.35rem .6rem;transition:all .2s}.quick-slot-btn:hover{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.05)}.recipe-card-name{color:var(--color-text);font-size:1rem;font-weight:600}.recipe-card-ingredients{display:flex;flex-wrap:wrap;gap:.3rem}.recipe-editor{background:var(--color-surface);border:none;border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);margin-bottom:.75rem;padding:1rem}.recipe-name-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:1rem;font-weight:600;margin-bottom:.6rem;outline:none;padding:.5rem .7rem;transition:all .2s;width:100%}.recipe-name-input:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.recipe-ingredients-list{margin-bottom:.6rem}.recipe-editor-actions{display:flex;gap:.5rem}.recipe-save-btn{background:var(--color-sage);border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:.4rem 1rem;transition:all .2s}.recipe-save-btn:hover{background:#5a8e5e;transform:scale(1.02)}.recipe-delete-btn{background:#e74c3c;border:none;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:.4rem 1rem;transition:all .2s}.recipe-delete-btn:hover{background:var(--color-danger);transform:scale(1.02)}.recipe-cancel-btn{background:none;border:1px solid #d8d8e8;border-radius:var(--radius-md);color:#8a8aa7;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:500;padding:.4rem 1rem;transition:all .15s}.recipe-cancel-btn:hover{border-color:var(--color-muted-ui);color:var(--color-text-muted)}.meal-name-wrapper{align-items:center;display:flex;position:relative;z-index:1}.meal-name-wrapper:focus-within{z-index:100}.recipe-suggestions{background:var(--color-surface);border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.recipe-suggestion-item{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:.5rem .7rem;transition:background .1s}.recipe-suggestion-item:hover{background:#fdf0e6}.recipe-suggestion-name{color:var(--color-text);font-size:.85rem;font-weight:600}.recipe-suggestion-count{color:var(--color-muted-ui);font-size:.72rem}.smart-suggestions{max-height:280px}.suggestion-section-header{border-top:1px solid var(--color-bg-warm);color:var(--color-drag-handle-hover);font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:.4rem .7rem .2rem;text-transform:uppercase}.suggestion-section-header:first-child{border-top:none}.save-as-recipe-btn{background:none;border:1px dashed #c8d6c8;border-radius:var(--radius-md);color:var(--color-sage);cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:500;margin-top:.3rem;padding:.2rem .5rem;transition:all .15s}.save-as-recipe-btn:hover{background:#eef5ee;border-color:#6a9e6e}.note-dialog-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.note-dialog{background:var(--color-surface);border:none;border-radius:var(--radius-pill);box-shadow:0 8px 32px #5a463226;max-width:400px;padding:1.2rem 1.4rem;width:90%}.note-dialog h3{font-size:1rem;font-weight:600}.note-dialog h3,.note-dialog-textarea{color:var(--color-text);margin-bottom:.7rem}.note-dialog-textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-sizing:border-box;font-family:inherit;font-size:.85rem;min-height:60px;outline:none;padding:.5rem .6rem;resize:vertical;transition:all .2s;width:100%}.note-dialog-textarea:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.note-dialog-actions{display:flex;flex-wrap:wrap;gap:.5rem}.note-dialog-error{color:var(--color-danger-alt);font-size:.85rem;margin:0;width:100%}.recipe-notes-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:.85rem;margin-bottom:.5rem;min-height:40px;outline:none;padding:.4rem .6rem;resize:vertical;transition:all .2s;width:100%}.recipe-notes-input:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.recipe-notes-input::placeholder{color:var(--color-dashed-border);font-style:italic}.recipe-card-notes{font-style:italic;white-space:pre-line}.recipe-card-notes,.recipe-card-servings{color:var(--color-text-muted);font-size:.8rem;margin-bottom:.4rem}.recipe-servings-row{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.recipe-servings-label{color:var(--color-text-muted);font-size:.85rem;white-space:nowrap}.recipe-servings-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--color-text);font-family:inherit;font-size:.85rem;outline:none;padding:.3rem .5rem;transition:all .2s;width:5rem}.recipe-servings-input:focus{background:var(--color-surface);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.servings-dialog-info{color:var(--color-text-muted);font-size:.85rem;margin:0 0 .5rem}.quick-slot-servings{margin-bottom:.5rem}@media (max-width:640px){.app{padding:0}.app-topbar{padding:calc(env(safe-area-inset-top, 0px) + .4rem) .6rem .4rem}.app-logo{font-size:1rem}.app-tagline,.kitchen-user-email{display:none}.kitchen-name{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kitchen-name,.kitchen-select{max-width:9rem}.signout-full{display:none}.signout-compact{display:inline}.signout-btn{font-size:.9rem;line-height:1;padding:.25rem .5rem}.kitchen-bar,.kitchen-bar-right{gap:.3rem}.kitchen-bar-btn{font-size:.75rem;padding:.25rem .6rem}.rank-badge-label{display:none}.rank-badge{padding:.2rem .4rem}.app-nav{gap:.5rem;padding:.35rem .6rem}.nav-tab{font-size:.78rem;padding:.3rem .7rem}.week-label{font-size:.78rem;min-width:90px}.month-cell{min-height:60px;padding:.2rem}.month-cell-day{font-size:.7rem}.month-meal-entry{font-size:.55rem}.month-meal-icon{display:none}.app-main{padding:0}.day-card-body{flex-direction:column;gap:0}.meal-type-slots+.meal-type-slots{border-left:none;border-top:1px solid var(--color-subtle-bg);padding-left:0}.header-full{display:none}.header-abbr{display:inline}.inline-ing-name,.inline-qty,.meal-name-input{font-size:16px}}.install-prompt{align-items:center;background:#eef6ee;border:1px solid #b5d8b5;border-radius:var(--radius-md);display:flex;flex-wrap:wrap;font-size:.9rem;gap:.75rem;margin:.5rem 1rem;padding:.75rem 1rem}.install-prompt-content{flex:1 1;min-width:180px}.install-prompt-btn{border:none;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;font-size:.85rem;font-weight:500;padding:.4rem .8rem}.install-prompt-btn.accept{background:var(--color-primary);color:#fff}.install-prompt-btn.accept:hover{background:var(--color-primary-dark)}.install-prompt-btn.dismiss{background:#0000;color:#999;font-size:1rem;padding:.2rem .4rem}.install-prompt-btn.dismiss:hover{color:#333}.ios-share-icon{color:#007aff;display:inline-block;font-weight:700}.push-prompt{align-items:center;background:#fffbe6;border:1px solid #ffe58f;border-radius:var(--radius-md);display:flex;flex-wrap:wrap;font-size:.9rem;gap:.75rem;margin:.5rem 1rem;padding:.75rem 1rem}.push-prompt span{flex:1 1;min-width:180px}.push-prompt-btn{border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-weight:500;padding:.4rem .8rem}.push-prompt-btn.accept{background:var(--color-primary);color:#fff}.push-prompt-btn.accept:hover{background:var(--color-primary-dark)}.push-prompt-btn.dismiss{background:#0000;color:#666;text-decoration:underline}.push-prompt-btn.dismiss:hover{color:#333}.shopping-import-btn{background:none;border:1px solid var(--color-border-dark);border-radius:var(--radius-md);color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;padding:.35rem .75rem;transition:all .15s}.shopping-import-btn:hover{background:var(--color-bg);border-color:var(--color-primary)}.receipt-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.receipt-modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;max-height:90vh;max-width:480px;width:100%}.receipt-modal--review{max-width:540px}.receipt-modal-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:1rem 1.25rem}.receipt-modal-header h2{color:var(--color-primary);font-size:1.1rem;margin:0}.receipt-close-btn{background:none;border:none;color:#999;cursor:pointer;font-size:1.2rem;line-height:1;padding:.25rem}.receipt-close-btn:hover{color:#333}.receipt-upload-area{border:2px dashed #d0c8bc;border-radius:var(--radius-md);cursor:pointer;margin:1.5rem;padding:3rem 2rem;text-align:center;transition:all .15s}.receipt-upload-area:hover{background:var(--color-bg);border-color:var(--color-primary)}.receipt-upload-icon{font-size:2.5rem;margin-bottom:.75rem}.receipt-upload-text{color:var(--color-primary);font-size:1rem;font-weight:600;margin:0 0 .25rem}.receipt-upload-hint{color:#888;font-size:.8rem;margin:0}.receipt-error{color:var(--color-danger);font-size:.85rem;padding:0 1.25rem 1rem;text-align:center}.receipt-loading{padding:3rem 2rem;text-align:center}.receipt-spinner{animation:receipt-spin .8s linear infinite;border:3px solid #e2d6c8;border-radius:50%;border-top-color:#5a4632;height:36px;margin:0 auto 1rem;width:36px}@keyframes receipt-spin{to{transform:rotate(1turn)}}.receipt-loading p{color:#666;font-size:.9rem}.receipt-review-scroll{flex:1 1;overflow-y:auto;padding:.75rem 1.25rem}.receipt-section{margin-bottom:1rem}.receipt-section-header{font-size:.85rem;font-weight:700;margin-bottom:.25rem;padding:.4rem 0}.receipt-section-header--matched{color:#3a6e1f}.receipt-section-header--unmatched{color:#b57322}.receipt-item{border-bottom:1px solid #f0ebe4;padding:.6rem 0}.receipt-item:last-child{border-bottom:none}.receipt-item--matched{align-items:center;display:flex;gap:.5rem}.receipt-item--ignored{opacity:.45}.receipt-item-info{flex:1 1;min-width:0}.receipt-item-name{color:#333;display:block;font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-item-detail{color:#888;font-size:.75rem}.receipt-item-detail strong{color:var(--color-primary)}.receipt-item-qty{color:#888;font-size:.75rem;margin-left:.5rem}.receipt-qty-input{-moz-appearance:textfield;border:1px solid #ddd;border-radius:var(--radius-xs);color:inherit;font-family:inherit;font-size:inherit;padding:.15rem .3rem;text-align:right;width:3.5rem}.receipt-qty-input::-webkit-inner-spin-button,.receipt-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.receipt-qty-input:focus{border-color:var(--color-primary);outline:none}.receipt-item-action-btn{background:none;border:none;color:#bbb;cursor:pointer;flex-shrink:0;font-size:.9rem;padding:.25rem}.receipt-item-action-btn:hover{color:var(--color-danger)}.receipt-item-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}.receipt-action-chip{background:#fff;border:1px solid var(--color-border-dark);border-radius:100px;color:#666;cursor:pointer;font-family:inherit;font-size:.72rem;padding:.25rem .6rem;transition:all .15s}.receipt-action-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.receipt-action-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.receipt-assign-picker,.receipt-create-fields{align-items:center;display:flex;gap:.4rem;margin-top:.4rem}.receipt-select{background:#fff;border:1px solid var(--color-border-dark);border-radius:var(--radius-xs);color:#333;flex:1 1;font-family:inherit;font-size:.8rem;min-width:0;padding:.35rem .5rem}.receipt-select--section{flex:0 0 auto;width:auto}.receipt-create-input{border:1px solid var(--color-border-dark);border-radius:var(--radius-xs);color:#333;flex:1 1;font-family:inherit;font-size:.8rem;min-width:0;padding:.35rem .5rem}.receipt-create-input:focus,.receipt-select:focus{border-color:var(--color-primary);outline:none}.receipt-modal-footer{align-items:center;border-top:1px solid var(--color-border);display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1.25rem}.receipt-cancel-btn{background:#fff;border:1px solid var(--color-border-dark);border-radius:var(--radius-sm);color:#666;cursor:pointer;font-family:inherit;font-size:.85rem;padding:.5rem 1rem}.receipt-cancel-btn:hover{border-color:#999}.receipt-confirm-btn{background:var(--color-primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:.5rem 1.25rem;transition:background .15s}.receipt-confirm-btn:hover{background:var(--color-primary-dark)}.receipt-confirm-btn:disabled{cursor:default;opacity:.4}[data-theme=riviera]:not([data-scheme=dark]) .google-login-btn{box-shadow:0 1px 3px #1b496514}[data-theme=riviera]:not([data-scheme=dark]) .google-login-btn:hover{box-shadow:0 4px 12px #ee6c4d40}[data-theme=riviera]:not([data-scheme=dark]) .app-topbar{border-bottom-color:#d8e4ec80;box-shadow:0 1px 3px #1b49650d}[data-theme=riviera]:not([data-scheme=dark]) .nav-tab:hover,[data-theme=riviera]:not([data-scheme=dark]) .pantry-view-tab:hover{background:#ee6c4d1a}[data-theme=riviera]:not([data-scheme=dark]) .week-nav-btn:hover{box-shadow:0 2px 8px #ee6c4d40}[data-theme=riviera]:not([data-scheme=dark]) .note-dialog{box-shadow:0 8px 32px #1b496526}[data-theme=riviera]:not([data-scheme=dark]) .day-card{box-shadow:0 1px 3px #1b49650d}[data-theme=riviera] .inline-ing-name:hover{background:var(--color-input-hover-bg)}[data-theme=riviera] .receipt-section-header--matched{color:var(--color-success-banner-text)}[data-scheme=dark] .app-topbar,[data-theme=riviera] .receipt-item{border-bottom-color:var(--color-border)}[data-scheme=dark] .app-topbar{box-shadow:0 1px 3px #0000004d}[data-scheme=dark] .google-login-btn{background:var(--color-surface);box-shadow:0 1px 3px #0000004d}[data-scheme=dark] .google-login-btn:hover{box-shadow:0 4px 12px #0006}[data-scheme=dark] .nav-tab:hover,[data-scheme=dark] .pantry-view-tab:hover{background:#ffffff14}[data-scheme=dark] .nav-tab.active,[data-scheme=dark] .week-nav-btn:hover{box-shadow:0 2px 8px #0006}[data-scheme=dark] .note-dialog{background:var(--color-surface)}[data-scheme=dark] .drag-handle:hover{background:#ffffff14}[data-scheme=dark] input,[data-scheme=dark] select,[data-scheme=dark] textarea{color:var(--color-text)}[data-scheme=dark] .login-request-input{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}:root{--color-primary:#1b4965;--color-primary-dark:#143a52;--color-accent:#ee6c4d;--color-accent-dark:#dc5a3b;--color-accent-deep:#c44a2d;--color-bg:#fff;--color-bg-warm:#f0f7fa;--color-bg-hover:#e4f0f5;--color-bg-gradient-start:#fff;--color-bg-gradient-end:#edf5f8;--color-border:#d8e4ec;--color-border-dark:#c0d0dc;--color-text:#1b2a4a;--color-text-muted:#5e8096;--color-text-light:#9cb4c4;--color-success:#2ec4b6;--color-sage:#2ec4b6;--color-sage-dark:#1a9e92;--color-danger:#e63946;--color-danger-alt:#d32f2f;--color-white:#fff;--color-surface:#fff;--color-surface-translucent:#fffc;--color-surface-glass:#fff9;--color-toast-bg:#333;--color-toast-text:#fff;--color-chip-bg-start:#e8f4f8;--color-chip-bg-end:#dbeef4;--color-chip-text:#1b4965;--color-input-bg:#f5f8fa;--color-input-hover-bg:#e8f0f5;--color-muted-ui:#8098aa;--color-dashed-border:#b8ccd8;--color-subtle-bg:#f0f5f8;--color-fresh-bg:#e6f7f5;--color-fresh-text:#1a7a6e;--color-fresh-hover:#d4f0ec;--color-success-banner-bg:#e0f5f3;--color-success-banner-border:#a0d8d0;--color-success-banner-text:#167a6e;--color-warning-bg:#fef9ec;--color-warning-border:#f0d78c;--color-drag-handle:#b0c4d0;--color-drag-handle-hover:#7a98aa;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:14px;--radius-pill:20px;--shadow-card:0 1px 3px #1b496512,0 1px 2px #1b49650d;--shadow-card-hover:0 4px 12px #1b49651a,0 2px 4px #1b49650f;--shadow-elevated:0 4px 20px #1b49651f,0 2px 6px #1b49650f;--shadow-focus:0 0 0 3px #ee6c4d26;--shadow-focus-success:0 0 0 3px #2ec4b626;--shadow-drop:0 2px 8px #1b496533;--shadow-modal:0 8px 32px #1b49652e;--transition-fast:0.2s}:root[data-scheme=dark]{--color-primary:#7cc4e8;--color-primary-dark:#68b4d8;--color-accent:#f49070;--color-accent-dark:#e07050;--color-accent-deep:#cc5a3a;--color-bg:#0c161e;--color-bg-warm:#14222e;--color-bg-hover:#1c3040;--color-bg-gradient-start:#0c161e;--color-bg-gradient-end:#101c26;--color-border:#2e4a5e;--color-border-dark:#3e6080;--color-text:#e4eef4;--color-text-muted:#98bed4;--color-text-light:#6a94ae;--color-success:#50e0d0;--color-sage:#50e0d0;--color-sage-dark:#70f0e0;--color-danger:#f86070;--color-danger-alt:#e84848;--color-white:#fff;--color-surface:#182838;--color-surface-translucent:#182838eb;--color-surface-glass:#182838bf;--color-toast-bg:#e4eef4;--color-toast-text:#0c161e;--color-chip-bg-start:#1c3442;--color-chip-bg-end:#183040;--color-chip-text:#7cc4e8;--color-input-bg:#14222e;--color-input-hover-bg:#1c3040;--color-muted-ui:#7094ac;--color-dashed-border:#3e5c72;--color-subtle-bg:#142430;--color-fresh-bg:#163430;--color-fresh-text:#5ce8d4;--color-fresh-hover:#1e4240;--color-success-banner-bg:#163430;--color-success-banner-border:#2e6860;--color-success-banner-text:#5ce8d4;--color-warning-bg:#2e2818;--color-warning-border:#6a5830;--color-drag-handle:#3e5c72;--color-drag-handle-hover:#6a9ab4;--shadow-card:0 1px 4px #00000059,0 1px 2px #00000040;--shadow-card-hover:0 4px 14px #00000073,0 2px 5px #0000004d;--shadow-elevated:0 4px 22px #0000008c,0 2px 8px #00000059;--shadow-focus:0 0 0 3px #f490704d;--shadow-focus-success:0 0 0 3px #50e0d04d;--shadow-drop:0 2px 10px #0000008c;--shadow-modal:0 8px 36px #000000a6}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#fff,#edf5f8);background:linear-gradient(135deg,var(--color-bg-gradient-start) 0,var(--color-bg-gradient-end) 100%);color:#1b2a4a;color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}#root,body{min-height:100vh}
/*# sourceMappingURL=main.cfa20216.css.map*/