:root{--primary: #FF6B6B;--primary-dark: #E85555;--primary-light: #FF9999;--secondary: #4ECDC4;--secondary-dark: #3BB5AD;--accent: #FFE66D;--success: #51CF66;--danger: #FF6B6B;--warning: #FFA94D;--white: #FFFFFF;--off-white: #FAFAFA;--light-gray: #F5F5F5;--medium-gray: #E0E0E0;--dark-gray: #6C757D;--text-primary: #2D3436;--text-secondary: #636E72;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--transition: all .2s ease-in-out}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:var(--text-primary);background-color:var(--off-white);line-height:1.6}#root{min-height:100vh;display:flex;flex-direction:column}h1{font-size:2rem;font-weight:700;line-height:1.2;margin-bottom:var(--spacing-md)}h2{font-size:1.5rem;font-weight:600;line-height:1.3;margin-bottom:var(--spacing-md)}h3{font-size:1.25rem;font-weight:600;line-height:1.4;margin-bottom:var(--spacing-sm)}h4{font-size:1.125rem;font-weight:600;line-height:1.4;margin-bottom:var(--spacing-sm)}p{margin-bottom:var(--spacing-md)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--spacing-md)}.spinner{width:48px;height:48px;border:4px solid var(--medium-gray);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-small{width:24px;height:24px;border:3px solid var(--medium-gray);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.message{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-weight:500}.message.success,.success-message{background-color:#d3f9d8;color:#2b8a3e;border:1px solid #51CF66}.message.error,.error-message{background-color:#ffe3e3;color:#c92a2a;border:1px solid #FF6B6B}.info-badge{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--accent);color:var(--text-primary);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;margin-bottom:var(--spacing-md)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--text-secondary);font-size:1rem}.empty-state-small{text-align:center;padding:var(--spacing-md);color:var(--text-secondary);font-size:.875rem}.help-text{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--spacing-md)}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;transition:var(--transition)}.btn-primary{background-color:var(--primary);color:var(--white);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:var(--white);color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);border:2px solid var(--medium-gray);font-weight:600}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.btn-danger{background-color:var(--danger);color:var(--white);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600}.btn-danger:hover:not(:disabled){background-color:#e85555;transform:translateY(-1px)}.btn-icon{background:none;padding:var(--spacing-xs);font-size:1.25rem;opacity:.7}.btn-icon:hover{opacity:1;transform:scale(1.1)}.btn-back{background:none;color:var(--primary);padding:var(--spacing-sm);font-weight:600;display:flex;align-items:center;gap:var(--spacing-xs)}.btn-back:hover{color:var(--primary-dark)}.link-button{background:none;color:var(--primary);padding:0;font-weight:600;text-decoration:underline}.link-button:hover{color:var(--primary-dark)}.button-group{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;transition:var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff6b6b1a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--light-gray);cursor:not-allowed}textarea{resize:vertical;min-height:80px}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);background:linear-gradient(135deg,#ffe5e5,#fff5e6)}.auth-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--spacing-2xl);width:100%;max-width:420px}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-header h1{color:var(--primary);margin-bottom:var(--spacing-sm)}.auth-header p{color:var(--text-secondary);margin-bottom:0}.auth-form h2{margin-bottom:var(--spacing-lg);text-align:center}.auth-toggle{text-align:center;margin-top:var(--spacing-lg);color:var(--text-secondary)}.app{display:flex;flex-direction:column;min-height:100vh}.header{background-color:var(--white);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;padding:var(--spacing-md);display:flex;justify-content:space-between;align-items:center}.header-title{font-size:1.5rem;margin:0;color:var(--primary)}.btn-logout{background-color:var(--light-gray);color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:600;font-size:.875rem}.btn-logout:hover{background-color:var(--medium-gray)}.navigation{background-color:var(--white);border-bottom:1px solid var(--medium-gray);display:flex;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);overflow-x:auto}.nav-button{background:none;color:var(--text-secondary);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600;white-space:nowrap}.nav-button:hover{background-color:var(--light-gray);color:var(--text-primary)}.nav-button.active{background-color:var(--primary);color:var(--white)}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.footer{background-color:var(--white);border-top:1px solid var(--medium-gray);padding:var(--spacing-lg);text-align:center;color:var(--text-secondary);margin-top:auto}.footer p{margin:0;font-size:.875rem}.profile-container{max-width:800px;margin:0 auto}.tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--medium-gray);overflow-x:auto}.tab{background:none;color:var(--text-secondary);padding:var(--spacing-md) var(--spacing-lg);border:none;border-bottom:3px solid transparent;font-weight:600;white-space:nowrap;transition:var(--transition)}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.profile-form{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:var(--transition)}.checkbox-label:hover{background-color:var(--light-gray)}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary)}.household-members,.pantry-items{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.member-form,.pantry-form{background-color:var(--light-gray);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.members-list,.items-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.member-card,.item-card{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--white);border:2px solid var(--medium-gray);border-radius:var(--radius-md);transition:var(--transition)}.member-card:hover,.item-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.member-info h4,.item-info h4{margin:0;font-size:1rem}.member-info p,.item-category{margin:0;color:var(--text-secondary);font-size:.875rem}.member-actions,.item-actions{display:flex;gap:var(--spacing-sm)}.filter-section{margin-bottom:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md)}.filter-section label{font-weight:600;white-space:nowrap}.filter-section select{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius-md);font-family:inherit}.dietary-restrictions,.cuisine-preferences{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.recipe-list-container{max-width:1200px;margin:0 auto}.recipe-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.recipe-header h2{margin:0}.search-bar{margin-bottom:var(--spacing-lg)}.search-bar input{width:100%;padding:var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius-lg);font-size:1rem;transition:var(--transition)}.search-bar input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff6b6b1a}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.recipe-card{background-color:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);cursor:pointer;transition:var(--transition);position:relative}.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.recipe-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.recipe-card-header h3{margin:0;flex:1;padding-right:var(--spacing-sm)}.recipe-card-actions{display:flex;gap:var(--spacing-xs)}.recipe-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--spacing-md);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.recipe-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--light-gray);color:var(--text-secondary);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.recipe-source-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--accent);color:var(--text-primary);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;margin-top:var(--spacing-sm)}.recipe-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);overflow-y:auto}.recipe-detail{max-width:800px;width:100%;max-height:90vh;overflow-y:auto;margin:auto;background-color:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-xl)}@media(max-width:768px){.recipe-detail-overlay{padding:0}.recipe-detail{max-width:100%;max-height:100vh;border-radius:0;padding:var(--spacing-md)}}.recipe-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.recipe-actions{display:flex;gap:var(--spacing-sm)}.recipe-detail h1{margin-bottom:var(--spacing-sm)}.recipe-detail-description{color:var(--text-secondary);font-size:1.125rem;margin-bottom:var(--spacing-lg)}.recipe-section{margin-bottom:var(--spacing-2xl)}.recipe-section h2{color:var(--primary);border-bottom:2px solid var(--medium-gray);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-md)}.ingredients-list,.steps-list{padding-left:var(--spacing-lg)}.ingredients-list li,.steps-list li{margin-bottom:var(--spacing-sm);line-height:1.6}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-md)}.nutrition-item{background-color:var(--light-gray);padding:var(--spacing-md);border-radius:var(--radius-md);text-align:center}.nutrition-label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.nutrition-value{display:block;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.recipe-form-container{max-width:800px;margin:0 auto}.recipe-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.recipe-form-header h2{margin:0}.recipe-form{background-color:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.form-section{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--light-gray);border-radius:var(--radius-md)}.form-section h3{margin-bottom:var(--spacing-md);color:var(--primary)}.ingredient-row{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);align-items:center}.ingredient-row input,.ingredient-row select{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;transition:var(--transition)}.ingredient-row input:focus,.ingredient-row select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff6b6b1a}.step-row{display:grid;grid-template-columns:auto 1fr auto;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);align-items:start}.step-number{font-weight:700;color:var(--primary);padding-top:var(--spacing-sm)}.nutrition-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xl);flex-wrap:wrap}.weekly-calendar{max-width:1200px;margin:0 auto}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);background-color:var(--white);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.week-info{text-align:center;flex:1}.week-info h2{margin:0 0 var(--spacing-sm) 0}.btn-nav{background-color:var(--primary);color:var(--white);width:48px;height:48px;border-radius:var(--radius-full);font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.btn-nav:hover{background-color:var(--primary-dark);transform:scale(1.05)}.btn-today{background-color:var(--secondary);color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:.875rem;font-weight:600}.btn-today:hover{background-color:var(--secondary-dark)}.days-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-md)}.day-view{background-color:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:var(--transition)}.day-view:hover{box-shadow:var(--shadow-lg)}.day-view.today{border:3px solid var(--primary)}.day-header{background-color:var(--primary);color:var(--white);padding:var(--spacing-md);text-align:center}.day-view.today .day-header{background-color:var(--secondary)}.day-name{display:block;font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.day-date{display:block;font-size:1.5rem;font-weight:700}.meal-slot{padding:var(--spacing-md);min-height:120px;display:flex;flex-direction:column;justify-content:center}.meal-slot.loading{align-items:center;justify-content:center}.meal-slot.empty{background-color:var(--light-gray)}.btn-add-meal{background-color:transparent;color:var(--text-secondary);padding:var(--spacing-md);border:2px dashed var(--medium-gray);border-radius:var(--radius-md);width:100%;font-weight:600;transition:var(--transition)}.btn-add-meal:hover{border-color:var(--primary);color:var(--primary);background-color:#ff6b6b0d}.meal-slot.filled{background:linear-gradient(135deg,#ffe5e5,#fff5e6);position:relative}.meal-content h4{margin:0 0 var(--spacing-xs) 0;font-size:.95rem;line-height:1.3}.meal-content.clickable{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.meal-content.clickable:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.meal-content.clickable:active{transform:translateY(0)}.meal-meta{color:var(--text-secondary);font-size:.75rem;margin:0}.btn-remove{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background-color:#ffffffe6;width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1rem;opacity:.7;box-shadow:var(--shadow-sm)}.btn-remove:hover{opacity:1;background-color:var(--danger);color:var(--white)}.meal-slot.selector{background-color:var(--white);padding:var(--spacing-sm)}.selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--medium-gray)}.selector-header h4{margin:0;font-size:.875rem}.btn-close{background:none;font-size:1.25rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center;opacity:.7}.btn-close:hover{opacity:1}.recipe-selector-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-xs)}.recipe-selector-item{background-color:var(--light-gray);color:var(--text-primary);padding:var(--spacing-sm);border-radius:var(--radius-sm);text-align:left;font-size:.875rem;transition:var(--transition)}.recipe-selector-item:hover{background-color:var(--primary);color:var(--white)}@media(max-width:768px){h1{font-size:1.5rem}h2,.header-title{font-size:1.25rem}.auth-card{padding:var(--spacing-lg)}.tabs{gap:0}.tab{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem}.profile-form,.household-members,.pantry-items,.dietary-restrictions,.cuisine-preferences{padding:var(--spacing-md)}.checkbox-grid,.recipe-grid,.days-container{grid-template-columns:1fr}.ingredient-row{grid-template-columns:1fr 1fr;gap:var(--spacing-xs)}.ingredient-row input:nth-child(3){grid-column:1 / -1}.nutrition-inputs{grid-template-columns:1fr 1fr}.calendar-header{padding:var(--spacing-md)}.btn-nav{width:40px;height:40px;font-size:1.25rem}}@media(max-width:480px){.main-content{padding:var(--spacing-md) var(--spacing-sm)}.recipe-detail,.recipe-form,.form-section{padding:var(--spacing-md)}}.menu-generator-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.menu-generator-modal{background-color:var(--white);border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.menu-generator-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--medium-gray)}.menu-generator-header h2{margin:0}.menu-generator-form{padding:var(--spacing-xl)}.cost-estimate{background-color:var(--light-gray);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.cost-estimate strong{color:var(--primary);font-size:1.125rem}.btn-ai-generate{background:linear-gradient(135deg,#ff6b6b,#ffe66d);color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-full);font-size:.875rem;font-weight:700;box-shadow:var(--shadow-sm);transition:var(--transition)}.btn-ai-generate:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.week-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center}.generating-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:1001;padding:var(--spacing-md)}.generating-modal{background-color:var(--white);border-radius:var(--radius-xl);padding:var(--spacing-2xl);max-width:500px;width:100%;text-align:center}.generating-spinner{margin-bottom:var(--spacing-xl)}.generating-spinner .spinner{width:64px;height:64px;margin:0 auto}.generating-modal h2{color:var(--primary);margin-bottom:var(--spacing-xl)}.generating-steps{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.generating-step{display:flex;align-items:center;gap:var(--spacing-md);text-align:left}.step-icon{font-size:2rem;flex-shrink:0}.generating-time{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--spacing-lg)}.recipe-feedback-form{background-color:var(--light-gray);padding:var(--spacing-xl);border-radius:var(--radius-lg);margin-top:var(--spacing-lg)}.recipe-feedback-form h3{margin-bottom:var(--spacing-md)}.star-rating{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.star{background:none;border:none;font-size:2rem;color:var(--medium-gray);cursor:pointer;transition:var(--transition);padding:0}.star.filled{color:gold}.star:hover{transform:scale(1.1)}.recipe-rating-display{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.rating-stars{font-size:1.5rem;color:gold}.rating-text{color:var(--text-secondary);font-size:.875rem}.feedback-list{margin-top:var(--spacing-lg)}.feedback-list h3{margin-bottom:var(--spacing-md)}.feedback-item{background-color:var(--light-gray);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.feedback-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm);flex-wrap:wrap;gap:var(--spacing-sm)}.feedback-rating{color:gold;font-size:1.25rem}.feedback-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs)}.feedback-author{font-weight:600;color:var(--text-primary);font-size:.875rem}.feedback-date{color:var(--text-secondary);font-size:.75rem}.feedback-notes{color:var(--text-primary);line-height:1.6;margin:0}.feedback-actions{margin-top:var(--spacing-lg)}.advanced-settings{max-width:900px;margin:0 auto}.advanced-settings h2{margin-bottom:var(--spacing-sm);color:var(--primary)}.section-description{color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.settings-grid{display:grid;gap:var(--spacing-xl)}.setting-group{background:var(--white);padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid var(--medium-gray)}.setting-group.full-width{grid-column:1 / -1}.setting-label{display:block;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs);font-size:1rem}.setting-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:var(--spacing-md);line-height:1.5}.setting-select,.setting-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius-md);font-size:1rem;background:var(--white);transition:border-color .2s ease}.setting-select:focus,.setting-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff6b6b1a}.budget-input-wrapper{position:relative;display:inline-block;width:200px}.currency-symbol{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--text-secondary);font-weight:600}.budget-input{padding-left:calc(var(--spacing-md) + 20px)}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-md)}.equipment-checkbox{display:flex;align-items:center;padding:var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:var(--white)}.equipment-checkbox:hover{border-color:var(--primary);background:#ff6b6b0d}.equipment-checkbox input[type=checkbox]{margin-right:var(--spacing-sm);cursor:pointer}.equipment-checkbox span{font-size:.875rem}.toggle-group{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-md)}.toggle-option{display:flex;align-items:flex-start;padding:var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:var(--white)}.toggle-option:hover{border-color:var(--primary);background:#ff6b6b0d}.toggle-option input[type=checkbox]{margin-right:var(--spacing-md);margin-top:4px;cursor:pointer}.toggle-option span{flex:1}.toggle-option strong{display:block;margin-bottom:var(--spacing-xs);color:var(--text-primary)}.toggle-option small{display:block;color:var(--text-secondary);font-size:.875rem;line-height:1.5}.settings-footer{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:#ff6b6b0d;border-radius:var(--radius-md);border-left:4px solid var(--primary)}.info-note{margin:0;color:var(--text-secondary);font-size:.875rem;line-height:1.6}.recipe-metadata-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.info-badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:.875rem;font-weight:600;white-space:nowrap}.ai-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:var(--white)}.cuisine-badge,.difficulty-badge{background:var(--light-gray);color:var(--text-primary)}.time-badge{background:#34d3991a;color:#047857}.cost-badge{background:#fbbf241a;color:#d97706}.recipe-equipment{padding:var(--spacing-md);background:#3b82f60d;border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:4px solid #3b82f6}.recipe-equipment strong{color:#1e40af}.recipe-allergens{padding:var(--spacing-md);background:#ef44440d;border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:4px solid #ef4444}.recipe-allergens strong{color:#991b1b}.spice-adaptations-section{background:#fb923c0d;padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid rgba(251,146,60,.2)}.spice-adaptations-section h2{color:#c2410c}.spice-base-version{padding:var(--spacing-md);background:var(--white);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.spice-adaptation-points h3{font-size:1rem;margin-bottom:var(--spacing-md);color:var(--text-primary)}.adaptation-point{background:var(--white);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm)}.adaptation-point p{margin-bottom:var(--spacing-xs)}.adaptation-point ul{margin:var(--spacing-xs) 0;padding-left:var(--spacing-lg)}.adaptation-point .target-level{color:#c2410c;font-weight:600;margin-top:var(--spacing-sm)}.cultural-context-section{background:#8b5cf60d;padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid rgba(139,92,246,.2)}.cultural-context-section h2{color:#6d28d9}.cultural-context-text{line-height:1.8;color:var(--text-primary);font-size:1rem}.cooking-science-section{background:#10b9810d;padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid rgba(16,185,129,.2)}.cooking-science-section h2{color:#047857}.cooking-science-text{line-height:1.8;color:var(--text-primary);font-size:1rem}@media(max-width:768px){.menu-generator-modal{max-height:95vh}.menu-generator-header,.menu-generator-form{padding:var(--spacing-md)}.generating-modal{padding:var(--spacing-lg)}.week-actions{flex-direction:column;width:100%}.btn-ai-generate{width:100%}}.family-selector{position:relative;display:inline-block}.family-selector-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--white);border:2px solid var(--medium-gray);border-radius:var(--radius-md);cursor:pointer;font-size:.95rem;font-weight:500;color:var(--text-primary);transition:var(--transition)}.family-selector-button:hover{border-color:var(--primary);background:var(--light-gray)}.family-selector-label{display:flex;align-items:center;gap:var(--spacing-sm)}.family-name{font-weight:600}.family-role-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;border-radius:var(--radius-sm);letter-spacing:.5px}.family-role-badge.creator{background:#ffe5e5;color:#d63031}.family-role-badge.approver{background:#e3f2fd;color:#1976d2}.family-role-badge.viewer{background:#f3e5f5;color:#7b1fa2}.family-selector-arrow{font-size:.7rem;color:var(--dark-gray)}.family-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:300px;background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;max-height:400px;overflow-y:auto}.family-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-md);border:none;background:none;cursor:pointer;text-align:left;transition:var(--transition);border-bottom:1px solid var(--light-gray)}.family-option:hover{background:var(--light-gray)}.family-option.active{background:#fff5f5}.family-option-content{flex:1}.family-option-name{display:block;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.family-option-desc{display:block;font-size:.85rem;color:var(--text-secondary)}.family-option-meta{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:.25rem}.family-member-count{font-size:.8rem;color:var(--text-secondary)}.family-option-check{color:var(--success);font-size:1.2rem;font-weight:700}.family-option.create-family-option{border-bottom:none;color:var(--primary);font-weight:600}.family-option.create-family-option:hover{background:#fff5f5}.family-option-icon{font-size:1.5rem;margin-right:var(--spacing-sm)}.family-dropdown-divider{height:1px;background:var(--medium-gray);margin:.5rem 0}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.family-settings{max-width:800px;margin:0 auto}.family-settings-header{margin-bottom:var(--spacing-xl)}.family-settings-subtitle{color:var(--text-secondary);margin-top:var(--spacing-sm)}.family-settings-section{background:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-xl)}.family-settings-section.family-settings-danger{border:2px solid var(--danger)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.family-members-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.family-member-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--light-gray);border-radius:var(--radius-md)}.family-member-info{flex:1}.family-member-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.family-member-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.85rem}.family-member-date{color:var(--text-secondary)}.pending-invitations{display:flex;flex-direction:column;gap:var(--spacing-md)}.invitation-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:#fff9e6;border:1px solid var(--warning);border-radius:var(--radius-md)}.invitation-info{flex:1}.invitation-email{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.invitation-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.85rem}.invitation-date,.invitation-expires{color:var(--text-secondary)}.invitation-actions{display:flex;gap:var(--spacing-sm)}.btn-sm{padding:.4rem .8rem;font-size:.85rem}.shopping-list-container{max-width:900px;margin:0 auto}.shopping-list-header{margin-bottom:var(--spacing-xl);text-align:center}.shopping-list-subtitle{color:var(--text-secondary);font-size:1.1rem;margin-top:var(--spacing-sm)}.week-selector{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-xl)}.week-nav-button{padding:var(--spacing-sm) var(--spacing-md);background:var(--white);border:2px solid var(--medium-gray);border-radius:var(--radius-md);cursor:pointer;font-weight:500;color:var(--text-primary);transition:var(--transition)}.week-nav-button:hover{background:var(--primary);color:var(--white);border-color:var(--primary)}.week-display{font-weight:600;font-size:1.1rem;color:var(--text-primary)}.shopping-list-empty{text-align:center;padding:var(--spacing-2xl);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.shopping-list-actions{display:flex;gap:var(--spacing-md);justify-content:center;margin-bottom:var(--spacing-xl)}.shopping-list-progress{background:var(--white);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-xl)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.progress-text{font-weight:600;color:var(--text-primary)}.progress-percentage{font-weight:700;font-size:1.2rem;color:var(--success)}.progress-bar-container{height:12px;background:var(--light-gray);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--success),var(--secondary));border-radius:var(--radius-full);transition:width .3s ease}.shopping-categories{display:flex;flex-direction:column;gap:var(--spacing-lg)}.shopping-category{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.shopping-category-header{padding:var(--spacing-lg);background:var(--light-gray);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition)}.shopping-category-header:hover{background:var(--medium-gray)}.shopping-category-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.2rem;font-weight:600;margin-bottom:var(--spacing-sm)}.category-icon{font-size:.8rem;color:var(--dark-gray)}.category-count{margin-left:auto;font-size:.95rem;color:var(--text-secondary);font-weight:500}.shopping-category-progress{height:6px;background:var(--white);border-radius:var(--radius-full);overflow:hidden}.shopping-category-progress-bar{height:100%;background:var(--success);border-radius:var(--radius-full);transition:width .3s ease}.shopping-category-items{padding:var(--spacing-md)}.shopping-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--light-gray);transition:var(--transition)}.shopping-item:last-child{border-bottom:none}.shopping-item.purchased{opacity:.5}.shopping-item.purchased .shopping-item-name{text-decoration:line-through}.shopping-item-checkbox{width:20px;height:20px;cursor:pointer;flex-shrink:0;margin-top:.2rem}.shopping-item-details{flex:1}.shopping-item-name{font-size:1rem;color:var(--text-primary);margin-bottom:.25rem}.shopping-item-recipes{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.shopping-item-recipe-tag{display:inline-block;padding:.15rem .5rem;font-size:.75rem;background:var(--light-gray);color:var(--text-secondary);border-radius:var(--radius-sm)}.alert{padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.alert-info{background:#e3f2fd;color:#1976d2;border:1px solid #1976D2}.alert-error{background:#ffebee;color:#c62828;border:1px solid #C62828}.alert-success{background:#e8f5e9;color:#2e7d32;border:1px solid #2E7D32}.alert h3{margin-bottom:var(--spacing-sm)}.form-help-text{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.invite-info{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--medium-gray)}.info-text{font-size:.9rem;color:var(--text-secondary)}@media(max-width:768px){.family-dropdown{min-width:280px;right:-1rem}.week-selector{flex-direction:column;text-align:center}.week-nav-button{width:100%}.shopping-list-actions{flex-direction:column}.shopping-list-actions button{width:100%}.family-member-item,.invitation-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.invitation-actions{width:100%;justify-content:flex-end}}@media print{.header,.navigation,.footer,.btn-primary,.btn-secondary,.btn-danger,.btn-icon,.btn-back,.btn-nav,.btn-today,.week-nav-button,.shopping-list-actions{display:none}.main-content{max-width:100%}.shopping-item-checkbox{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
