.Navigation_stickyHeader__Gw_fO{position:fixed;top:0;left:0;right:0;height:var(--space-16);background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--space-5);z-index:100;box-shadow:0 var(--space-05) var(--space-2) rgba(0,0,0,.05)}.Navigation_menuToggle__CNi9W{position:relative;z-index:101;background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);border:none;padding:var(--space-2) var(--space-3);border-radius:var(--space-3);color:#fff;font-size:var(--space-6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 var(--space-05) var(--space-2) rgba(91,71,209,.3)}.Navigation_menuToggle__CNi9W:hover{transform:scale(1.05);box-shadow:0 var(--space-1) var(--space-3) rgba(91,71,209,.4)}.Navigation_menuToggle__CNi9W i{margin:0}.Navigation_appTitle__4b8Zh{margin-left:var(--space-3);font-size:var(--space-5);font-weight:700;background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:center;gap:var(--space-2)}.Navigation_logo__g4_Kf{display:inline-block;vertical-align:middle;image-rendering:auto;-webkit-font-smoothing:antialiased}.Navigation_sidebar__7yjb1{position:fixed;left:calc(-1*var(--space-70));top:0;bottom:0;width:var(--space-70);background:#fff;box-shadow:var(--space-05) 0 var(--space-4) rgba(0,0,0,.1);transition:left .3s ease;z-index:1001;display:flex;flex-direction:column}.Navigation_sidebar__7yjb1.Navigation_open__psYbE{left:0}.Navigation_sidebarHeader__BnPkn{padding:var(--space-6) var(--space-5);border-bottom:2px solid var(--border-light);background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff}.Navigation_sidebarHeader__BnPkn h2{margin:0;font-size:var(--font-xl);display:flex;align-items:center;gap:var(--space-3)}.Navigation_navList__V4Bly{list-style:none;padding:var(--space-5) 0;margin:0;flex:1 1;overflow-y:auto}.Navigation_navItem__e2Rg_ a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);color:var(--text-primary);text-decoration:none;font-weight:500;transition:all .2s ease;border-left:4px solid transparent}.Navigation_navItem__e2Rg_ a i{font-size:var(--space-5);width:var(--space-6);text-align:center;color:var(--primary-color)}.Navigation_navItem__e2Rg_ a:hover{background:var(--border-light);border-left-color:var(--primary-color)}.Navigation_navItem__e2Rg_ a.Navigation_active__kQT4n{background:linear-gradient(90deg,#ede9fe,transparent);border-left-color:var(--primary-color);color:var(--primary-color);font-weight:600}.Navigation_navItem__e2Rg_ a.Navigation_active__kQT4n i{color:var(--primary-color)}.Navigation_navFooter__e94_X{padding:var(--space-5);border-top:2px solid var(--border-light);display:flex;flex-direction:column;gap:var(--space-3)}.Navigation_navUser__Aek5C{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--border-light);border-radius:var(--space-2);color:var(--text-primary);font-weight:500}.Navigation_navUser__Aek5C i{font-size:var(--font-xl);color:var(--primary-color)}.Navigation_navButton__S3V2Z{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:none;color:var(--text-primary);text-decoration:none;font-weight:500;transition:all .2s ease;border:none;border-left:4px solid transparent;cursor:pointer;text-align:left;font-size:var(--font-md)}.Navigation_navButton__S3V2Z i{font-size:var(--space-5);width:var(--space-6);text-align:center;color:var(--primary-color)}.Navigation_navButton__S3V2Z:hover{background:var(--border-light);border-left-color:var(--primary-color)}.Navigation_overlay__ytIHR{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;animation:Navigation_fadeIn__CE1cw .2s ease}.Navigation_overlay__ytIHR.Navigation_hidden__k_KCm{display:none}@keyframes Navigation_fadeIn__CE1cw{0%{opacity:0}to{opacity:1}}:root{--primary-color:#873d48;--primary-rgb:135,61,72;--primary-hover:#ed793a;--secondary-color:#873d48;--accent-color:#ec4899;--planner-day-header-bg:var(--primary-color);--planner-day-header-fg:#fff;--planner-meal-header-fg:#fff;--planner-meal-breakfast-bg:#007ea7;--planner-meal-lunch-bg:#003459;--planner-meal-dinner-bg:#00171f;--planner-meal-breakfast-fg:#fff;--planner-meal-lunch-fg:#fff;--planner-meal-dinner-fg:#fff;--background:#f9fafb;--card-bg:#fff;--text-primary:#1f2937;--text-secondary:#6b7280;--border:#e5e7eb;--border-light:#f3f4f6;--shadow:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 6px rgba(0,0,0,.07);--shadow-lg:0 10px 15px rgba(0,0,0,.08);--input-padding:8px 12px;--btn-padding:8px 12px;--btn-padding-sm:6px 12px;--font-xs:0.75rem;--font-sm:0.85rem;--font-base:0.95rem;--font-md:1rem;--font-lg:1.2rem;--font-xl:1.5rem;--font-2xl:2.5rem;--space-0:0px;--space-025:1px;--space-05:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-9:36px;--space-10:40px;--space-11:44px;--space-12:48px;--space-13:52px;--space-14:56px;--space-15:60px;--space-16:64px;--space-20:80px;--space-24:96px;--space-28:112px;--space-32:128px;--space-36:144px;--space-40:160px;--space-44:176px;--space-48:192px;--space-52:208px;--space-56:224px;--space-60:240px;--space-64:256px;--space-70:280px;--space-80:320px;--space-96:384px;--space-120:480px;--space-160:640px;--space-200:800px;--space-240:960px;--space-300:1200px;--space-360:1440px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--background);color:var(--text-primary)}.container,body{min-width:var(--space-80)}.container{max-width:var(--space-300);margin:0 auto;padding:var(--space-5)}header{margin-bottom:var(--space-8);padding:var(--space-5) 0}.header-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.header-content{flex:1 1;text-align:center}header h1{font-size:var(--font-2xl);color:var(--primary-color);margin-bottom:var(--space-3)}header p{color:var(--text-secondary)}.user-menu{gap:var(--space-3)}.user-menu,.user-name{display:flex;align-items:center}.user-name{gap:var(--space-2);color:var(--text-primary);font-weight:500;font-size:var(--font-base);min-width:0;max-width:35vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:520px){.user-name{max-width:45vw}}.user-name i{font-size:var(--font-xl);color:var(--primary-color)}.logout-btn{padding:var(--btn-padding)!important;font-size:var(--font-lg)!important}.logout-btn i{margin:0!important}.settings-panel{background:#fff;border-radius:var(--space-4);padding:0;margin-top:var(--space-6);box-shadow:0 var(--space-1) var(--space-5) rgba(0,0,0,.1);overflow:hidden}.settings-header{justify-content:space-between;padding:var(--space-6);background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%)}.settings-header,.settings-header h3{display:flex;align-items:center;color:#fff}.settings-header h3{margin:0;font-size:var(--font-xl);gap:var(--space-3)}.settings-content{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-8)}.settings-close-btn{display:none;background:hsla(0,0%,100%,.2);border:none;font-size:var(--font-lg);color:#fff;cursor:pointer;padding:var(--btn-padding);transition:all .2s ease;line-height:1;border-radius:var(--space-2)}.settings-close-btn:hover{background:hsla(0,0%,100%,.3)}.settings-overlay{display:none}.settings-menu-btn{display:flex;align-items:center;gap:var(--space-2);order:2}.header-content{order:1}.hamburger-icon{font-size:var(--space-5);display:none}.settings-panel h3{margin:0;color:#fff;font-size:var(--font-xl)}.setting-item{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--border-light);border-radius:var(--space-2);border:1px solid var(--border)}.setting-label{display:flex;align-items:center;gap:var(--space-3);font-weight:600;font-size:var(--space-4);color:#2c3e50}.setting-label i{font-size:var(--space-5);color:var(--primary-color)}.setting-label label{font-weight:600;margin:0}.setting-hint{color:#6c757d;margin-top:calc(-1 * var(--space-2))}.meal-toggles{display:flex;gap:var(--space-3);flex-wrap:wrap}.meal-toggle-item{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;font-weight:400;padding:var(--input-padding);background:#fff;border-radius:var(--space-2);border:1px solid var(--border);transition:all .2s ease;flex:1 1;min-width:var(--space-36)}.meal-toggle-item:hover{border-color:var(--primary-color);background:rgba(91,71,209,.04)}.meal-toggle-item input[type=checkbox]:checked+span{color:var(--primary-color);font-weight:600}.meal-toggle-item input[type=checkbox]{cursor:pointer;width:var(--space-5);height:var(--space-5);accent-color:var(--primary-color)}.meal-toggle-item span{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-base)}.family-size-input{padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--space-4);width:var(--space-24);text-align:center;font-weight:600;background:#fff;transition:all .2s ease}.family-size-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(91,71,209,.1)}.setting-hint{color:var(--text-secondary);font-size:var(--font-sm);font-style:italic}.saved-plans-compact{display:flex;flex-direction:column;gap:var(--space-4);width:100%}.plan-save-section{display:flex;gap:var(--space-2);align-items:stretch}.plan-name-input-compact{flex:1 1;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--font-base);background:#fff;transition:all .2s ease}.plan-name-input-compact:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(91,71,209,.1)}.btn-compact{padding:var(--space-3) var(--space-4);white-space:nowrap;display:flex;align-items:center;gap:var(--space-2);font-size:var(--space-4)}.saved-plans-list-compact{display:flex;flex-direction:column;gap:var(--space-2)}.saved-plan-item-compact{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);background:#fff;border:1px solid var(--border);border-radius:var(--space-2);transition:all .2s ease}.saved-plan-item-compact:hover{border-color:var(--primary-color);background:rgba(91,71,209,.04);box-shadow:var(--shadow)}.saved-plan-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.saved-plan-name{font-weight:600;font-size:var(--font-base);color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-plan-date{font-size:var(--space-3);color:#6c757d}.saved-plan-actions{gap:var(--space-1);flex-shrink:0}.btn-icon{background:none;border:none;padding:var(--space-2);cursor:pointer;border-radius:var(--space-2);transition:all .2s ease;font-size:var(--space-4);display:flex;align-items:center;justify-content:center}.btn-icon.btn-restore{color:#667eea}.btn-icon.btn-restore:hover{background:#e3f2fd;color:#1976d2}.btn-icon.btn-delete{color:#dc3545}.btn-icon.btn-delete:hover{background:#ffebee;color:#c62828}@media (max-width:768px){.saved-plans-compact{gap:var(--space-3)}.plan-save-section{flex-direction:column;gap:var(--space-3)}.plan-name-input-compact{padding:var(--space-3);font-size:var(--font-md)}.btn-compact{width:100%;justify-content:center;padding:var(--space-4);font-size:var(--font-md)}.saved-plans-list-compact{max-height:none;overflow-y:visible}.saved-plan-item-compact{flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-4)}.saved-plan-info{width:100%}.saved-plan-name{font-size:var(--font-md);white-space:normal;word-break:break-word}.saved-plan-date{font-size:var(--font-sm)}.saved-plan-actions{width:100%;justify-content:flex-end;gap:var(--space-2)}.btn-icon{padding:var(--space-3) var(--space-4);font-size:var(--font-lg);min-width:var(--space-11);min-height:var(--space-11)}}main{gap:var(--space-8)}.main-content,main{display:flex;flex-direction:column}.main-content{gap:var(--space-5)}.add-recipe-container{background:var(--card-bg);padding:var(--space-5);border-radius:var(--space-3);box-shadow:var(--shadow)}@media (max-width:968px){.main-content{gap:var(--space-4)}}section{background:var(--card-bg);padding:var(--space-6);border-radius:var(--space-3)}.tasks-content{padding:var(--space-3)}h2{margin-bottom:var(--space-5);font-size:var(--font-xl)}.recipe-form-compact{max-width:100%}.form-mode-toggle{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);background:#f3f4f6;padding:var(--space-1);border-radius:var(--space-3)}.mode-btn{flex:1 1;padding:var(--space-3) var(--space-4);border:none;background:transparent;border-radius:var(--space-2);font-size:var(--space-4);cursor:pointer;transition:all .2s ease;font-weight:500;color:#6b7280}@media (max-width:480px){.mode-btn{padding:var(--space-2) var(--space-3);font-size:var(--font-xs)}}.mode-btn.active{background:#fff;color:var(--primary-color);box-shadow:0 var(--space-025) var(--space-1) rgba(0,0,0,.1)}.mode-btn:hover:not(.active){color:#374151}.manual-form{display:flex;flex-direction:column;gap:var(--space-3)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3)}.recipe-textarea{width:100%;padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--font-md);font-family:inherit;resize:vertical;transition:all .2s ease;min-height:var(--space-32);background:#fff}.recipe-textarea::placeholder{color:var(--text-secondary);opacity:.7}.recipe-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(91,71,209,.1)}.btn-block{width:100%}.add-recipe-form{display:flex;gap:var(--space-2);align-items:stretch}.search-form{position:relative}.search-input-wrapper{display:flex;align-items:center;gap:var(--space-2)}.search-input-wrapper .recipe-input{flex:1 1}.btn-search{width:var(--space-9);height:var(--space-9);padding:0;font-size:var(--space-4);flex-shrink:0;display:flex;align-items:center;justify-content:center}.search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:var(--space-2);margin-top:var(--space-1);box-shadow:0 var(--space-1) var(--space-5) rgba(0,0,0,.15);z-index:100;max-height:var(--space-80);overflow-y:auto}.search-result-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:none;background:transparent;text-align:left;cursor:pointer;transition:background-color .15s ease;font-size:var(--font-base);color:var(--text-primary)}.search-result-item:hover:not(:disabled){background:var(--background)}.search-result-item:disabled{opacity:.6;cursor:not-allowed}.search-result-image{object-fit:cover}.search-result-image,.search-result-placeholder{width:var(--space-14);height:var(--space-14);border-radius:var(--space-2);flex-shrink:0}.search-result-placeholder{background:linear-gradient(135deg,var(--border-light) 0,var(--border) 100%);display:flex;align-items:center;justify-content:center}.search-result-placeholder i{font-size:var(--space-6);color:var(--text-secondary)}.search-result-term{flex:1 1;font-weight:500;line-height:1.3}.search-result-item i{color:var(--primary-color);font-size:var(--font-md)}.search-result-item+.search-result-item{border-top:1px solid var(--border-light)}.loading-message{padding:var(--space-3) var(--space-4);text-align:center;color:var(--text-secondary);font-size:var(--space-4)}.recipe-input{flex:1 1;padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--font-md);transition:all .2s ease;background:#fff}.recipe-input::placeholder{color:var(--text-secondary);opacity:.7}.recipe-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(91,71,209,.1)}.recipe-input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-add{min-width:var(--space-12)!important;height:auto!important;padding:var(--btn-padding)!important;font-size:var(--font-base)!important;flex-shrink:0;display:flex!important;align-items:center;justify-content:center}.error-message-compact{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:#ffebee;color:#c62828;border-radius:var(--space-2);font-size:var(--font-sm);border-left:3px solid #c62828}.btn{padding:var(--space-3) var(--space-5);border:none;border-radius:var(--space-2);font-size:var(--font-base);cursor:pointer;transition:all .2s ease;font-weight:500;box-shadow:var(--shadow)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(calc(-1 * var(--space-025)))}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--secondary-color);box-shadow:var(--shadow-md);transform:translateY(calc(-1 * var(--space-025)))}.btn-secondary:active:not(:disabled){background:var(--secondary-color);transform:translateY(0)}.btn-outline{background:#fff;border:1px solid var(--border);color:var(--text-primary);box-shadow:var(--shadow)}.btn-outline:hover:not(:disabled){background:var(--border-light);border-color:var(--primary-color);color:var(--primary-color)}.btn-danger{background:#ef4444}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:var(--shadow-md);transform:translateY(calc(-1 * var(--space-025)))}.btn-sm,.btn-small{padding:var(--btn-padding-sm);font-size:var(--font-sm);min-width:var(--space-9)}.btn-text{background:rgba(var(--primary-rgb),.1);border:none;color:var(--primary-color);padding:var(--btn-padding);font-size:var(--space-4);border-radius:var(--space-2)}.btn-text:hover:not(:disabled){background:rgba(var(--primary-rgb),.18);color:var(--primary-color)}.btn-text.btn-danger{color:#d32f2f;background:rgba(220,53,69,.1);border:none;border-radius:var(--space-2)}.btn-text.btn-danger:hover:not(:disabled){background:rgba(220,53,69,.18);color:#b71c1c}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#c82333}.recipes-grid .recipe-card-mini{cursor:default}.recipes-grid .recipe-card-mini:active{cursor:default;opacity:1}.recipe-card{border:1px solid var(--border);border-radius:var(--space-2);overflow:hidden;transition:all .2s ease;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;height:100%}.recipe-card:hover{box-shadow:var(--shadow-lg);transform:translateY(calc(-1 * var(--space-05)));border-color:var(--primary-color)}.recipe-card-image-container{position:relative;width:100%;height:var(--space-44);overflow:hidden;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.recipe-card-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.recipe-card:hover .recipe-card-image{transform:scale(1.05)}.recipe-card-image-overlay{height:50%;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent)}.recipe-card-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);flex:1 1}.recipe-header{display:flex;justify-content:space-between;align-items:flex-start}.recipe-title{font-weight:600;color:var(--text-primary);font-size:var(--space-4);line-height:1.3;margin-bottom:var(--space-2)}.recipe-meta{display:flex;gap:var(--space-2);flex-wrap:wrap}.meta-badge{display:inline-flex;align-items:center;gap:var(--space-1);background:#f3f4f6;color:#6b7280;font-size:var(--space-3);padding:var(--space-1) var(--space-2);border-radius:var(--space-2);font-weight:500}.recipe-ingredients{flex:1 1}.ingredients-badge{display:inline-block;background:#e0f2fe;color:#0369a1;font-size:var(--font-sm);padding:var(--space-2) var(--space-3);border-radius:var(--space-2);font-weight:500}.recipe-actions{display:flex;gap:var(--space-2);margin-top:auto}.section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}.section-header-actions{display:flex;gap:var(--space-2);align-items:center}.grocery-count{font-size:var(--space-4);color:#6b7280;font-weight:500;background:#f3f4f6;padding:var(--space-2) var(--space-3);border-radius:var(--space-2)}.grocery-list{min-height:400px;display:flex;flex-direction:column;gap:var(--space-2)}.grocery-item{padding:var(--space-3) var(--space-3);background:rgba(var(--primary-rgb),.1);border:none;border-radius:var(--space-2);display:flex;align-items:center;gap:var(--space-3);transition:all .2s ease;box-shadow:0 var(--space-025) 0 rgba(0,0,0,.04)}.grocery-item.disabled{background:rgba(var(--primary-rgb),.05);box-shadow:none}.grocery-item.enabled{background:rgba(var(--primary-rgb),.1)}.grocery-item.checked{opacity:.7;background:rgba(var(--primary-rgb),.07);box-shadow:none}.grocery-item.checked .ingredient-name{text-decoration:line-through;color:var(--text-secondary)}.grocery-checkbox{width:var(--space-5);height:var(--space-5);cursor:pointer;flex-shrink:0;accent-color:var(--primary-color);border-radius:var(--space-1)}.grocery-checkbox:disabled{cursor:not-allowed;opacity:.6}.grocery-item-content{display:flex;justify-content:space-between;flex:1 1;align-items:center;gap:var(--space-3);min-width:0}.grocery-item:hover{background:rgba(var(--primary-rgb),.14);box-shadow:var(--shadow-md)}.grocery-item.disabled:hover{background:rgba(var(--primary-rgb),.05);box-shadow:none}.grocery-item.checked:hover{background:rgba(var(--primary-rgb),.07);box-shadow:none}.ingredient-name{font-weight:500;font-size:var(--font-base);color:#1f2937;overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:0}.ingredient-quantity{color:var(--primary-color);font-weight:600;font-size:var(--space-4);white-space:nowrap;background:rgba(var(--primary-rgb),.12);padding:var(--space-05) var(--space-3);border-radius:var(--space-2);transition:all .2s ease}.ingredient-quantity:hover{background:rgba(var(--primary-rgb),.18);transform:scale(1.02)}.empty-state{background:#f9fafb;border-radius:var(--space-3);border:2px dashed #e5e7eb}.grocery-footer{padding-top:var(--space-4);margin-top:var(--space-3);border-top:2px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.normalized-badge{background:#10b981;color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--space-2);margin-left:var(--space-2)}.ingredient-notes,.normalized-badge{font-size:var(--font-xs);font-weight:500}.ingredient-notes{color:#6b7280;margin-top:var(--space-1);background:#f3f4f6;padding:var(--space-05) var(--space-2);border-radius:var(--space-1);display:inline-block}.btn-inspect{background:transparent;border:none;color:var(--primary-color);font-size:var(--font-lg);cursor:pointer;padding:var(--space-1) var(--space-2);transition:all .2s ease;flex-shrink:0;line-height:1}.btn-inspect:hover{color:var(--accent-color);transform:scale(1.1)}.edit-quantity-container{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.edit-quantity-input{padding:var(--space-1) var(--space-2);border:1px solid var(--primary-color);border-radius:var(--space-2);font-size:var(--font-base);font-weight:600;color:var(--primary-color);background:#fff;min-width:var(--space-20);max-width:var(--space-32);outline:none;box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.edit-quantity-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.btn-save-quantity{background:var(--primary-color);color:#fff;border:none;border-radius:var(--space-2);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:var(--font-base);line-height:1;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-save-quantity:hover{background:var(--accent-color);transform:scale(1.05)}.btn-cancel-quantity{background:#6b7280;color:#fff;border:none;border-radius:var(--space-2);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:var(--font-base);line-height:1;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-cancel-quantity:hover{background:#4b5563;transform:scale(1.05)}.btn-delete-custom:hover{color:#991b1b!important;transform:scale(1.1)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:var(--space-4);max-width:var(--space-120);width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 var(--space-5) var(--space-15) rgba(0,0,0,.3)}.modal-header{align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border)}.modal-header h3{color:var(--primary-color);font-size:var(--font-xl);font-weight:600}.modal-close{background:transparent;border:none;font-size:var(--font-xl);color:var(--text-secondary);cursor:pointer;padding:var(--space-1) var(--space-2);transition:all .2s ease;line-height:1}.modal-close:hover{color:var(--text-primary);transform:rotate(90deg)}.modal-body{padding:var(--space-6);overflow-y:auto}@media (max-width:480px){.modal-overlay{background:#fff;padding:0;align-items:stretch;justify-content:stretch}.modal-content{max-width:100%;max-height:100vh;border-radius:0;box-shadow:none}.modal-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--card-bg);box-shadow:var(--shadow)}.modal-body,.modal-header{padding:var(--space-4)}}.ingredient-total{padding:var(--space-4);background:#ede9fe;border-radius:var(--space-2);margin-bottom:var(--space-5);font-size:var(--space-4)}.ingredient-total strong{color:var(--primary-color);margin-right:var(--space-2)}.ingredient-sources h4{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:var(--font-md);font-weight:600}.source-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);background:var(--border-light);border-radius:var(--space-2);margin-bottom:var(--space-2);gap:var(--space-3)}.source-recipe{font-weight:500;color:var(--text-primary);flex:1 1}.source-quantity{color:var(--primary-color);font-weight:600;background:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--space-2);white-space:nowrap}.error-message{background:#f8d7da;color:#721c24;border-radius:var(--space-2);border:1px solid #f5c6cb}.error-message,.success-message{padding:var(--space-3);margin-bottom:var(--space-4)}.success-message{background:#d4edda;color:#155724;border-radius:var(--space-2);border:1px solid #c3e6cb}.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.modal-content{background-color:var(--card-bg);border-radius:var(--space-3);width:90%;max-width:var(--space-160);box-shadow:0 var(--space-1) var(--space-5) rgba(0,0,0,.3);max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:flex-start}.modal-header h3{margin:0;color:var(--text-primary)}.close{color:#aaa;font-size:var(--space-7);font-weight:700;cursor:pointer;background:none;border:none;padding:0;line-height:1}.close:hover{color:#000}@media (max-width:480px){.modal{background-color:#fff;align-items:stretch;justify-content:stretch}.modal-content{width:100%;max-width:100%;max-height:100vh;border-radius:0;box-shadow:none}.modal-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--card-bg);padding:var(--space-4);box-shadow:var(--shadow)}}.ingredient-list{list-style:none;padding:0}.ingredient-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.ingredient-list li:last-child{border-bottom:none}.instructions-content{background:#f9fafb;padding:var(--space-5);border-radius:var(--space-3);border-left:4px solid var(--primary-color);line-height:1.7}.instructions-content p{margin-bottom:var(--space-3);color:#374151}.instructions-content p:last-child{margin-bottom:0}.recipe-import-section{background:var(--card-bg);padding:var(--space-5);border-radius:var(--space-2);box-shadow:var(--shadow);margin-bottom:var(--space-5)}.recipe-import-section h2{margin:0 0 var(--space-4) 0;font-size:var(--font-xl);color:var(--text-primary)}.recipe-import-section .recipe-form-compact{margin-bottom:0}.recipe-library-section{background:var(--card-bg);padding:var(--space-5);border-radius:var(--space-2);box-shadow:var(--shadow)}.library-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.recipe-library-section h2{margin:0;font-size:var(--font-xl);color:var(--text-primary)}.library-hint{margin:0 0 var(--space-4) 0;color:var(--text-secondary);font-size:var(--space-4)}.saved-plans-section{background:var(--card-bg);padding:var(--space-5);border-radius:var(--space-2);box-shadow:var(--shadow)}.saved-plans-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.saved-plans-title-wrapper{display:flex;align-items:center;gap:var(--space-3)}.saved-plans-header h2{margin:0;font-size:var(--font-xl);color:var(--text-primary)}.plan-name-input-wrapper{display:flex;gap:var(--space-3);align-items:center;flex:1 1;justify-content:flex-end}.plan-name-input{padding:var(--input-padding);border:2px solid var(--border);border-radius:var(--space-2);font-size:var(--space-4);max-width:var(--space-64);transition:all .2s ease}.plan-name-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(255,107,53,.1)}.saved-plans-actions{display:flex;gap:var(--space-3);align-items:center}.saved-plans-content{margin-top:var(--space-4)}.saved-plans-list{display:flex;flex-direction:column;gap:var(--space-3)}.saved-plan-card{background:var(--background);padding:var(--space-4);border-radius:var(--space-2);border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);transition:all .2s ease}.saved-plan-card:hover{border-color:var(--primary-color);box-shadow:0 var(--space-05) var(--space-2) rgba(0,0,0,.1)}.saved-plan-info{flex:1 1}.saved-plan-info h3{color:var(--text-primary)}.plan-description,.saved-plan-info h3{margin:0 0 var(--space-2) 0;font-size:var(--space-4)}.plan-date,.plan-description{color:var(--text-secondary)}.plan-date{font-size:var(--font-sm)}.saved-plan-actions{display:flex;gap:var(--space-2);align-items:center}.save-plan-modal{max-width:var(--space-120)}.save-plan-form{gap:var(--space-4)}.form-group,.save-plan-form{display:flex;flex-direction:column}.form-group{gap:var(--space-2)}.form-group label{font-weight:500}.form-group input,.form-group textarea{padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--font-md);font-family:inherit;transition:all .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(255,107,53,.1)}.form-group textarea{resize:vertical}.weekly-planner{background:var(--card-bg);padding:var(--space-6);border-radius:var(--space-2);box-shadow:var(--shadow)}.planner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);gap:var(--space-4)}.planner-header h2{margin:0;flex:1 1}.clear-week-btn{white-space:nowrap;flex-shrink:0}.unassigned-pool{margin-bottom:var(--space-6);padding:var(--space-4);background:var(--border-light);border-radius:var(--space-2);border:1px dashed var(--border);transition:all .3s ease}.unassigned-pool.collapsed{padding:var(--space-3) var(--space-4)}.pool-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;margin-bottom:var(--space-3)}.unassigned-pool.collapsed .pool-header{margin-bottom:0}.pool-toggle-btn{background:none;border:none;color:var(--text-primary);font-size:var(--font-md);cursor:pointer;padding:var(--space-1) var(--space-2);transition:transform .3s ease;line-height:1}.unassigned-pool h3{font-size:var(--font-md);margin-bottom:0;color:var(--text-secondary)}.recipe-pool{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:var(--space-3);gap:var(--space-3);min-height:var(--space-15)}.recipe-pool .recipe-card-mini{width:100%}.empty-pool{color:var(--text-secondary);font-size:var(--space-4);padding:var(--space-3)}.week-grid-rows{display:flex;flex-direction:column;gap:0}.week-mobile-view{display:none}.week-row,.week-row-headers{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:var(--space-3);gap:var(--space-3)}.day-header-cell{border-radius:var(--space-3) var(--space-3) 0 0;border:1px solid var(--border);padding:var(--space-4) var(--space-3);text-align:center;min-width:0;overflow:hidden;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--space-2);position:relative}.day-header-cell .day-name{color:var(--text-primary);font-weight:700;font-size:var(--space-3);letter-spacing:var(--space-0);text-transform:uppercase;text-shadow:none;white-space:nowrap}.nutrition-icon-btn{background:none;border:none;cursor:pointer;color:#4caf50;font-size:var(--font-md);padding:var(--space-1);border-radius:var(--space-1);transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:var(--space-7);height:var(--space-7);flex-shrink:0}.nutrition-icon-btn:hover{background:rgba(76,175,80,.1);color:#388e3c;transform:scale(1.1)}.nutrition-icon-btn:active{transform:scale(.95)}.meal-cell{overflow:hidden;display:flex;flex-direction:column;transition:all .3s ease}.meal-cell:hover{border-color:#667eea;box-shadow:0 var(--space-1) var(--space-4) rgba(102,126,234,.15)}@media (max-width:900px){.desktop-view{display:none!important}.week-mobile-view{display:flex;flex-direction:column;gap:var(--space-3)}.day-column-mobile{background:#fff;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden;scroll-margin-top:20px}.day-column-mobile.collapsed{box-shadow:var(--shadow)}.day-header-mobile{padding:var(--space-4) var(--space-4);border:1px solid var(--border);border-radius:var(--space-3) var(--space-3) 0 0;box-shadow:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#fff,#f8f9fa)}.day-column-mobile.collapsed .day-header-mobile{border-radius:var(--space-0)}.day-header-mobile .day-name{color:var(--text-primary);font-size:var(--space-4);font-weight:700;text-shadow:none}.day-header-actions{display:flex;align-items:center;gap:var(--space-2)}.nutrition-icon-btn-mobile{background:none;border:none;cursor:pointer;color:#4caf50;font-size:var(--font-md);padding:var(--space-1);border-radius:var(--space-1);transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:var(--space-8);height:var(--space-8)}.nutrition-icon-btn-mobile:hover{background:rgba(76,175,80,.1);color:#388e3c;transform:scale(1.1)}.nutrition-icon-btn-mobile:active{transform:scale(.95)}.day-toggle-btn{display:flex!important;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;line-height:1;flex-shrink:0}.day-toggle-btn:hover{background:rgba(0,0,0,.04);color:var(--text-primary)}.day-toggle-btn i{display:block}.day-column-mobile .meal-cell{border-radius:0;border:none;box-shadow:none}.week-row{grid-template-columns:1fr;gap:var(--space-3)}.clear-week-text,.week-row-headers{display:none}.clear-week-btn{padding:var(--space-2)!important;font-size:var(--space-4);min-width:var(--space-10)!important;width:var(--space-10)!important;height:var(--space-10);display:flex;align-items:center;justify-content:center}.meal-recipes{display:grid!important;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.empty-meal,.meal-add-btn{grid-column:1/-1}.day-navigator{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-3) 0;margin-bottom:var(--space-4);scrollbar-width:thin;-webkit-overflow-scrolling:touch}.day-navigator::-webkit-scrollbar{height:var(--space-1)}.day-navigator::-webkit-scrollbar-track{background:var(--background)}.day-navigator::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--space-1)}.day-nav-btn{flex-shrink:0;padding:var(--space-3) var(--space-4);background:#fff;border:1px solid var(--border);border-radius:var(--space-5);font-weight:600;font-size:var(--space-4);color:var(--text-primary);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow)}.day-nav-btn:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:scale(.95)}.day-column{scroll-margin-top:20px;border-radius:var(--space-2);border:1px solid var(--border);box-shadow:var(--shadow-md);transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.day-column.collapsed .meal-section{display:none}.day-column.collapsed{box-shadow:var(--shadow)}.day-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:var(--space-4) var(--space-3);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-bottom:none;box-shadow:var(--shadow-md);border-radius:var(--space-2) var(--space-2) 0 0;cursor:pointer}.day-column.collapsed .day-header{border-radius:var(--space-2)}.day-toggle-btn{display:flex;align-items:center;justify-content:center;color:var(--primary-color);font-size:var(--space-5);background:rgba(var(--primary-rgb),.1);border:1px solid rgba(var(--primary-rgb),.2);border-radius:var(--space-2);min-width:var(--space-8);min-height:var(--space-8);padding:var(--space-2)}.day-toggle-btn i{transition:transform .3s ease}.day-name{color:var(--text-primary);font-size:var(--space-4);font-weight:700;text-shadow:0 var(--space-025) var(--space-05) rgba(0,0,0,.1)}.meal-section{border-radius:0}.meal-section:last-child{border-radius:0 0 var(--space-2) var(--space-2)}.meal-header{padding:var(--space-3) var(--space-3)}.meal-title{font-size:var(--space-4)}.day-add-btn{width:var(--space-7);height:var(--space-7);font-size:var(--font-lg)}}.day-column{background:#fff;border-radius:var(--space-3);border:2px solid #e1e8ed;transition:all .3s ease;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 var(--space-05) var(--space-2) rgba(0,0,0,.08)}.day-column:hover{border-color:#667eea;box-shadow:0 var(--space-1) var(--space-4) rgba(102,126,234,.15)}.day-header{padding:var(--space-4) var(--space-5);border-bottom:2px solid #e1e8ed;background:linear-gradient(135deg,#fff,#f8f9fa);display:flex;justify-content:space-between;align-items:center;cursor:default;box-shadow:0 var(--space-05) var(--space-2) rgba(0,0,0,.08)}.day-name{font-weight:700;font-size:var(--space-3);color:var(--text-primary);text-transform:uppercase;letter-spacing:var(--space-025)}.day-toggle-btn{display:none;background:none;color:inherit;font-size:var(--font-md);padding:var(--space-1) var(--space-2);transition:transform .3s ease}.day-add-btn,.day-toggle-btn{border:none;cursor:pointer;line-height:1}.day-add-btn{background:var(--primary-color);color:#fff;border-radius:50%;width:var(--space-6);height:var(--space-6);display:flex;align-items:center;justify-content:center;font-size:var(--space-4);transition:all .2s ease;padding:0}.day-add-btn:hover{background:#e55a2b;transform:scale(1.1)}.meal-add-btn{width:100%;border-radius:var(--space-2);height:var(--space-9);margin-top:var(--space-2);font-size:var(--font-lg)}.meal-add-btn:hover{transform:scale(1.02)}.recipe-selector{background:#f8f9fa;padding:var(--space-2);flex:1 1;min-height:0;max-height:var(--space-80);overflow-y:hidden;display:flex;flex-direction:column;gap:var(--space-2)}.recipe-selector-tabs{display:flex;gap:var(--space-2);flex-shrink:0;background:#f3f4f6;padding:var(--space-1);border-radius:var(--space-3)}.recipe-selector-tab{flex:1 1;padding:var(--space-3) var(--space-4);border:none;background:transparent;color:#6b7280;font-size:var(--space-4);font-weight:500;border-radius:var(--space-2);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--space-2);white-space:nowrap;min-width:0;overflow:hidden}.recipe-selector-tab i{flex-shrink:0}.recipe-selector-tab:hover:not(.active){color:#374151}.recipe-selector-tab.active{background:#fff;color:var(--primary-color);box-shadow:0 var(--space-025) var(--space-1) rgba(0,0,0,.1)}.recipe-selector-tab.active:hover{background:#fff;opacity:.95}.recipe-selector-header{display:flex;gap:var(--space-2);padding:0;flex-shrink:0;align-items:center}.recipe-selector-header .btn{flex-shrink:0}.recipe-search-input{flex-grow:1;flex-shrink:0;min-width:0;padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--space-4);background:#fff;transition:border-color .2s ease;height:var(--space-10);max-height:var(--space-10)}.recipe-search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(255,107,53,.1)}.recipe-selector-section{flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);min-height:0;max-height:var(--space-36);overflow:hidden}.recipe-selector-section:has(.recipe-selector-online-search){max-height:var(--space-120)}.recipe-selector-section-title{font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--space-025);color:var(--text-secondary);padding:var(--space-1) var(--space-2);background:rgba(0,0,0,.03);border-radius:var(--space-1);flex-shrink:0}.recipe-selector-section:last-child{flex:1 1;min-height:0;max-height:none;overflow:hidden;display:flex;flex-direction:column}.recipe-selector-section:last-child .recipe-selector-list{flex:1 1;overflow-y:auto}.recipe-selector-list{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;overflow-y:auto;flex:1 1}.recipe-selector-empty{padding:var(--space-5);text-align:center;color:var(--text-secondary);background:#fff;border:1px dashed var(--border);border-radius:var(--space-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}.recipe-selector-item{display:block;width:100%;padding:var(--space-3) var(--space-4);text-align:left;background:#fff;border:1px solid var(--border);border-radius:var(--space-2);cursor:pointer;font-size:var(--space-4);font-weight:500;transition:all .2s ease;box-shadow:0 var(--space-025) var(--space-05) rgba(0,0,0,.05);flex-shrink:0}.recipe-selector-item:disabled{opacity:.6;cursor:not-allowed}.recipe-selector-item:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 var(--space-05) var(--space-1) rgba(255,107,53,.2)}.recipe-selector-item:active{transform:scale(.98)}.recipe-selector-item-card{display:block;width:100%;height:var(--space-36);position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--space-2);cursor:pointer;transition:all .2s ease;box-shadow:0 var(--space-025) var(--space-05) rgba(0,0,0,.05);flex-shrink:0;overflow:hidden;padding:0}.recipe-selector-item-card:disabled{opacity:.6;cursor:not-allowed}.recipe-selector-item-card-loading{pointer-events:none;cursor:default;background:var(--bg-secondary);animation:pulse 1.5s ease-in-out infinite}.recipe-selector-item-card-loading .recipe-selector-loading{background:transparent}@keyframes pulse{0%,to{opacity:.5}50%{opacity:.8}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinning{animation:spin 1s linear infinite}.recipe-selector-item-card:hover:not(:disabled){box-shadow:0 var(--space-1) var(--space-2) rgba(0,0,0,.15);transform:translateY(calc(-1 * var(--space-05)))}.recipe-selector-item-card:active:not(:disabled){transform:scale(.98)}.recipe-selector-card-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.recipe-selector-item-card:hover:not(:disabled) .recipe-selector-card-image{transform:scale(1.05)}.recipe-selector-card-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2)}.recipe-selector-card-overlay{height:60%;background:linear-gradient(0deg,rgba(0,0,0,.75) 0,rgba(0,0,0,.4) 50%,transparent)}.recipe-selector-card-overlay,.recipe-selector-card-title{position:absolute;bottom:0;left:0;right:0;pointer-events:none}.recipe-selector-card-title{padding:var(--space-3);color:#fff;font-weight:600;font-size:var(--font-base);line-height:1.3;text-shadow:0 var(--space-05) var(--space-1) rgba(0,0,0,.3);z-index:1;text-align:left}.recipe-selector-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);font-size:var(--space-4);gap:var(--space-2)}.recipe-selector-online-search{display:flex;flex-direction:column;height:100%;min-height:0}.recipe-selector-online-search>div:first-child{flex-shrink:0}.recipe-selector-item-with-image{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.recipe-selector-thumbnail{width:var(--space-12);height:var(--space-12);object-fit:cover;border-radius:var(--space-2);flex-shrink:0;background:#f0f0f0}.recipe-selector-item-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn .2s ease}.recipe-modal{background:#fff;border-radius:var(--space-3);box-shadow:0 var(--space-5) var(--space-15) rgba(0,0,0,.3);width:100%;max-width:var(--space-120);min-height:var(--space-200);max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease;overflow:hidden}.recipe-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);flex-shrink:0}.recipe-modal-header h3{margin:0;font-size:var(--space-4);font-weight:600;color:var(--text-primary)}.recipe-modal-close{background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:var(--font-lg);width:var(--space-8);height:var(--space-8);display:flex;align-items:center;justify-content:center;border-radius:var(--space-2);transition:all .2s ease;flex-shrink:0}.recipe-modal-close:hover{background:rgba(0,0,0,.05);color:var(--text-primary)}.recipe-modal-content{padding:var(--space-6);overflow-y:auto;overflow-x:hidden;flex:1 1;min-height:0;display:flex;flex-direction:column;gap:var(--space-4)}@media (max-width:480px){.recipe-selector-tab{padding:var(--space-2) var(--space-3);font-size:var(--space-3)}}@media (max-width:768px){.recipe-modal-backdrop{padding:var(--space-2)}.recipe-modal{max-height:90vh}.recipe-modal-content,.recipe-modal-header{padding:var(--space-4)}}@media (max-width:480px){.recipe-modal-backdrop{padding:0;background:#fff;align-items:stretch;justify-content:stretch}.recipe-modal{max-width:100%;min-height:100vh;max-height:100vh;border-radius:0;box-shadow:none;animation:none}.recipe-modal-header{background:var(--card-bg);position:-webkit-sticky;position:sticky;top:0;z-index:10;box-shadow:var(--shadow)}.recipe-modal-content,.recipe-modal-header{padding:var(--space-4)}}.pool-hint{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 var(--space-3) 0;font-style:italic}.meal-section{background:#fafbfc;border-bottom:2px solid #e1e8ed;display:flex;flex-direction:column;overflow:visible}.meal-header,.meal-section:last-child{border-bottom:none}.meal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);box-shadow:none;gap:var(--space-2);overflow:visible;min-height:var(--space-11);flex-shrink:0;color:var(--planner-meal-header-fg)}.meal-header.meal-type-breakfast{background:var(--planner-meal-breakfast-bg);color:var(--planner-meal-breakfast-fg)}.meal-header.meal-type-lunch{background:var(--planner-meal-lunch-bg);color:var(--planner-meal-lunch-fg)}.meal-header.meal-type-dinner{background:var(--planner-meal-dinner-bg);color:var(--planner-meal-dinner-fg)}.meal-header-actions{display:flex;gap:var(--space-1);align-items:center}.meal-out-btn{background:rgba(236,72,153,.9);border:0;color:#fff;width:var(--space-7);height:var(--space-7);min-width:var(--space-7);border-radius:50%;cursor:pointer;font-size:var(--space-4);display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;flex-shrink:0}.meal-out-btn:hover{background:#ec4899;transform:scale(1.05)}.meal-out-btn.active{background:hsla(0,0%,100%,.9);color:rgba(0,0,0,.82);border-color:hsla(0,0%,100%,.9)}.meal-section.meal-out{opacity:.7;display:flex;flex-direction:column}.meal-section.meal-out .meal-header{background:#6b7280}.meal-out-message{padding:var(--space-2) var(--space-5);min-height:var(--space-20);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);background:#f8f9fa;color:#6c757d;font-style:italic;flex:1 1}.meal-out-message i{font-size:var(--font-xl);color:#95a5a6}.meal-out-message span{font-size:var(--space-4);font-weight:500;white-space:nowrap}@media (max-width:480px){.meal-out-message{padding:var(--space-2) var(--space-4);min-height:var(--space-20)}.meal-out-message i{font-size:var(--space-5)}.meal-out-message span{font-size:var(--font-sm)}.form-row{grid-template-columns:1fr;gap:var(--space-3)}}.meal-add-btn-header{background:rgba(20,184,166,.9);border:0;color:#fff;width:var(--space-7);height:var(--space-7);min-width:var(--space-7);border-radius:50%;cursor:pointer;font-size:var(--space-4);display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;flex-shrink:0}.meal-add-btn-header:hover{background:#14b8a6;transform:scale(1.05);box-shadow:0 var(--space-05) var(--space-1) rgba(0,0,0,.2)}.meal-header .meal-add-btn-header,.meal-header .meal-out-btn{background:hsla(0,0%,100%,.18);border:1px solid hsla(0,0%,100%,.28);color:currentColor}.meal-header .meal-add-btn-header:hover,.meal-header .meal-out-btn:hover{background:hsla(0,0%,100%,.28);border-color:hsla(0,0%,100%,.35)}.meal-header.meal-type-breakfast .meal-add-btn-header,.meal-header.meal-type-breakfast .meal-out-btn{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.14)}.meal-header.meal-type-breakfast .meal-add-btn-header:hover,.meal-header.meal-type-breakfast .meal-out-btn:hover{background:rgba(0,0,0,.12);border-color:rgba(0,0,0,.2)}.meal-title{font-weight:600;font-size:var(--space-3);color:currentColor;text-shadow:none;letter-spacing:var(--space-025);text-transform:lowercase;overflow:hidden;text-overflow:ellipsis}.meal-recipes{padding:var(--space-2);min-height:var(--space-15);display:flex;flex-direction:column;gap:var(--space-2);flex:1 1;border-left:1px solid var(--border);border-right:1px solid var(--border)}.meal-header.meal-type-dinner~.meal-recipes{border-bottom:1px solid var(--border)}.empty-meal{text-align:center;color:var(--text-secondary);font-size:var(--font-sm);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--space-2);background:#fff;transition:all .2s ease;font-weight:500}.empty-meal:hover{border-color:var(--primary-color);color:var(--primary-color);background:rgba(91,71,209,.02)}.missing-servings{animation:blink-border 2s ease-in-out infinite}@keyframes blink-border{0%,to{border-color:var(--border)}50%{border-color:#ff6b35}}.servings-warning{color:#ff6b35;display:flex;gap:var(--space-1)}.planned-servings,.servings-warning{font-size:var(--font-xs);font-weight:500;align-items:center}.planned-servings{color:var(--primary-color);cursor:pointer;padding:var(--space-05) var(--space-2);border-radius:var(--space-1);transition:all .2s ease;display:inline-flex;flex-shrink:0;white-space:nowrap}.planned-servings:hover{background:rgba(91,71,209,.1);color:var(--primary-hover)}.day-count{font-size:var(--space-3);color:var(--text-secondary);margin-top:var(--space-05)}.day-recipes{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);flex:1 1}.empty-day{text-align:center;color:var(--text-secondary);font-size:var(--font-sm);padding:var(--space-5) var(--space-3);border:1px dashed var(--border);border-radius:var(--space-2);margin:var(--space-3)}.recipe-card-mini{background:#fff;border-radius:var(--space-2);cursor:move;transition:all .2s ease;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);position:relative}.recipe-card-mini:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);transform:translateY(calc(-1 * var(--space-025)))}.recipe-card-mini:active{cursor:-webkit-grabbing;cursor:grabbing;opacity:.8}.recipe-card-mini-image{width:100%;height:var(--space-36);overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);position:relative}.recipe-card-mini-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.recipe-card-image-overlay{height:60%;background:linear-gradient(0deg,rgba(0,0,0,.75) 0,rgba(0,0,0,.4) 50%,transparent)}.recipe-card-image-overlay,.recipe-card-title-overlay{position:absolute;bottom:0;left:0;right:0;pointer-events:none}.recipe-card-title-overlay{padding:var(--space-3);color:#fff;font-weight:600;font-size:var(--font-base);line-height:1.3;text-shadow:0 var(--space-05) var(--space-1) rgba(0,0,0,.3);z-index:1}.recipe-card-mini:hover .recipe-card-mini-image img{transform:scale(1.05)}.recipe-card-content{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:var(--space-2);padding:0;background:#fff;flex:1 1;min-height:0}.recipe-card-content:not(:empty){padding:var(--space-3)}.recipe-card-actions{position:absolute;top:var(--space-2);right:var(--space-2);display:flex;gap:var(--space-2);opacity:1;transition:opacity .2s ease;z-index:2}.recipe-card-mini:hover .recipe-card-actions{opacity:1}.recipe-btn-remove,.recipe-btn-servings,.recipe-btn-view{background:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);font-size:var(--font-sm);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--space-1);transition:all .2s ease;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);box-shadow:0 var(--space-05) var(--space-1) rgba(0,0,0,.1)}.recipe-btn-view:hover{background:#e3f2fd;color:#1976d2;transform:scale(1.05)}.recipe-btn-servings:hover{background:#e8f5e9;color:#388e3c;transform:scale(1.05)}.recipe-btn-remove:hover{background:#ffebee;color:#d32f2f;transform:scale(1.05)}.recipe-card-title{font-weight:600;font-size:var(--font-sm);flex:1 1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.recipe-card-servings{font-size:var(--font-sm);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--space-1);transition:all .2s ease;display:inline-block}.recipe-card-servings:hover{background:var(--background);color:var(--primary-color)}.recipe-card-servings.servings-missing{color:var(--primary-color);font-weight:500;border:1px dashed var(--primary-color)}.recipe-card-servings.servings-missing:hover{background:var(--primary-color);color:#fff;border-style:solid}.servings-edit{display:flex;gap:var(--space-1);align-items:center;justify-content:center;background:#f8f9fa;border-radius:var(--space-1);border:1px solid #e1e8ed;width:100%}.servings-edit,.servings-input{padding:var(--space-1) var(--space-2)}.servings-input{border:1px solid #dee2e6;border-radius:var(--space-1);font-size:var(--font-sm);width:var(--space-13);outline:none;text-align:center;background:#fff;font-weight:500}.servings-input:focus{border-color:#667eea;box-shadow:0 0 0 var(--space-025) rgba(102,126,234,.2)}.servings-btn-cancel,.servings-btn-save{background:transparent;border:none;cursor:pointer;padding:var(--space-05) var(--space-1);font-size:var(--font-sm);border-radius:var(--space-1);transition:all .15s ease;line-height:1;display:flex;align-items:center;justify-content:center}.servings-btn-save:hover{background:#28a745;color:#fff;transform:scale(1.05)}.servings-btn-cancel:hover{background:#dc3545;color:#fff;transform:scale(1.05)}.recipe-card-title{font-weight:500;font-size:var(--space-4);color:var(--text-primary);line-height:1.3}.recipe-card-servings{font-size:var(--font-xs);color:var(--text-secondary)}.day-navigator{display:none}@media (max-width:768px){.container{padding:var(--space-3)}.recipe-pool{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.recipe-card-mini{width:100%}.recipe-btn-remove,.recipe-btn-servings,.recipe-btn-view{padding:var(--space-1) var(--space-2);font-size:var(--font-sm)}.recipe-card-actions{gap:var(--space-1)}.planned-servings{font-size:var(--space-3);padding:var(--space-05) var(--space-1)}.recipe-card-content:not(:empty){padding:var(--space-2)}header{margin-bottom:var(--space-6);padding:var(--space-3)}header h1{font-size:var(--space-7);margin-bottom:var(--space-2)}header p{font-size:var(--space-4)}.btn-outline{width:100%;justify-content:center}.settings-menu-btn{width:var(--space-10);height:var(--space-10);min-width:var(--space-10);padding:0;border:none;border-radius:var(--space-2);box-shadow:none;background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--primary-color);margin-top:calc(-1 * var(--space-05));order:0}.header-content{order:1}.settings-menu-btn:hover{background:rgba(255,107,53,.1);color:var(--primary-color);border-color:transparent}header{margin-bottom:var(--space-5);padding:var(--space-3) 0}.header-top{flex-direction:row;align-items:flex-start;gap:var(--space-3)}.header-content{text-align:left;flex:1 1;display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-05)}header h1{font-size:var(--space-5);margin-bottom:0;line-height:1.2}header p{font-size:var(--space-3);line-height:1.4;margin-top:var(--space-05)}.settings-menu-btn .settings-text{display:none}.hamburger-icon{display:block;font-size:var(--space-6);line-height:1;font-weight:400}.settings-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.settings-panel{position:fixed;top:0;left:0;bottom:0;width:90%;max-width:var(--space-96);margin:0;padding:0;border-radius:0;box-shadow:var(--space-1) 0 var(--space-3) rgba(0,0,0,.15);z-index:1000;overflow-y:auto;animation:slideIn .3s ease}.settings-content{padding:var(--space-5);gap:var(--space-6)}.settings-close-btn{display:flex;align-items:center;justify-content:center}.settings-header{padding:var(--space-5)}.settings-header h3{font-size:var(--space-5)}.setting-item{padding:var(--space-4);gap:var(--space-4)}.setting-label{font-size:var(--font-md)}.setting-label i{font-size:var(--font-lg)}.meal-toggle-item{min-width:100%;padding:var(--space-4)}.family-size-input{width:100%;max-width:var(--space-32)}.setting-hint{font-size:var(--space-3)}.plan-save-section{flex-direction:column;gap:var(--space-3)}.plan-name-input-compact{width:100%;padding:var(--space-3) var(--space-3);font-size:var(--space-4)}.btn-compact{width:100%;justify-content:center;padding:var(--space-3) var(--space-4)}.saved-plan-item-compact{padding:var(--space-3);gap:var(--space-2)}.saved-plan-name{font-size:var(--space-4)}.saved-plan-date{font-size:var(--font-xs)}.btn-icon{padding:var(--space-2);font-size:var(--font-md)}}@media (max-width:480px){.container{padding:var(--space-2)}.recipe-pool{grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.recipe-card-mini{width:100%}.pool-header h3{font-size:var(--font-base)}header{padding:var(--space-2);margin-bottom:var(--space-4)}header h1{font-size:var(--font-xl);margin-bottom:var(--space-2)}header p{font-size:var(--font-sm)}.btn-outline{padding:var(--space-3) var(--space-4);font-size:var(--space-4)}.settings-panel{padding:var(--space-3)}.settings-panel h3{font-size:var(--font-md)}.grocery-section .section-header{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.grocery-section .section-header h2{font-size:var(--space-6)}.section-header-actions{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;justify-content:space-between;width:100%}.edit-quantity-container{flex:1 1;min-width:0;gap:var(--space-1)}.edit-quantity-input{flex:1 1;min-width:0;max-width:100%;font-size:var(--font-sm);padding:var(--space-1)}.btn-cancel-quantity,.btn-save-quantity{padding:var(--space-1);min-width:var(--space-8);flex-shrink:0}.section-header-actions .btn:not(.btn-small){width:auto;min-width:auto;padding:var(--space-2) var(--space-3);font-size:var(--font-sm);justify-content:center}.section-header-actions .btn-small{width:auto}.grocery-count{font-size:var(--font-sm)}.saved-plans-header{flex-direction:column;align-items:stretch;gap:var(--space-3)}.saved-plans-title-wrapper{display:flex;justify-content:space-between;align-items:center;width:100%}.saved-plans-header h2{font-size:var(--space-5);margin:0}.plan-name-input-wrapper{flex-direction:column;width:100%;justify-content:stretch}.plan-name-input{max-width:100%;width:100%}.plan-name-input-wrapper .btn{width:100%;justify-content:center}.pool-toggle-btn{flex-shrink:0;padding:var(--space-3)}main{gap:var(--space-2)}.grocery-section,.recipe-library-section,.recipes-section,.saved-plans-section,.weekly-planner{padding:var(--space-3)}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(hsla(0,0%,100%,.85),hsla(0,0%,100%,.85)),url(/bg.jpg) repeat;background-size:auto,600px;padding:var(--space-5)}.auth-card{border-radius:var(--space-4);box-shadow:0 var(--space-5) var(--space-15) rgba(0,0,0,.3);max-width:var(--space-96);width:100%;overflow:hidden}.auth-header{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff;padding:var(--space-10) var(--space-8);text-align:center}.auth-header h1{font-size:var(--font-2xl);margin:0 0 var(--space-3) 0;color:#fff}.auth-header p{margin:0;opacity:.95;font-size:var(--font-md)}.auth-form{padding:var(--space-8);background:#fff}.auth-error{background:#fee;border:1px solid #fcc;border-radius:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-3);color:#c33}.auth-error i{font-size:var(--font-lg);flex-shrink:0}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--text-primary);font-size:var(--font-base)}.form-group input{width:100%;padding:var(--input-padding);border:1px solid var(--border);border-radius:var(--space-2);font-size:var(--font-md);transition:all .2s ease;background:#fff}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 var(--space-1) rgba(91,71,209,.1)}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-auth{width:100%;padding:var(--space-4);font-size:var(--font-md);font-weight:600;margin-top:var(--space-3)}.auth-footer{margin-top:var(--space-6);text-align:center;padding-top:var(--space-6);border-top:1px solid var(--border-light)}.auth-footer p{margin:0;color:var(--text-secondary);font-size:var(--font-base)}.auth-footer a{color:var(--primary-color);text-decoration:none;font-weight:600;transition:color .2s ease}.auth-footer a:hover{color:var(--primary-hover);text-decoration:underline}@media (max-width:768px){.auth-card{max-width:100%}.auth-header{padding:var(--space-8) var(--space-5)}.auth-header h1{font-size:var(--space-8)}.auth-form{padding:var(--space-5)}}.household-manager{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.household-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.household-panel{position:relative;background:#fff;border-radius:var(--space-4);box-shadow:var(--shadow-lg);max-width:var(--space-160);width:100%;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(var(--space-8))}to{opacity:1;transform:translateY(0)}}.household-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);border-bottom:1px solid var(--border-light)}.household-header h3{margin:0;color:var(--text-primary);font-size:var(--space-6);display:flex;align-items:center;gap:var(--space-3)}.household-close-btn{background:none;border:none;cursor:pointer;padding:var(--space-2);color:var(--text-secondary);font-size:var(--font-lg);border-radius:var(--space-2);transition:all .2s ease}.household-close-btn:hover{background:var(--border-light);color:var(--text-primary)}.household-content{padding:var(--space-6);overflow-y:auto;flex:1 1}.household-error{background:#fee;border:1px solid #fcc;border-radius:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-3);color:#c33;font-size:var(--font-base)}.households-list{margin-bottom:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.household-item{border:2px solid var(--border);border-radius:var(--space-3);padding:var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);transition:all .2s ease}.household-item:hover{border-color:var(--primary-color);background:#f8f9ff}.household-item.active{border-color:var(--primary-color);background:linear-gradient(135deg,#f8f9ff,#f0f1ff)}.household-info{flex:1 1}.household-info h4{margin:0 0 var(--space-1) 0;font-size:var(--space-4);color:var(--text-primary)}.household-role{display:inline-block;font-size:var(--font-sm);color:var(--text-secondary);background:var(--border-light);padding:var(--space-05) var(--space-2);border-radius:var(--space-1)}.household-actions{display:flex;align-items:center;gap:var(--space-2)}.active-badge{color:var(--primary-color);font-weight:600;font-size:var(--space-4);white-space:nowrap}.household-buttons{display:flex;flex-direction:column;gap:var(--space-3)}.household-form{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.household-form h4{margin:0 0 var(--space-5) 0;font-size:var(--font-lg);color:var(--text-primary)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.form-actions .btn{flex:1 1}.household-btn{display:flex;align-items:center;gap:var(--space-2)}@media (max-width:768px){.household-panel{max-height:90vh}.household-content,.household-header{padding:var(--space-5)}.household-item{flex-direction:column;align-items:flex-start}.household-actions{width:100%;justify-content:flex-end}.household-buttons .btn{font-size:var(--font-base)}}.sticky-header{position:fixed;top:0;left:0;right:0;height:var(--space-16);background:#fff;box-shadow:var(--shadow-md);z-index:1000;display:flex;align-items:center;padding:0 var(--space-5);gap:var(--space-4)}.app-title{font-size:var(--space-5);font-weight:700;color:var(--primary-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.menu-toggle{position:relative;background:var(--primary-color);color:#fff;border:none;border-radius:var(--space-3);width:var(--space-12);height:var(--space-12);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);transition:all .3s ease;font-size:var(--font-xl);flex-shrink:0}.menu-toggle:hover{background:var(--primary-hover);transform:scale(1.05)}.nav-sidebar{position:fixed;top:0;left:calc(-1 * var(--space-70));width:var(--space-80);height:100vh;background:#fff;box-shadow:var(--shadow-lg);z-index:1002;display:flex;flex-direction:column;transition:left .3s ease}.nav-sidebar.open{left:0}.nav-header{padding:var(--space-6);border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%)}.nav-header h2{margin:0;color:#fff;font-size:var(--font-xl);text-align:center}.nav-menu{flex:1 1;padding:var(--space-4);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4);margin-bottom:var(--space-2);border-radius:var(--space-3);color:var(--text-primary);text-decoration:none;transition:all .2s ease;font-size:var(--font-md);font-weight:500;background:none;border:none;width:100%;text-align:left;cursor:pointer}.nav-item:hover{background:var(--border-light);color:var(--primary-color)}.nav-item.active{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff}.nav-item i{font-size:var(--space-5);width:var(--space-6);text-align:center}.nav-footer{padding:var(--space-4);border-top:1px solid var(--border-light);background:var(--background)}.nav-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:#fff;border-radius:var(--space-3);border:2px solid var(--border)}.nav-user i{font-size:var(--font-xl);color:var(--primary-color)}.nav-username{font-weight:600;color:var(--text-primary)}.nav-item.logout{color:#dc2626}.nav-item.logout:hover{background:#fee;color:#b91c1c}.nav-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1001;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media (max-width:768px){.nav-sidebar{width:var(--space-70);left:calc(-1 * var(--space-70))}.sticky-header{height:var(--space-15);padding:0 var(--space-4)}.app-title{font-size:var(--space-4)}.menu-toggle{width:var(--space-11);height:var(--space-11);font-size:var(--space-5)}}.app-container{min-height:100vh;background:var(--background)}.main-container{margin-left:0;padding:var(--space-24) var(--space-5) var(--space-5) var(--space-5);transition:margin-left .3s ease}.page-container{max-width:var(--space-360);margin:var(--space-24) auto var(--space-5);padding:0 var(--space-5)}.page-header{margin-bottom:var(--space-8);text-align:left}.page-header h1{font-size:var(--font-2xl);color:var(--text-primary);margin-bottom:var(--space-3)}.page-header p{font-size:var(--space-4);color:var(--text-secondary);margin:0}.page-content{background:#fff;border-radius:var(--space-4);box-shadow:var(--shadow-md)}.recipes-section:last-child{margin-bottom:0}.section-header{margin-bottom:var(--space-5)}.section-header h2{font-size:var(--font-xl);color:var(--text-primary);margin:0;display:flex;align-items:center;gap:var(--space-3)}.section-content{margin-top:var(--space-5)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--space-52),1fr));grid-gap:var(--space-5);gap:var(--space-5)}.empty-state{text-align:center;padding:var(--space-15) var(--space-5);color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1}.empty-state i{font-size:var(--space-16);margin-bottom:var(--space-5);display:block;color:var(--border)}.empty-state p{font-size:var(--font-lg);margin-bottom:var(--space-3);color:var(--text-primary)}.empty-state span{font-size:var(--font-base)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--space-80),1fr));grid-gap:var(--space-6);gap:var(--space-6)}.setting-card{background:var(--background);border:2px solid var(--border);border-radius:var(--space-3);padding:var(--space-6);transition:all .2s ease}.setting-card:hover{border-color:var(--primary-color)}.setting-card.full-width{grid-column:1/-1}.setting-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light)}.setting-header i{font-size:var(--space-7);color:var(--primary-color)}.setting-header h3{margin:0;font-size:var(--font-lg);color:var(--text-primary)}.setting-body{color:var(--text-secondary)}.setting-description{margin-bottom:var(--space-5);font-size:var(--font-base);line-height:1.5}.family-size-control{display:flex;align-items:center;justify-content:center;gap:var(--space-5)}.family-size-display{font-size:var(--font-2xl);font-weight:700;color:var(--primary-color);min-width:var(--space-15);text-align:center}.meal-toggles-vertical{display:flex;flex-direction:column;gap:var(--space-3)}.toast-notification{position:fixed;bottom:var(--space-5);right:var(--space-5);background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:var(--space-4) var(--space-6);border-radius:var(--space-3);box-shadow:0 var(--space-3) var(--space-6) rgba(16,185,129,.3);display:flex;align-items:center;gap:var(--space-3);font-weight:500;z-index:9999;animation:slideInUp .3s ease-out;min-width:var(--space-64)}.toast-notification i{font-size:var(--font-xl);flex-shrink:0}@keyframes slideInUp{0%{transform:translateY(var(--space-24));opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width:768px){.toast-notification{left:var(--space-4);right:var(--space-4);bottom:var(--space-20);min-width:auto;justify-content:center;padding:var(--space-4) var(--space-5)}}@media (max-width:480px){.toast-notification{left:var(--space-3);right:var(--space-3);bottom:var(--space-5)}}@media (max-width:768px){.page-header h1{font-size:var(--space-8)}.recipes-grid,.settings-grid{grid-template-columns:1fr}.main-container{padding:var(--space-24) var(--space-5) var(--space-5) var(--space-5)}.page-container{margin:var(--space-24) auto var(--space-5);padding:0 var(--space-5)}}@media (max-width:480px){.page-container{margin:var(--space-16) auto 0;padding:0;min-height:calc(100vh - var(--space-16));display:flex;flex-direction:column}.page-content{border-radius:0}.grocery-section,.page-content{flex:1 1;display:flex;flex-direction:column}.grocery-list{flex:1 1}.weekly-planner,section{border-radius:0}}.task-actions{padding:0 0 var(--space-6) 0;margin-bottom:var(--space-6)}.task-actions h2{margin:0 0 var(--space-5) 0;color:var(--text-primary);font-size:var(--font-xl);font-weight:700}.task-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--space-52),1fr));grid-gap:var(--space-4);gap:var(--space-4)}.task-btn{background:#fff;border:none;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);cursor:pointer;transition:all .3s ease;font-size:var(--space-4);font-weight:600;box-shadow:0 var(--space-1) var(--space-3) rgba(0,0,0,.08);position:relative;overflow:hidden}.task-btn,.task-btn:before{border-radius:var(--space-5)}.task-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;padding:var(--space-1);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease}.task-btn:hover:not(:disabled):before{opacity:1}.task-btn:hover:not(:disabled){transform:translateY(calc(-1 * var(--space-1))) scale(1.02);box-shadow:0 var(--space-3) var(--space-6) rgba(91,71,209,.2)}.task-btn:active:not(:disabled){transform:translateY(calc(-1 * var(--space-05))) scale(1)}.task-btn:disabled{opacity:.6;cursor:not-allowed}.task-btn-icon{font-size:var(--space-14);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:transform .3s ease}.task-btn:hover:not(:disabled) .task-btn-icon{transform:scale(1.1) rotate(5deg)}.task-btn-label{color:var(--text-primary);letter-spacing:var(--space-0)}.task-filter{padding:0 0 var(--space-4) 0;margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-3);border-bottom:2px solid var(--border-light)}.task-filter label{font-weight:500;color:var(--text-primary)}.task-filter select{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--space-2);background:#fff;cursor:pointer;font-size:var(--font-base)}.task-stats{padding:0 0 var(--space-6) 0;margin-bottom:var(--space-6)}.task-stats h2{margin:0 0 var(--space-5) 0;color:var(--text-primary);font-size:var(--font-xl);font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--space-64),1fr));grid-gap:var(--space-4);gap:var(--space-4)}.stat-card{background:#fff;border-radius:var(--space-4);padding:var(--space-5);border:1px solid var(--border-light)}.stat-card h3{margin:0 0 var(--space-4) 0;color:var(--primary-color);font-size:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.stat-items{display:flex;gap:var(--space-5);justify-content:space-around}.stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.stat-icon{font-size:var(--space-7)}.stat-count{font-size:var(--font-xl);font-weight:700;color:var(--text-primary)}.task-history{padding:0}.task-history h2{margin:0 0 var(--space-5) 0;color:var(--text-primary);font-size:var(--font-xl);font-weight:700}.task-list{display:flex;flex-direction:column;gap:var(--space-3)}.task-item{background:#fff;border-radius:var(--space-3);padding:var(--space-4);display:flex;align-items:center;gap:var(--space-4);border:1px solid var(--border-light);transition:all .2s ease}.task-item:hover{border-color:var(--primary-color);transform:translateX(var(--space-1))}.task-item-icon{font-size:var(--space-8);flex-shrink:0}.task-item-content{flex:1 1;display:flex;flex-direction:column;gap:var(--space-1)}.task-item-label{font-weight:600;color:var(--text-primary)}.task-item-user{font-size:var(--space-4);color:var(--text-secondary)}.task-item-time{font-size:var(--font-sm);color:var(--text-secondary);flex-shrink:0}@media (max-width:768px){.stats-grid,.task-buttons{grid-template-columns:1fr}.task-item{padding:var(--space-3)}.task-item-icon{font-size:var(--font-xl)}}