body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.toast-container{display:flex;flex-direction:column;gap:10px;max-width:400px;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:center;animation:slideIn .3s ease-out;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;gap:12px;min-width:280px;padding:14px 16px}.toast-exit{animation:slideOut .3s ease-in forwards}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.toast-success{background:#d4edda;border-left:4px solid #28a745;color:#155724}.toast-error{background:#f8d7da;border-left:4px solid #dc3545;color:#721c24}.toast-warning{background:#fff3cd;border-left:4px solid #ffc107;color:#856404}.toast-info{background:#d1ecf1;border-left:4px solid #17a2b8;color:#0c5460}.toast-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-weight:700;height:24px;justify-content:center;width:24px}.toast-success .toast-icon{background:#28a745;color:#fff}.toast-error .toast-icon{background:#dc3545;color:#fff}.toast-warning .toast-icon{background:#ffc107;color:#856404}.toast-info .toast-icon{background:#17a2b8;color:#fff}.toast-message{flex:1 1;font-size:14px;line-height:1.4}.toast-close{background:none;border:none;cursor:pointer;font-size:20px;line-height:1;opacity:.6;padding:0;transition:opacity .2s}.toast-close:hover{opacity:1}.toast-close:focus{outline:2px solid currentColor;outline-offset:2px}@media (max-width:480px){.toast-container{left:10px;max-width:none;right:10px;top:10px}.toast{min-width:auto}}.loading-screen{min-height:200px;padding:2rem}.spinner{border:3px solid #0000001a;border-left-color:#667eea}.spinner-small{border-width:2px;height:20px;width:20px}.spinner-medium{border-width:3px;height:40px;width:40px}.spinner-large{border-width:4px;height:60px;width:60px}.loading-screen p{margin-top:1rem}.homepage{background:#fff;color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;min-height:100vh}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #0000001a;left:0;padding:1rem 0;position:fixed;right:0;top:0;z-index:1000}.nav-container{justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.nav-brand,.nav-container{align-items:center;display:flex}.nav-brand{color:#1a1a1a;font-size:1.25rem;font-weight:600;gap:.75rem;text-decoration:none}.nav-logo{color:#ff6b35;height:28px;width:28px}.nav-links{display:flex;gap:2rem}.nav-links a{color:#666;font-weight:500;text-decoration:none;transition:color .2s ease}.nav-links a:hover{color:#ff6b35}.main-content{padding-top:80px}.hero{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;overflow:hidden;padding:5rem 0 6rem;position:relative}.hero:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='100' height='100' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='50' cy='50' r='.5' fill='%23fff' opacity='.1'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E");bottom:0;content:"";left:0;opacity:.3;position:absolute;right:0;top:0}.hero-container{grid-gap:4rem;align-items:center;display:grid;gap:4rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;padding:0 2rem;position:relative;z-index:1}.hero-content{max-width:500px}.hero-title{font-size:3.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-bottom:1.5rem}.hero-accent{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,gold,#ffed4e);background-clip:text;-webkit-background-clip:text;color:gold}.hero-description{font-size:1.2rem;line-height:1.6;margin-bottom:2rem;opacity:.9}.hero-stats{display:flex;gap:2rem;margin-bottom:2.5rem}.stat{text-align:center}.stat-number{color:gold;display:block;font-size:1.5rem;font-weight:700}.stat-label{font-size:.875rem;opacity:.8}.hero-cta{align-items:flex-start;display:flex;flex-direction:column;gap:1rem}.cta-button{align-items:center;background:#fff;border:none;border-radius:50px;box-shadow:0 4px 20px #00000026;color:#1a1a1a;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;padding:1rem 2rem;transition:all .3s ease}.cta-button:hover{box-shadow:0 6px 25px #0003;transform:translateY(-2px)}.cta-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.button-icon{height:20px;width:20px}.cta-note{font-size:.875rem;margin:0;opacity:.8}.hero-visual{align-items:center;display:flex;justify-content:center}.phone-mockup{background:#1a1a1a;border-radius:30px;box-shadow:0 20px 60px #0000004d;height:600px;padding:20px;position:relative;transform:rotate(-5deg);width:300px}.phone-screen{background:#fff;border-radius:20px;height:100%;overflow:hidden;position:relative;width:100%}.app-preview{display:flex;flex-direction:column;gap:20px;height:100%;padding:20px}.preview-header{align-items:center;display:flex;gap:15px}.preview-avatar{background:linear-gradient(45deg,#ff6b35,#f7931e);border-radius:50%;height:40px;width:40px}.preview-text{flex:1 1}.preview-line{background:#e0e0e0;border-radius:4px;height:8px;margin-bottom:8px}.preview-line.short{width:60%}.preview-images{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.preview-img{aspect-ratio:1;background:linear-gradient(45deg,#667eea,#764ba2);border-radius:10px;opacity:.8}.preview-recipe{margin-top:auto}.recipe-title{background:#1a1a1a;border-radius:6px;height:12px;margin-bottom:10px;width:80%}.recipe-meta{background:#ccc;border-radius:4px;height:8px;width:60%}.features{background:#f8f9fa;padding:6rem 0}.section-container{margin:0 auto;max-width:1200px;padding:0 2rem}.section-title{color:#1a1a1a;font-size:2.5rem;font-weight:700;margin-bottom:3rem;text-align:center}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:2.5rem;text-align:center;transition:transform .3s ease}.feature-card:hover{transform:translateY(-5px)}.feature-icon{align-items:center;background:linear-gradient(45deg,#ff6b35,#f7931e);border-radius:50%;display:flex;height:60px;justify-content:center;margin:0 auto 1.5rem;width:60px}.feature-icon svg{color:#fff;height:24px;width:24px}.feature-card h3{color:#1a1a1a;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.feature-card p{color:#666;line-height:1.6}.pricing{background:#fff;padding:6rem 0}.pricing-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin:0 auto;max-width:800px}.pricing-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 10px 40px #667eea4d;color:#fff;padding:3rem;position:relative;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.pricing-card:hover{box-shadow:0 15px 50px #667eea66;transform:translateY(-5px)}.pricing-card.premium{background:linear-gradient(135deg,#4caf50,#45a049);box-shadow:0 15px 50px #4caf5066;transform:scale(1.05)}.pricing-card.premium:hover{transform:scale(1.05) translateY(-5px)}.pricing-badge{background:#ff6b35;border-radius:20px;color:#fff;font-size:.9rem;font-weight:600;left:50%;padding:8px 20px;position:absolute;top:-15px;transform:translateX(-50%)}.pricing-header h3{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.price{align-items:baseline;display:flex;gap:.25rem;justify-content:center;margin-bottom:2rem}.currency{font-size:1.5rem;font-weight:600}.amount{font-size:4rem;font-weight:700;line-height:1}.period{font-size:1rem;opacity:.8}.pricing-features{list-style:none;margin:0;padding:0}.pricing-features li{border-bottom:1px solid #fff3;font-size:1.1rem;padding:.75rem 0}.pricing-features li:last-child{border-bottom:none}.footer{background:#1a1a1a;color:#fff;padding:2rem 0;text-align:center}.footer-container{margin:0 auto;max-width:1200px;padding:0 2rem}@media (max-width:768px){.nav-container{padding:0 1rem}.nav-links{display:none}.hero-container{gap:2rem;grid-template-columns:1fr;text-align:center}.hero-title{font-size:2.5rem}.hero-stats{justify-content:center}.phone-mockup{height:500px;transform:none;width:250px}.section-container{padding:0 1rem}.features-grid{grid-template-columns:1fr}.feature-card{padding:2rem}}@media (max-width:480px){.hero{padding:3rem 0 4rem}.hero-title{font-size:2rem}.hero-description{font-size:1rem}.phone-mockup{height:400px;width:200px}}.auth-container{margin:0 auto;max-width:400px}.auth-container,.auth-form{gap:1rem}.auth-container,.auth-form,.form-group{display:flex;flex-direction:column}.auth-input{background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;padding:.875rem 1rem;transition:all .3s ease}.auth-input:focus{border-color:#ff6b35;box-shadow:0 0 0 3px #ff6b351a;outline:2px solid #ff6b35;outline-offset:2px}.cta-button:focus{outline:2px solid #667eea;outline-offset:2px}.auth-toggle:focus,.nav-links a:focus{outline:2px solid #ff6b35;outline-offset:2px}.auth-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;font-size:.875rem;padding:.75rem;text-align:center}.auth-toggle{background:none;border:none;color:#6b7280;cursor:pointer;font-size:.875rem;padding:.5rem;transition:color .3s ease}.auth-toggle:hover{color:#ff6b35}.auth-divider{margin:1rem 0;position:relative;text-align:center}.auth-divider:before{background:#e5e7eb;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.auth-divider span{background:#fff;color:#6b7280;font-size:.875rem;font-weight:500;padding:0 1rem}.cta-button.google{background:#fff;border:2px solid #e5e7eb;color:#374151}.cta-button.google:hover{background:#f9fafb;border-color:#d1d5db}@media (max-width:768px){.auth-container{max-width:100%}}.image-upload{margin:20px 0}.image-upload h3{color:#333;margin-bottom:10px}.image-upload p{color:#666;margin-bottom:20px}.upload-zone{background:#fafafa;border:2px dashed #ddd;border-radius:10px;cursor:pointer;padding:40px;text-align:center;transition:all .3s ease}.upload-zone:hover{background:#f0f2ff;border-color:#667eea}.upload-zone.drag-over{background:#e8f0ff;border-color:#667eea;transform:scale(1.02)}.upload-content{pointer-events:none}.upload-icon{font-size:3rem;margin-bottom:15px}.upload-content p{margin:5px 0}.upload-hint{color:#999;font-size:.9rem}.uploading{align-items:center;display:flex;flex-direction:column;gap:15px;text-align:center}.uploading p{color:#666;font-size:1rem;margin:0}.uploading .upload-hint{color:#888;font-size:.9rem;margin-top:5px}.spinner{border-top-color:#667eea}.uploaded-images{margin-top:30px}.uploaded-images h4{color:#333;margin-bottom:15px}.image-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.image-item{aspect-ratio:1;background:#f0f0f0;border-radius:8px;overflow:hidden;position:relative}.image-item img{height:100%;object-fit:cover;width:100%}.remove-button{align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:25px;justify-content:center;position:absolute;right:5px;top:5px;transition:background .2s ease;width:25px}.remove-button:hover{background:#dc3545cc}.upload-tips{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:20px;padding:15px}.upload-tips h4{color:#495057;font-size:16px;margin:0 0 12px}.tips-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;list-style:none;margin:0;padding:0}.tip-item{align-items:center;display:flex;font-size:14px;gap:8px}.tip-icon{font-size:16px;min-width:20px}@media (max-width:768px){.upload-zone{padding:20px}.upload-icon{font-size:2rem}.image-grid{gap:10px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.tips-grid{grid-template-columns:1fr}}.food-genre-selector{margin:30px 0}.food-genre-selector h3{color:#333;margin-bottom:10px}.food-genre-selector p{color:#666;margin-bottom:20px}.genre-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-bottom:30px}.genre-button{background:#fff;border:2px solid #ddd;border-radius:25px;cursor:pointer;font-size:.9rem;font-weight:500;padding:12px 16px;transition:all .3s ease}.genre-button:hover{background:#f0f2ff;border-color:#667eea}.genre-button.selected{background:#667eea;border-color:#667eea;color:#fff}.custom-genre-section{background:#f8f9fa;border-radius:10px;margin:30px 0;padding:20px}.custom-genre-section h4{color:#333;margin-bottom:15px}.custom-genre-input{display:flex;gap:10px}.custom-genre-input input{border:1px solid #ddd;border-radius:5px;flex:1 1;font-size:1rem;padding:10px 15px}.custom-genre-input input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.custom-genre-input input:focus,.genre-button:focus{outline:2px solid #667eea;outline-offset:2px}.add-button:focus{outline:2px solid #28a745;outline-offset:2px}.remove-genre:focus{outline:2px solid #fff;outline-offset:1px}.add-button{background:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:background .3s ease}.add-button:hover:not(:disabled){background:#218838}.add-button:disabled{background:#ccc;cursor:not-allowed}.selected-genres{background:#e8f5e8;border-radius:10px;margin-top:30px;padding:20px}.selected-genres h4{color:#333;margin-bottom:15px}.selected-list{display:flex;flex-wrap:wrap;gap:10px}.selected-genre{background:#28a745;border-radius:20px;font-size:.9rem;gap:8px;padding:8px 12px}.remove-genre,.selected-genre{align-items:center;color:#fff;display:flex}.remove-genre{background:none;border:none;border-radius:50%;cursor:pointer;font-size:16px;height:18px;justify-content:center;line-height:1;padding:0;transition:background .2s ease;width:18px}.remove-genre:hover{background:#fff3}@media (max-width:768px){.genre-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.genre-button{font-size:.8rem;padding:10px 12px}.custom-genre-input{flex-direction:column}.selected-list{gap:8px}}.dietary-preferences{margin:30px 0}.dietary-preferences h3{color:#333;margin-bottom:10px}.dietary-preferences p{color:#666;margin-bottom:20px}.quick-select{margin-bottom:30px}.quick-select h4{color:#333;margin-bottom:15px}.preference-buttons{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.preference-button{background:#fff;border:2px solid #ddd;border-radius:20px;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 15px;transition:all .3s ease}.preference-button:hover{background:#f0fff0;border-color:#28a745}.preference-button.selected{background:#28a745;border-color:#28a745;color:#fff}.custom-input{margin:30px 0}.custom-input label{display:block;margin-bottom:10px}.custom-input h4{color:#333;margin-bottom:5px}.custom-input p{color:#666;font-size:.9rem;margin-bottom:10px}.custom-input textarea{border:1px solid #ddd;border-radius:8px;font-family:inherit;font-size:1rem;min-height:100px;padding:15px;resize:vertical;width:100%}.custom-input textarea:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:2px solid #667eea;outline-offset:2px}.preference-button:focus{outline:2px solid #28a745;outline-offset:2px}.remove-preference:focus{outline:2px solid #fff;outline-offset:1px}.character-count{color:#999;font-size:.8rem;margin-top:5px;text-align:right}.selected-preferences{background:#f0fff0;border-radius:10px;margin-top:30px;padding:20px}.selected-preferences h4{color:#333;margin-bottom:15px}.preference-tags{flex-wrap:wrap;gap:10px}.preference-tag{background:#28a745;border-radius:20px;font-size:.9rem;gap:8px;padding:8px 12px}.preference-tag,.remove-preference{align-items:center;color:#fff;display:flex}.remove-preference{background:none;border:none;border-radius:50%;cursor:pointer;font-size:16px;height:18px;justify-content:center;line-height:1;padding:0;transition:background .2s ease;width:18px}.remove-preference:hover{background:#fff3}@media (max-width:768px){.preference-buttons{gap:8px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.preference-button{font-size:.8rem;padding:8px 12px}.custom-input textarea{padding:12px}.preference-tags{gap:8px}}.payment-form{align-items:center;background:#f5f5f5;display:flex;justify-content:center;min-height:100vh;padding:20px}.payment-container{background:#fff;border-radius:15px;box-shadow:0 10px 30px #0000001a;max-width:900px;padding:40px;text-align:center}.payment-container h2{color:#333;font-size:1.8rem;margin-bottom:30px}.price-section{background:#f8f9fa;border-radius:10px;margin:30px 0;padding:20px}.price{color:#28a745;display:block;font-size:3rem;font-weight:700;margin-bottom:5px}.price-description{color:#666;font-size:.9rem}.payment-benefits{margin:30px 0;text-align:left}.payment-benefits h3{color:#333;margin-bottom:15px;text-align:center}.payment-benefits ul{list-style:none;padding:0}.payment-benefits li{color:#555;font-size:.95rem;padding:8px 0}.payment-button{background:#6772e5;border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:1.1rem;margin:20px 0;padding:15px 30px;transition:all .3s ease;width:100%}.payment-button:hover{background:#5469d4;box-shadow:0 10px 20px #6772e54d;transform:translateY(-2px)}.payment-button:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.payment-note{color:#999;font-size:.8rem;margin-top:15px}.error-message{border:1px solid #f5c6cb;border-radius:5px;color:#721c24;margin:15px 0;padding:10px}.plan-selector{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin:30px 0}.plan-option{background:#fff;border:2px solid #e9ecef;border-radius:12px;cursor:pointer;padding:25px;position:relative;transition:all .3s ease}.plan-option:hover{border-color:#6772e5;box-shadow:0 5px 15px #6772e533;transform:translateY(-2px)}.plan-option.selected{background:#f8f9ff;border-color:#6772e5;box-shadow:0 5px 15px #6772e54d}.plan-option h3{color:#333;font-size:1.3rem;margin-bottom:10px}.plan-price{color:#28a745;font-size:2rem;font-weight:700;margin-bottom:20px}.plan-option ul{list-style:none;padding:0;text-align:left}.plan-option li{color:#555;font-size:.9rem;padding:5px 0}.popular-badge{background:#ff6b35;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:5px 12px;position:absolute;right:15px;top:-10px}.free-trial-banner{background:linear-gradient(135deg,#28a745,#20c997);border-radius:12px;box-shadow:0 5px 20px #28a7454d;color:#fff;margin-bottom:25px;padding:30px;text-align:center}.free-trial-banner h3{color:#fff;font-size:1.5rem;margin:0 0 10px}.free-trial-banner p{font-size:1rem;margin:0 0 20px;opacity:.95}.trial-button{background:#fff;border:none;border-radius:25px;color:#28a745;cursor:pointer;font-size:1.1rem;font-weight:600;max-width:300px;padding:15px 30px;transition:all .3s ease;width:100%}.trial-button:hover:not(:disabled){box-shadow:0 5px 15px #0003;transform:translateY(-2px)}.trial-button:disabled{cursor:not-allowed;opacity:.7}.show-plans-link{background:none;border:none;color:#ffffffe6;cursor:pointer;display:block;font-size:.9rem;margin-top:15px;text-decoration:underline;width:100%}.show-plans-link:hover{color:#fff}.back-to-trial-link{background:none;border:none;color:#28a745;cursor:pointer;font-size:.9rem;margin-bottom:20px;padding:0;text-decoration:underline}.back-to-trial-link:hover{color:#1e7e34}@media (max-width:768px){.payment-container{margin:10px;padding:20px}.price{font-size:2.5rem}.plan-selector{gap:15px;grid-template-columns:1fr}.plan-option{padding:20px}.plan-price{font-size:1.8rem}.free-trial-banner{margin-bottom:20px;padding:25px 20px}.free-trial-banner h3{font-size:1.3rem}.trial-button{font-size:1rem;padding:14px 24px}}.card-element-container{margin:25px 0;text-align:left}.card-element-container label{color:#333;display:block;font-size:.9rem;font-weight:500;margin-bottom:10px}.card-element-container .StripeElement{background-color:#fff;border:1px solid #e9ecef;border-radius:8px;padding:15px;transition:border-color .3s ease}.card-element-container .StripeElement--focus,.card-element-container .StripeElement:focus{border-color:#6772e5;box-shadow:0 0 0 2px #6772e533}.card-element-container .StripeElement--invalid{border-color:#e3342f}.card-element-container .StripeElement--complete{border-color:#28a745}.star-rating{align-items:center;display:inline-flex;gap:2px}.star-rating .star{background:none;border:none;color:#ddd;cursor:pointer;padding:0;transition:transform .1s ease,color .2s ease}.star-rating .star.filled{color:#ffc107}.star-rating .star:hover:not(:disabled){transform:scale(1.2)}.star-rating.readonly .star{cursor:default}.star-rating-small .star{font-size:1rem}.star-rating-medium .star{font-size:1.5rem}.star-rating-large .star{font-size:2rem}.rating-text{color:#6c757d;font-size:.9rem;margin-left:8px}.star-rating-small .rating-text{font-size:.75rem}.star-rating-large .rating-text{font-size:1rem}.star-rating .star:focus{border-radius:2px;outline:2px solid #4caf50;outline-offset:2px}.star-rating .star:focus:not(:focus-visible){outline:none}.modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalFadeIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:100%}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-title{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:color .2s}.modal-close:hover{background:#f3f4f6;color:#1f2937}.modal-close:focus{outline:2px solid #667eea;outline-offset:2px}.modal-body{padding:1.5rem}@media (max-width:768px){.modal-content{border-radius:12px 12px 0 0;margin:0;max-height:95vh;max-width:100%}.modal-overlay{align-items:flex-end;padding:0}}.rating-modal-content{padding:10px 0}.rating-modal-content .recipe-title{color:#2c3e50;font-size:1.2rem}.rating-modal-content .recipe-title,.rating-section{margin-bottom:25px;text-align:center}.rating-section label{color:#495057;display:block;font-weight:500;margin-bottom:10px}.make-again-section{margin-bottom:25px}.make-again-section label{color:#495057;display:block;font-weight:500;margin-bottom:10px}.toggle-buttons{display:flex;gap:10px}.toggle-btn{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;padding:10px 20px;transition:all .2s ease}.toggle-btn:hover{background:#f1f8e9;border-color:#4caf50}.toggle-btn.active{background:#4caf50;border-color:#4caf50;color:#fff}.notes-section{margin-bottom:20px;position:relative}.notes-section label{color:#495057;display:block;font-weight:500;margin-bottom:8px}.notes-section textarea{border:1px solid #ddd;border-radius:8px;font-family:inherit;font-size:1rem;min-height:80px;padding:12px;resize:vertical;width:100%}.notes-section textarea:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5033;outline:none}.char-count{bottom:8px;color:#6c757d;font-size:.75rem;position:absolute;right:10px}.error-message{background:#f8d7da;border-radius:6px;color:#dc3545;font-size:.9rem;margin-bottom:15px;padding:10px 15px}.modal-actions{border-top:1px solid #e9ecef;display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:15px}.cancel-btn{background:#f8f9fa;border:1px solid #ddd;font-size:1rem;padding:10px 20px}.cancel-btn:hover:not(:disabled){background:#e9ecef}.submit-btn{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:10px 20px;transition:background .2s ease}.submit-btn:hover:not(:disabled){background:#45a049}.cancel-btn:disabled,.submit-btn:disabled{cursor:not-allowed;opacity:.6}.recipe-discovery{margin:0 auto;max-width:800px;padding:20px}.recipe-discovery.error,.recipe-discovery.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#4caf50;height:40px;margin-bottom:15px;width:40px}.ingredients-summary{background:#f8f9fa;border-radius:12px;margin-bottom:30px;padding:20px}.ingredients-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.ingredients-summary h3{color:#2c3e50;font-size:1.2rem;margin:0}.ingredient-buttons{display:flex;gap:8px}.edit-ingredients-btn{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:background-color .2s}.edit-ingredients-btn:hover{background:#2980b9}.clear-cache-btn{background:#e67e22;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:background-color .2s}.clear-cache-btn:hover{background:#d35400}.generate-recipes-btn{background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;margin-right:8px;padding:8px 12px;transition:background-color .2s}.generate-recipes-btn:hover{background:#219a52}.ingredient-editor{margin-top:15px}.ingredient-textarea{border:2px solid #ddd;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:1rem;padding:12px;resize:vertical;width:100%}.ingredient-textarea:focus{border-color:#3498db}.cancel-btn:focus,.clear-cache-btn:focus,.close-modal-btn:focus,.edit-ingredients-btn:focus,.generate-recipes-btn:focus,.ingredient-textarea:focus,.save-btn:focus,.save-recipe-btn:focus,.view-recipe-btn:focus{outline:2px solid #3498db;outline-offset:2px}.editor-buttons{display:flex;gap:10px;margin-top:12px}.save-btn{background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:10px 16px}.save-btn:hover{background:#229954}.cancel-btn{background:#e74c3c;font-weight:500;padding:10px 16px}.cancel-btn:hover{background:#c0392b}.editor-help{color:#666;font-size:.9rem;font-style:italic;margin-top:10px}.no-ingredients{color:#7f8c8d;font-style:italic;margin:0}.ingredient-tags{display:flex;flex-wrap:wrap;gap:8px}.ingredient-tag{background:#4caf50;border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;padding:6px 12px}.preferences-summary{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;margin:20px 0;padding:20px}.preferences-summary h3{color:#2c3e50;font-size:1.1rem;margin-bottom:15px}.preference-tags{display:flex;flex-direction:column;gap:12px}.preference-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.preference-label{color:#495057;font-size:.9rem;font-weight:600;margin-right:8px}.preference-tag{border-radius:16px;font-size:.85rem;font-weight:500;padding:4px 10px}.preference-tag.dietary{background:#ffeaa7;color:#d63031}.preference-tag.cuisine{background:#a29bfe;color:#fff}.preferences-note{color:#6c757d;font-size:.85rem;font-style:italic;margin-bottom:0;margin-top:12px}.recipe-suggestions h3{color:#2c3e50;font-size:1.3rem;margin-bottom:15px}.adaptive-notice{background:#e8f4fd;border-left:4px solid #17a2b8;border-radius:8px;color:#0c5460;font-size:.9rem;margin-bottom:20px;padding:12px 16px}.recipe-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.recipe-card{background:#fff;border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;padding:0;transition:transform .2s ease,box-shadow .2s ease}.recipe-image{border-radius:12px 12px 0 0;height:200px;overflow:hidden;width:100%}.recipe-image img{height:100%;object-fit:cover;width:100%}.recipe-card>:not(.recipe-image){padding:0 20px}.recipe-card>.recipe-actions{padding:0 20px 20px}.recipe-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.recipe-header{align-items:flex-start;display:flex;justify-content:space-between;margin:20px 0 12px;padding:0 20px}.recipe-header h4{color:#2c3e50;flex:1 1;font-size:1.1rem;margin:0}.recipe-meta{align-items:flex-end;color:#6c757d;display:flex;flex-direction:column;font-size:.8rem;gap:4px}.cuisine{background:#e9ecef;border-radius:10px;padding:2px 8px}.cuisine,.time{font-weight:500}.recipe-description{color:#6c757d;font-size:.9rem;line-height:1.4}.missing-ingredients,.recipe-description{margin-bottom:15px;padding:0 20px}.perfect-match{background:#d4edda;color:#155724;font-size:.9rem;font-weight:500}.need-to-buy,.perfect-match{border-radius:8px;padding:8px 12px}.need-to-buy{background:#fff3cd;border-left:4px solid #ffc107}.missing-count{color:#856404;display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.missing-list{display:flex;flex-wrap:wrap;gap:4px}.missing-ingredient{background:#ffc107;border-radius:12px;color:#212529;font-size:.8rem;font-weight:500;padding:2px 8px}.recipe-actions{display:flex;justify-content:flex-end}.view-recipe-btn{background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.view-recipe-btn:hover{background:#45a049}.nutrition-info{background:#f8f9fa;border-left:4px solid #4caf50;border-radius:8px;margin:0 20px 15px;padding:15px}.nutrition-info h5{color:#2c3e50;font-size:1rem;font-weight:600;margin:0 0 12px}.nutrition-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.nutrition-item{background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;padding:8px;text-align:center}.nutrition-value{color:#4caf50;display:block;font-size:1.1rem;font-weight:700;margin-bottom:2px}.nutrition-label{color:#6c757d;font-size:.8rem;font-weight:500}.nutrition-upgrade{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;color:#856404;font-size:.85rem;margin-top:10px;padding:8px 12px;text-align:center}.nutrition-upgrade span{font-weight:500}@media (max-width:768px){.recipe-discovery{padding:15px}.recipe-grid{grid-template-columns:1fr}.recipe-header{align-items:flex-start;flex-direction:column}.recipe-meta{align-items:center;flex-direction:row;margin-top:8px}}.recipe-modal-overlay{background:#000000b3}.recipe-modal{border-radius:12px}.recipe-modal-header{border-bottom:1px solid #e0e0e0;margin-bottom:24px;padding:24px 24px 0}.recipe-modal-header h2{color:#2c3e50;font-size:1.8rem;font-weight:700}.close-modal-btn{border-radius:4px;color:#666;padding:4px 8px;transition:all .2s ease}.close-modal-btn:hover{background:#f5f5f5;color:#333}.recipe-modal-content{padding:0 24px 24px}.recipe-details{margin-bottom:30px}.recipe-modal .recipe-meta{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:16px}.recipe-modal .recipe-meta span{background:#f8f9fa;border-radius:20px;color:#495057;font-size:.9rem;font-weight:500;padding:6px 12px}.cuisine-tag{background:#e3f2fd;color:#1976d2}.cuisine-tag,.dietary-tag{font-size:.8rem;padding:4px 10px}.dietary-tag{background:#e8f5e8;border-radius:12px;color:#2e7d32;font-weight:500}.recipe-modal .recipe-description{color:#555;line-height:1.6;margin-bottom:0}.recipe-sections{grid-gap:30px;gap:30px}.ingredients-section,.instructions-section,.tips-section{background:#f8f9fa;border-radius:8px;padding:20px}.recipe-sections h3{color:#2c3e50;font-size:1.3rem;font-weight:600;margin:0 0 16px}.ingredients-list,.instructions-list,.tips-list{margin:0;padding-left:20px}.ingredients-list li,.instructions-list li,.tips-list li{color:#444;line-height:1.5;margin-bottom:8px}.instructions-list li{margin-bottom:12px}.recipe-modal-actions{border-top:1px solid #e0e0e0;margin-top:30px;text-align:center}.recipe-modal-actions .save-recipe-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease}.recipe-modal-actions .save-recipe-btn:hover:not(:disabled){box-shadow:0 4px 12px #28a7454d;transform:translateY(-1px)}.recipe-modal-actions .save-recipe-btn:disabled{cursor:not-allowed;opacity:.6}.recipe-modal-actions .saved-indicator{color:#28a745;font-size:1.1rem;font-weight:600}@media (max-width:768px){.recipe-modal-overlay{padding:10px}.recipe-modal{max-height:95vh}.recipe-modal-header{padding:16px 16px 0}.recipe-modal-content{padding:0 16px 16px}.recipe-modal .recipe-meta{gap:8px}.ingredients-section,.instructions-section,.tips-section{padding:16px}}.rate-recipe-btn{background:linear-gradient(135deg,#ffc107,#ff9800);border:none;border-radius:8px;color:#212529;cursor:pointer;font-size:1rem;font-weight:500;margin-left:10px;padding:12px 24px;transition:all .3s ease}.rate-recipe-btn:hover{box-shadow:0 4px 12px #ffc1074d;transform:translateY(-1px)}.rate-recipe-btn:focus{outline:2px solid #ff9800;outline-offset:2px}.print-recipe-btn{margin-left:10px}.user-rating-display{align-items:center;display:inline-flex;margin-left:15px}.recipe-card-rating{align-items:center;display:flex;gap:8px;margin-top:10px;padding:0 20px}.recipe-card-rating .would-make-again{color:#28a745;font-size:.8rem;font-weight:500}@media (max-width:480px){.recipe-modal-header h2{font-size:1.3rem}.recipe-modal-actions{align-items:stretch;display:flex;flex-direction:column;gap:10px}.recipe-modal-actions .print-recipe-btn,.recipe-modal-actions .rate-recipe-btn,.recipe-modal-actions .save-recipe-btn{margin-left:0;width:100%}.user-rating-display{justify-content:center;margin-left:0}}@media print{.recipe-modal-overlay{background:none;padding:0;position:static}.recipe-modal{border-radius:0;box-shadow:none;max-height:none}.close-modal-btn,.recipe-modal-actions{display:none}.recipe-modal-header{border-bottom:2px solid #333}.ingredients-section,.instructions-section,.tips-section{break-inside:avoid;page-break-inside:avoid}}.ingredient-confirmation{background:#fff5d6;border:2px solid #ffc107;border-radius:8px;margin:15px 0;padding:20px}.ingredient-confirmation h4{color:#856404;margin:0 0 10px}.ingredient-confirmation p{color:#856404;margin:0 0 15px}.possible-ingredients{display:flex;flex-direction:column;gap:10px}.ingredient-confirmation-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:12px 15px}.ingredient-name{color:#333;font-weight:500}.confirmation-buttons{display:flex;gap:8px}.confirm-btn,.reject-btn{background:none;border:none;border-radius:4px;cursor:pointer;font-size:18px;padding:5px 8px;transition:background .2s ease}.confirm-btn:hover{background:#d4edda}.reject-btn:hover{background:#f8d7da}.confirmation-complete{padding:20px;text-align:center}.finish-confirmation-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;padding:12px 24px;transition:background .2s ease}.finish-confirmation-btn:hover{background:#218838}.usage-summary{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:15px 0;padding:15px}.tier-info h4{color:#495057;font-size:16px;margin:0 0 12px}.usage-stats{display:flex;gap:20px;margin-bottom:15px}.usage-stats .stat{align-items:center;color:#6c757d;display:flex;flex-direction:column;font-size:14px}.usage-stats .stat strong{color:#495057;font-size:18px;margin-bottom:2px}.upgrade-prompt{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:12px;text-align:center}.upgrade-prompt p{color:#856404;font-weight:500;margin:0 0 8px}.upgrade-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background .2s ease}.upgrade-btn:hover{background:#0056b3}.upgrade-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.upgrade-modal{background:#fff;border-radius:12px;max-height:80vh;max-width:600px;overflow-y:auto;padding:30px;width:90%}.upgrade-modal h3{color:#333;margin:0 0 20px;text-align:center}.feature-comparison{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:25px}.plan{border:2px solid #e9ecef;border-radius:8px;padding:20px;text-align:center}.basic-plan{background:#f8f9fa}.premium-plan{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.plan h4{font-size:18px;margin:0 0 15px}.plan ul{list-style:none;margin:0;padding:0}.plan li{border-bottom:1px solid #fff3;padding:8px 0}.plan li:last-child{border-bottom:none}.basic-plan li{border-bottom-color:#dee2e6}.modal-buttons{display:flex;gap:15px;justify-content:center}.upgrade-now-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:background .2s ease}.upgrade-now-btn:hover{background:#218838}.cancel-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;padding:12px 24px;transition:background .2s ease}.cancel-btn:hover{background:#5a6268}@media (max-width:600px){.feature-comparison{grid-template-columns:1fr}.modal-buttons,.usage-stats{flex-direction:column}.usage-stats{gap:10px}}.saved-recipes{margin:0 auto;max-width:1200px;padding:20px}.saved-recipes.error,.saved-recipes.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px;text-align:center}.saved-recipes-header{margin-bottom:30px;text-align:center}.saved-recipes-header h2{color:#2d3748;font-size:1.8rem;margin-bottom:8px}.saved-recipes-subtitle{color:#718096;font-size:1rem}.saved-recipe-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.saved-recipe-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;padding:20px;transition:transform .2s ease,box-shadow .2s ease}.saved-recipe-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.saved-recipe-header{margin-bottom:12px}.saved-recipe-header h4{color:#2d3748;font-size:1.2rem;margin:0 0 8px}.saved-recipe-meta{display:flex;flex-wrap:wrap;font-size:.85rem;gap:8px}.saved-recipe-meta .cuisine{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;font-weight:500;padding:4px 10px}.saved-recipe-meta .time{background:#e2e8f0;border-radius:12px;color:#4a5568;padding:4px 10px}.saved-recipe-meta .difficulty{background:#c6f6d5;border-radius:12px;color:#22543d;padding:4px 10px;text-transform:capitalize}.saved-recipe-description{color:#4a5568;flex-grow:1;font-size:.95rem;line-height:1.5;margin-bottom:12px}.dietary-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.dietary-tags .dietary-tag{background:#fef3c7;border-radius:8px;color:#92400e;font-size:.8rem;padding:3px 8px}.saved-recipe-actions{border-top:1px solid #e2e8f0;display:flex;gap:10px;margin-top:auto;padding-top:16px}.saved-recipe-actions .view-recipe-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-weight:500;padding:10px 16px;transition:opacity .2s ease}.saved-recipe-actions .view-recipe-btn:hover{opacity:.9}.saved-recipe-actions .delete-recipe-btn{background:#fff;border:1px solid #e53e3e;border-radius:8px;color:#e53e3e;cursor:pointer;font-weight:500;padding:10px 16px;transition:background .2s ease,color .2s ease}.saved-recipe-actions .delete-recipe-btn:hover:not(:disabled){background:#e53e3e;color:#fff}.saved-recipe-actions .delete-recipe-btn:disabled{cursor:not-allowed;opacity:.6}.recipe-modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.recipe-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:100%}.recipe-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:20px 24px;position:-webkit-sticky;position:sticky;top:0}.recipe-modal-header h2{color:#2d3748;font-size:1.5rem;margin:0}.close-modal-btn{background:none;border:none;border-radius:8px;color:#718096;cursor:pointer;font-size:1.5rem;line-height:1;padding:8px;transition:background .2s ease}.close-modal-btn:hover{background:#f7fafc}.recipe-modal-content{padding:24px}.recipe-details{margin-bottom:24px}.recipe-details .recipe-meta{color:#4a5568;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.recipe-cuisine-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.cuisine-tag{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:500}.cuisine-tag,.recipe-cuisine-tags .dietary-tag{border-radius:12px;font-size:.9rem;padding:6px 12px}.recipe-cuisine-tags .dietary-tag{background:#fef3c7;color:#92400e}.recipe-description{color:#4a5568;font-size:1rem;line-height:1.6}.recipe-sections{grid-gap:24px;display:grid;gap:24px}.ingredients-section h3,.instructions-section h3,.tips-section h3{color:#2d3748;font-size:1.1rem;margin-bottom:12px}.ingredients-list{list-style:none;margin:0;padding:0}.ingredients-list li{border-bottom:1px solid #f0f0f0;color:#4a5568;padding:8px 0}.ingredients-list li:last-child{border-bottom:none}.instructions-list{margin:0;padding-left:20px}.instructions-list li{color:#4a5568;line-height:1.6;padding:10px 0}.tips-list{list-style:none;margin:0;padding:0}.tips-list li{color:#4a5568;padding:8px 0 8px 24px;position:relative}.tips-list li:before{content:"💡";left:0;position:absolute}.recipe-rating-display{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:12px;margin-bottom:12px;padding:8px 12px}.recipe-rating-display .would-make-again{color:#28a745;font-size:.85rem;font-weight:500}.saved-recipe-actions .rate-recipe-btn{background:linear-gradient(135deg,#ffc107,#ff9800);border:none;border-radius:8px;color:#212529;cursor:pointer;font-weight:500;padding:10px 16px;transition:opacity .2s ease,transform .2s ease}.saved-recipe-actions .rate-recipe-btn:hover{opacity:.9;transform:translateY(-1px)}.recipe-modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:center;margin-top:24px;padding-top:20px}.print-recipe-btn{background:linear-gradient(135deg,#6c757d,#495057);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease}.print-recipe-btn:hover{box-shadow:0 4px 12px #6c757d4d;transform:translateY(-1px)}.print-recipe-btn:focus{outline:2px solid #6c757d;outline-offset:2px}@media (max-width:768px){.saved-recipes{padding:16px}.saved-recipe-grid{grid-template-columns:1fr}.recipe-modal{max-height:100vh}.recipe-modal,.recipe-modal-header{border-radius:0}.recipe-modal-actions{align-items:stretch;flex-direction:column}.print-recipe-btn{width:100%}}@media print{body *{visibility:hidden}.recipe-modal,.recipe-modal *{visibility:visible}.recipe-modal{border-radius:0;box-shadow:none;left:0;max-height:none;overflow:visible;position:absolute;top:0;width:100%}.recipe-modal-header{border-radius:0;position:static}.close-modal-btn,.recipe-modal-actions{display:none!important}.recipe-modal-overlay{background:none;padding:0;position:static}.ingredients-section,.instructions-section,.tips-section{break-inside:avoid;page-break-inside:avoid}}.meal-planner{margin:0 auto;max-width:1200px;padding:20px}.meal-planner-premium{margin:0 auto;max-width:600px;padding:20px}.planner-header{margin-bottom:30px;text-align:center}.planner-header h2{color:#2c3e50;font-size:1.8rem;margin-bottom:10px}.planner-header p{color:#6c757d;font-size:1.1rem}.premium-upgrade{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 10px 30px #667eea4d;color:#fff;padding:40px;text-align:center}.premium-upgrade h3{font-size:1.8rem;margin-bottom:15px}.premium-upgrade p{font-size:1.1rem;margin-bottom:25px;opacity:.9}.upgrade-benefits ul{list-style:none;margin:25px 0;padding:0}.upgrade-benefits li{font-size:1rem;padding:8px 0}.upgrade-button{background:#4caf50;border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:15px 30px;transition:all .3s ease}.upgrade-button:hover{background:#45a049;box-shadow:0 5px 15px #4caf5066;transform:translateY(-2px)}.day-selector{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-bottom:30px}.day-button{background:#f8f9fa;border:2px solid #e9ecef;border-radius:20px;color:#495057;cursor:pointer;font-weight:500;padding:10px 15px;transition:all .3s ease}.day-button:hover{background:#f1f8e9;border-color:#4caf50}.day-button.active{background:#4caf50;border-color:#4caf50;color:#fff}.meal-planning-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:2fr 1fr;margin-bottom:30px}.selected-day-plan{background:#fff;border-radius:15px;box-shadow:0 2px 10px #0000001a;padding:25px}.selected-day-plan h3{color:#2c3e50;font-size:1.4rem;margin-bottom:20px}.meal-slot{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;margin-bottom:15px;padding:20px;transition:border-color .3s ease}.meal-slot:hover{border-color:#4caf50}.meal-header{align-items:center;display:flex;gap:10px;margin-bottom:15px}.meal-icon{font-size:1.5rem}.meal-header h4{color:#2c3e50;font-size:1.2rem;margin:0}.meal-content{margin-bottom:15px;min-height:40px}.assigned-meal,.meal-content{align-items:center;display:flex}.assigned-meal{background:#4caf50;border-radius:8px;color:#fff;justify-content:space-between;padding:10px 15px;width:100%}.clear-meal{background:none;border:none;color:#fff;cursor:pointer;font-size:1.5rem;margin-left:10px;padding:0}.empty-meal{color:#6c757d;font-style:italic;padding:10px 15px}.meal-selector select{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:1rem;padding:10px;width:100%}.week-overview{background:#fff;border-radius:15px;box-shadow:0 2px 10px #0000001a;height:-webkit-fit-content;height:fit-content;padding:25px}.week-overview h3{color:#2c3e50;font-size:1.3rem;margin-bottom:20px;text-align:center}.week-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr}.day-overview{background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;padding:15px;transition:all .3s ease}.day-overview:hover{background:#e9ecef}.day-overview.selected{background:#e8f5e8;border-color:#4caf50}.day-overview h5{color:#2c3e50;font-size:1rem;margin:0 0 10px;text-align:center}.day-meals{gap:5px}.day-meals,.mini-meal{display:flex;justify-content:center}.mini-meal{align-items:center;border-radius:6px;font-size:.9rem;height:30px;width:30px}.mini-meal.planned{background:#4caf50}.mini-meal.empty{background:#dee2e6;opacity:.5}.planner-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.action-button{border:none;border-radius:25px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 25px;transition:all .3s ease}.action-button.primary{background:#4caf50;color:#fff}.action-button.primary:hover{background:#45a049;box-shadow:0 5px 15px #4caf504d;transform:translateY(-2px)}.action-button.secondary{background:#6c757d;color:#fff}.action-button.secondary:hover{background:#5a6268;box-shadow:0 5px 15px #6c757d4d;transform:translateY(-2px)}@media (max-width:968px){.meal-planning-grid{grid-template-columns:1fr}.week-overview{order:-1}.week-grid{gap:8px;grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.meal-planner{padding:15px}.day-selector{gap:3px}.day-button{font-size:.9rem;padding:8px 12px}.meal-slot{padding:15px}.week-grid{grid-template-columns:repeat(7,1fr)}.day-overview{padding:10px 5px}.day-overview h5,.mini-meal{font-size:.8rem}.mini-meal{height:25px;width:25px}.action-button{margin-bottom:10px;width:100%}}.no-recipes-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404;font-size:.95rem;margin-top:15px;padding:12px 20px}.week-stats{border-top:1px solid #e9ecef;color:#6c757d;font-size:.9rem;margin-top:15px;padding-top:15px;text-align:center}.grocery-list-content{padding:10px 0}.grocery-count{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:15px}.grocery-items{list-style:none;margin:0;max-height:400px;overflow-y:auto;padding:0}.grocery-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:10px;padding:10px 0}.grocery-item:last-child{border-bottom:none}.grocery-item input[type=checkbox]{accent-color:#4caf50;cursor:pointer;height:18px;width:18px}.grocery-item label{color:#2c3e50;cursor:pointer;flex:1 1;text-transform:capitalize}.grocery-item input[type=checkbox]:checked+label{color:#6c757d;text-decoration:line-through}.print-button{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:20px;padding:12px;transition:background .3s ease;width:100%}.print-button:hover{background:#5a6268}@media print{.meal-planner{display:none}.grocery-list-content{display:block!important}.print-button{display:none}.grocery-items{max-height:none}}.action-button:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.6;transform:none!important}.dashboard{background:#f8f9fa;min-height:100vh}.dashboard-header{background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 2px 4px #0000001a;padding:15px 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.header-content h1{color:#333;font-size:1.8rem;margin:0}.user-info{align-items:center;display:flex;gap:15px}.user-info span{color:#666;font-size:.9rem}.sign-out-button{background:#dc3545;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background .3s ease}.sign-out-button:hover{background:#c82333}.dashboard-main{padding:30px 0}.dashboard-container{margin:0 auto;max-width:1200px;padding:0 20px}.welcome-section{margin-bottom:40px;text-align:center}.welcome-section h2{color:#333;font-size:2rem;margin-bottom:10px}.welcome-section p{color:#666;font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px}.setup-sections{background:#fff;border-radius:15px;box-shadow:0 5px 15px #0000001a;margin-bottom:40px;padding:40px}.setup-section{border-bottom:1px solid #e9ecef;margin-bottom:40px;padding-bottom:40px}.setup-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.save-section{border-top:1px solid #e9ecef;padding-top:30px;text-align:center}.save-button{background:#28a745;border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:500;padding:15px 40px;transition:all .3s ease}.save-button:hover:not(:disabled){background:#218838;box-shadow:0 10px 20px #28a7454d;transform:translateY(-2px)}.save-button:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.dashboard-tabs{border-bottom:2px solid #e9ecef;display:flex;gap:10px;justify-content:center;margin-bottom:30px;padding-bottom:0}.tab-button{background:none;border:none;border-radius:10px 10px 0 0;color:#6c757d;cursor:pointer;font-size:1rem;font-weight:500;padding:15px 25px;position:relative;transition:all .3s ease}.tab-button:hover:not(:disabled){background:#f8f9fa;color:#495057}.tab-button.active{background:#4caf50;color:#fff}.tab-button:disabled{cursor:not-allowed;opacity:.5}.premium-badge{background:#ff6b35;border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;margin-left:5px;padding:2px 6px}.meal-plan-content,.next-steps,.recipe-content,.recipe-section,.setup-content{background:#fff;border-radius:15px;box-shadow:0 5px 15px #0000001a;padding:40px}.next-steps h3{color:#333;font-size:1.5rem;margin-bottom:25px;text-align:center}.next-steps-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.step{align-items:flex-start;display:flex;gap:15px}.step-icon{flex-shrink:0;font-size:2rem}.step-text h4{color:#333;font-size:1.1rem;margin-bottom:8px}.step-text p{color:#666;font-size:.9rem;line-height:1.5;margin:0}@media (max-width:768px){.header-content{flex-direction:column;gap:10px;padding:0 15px}.header-content h1{font-size:1.5rem}.user-info{flex-direction:column;gap:10px;text-align:center}.dashboard-container{padding:0 15px}.welcome-section h2{font-size:1.5rem}.next-steps,.setup-sections{padding:20px}.next-steps-content{gap:20px;grid-template-columns:1fr}.step{flex-direction:column;gap:10px;text-align:center}.dashboard-tabs{flex-wrap:wrap;justify-content:center}.tab-button{flex:1 1;font-size:.9rem;min-width:120px;padding:12px 20px}.meal-plan-content,.recipe-content,.setup-content{padding:20px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{min-height:100vh}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:focus-visible{outline:2px solid #667eea;outline-offset:2px}a:focus-visible,button:focus-visible{outline:2px solid #667eea;outline-offset:2px}.loading-screen{align-items:center;background:#f8f9fa;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.loading-screen .spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:50px;margin-bottom:20px;width:50px}.loading-screen p{color:#666;font-size:1.1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{font-family:inherit}img{height:auto;max-width:100%}
/*# sourceMappingURL=main.46cfb65e.css.map*/