@import"https://fonts.googleapis.com/css2?family=Spicy+Rice&family=Merriweather:wght@300;400;700&display=swap";.pantry-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.pantry-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d}.pantry-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.pantry-header h2{margin:0;color:#333}.close-btn:hover{color:#333}.add-item-form{display:flex;gap:.5rem;padding:1rem 1.5rem;border-bottom:1px solid #eee;flex-wrap:wrap}.add-item-form input[type=text]{flex:1;min-width:150px;padding:.625rem;border:2px solid #eee;border-radius:8px;font-size:.9rem}.add-item-form input:focus{outline:none;border-color:#d32f2f}.quantity-input{width:60px!important;min-width:60px!important;flex:0!important}.add-item-form select{padding:.625rem;border:2px solid #eee;border-radius:8px;font-size:.9rem;background:#fff}.add-item-form button{padding:.625rem 1.25rem;background:linear-gradient(135deg,#d32f2f,#ff5722);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.add-item-form button:disabled{opacity:.6;cursor:not-allowed}.pantry-list{flex:1;overflow-y:auto;padding:1rem 1.5rem}.pantry-item{display:flex;align-items:center;padding:.75rem;border-radius:8px;margin-bottom:.5rem;background:#f9f9f9}.pantry-item:hover{background:#f0f0f0}.item-name{flex:1;font-weight:500;color:#333}.item-quantity{color:#666;margin-right:1rem;font-size:.9rem}.remove-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:.25rem;opacity:.6}.remove-btn:hover{opacity:1}.add-section{padding:1rem;border-bottom:1px solid #eee}.add-options{display:flex;justify-content:center;margin-bottom:1rem}.voice-add-btn{padding:.875rem 2rem;font-size:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s}.voice-add-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.add-divider{display:flex;align-items:center;text-align:center;margin:1rem 0}.add-divider:before,.add-divider:after{content:"";flex:1;border-bottom:1px solid #ddd}.add-divider span{padding:0 1rem;color:#999;font-size:.85rem}.scan-add-btn{padding:.875rem 2rem;font-size:1rem;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s}.scan-add-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3498db66}.add-options{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem}.receipt-add-btn{padding:.875rem 2rem;font-size:1rem;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s}.receipt-add-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f39c1266}.voice-input-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1100;padding:1rem}.voice-input-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.voice-input-modal header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.voice-input-modal header h3{margin:0;font-size:1.25rem;color:#333}.voice-input-modal .close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#666;padding:.5rem;border-radius:50%;transition:background .2s}.voice-input-modal .close-btn:hover{background:#f0f0f0}.voice-input-content{padding:1.5rem}.instructions{color:#666;text-align:center;margin-bottom:1.5rem;line-height:1.5;font-size:.95rem}.mic-section{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.mic-button{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;border:3px dashed #ddd;border-radius:50%;width:150px;height:150px;background:#fafafa;cursor:pointer;transition:all .3s}.mic-button:hover{border-color:#e74c3c;background:#fef5f4}.mic-button.listening{border-color:#e74c3c;border-style:solid;background:#fef5f4;animation:pulse 1.5s infinite}@keyframes pulse{0%{box-shadow:0 0 #e74c3c66}70%{box-shadow:0 0 0 20px #e74c3c00}to{box-shadow:0 0 #e74c3c00}}.mic-icon{font-size:3rem}.mic-text{font-size:.85rem;color:#666;text-align:center}.mic-button.listening .mic-text{color:#e74c3c;font-weight:500}.transcript-box{width:100%;background:#f9f9f9;border-radius:10px;padding:1rem}.transcript-box label{font-size:.8rem;color:#999;text-transform:uppercase;letter-spacing:.5px}.transcript-text{margin:.5rem 0 0;color:#333;font-size:1rem;line-height:1.5;font-style:italic}.action-buttons{display:flex;gap:1rem;width:100%;justify-content:center}.process-btn{padding:.75rem 1.5rem;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s}.process-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.process-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.parsed-items-section{display:flex;flex-direction:column;gap:1rem}.parsed-items-section h4{margin:0;color:#333;font-size:1rem}.items-list{display:flex;flex-direction:column;gap:.5rem;max-height:250px;overflow-y:auto}.item-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f9f9f9;border-radius:8px;cursor:pointer;transition:background .2s}.item-row:hover{background:#f0f0f0}.item-row input[type=checkbox]{width:1.1rem;height:1.1rem;cursor:pointer}.item-row .item-name{flex:1;font-weight:500;color:#333;text-transform:capitalize}.item-row .item-qty{color:#888;font-size:.9rem}.add-btn{padding:.875rem 1.5rem;border:none;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.add-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2ecc7166}.add-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:480px){.voice-input-content{padding:1rem}.mic-button{width:130px;height:130px;padding:1.5rem}.mic-icon{font-size:2.5rem}.action-buttons{flex-direction:column}.action-buttons button{width:100%}}.receipt-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1100;padding:1rem}.receipt-modal{background:#fff;border-radius:16px;width:100%;max-width:550px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.receipt-modal header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.receipt-modal header h3{margin:0;font-size:1.25rem;color:#333}.receipt-modal .close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#666;padding:.5rem;border-radius:50%;transition:background .2s}.receipt-modal .close-btn:hover{background:#f0f0f0}.receipt-content{padding:1.5rem}.instructions{color:#666;text-align:center;margin-bottom:1.5rem;line-height:1.5}.upload-section{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.upload-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 2rem;border:2px dashed #ddd;border-radius:12px;background:#fafafa;cursor:pointer;transition:all .2s;flex:1;max-width:180px}.upload-btn:hover{border-color:#667eea;background:#f5f7ff}.btn-icon{font-size:2rem}.upload-btn span:last-child{font-size:.95rem;color:#555;font-weight:500}.preview-section{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem}.receipt-preview{max-width:100%;max-height:300px;border-radius:12px;box-shadow:0 4px 12px #0000001a}.preview-actions{display:flex;gap:1rem}.change-btn{padding:.75rem 1.25rem;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s}.change-btn:hover{background:#f5f5f5}.scan-btn{padding:.75rem 1.5rem;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s}.scan-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.scan-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.tips-box{background:#f8f9fa;border-radius:10px;padding:1rem;font-size:.9rem}.tips-box strong{display:block;margin-bottom:.5rem;color:#333}.tips-box ul{margin:0;padding-left:1.25rem;color:#666}.tips-box li{margin-bottom:.25rem}.results-section{display:flex;flex-direction:column;gap:1rem}.results-header{display:flex;justify-content:space-between;align-items:center}.results-header h4{margin:0;color:#333}.toggle-all-btn{padding:.5rem 1rem;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.toggle-all-btn:hover{background:#f5f5f5}.items-list{display:flex;flex-direction:column;gap:.5rem;max-height:350px;overflow-y:auto;padding:.5rem;background:#f9f9f9;border-radius:10px}.item-row{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border-radius:8px;border:1px solid #eee;transition:all .2s}.item-row.selected{border-color:#667eea;background:#f8f9ff}.item-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.item-name-input{flex:1;padding:.4rem .6rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;min-width:0}.item-name-input:focus{outline:none;border-color:#667eea}.item-qty-input{width:50px;padding:.4rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;text-align:center}.item-qty-input:focus{outline:none;border-color:#667eea}.item-unit-select{padding:.4rem;border:1px solid #ddd;border-radius:6px;font-size:.85rem;background:#fff;cursor:pointer}.item-unit-select:focus{outline:none;border-color:#667eea}.remove-item-btn{padding:.3rem .5rem;border:none;background:#fee;color:#c00;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background .2s}.remove-item-btn:hover{background:#fcc}.results-actions{display:flex;gap:1rem;margin-top:.5rem}.add-all-btn{flex:1;padding:.875rem 1.5rem;border:none;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.add-all-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2ecc7166}.add-all-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:480px){.receipt-content{padding:1rem}.upload-section{flex-direction:column;align-items:center}.upload-btn{max-width:100%;width:100%}.preview-actions{flex-direction:column;width:100%}.preview-actions button{width:100%}.item-row{flex-wrap:wrap}.item-name-input{flex:100%;order:2;margin-top:.5rem}.item-checkbox{order:1}.item-qty-input,.item-unit-select{order:3;flex:1}.remove-item-btn{order:1;margin-left:auto}.results-actions{flex-direction:column}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Merriweather,Georgia,serif;background:linear-gradient(135deg,#d32f2f,#ff8a65,#ffcc02);min-height:100vh;font-weight:400;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-weight:700;line-height:1.2}.app-container{max-width:1200px;margin:0 auto;padding:2rem;min-height:100vh}.app-container.loading{display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem}.auth-container{display:flex;align-items:center;justify-content:center}.auth-wrapper{display:flex;flex-direction:column;align-items:center;color:#fff;width:100%}.auth-wrapper h1{font-family:Spicy Rice,cursive;font-weight:700;font-size:3.5rem;margin-bottom:.5rem;text-shadow:3px 3px 6px rgba(0,0,0,.3);letter-spacing:1px}.tagline{font-family:Merriweather,Georgia,serif;font-style:italic;opacity:.95;margin-bottom:2rem;font-size:1.1rem}.auth-form{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 10px 40px #00000040;width:100%;max-width:400px}.auth-form h2{font-family:Nunito,sans-serif;font-weight:700;color:#c62828;margin-bottom:1.5rem;text-align:center;font-size:2rem}.auth-form input{width:100%;padding:.875rem;margin-bottom:1rem;border:2px solid #eee;border-radius:8px;font-size:1rem;font-family:Merriweather,Georgia,serif;transition:border-color .2s}.auth-form input:focus{outline:none;border-color:#d32f2f}.auth-form button{width:100%;padding:.875rem;background:linear-gradient(135deg,#d32f2f,#ff5722);color:#fff;border:none;border-radius:8px;font-size:1rem;font-family:Merriweather,Georgia,serif;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s}.auth-form button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #d32f2f66}.switch-auth{text-align:center;margin-top:1rem;color:#666}.switch-auth span{color:#d32f2f;cursor:pointer;font-weight:700}.switch-auth span:hover{text-decoration:underline}.error{background:#ffebee;color:#c62828;padding:.75rem;border-radius:8px;margin-bottom:1rem;text-align:center}.success{background:#e8f5e9;color:#2e7d32;padding:.75rem;border-radius:8px;margin-bottom:1rem;text-align:center}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}header h1{font-family:Spicy Rice,cursive;font-weight:700;color:#fff;font-size:2.5rem;text-shadow:3px 3px 6px rgba(0,0,0,.3);letter-spacing:1px}.sign-out-btn{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);padding:.5rem 1.25rem;border-radius:8px;cursor:pointer;font-family:Merriweather,Georgia,serif;font-weight:700;transition:background .2s}.sign-out-btn:hover{background:#ffffff4d}.welcome-card{background:#fff;padding:2.5rem;border-radius:16px;margin-bottom:2rem;text-align:center;box-shadow:0 4px 20px #00000026}.welcome-card h2{font-family:Nunito,sans-serif;font-weight:700;color:#c62828;margin-bottom:.5rem;font-size:2rem}.welcome-card p{color:#666;font-size:1.1rem}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.feature-card{background:#fff;padding:2rem;border-radius:16px;text-align:center;box-shadow:0 4px 20px #00000026;transition:transform .2s}.feature-card:hover{transform:translateY(-4px)}.feature-icon{font-size:2.5rem;display:block;margin-bottom:.75rem}.feature-card h3{font-family:Nunito,sans-serif;font-weight:700;color:#333;margin-bottom:.5rem;font-size:1.5rem}.feature-card p{color:#666;margin-bottom:1rem;font-size:.9rem}.feature-card button{background:#eee;color:#999;border:none;padding:.5rem 1.25rem;border-radius:8px;cursor:not-allowed;font-family:Merriweather,Georgia,serif;font-weight:700}.feature-card button:not(:disabled){background:linear-gradient(135deg,#d32f2f,#ff5722);color:#fff;cursor:pointer}.feature-card button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 4px 12px #d32f2f66}@media(max-width:600px){.auth-wrapper h1{font-size:2.5rem}.app-container{padding:1rem}header h1{font-size:1.75rem}}main{max-width:900px;margin:0 auto}.family-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.family-modal{background:#fff;border-radius:16px;width:100%;max-width:550px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d}.family-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.family-header h2{margin:0;color:#333}.family-intro{padding:1.5rem;text-align:center;border-bottom:1px solid #eee}.family-intro p{color:#666;margin-bottom:1rem}.family-list{padding:1rem 1.5rem}.family-card{background:#f9f9f9;border-radius:12px;padding:1rem;margin-bottom:1rem}.member-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.member-header h3{margin:0;color:#333}.relationship{background:#e3f2fd;color:#1976d2;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.member-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.tag-label{font-size:.85rem;color:#666}.tag{padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.tag.diet{background:#e8f5e9;color:#2e7d32}.tag.allergy{background:#ffebee;color:#c62828}.tag.dislike{background:#fff3e0;color:#e65100}.member-actions{display:flex;gap:.5rem;margin-top:.75rem}.edit-btn,.delete-btn{padding:.4rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer}.edit-btn{background:#e3f2fd;color:#1976d2;border:none}.delete-btn{background:none;color:#999;border:1px solid #ddd}.delete-btn:hover{background:#ffebee;color:#c62828;border-color:#ffcdd2}.family-form{padding:1.5rem}.family-form h3{margin:0 0 1.5rem;color:#333}.family-form label{display:block;margin-bottom:1rem;color:#333;font-weight:500}.family-form input,.family-form select{width:100%;padding:.75rem;margin-top:.5rem;border:2px solid #eee;border-radius:8px;font-size:1rem}.family-form input:focus,.family-form select:focus{outline:none;border-color:#d32f2f}.hint{display:block;font-size:.8rem;color:#999;font-weight:400;margin-top:.25rem}.checkbox-group{margin-bottom:1.25rem}.group-label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.checkbox-options{display:flex;flex-wrap:wrap;gap:.5rem}.checkbox-item{display:flex;align-items:center;gap:.35rem;background:#f5f5f5;padding:.4rem .75rem;border-radius:20px;font-size:.9rem;font-weight:400;cursor:pointer}.checkbox-item:has(input:checked){background:#e8f5e9;color:#2e7d32}.checkbox-item.allergy:has(input:checked){background:#ffebee;color:#c62828}.checkbox-item input{width:auto;margin:0}.history-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.history-modal{background:#fff;border-radius:16px;width:100%;max-width:550px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d}.history-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.history-header h2{margin:0;color:#333}.history-intro{padding:1.5rem;text-align:center;border-bottom:1px solid #eee}.history-intro p{color:#666;margin-bottom:1rem}.add-btn{background:linear-gradient(135deg,#d32f2f,#ff5722);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer}.history-list{padding:1rem 1.5rem}.meal-history-card{background:#f9f9f9;border-radius:12px;padding:1rem;margin-bottom:1rem}.meal-history-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.meal-history-header h3{margin:0;color:#333;font-size:1.1rem}.meal-date{color:#999;font-size:.85rem}.meal-history-meta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.stars{font-size:1rem;letter-spacing:2px}.would-make{color:#2e7d32;font-size:.85rem}.would-not-make{color:#c62828;font-size:.85rem}.cost{color:#666;font-size:.85rem}.meal-notes{margin-top:.75rem;color:#666;font-style:italic;font-size:.9rem}.history-form{padding:1.5rem}.history-form h3{margin:0 0 1.5rem;color:#333}.history-form label{display:block;margin-bottom:1.25rem;color:#333;font-weight:500}.history-form input[type=text],.history-form textarea{width:100%;padding:.75rem;margin-top:.5rem;border:2px solid #eee;border-radius:8px;font-size:1rem;font-family:inherit}.history-form input:focus,.history-form textarea:focus{outline:none;border-color:#d32f2f}.rating-selector{display:flex;align-items:center;gap:.25rem;margin-top:.5rem}.star-btn{background:none;border:none;font-size:1.75rem;cursor:pointer;padding:.25rem;transition:transform .1s}.star-btn:hover{transform:scale(1.2)}.rating-label{margin-left:.75rem;color:#666;font-size:.9rem}.checkbox-label{display:flex!important;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input{width:auto;margin:0}.cost-input{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.cost-input .currency{font-size:1.1rem;color:#666}.cost-input input{width:100px;padding:.75rem;border:2px solid #eee;border-radius:8px;font-size:1rem}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.cancel-btn{flex:1;padding:.75rem;background:none;border:2px solid #ddd;border-radius:8px;cursor:pointer;font-weight:500}.save-btn{flex:2;padding:.75rem;background:linear-gradient(135deg,#d32f2f,#ff5722);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.loading,.empty{text-align:center;color:#666;padding:2rem}.empty-hint{font-size:.9rem;color:#999;margin-top:.5rem}.planner-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.planner-modal{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d}.planner-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.planner-header h2{margin:0;color:#333}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.25rem;line-height:1}.planner-options{padding:1.5rem}.intro{color:#666;margin-bottom:1.5rem;text-align:center;font-size:1.05rem}.planner-options label{display:block;margin-bottom:1.25rem;color:#333;font-weight:500}.planner-options select,.planner-options textarea{width:100%;padding:.75rem;margin-top:.5rem;border:2px solid #eee;border-radius:8px;font-size:1rem;background:#fff;font-family:inherit}.planner-options select:focus,.planner-options textarea:focus{outline:none;border-color:#d32f2f}.planner-options textarea{resize:vertical}.budget-input{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.budget-input .currency{font-size:1.25rem;color:#666}.budget-input input{width:80px;padding:.75rem;border:2px solid #eee;border-radius:8px;font-size:1rem;text-align:center}.budget-input input:focus{outline:none;border-color:#d32f2f}.budget-hint{color:#999;font-size:.9rem}.generate-btn{width:100%;padding:1rem;margin-top:.5rem;background:linear-gradient(135deg,#d32f2f,#ff5722);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.generate-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #d32f2f66}.loading-state{padding:3rem;text-align:center;color:#666}.spinner{width:50px;height:50px;border:4px solid #eee;border-top-color:#d32f2f;border-radius:50%;margin:0 auto 1rem;animation:spin 1s linear infinite}.loading-sub{font-size:.9rem;color:#999}.suggestions{padding:1rem 1.5rem 1.5rem}.context-info{display:flex;flex-wrap:wrap;gap:1rem;padding:.75rem 1rem;background:#f5f5f5;border-radius:8px;margin-bottom:1rem;font-size:.9rem;color:#666}.pick-prompt{text-align:center;color:#666;margin-bottom:1rem}.meal-card{background:#fafafa;border:2px solid #eee;border-radius:12px;padding:1.25rem;margin-bottom:1rem;cursor:pointer;transition:border-color .2s,transform .2s}.meal-card:hover{border-color:#d32f2f;transform:translateY(-2px)}.meal-card-header{display:flex;justify-content:space-between;align-items:center}.meal-card h3{margin:0 0 .5rem;color:#c62828}.select-arrow{font-size:1.5rem;color:#ccc}.meal-card:hover .select-arrow{color:#d32f2f}.meal-card .description{color:#666;margin-bottom:1rem;font-size:.95rem}.meal-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;font-size:.85rem}.meal-meta span{background:#fff;padding:.25rem .625rem;border-radius:20px;border:1px solid #eee}.difficulty.easy{color:#2e7d32}.difficulty.medium{color:#f57c00}.difficulty.hard{color:#c62828}.needs-shopping{color:#e65100;font-size:.9rem;margin:0}.have-all-badge{color:#2e7d32;font-size:.9rem;margin:0;font-weight:500}.back-btn{width:100%;padding:.75rem;background:none;color:#666;border:2px solid #ddd;border-radius:8px;cursor:pointer;font-weight:500;margin-top:.5rem}.back-btn:hover{border-color:#999;color:#333}.meal-detail{padding:1.5rem}.meal-detail .description{color:#666;font-size:1.1rem;margin-bottom:1.5rem}.meal-detail .meal-meta{margin-bottom:1.5rem}.detail-section{background:#f9f9f9;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.detail-section h3{margin:0 0 .75rem;color:#333;font-size:1rem}.detail-section.shopping{background:#fff3e0}.detail-section.shopping h3{color:#e65100}.detail-section.have-all{background:#e8f5e9}.detail-section.have-all h3{color:#2e7d32}.have-items{color:#666;margin:0}.detail-section ul{margin:0 0 1rem 1.25rem;padding:0}.detail-section li{margin-bottom:.25rem;color:#333}.store-options{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.1)}.store-options p{margin:0 0 .75rem;font-weight:500;color:#333}.store-btn{display:block;width:100%;padding:.75rem;margin-bottom:.5rem;border:2px solid #ddd;border-radius:8px;background:#fff;font-size:.95rem;cursor:not-allowed;color:#999}.store-btn.kroger:not(:disabled){border-color:#0071ce;color:#0071ce;cursor:pointer}.action-buttons .back-btn{flex:1;margin-top:0}.commit-btn{flex:2;padding:.875rem;background:linear-gradient(135deg,#2e7d32,#4caf50);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.commit-btn:disabled{background:#ccc;cursor:not-allowed}.commit-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 4px 12px #2e7d3266}.error{background:#ffebee;color:#c62828;padding:.75rem 1.5rem;margin:0;text-align:center}@media(max-width:500px){.action-buttons{flex-direction:column}.budget-input{flex-wrap:wrap}}.servings-selector{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.5rem}.servings-selector button{width:44px;height:44px;border-radius:50%;border:2px solid #d32f2f;background:#fff;color:#d32f2f;font-size:1.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}.servings-selector button:hover{background:#d32f2f;color:#fff}.servings-display{font-size:1.5rem;font-weight:600;color:#333;min-width:40px;text-align:center}.budget-slider{width:100%;height:8px;margin-top:.75rem;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#ffccbc,#d32f2f);border-radius:4px;outline:none}.budget-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#d32f2f;cursor:pointer;border:3px solid white;box-shadow:0 2px 6px #0003}.budget-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#d32f2f;cursor:pointer;border:3px solid white;box-shadow:0 2px 6px #0003}.slider-labels{display:flex;justify-content:space-between;margin-top:.25rem;font-size:.8rem;color:#999}.toggle-label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer}.toggle-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}.toggle-text{font-weight:600;color:#2d3748}.toggle-hint{width:100%;font-size:.85rem;color:#718096;margin-left:28px}.pantry-match{color:#38a169;font-size:.9rem;margin:4px 0 0}.pantry-savings{color:#d69e2e;font-weight:600;font-size:.9rem;margin:2px 0 0}.planning-mode-select{font-weight:600;border:2px solid #4299e1}.multi-day-info{background:linear-gradient(135deg,#ebf8ff,#e6fffa);border:1px solid #4299e1;border-radius:8px;padding:12px 16px;margin:8px 0}.multi-day-info p{margin:0;color:#2b6cb0;font-size:.95rem}.budget-per-day{display:block;text-align:center;color:#718096;font-size:.85rem;margin-top:4px}.weekly-summary{background:linear-gradient(135deg,#f0fff4,#ebf8ff);border:2px solid #38a169;border-radius:12px;padding:16px;margin-bottom:16px}.weekly-summary h3{margin:0 0 12px;color:#276749;font-size:1.1rem}.weekly-stats{display:flex;flex-wrap:wrap;gap:12px}.weekly-stats span{background:#fff;padding:6px 12px;border-radius:20px;font-size:.9rem;font-weight:500;color:#2d3748;box-shadow:0 1px 3px #0000001a}.day-badge{background:#4299e1;color:#fff;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600;margin-right:8px}.meal-card-header{display:flex;align-items:center;flex-wrap:wrap}.meal-card-header h3{flex:1;margin:0}.shared-ingredients{color:#805ad5;font-size:.85rem;margin:4px 0 0;font-style:italic}.combined-shopping-list{background:#fffaf0;border:2px solid #ed8936;border-radius:12px;padding:16px;margin:16px 0}.combined-shopping-list h3{margin:0 0 8px;color:#c05621}.combined-shopping-list .shopping-hint{color:#718096;font-size:.9rem;margin:0 0 12px}.combined-shopping-list ul{list-style:none;padding:0;margin:0 0 12px;columns:2;column-gap:20px}.combined-shopping-list li{padding:4px 0;border-bottom:1px solid #feebc8;break-inside:avoid}.combined-shopping-list li:before{content:"☐ ";color:#ed8936}.copy-list-btn{background:#ed8936;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;width:100%}.copy-list-btn:hover{background:#dd6b20}@media(max-width:480px){.combined-shopping-list ul{columns:1}.weekly-stats{flex-direction:column;gap:8px}}.shopping-list-actions{display:flex;gap:10px;flex-wrap:wrap}.shopping-list-actions .copy-list-btn{flex:1;min-width:140px}.kroger-cart-btn{flex:1;min-width:180px;background:#0071ce;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer}.kroger-cart-btn:hover:not(:disabled){background:#005ba1}.session-excluded-info{display:flex;justify-content:space-between;align-items:center;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:10px 14px;margin-bottom:12px}.session-excluded-info span{color:#92400e;font-size:.9rem}.clear-excluded-btn{background:#f59e0b;color:#fff;border:none;padding:4px 12px;border-radius:4px;font-size:.85rem;cursor:pointer}.clear-excluded-btn:hover{background:#d97706}.meal-actions{display:flex;align-items:center;gap:8px}.dislike-btn{background:#fed7d7;border:1px solid #fc8181;border-radius:6px;padding:4px 8px;font-size:1rem;cursor:pointer;transition:all .2s}.dislike-btn:hover{background:#fc8181;transform:scale(1.1)}.meal-card-header h3:hover{color:#4299e1;cursor:pointer}.select-arrow{cursor:pointer}.shopping-list-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.shopping-list-actions .copy-list-btn{flex:1;min-width:140px;background:#ed8936;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-weight:600;cursor:pointer;font-size:1rem}.shopping-list-actions .copy-list-btn:hover{background:#dd6b20}.kroger-cart-btn{flex:1;min-width:140px;background:linear-gradient(135deg,#2e7d32,#4caf50);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-weight:600;cursor:pointer;font-size:1rem}.kroger-cart-btn:hover:not(:disabled){background:linear-gradient(135deg,#1b5e20,#388e3c);transform:translateY(-1px);box-shadow:0 4px 12px #2e7d324d}.kroger-cart-btn:disabled{background:#ccc;cursor:not-allowed}.kroger-hint{color:#718096;font-size:.85rem;margin:12px 0 0;text-align:center}.kroger-result{margin-top:12px;padding:12px 16px;border-radius:8px;text-align:center}.kroger-result.success{background:#e8f5e9;border:1px solid #4caf50}.kroger-result.success p{color:#2e7d32;margin:0 0 8px}.kroger-result.success a{color:#1565c0;font-weight:600;text-decoration:none}.kroger-result.success a:hover{text-decoration:underline}.kroger-result.error{background:#ffebee;border:1px solid #ef5350}.kroger-result.error p{color:#c62828;margin:0}.pantry-updated{color:#2e7d32!important;font-size:.9rem;margin-top:8px!important}.kroger-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.kroger-preview-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:80vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.kroger-preview-modal header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.kroger-preview-modal header h3{margin:0;font-size:1.25rem}.store-selection{padding:1rem 1.25rem;border-bottom:1px solid #eee}.selected-store{display:flex;justify-content:space-between;align-items:center;background:#e3f2fd;padding:10px 14px;border-radius:8px}.selected-store span{font-weight:500;color:#1565c0}.selected-store button{background:none;border:none;color:#1976d2;cursor:pointer;font-size:.9rem}.find-store p{margin:0 0 10px;color:#666}.zip-input{display:flex;gap:8px}.zip-input input{flex:1;padding:10px 12px;border:2px solid #ddd;border-radius:8px;font-size:1rem}.zip-input input:focus{outline:none;border-color:#1976d2}.zip-input button{padding:10px 16px;background:#1976d2;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer}.zip-input button:disabled{background:#ccc;cursor:not-allowed}.store-list{margin-top:12px;max-height:200px;overflow-y:auto}.store-option{padding:12px;border:1px solid #eee;border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .2s}.store-option:hover{background:#f5f5f5;border-color:#1976d2}.store-option strong{display:block;color:#333}.searching{padding:2rem;text-align:center}.searching .spinner{width:40px;height:40px;border:3px solid #eee;border-top-color:#1976d2;border-radius:50%;margin:0 auto 1rem;animation:spin 1s linear infinite}.product-preview{padding:1rem 1.25rem}.product-row{display:flex;align-items:center;padding:8px 10px;border-radius:6px;margin-bottom:4px;gap:8px}.product-row.found{background:#e8f5e9}.product-row.skipped{background:#fff8e1}.product-row.not-found{background:#ffebee}.product-row .ingredient{flex:1;font-weight:500;color:#333;font-size:.9rem}.product-row .product-name{flex:1;font-size:.85rem;color:#666;text-align:right}.product-row .price{font-weight:600;color:#2e7d32;min-width:50px;text-align:right}.product-row .skip-reason{color:#f57c00;font-size:.85rem;font-style:italic}.product-row .not-found-label{color:#c62828;font-size:.85rem;font-style:italic}.cart-summary{background:#f5f5f5;border-radius:8px;padding:12px 16px;margin-bottom:1rem}.total-row{display:flex;justify-content:space-between;padding:4px 0;font-size:.9rem}.total-row strong{color:#2e7d32;font-size:1.1rem}.price-note{margin:8px 0 0;font-size:.8rem;color:#999;text-align:center}.modal-actions{display:flex;gap:10px;padding-top:.5rem}.modal-actions .cancel-btn{flex:1;padding:12px;background:#fff;border:2px solid #ddd;border-radius:8px;font-weight:500;cursor:pointer;color:#666}.modal-actions .cancel-btn:hover{background:#f5f5f5;border-color:#999}.modal-actions .confirm-btn{flex:2;padding:12px;background:linear-gradient(135deg,#2e7d32,#4caf50);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.modal-actions .confirm-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2e7d324d}.modal-actions .confirm-btn:disabled{background:#ccc;cursor:not-allowed}.purchased-panel .panel-description{padding:0 1.25rem;color:#666;margin:0 0 1rem}.purchased-list{padding:0 1.25rem;max-height:300px;overflow-y:auto}.purchased-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f9f9f9;border-radius:8px;margin-bottom:6px;cursor:pointer}.purchased-item:hover{background:#f0f0f0}.purchased-item input[type=checkbox]{width:20px;height:20px;cursor:pointer}.purchased-item .item-name{flex:1;font-weight:500}.purchased-item .item-price{color:#2e7d32;font-weight:600}.purchased-summary{padding:12px 1.25rem;text-align:center;color:#666;font-size:.9rem;border-top:1px solid #eee;margin-top:12px}.purchased-panel .modal-actions{padding:1rem 1.25rem}.copy-list-btn{flex:1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px 20px;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.copy-list-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.categorized-list{margin:16px 0}.category-section{margin-bottom:16px;background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0}.category-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:10px 14px;margin:0;font-size:.9rem;font-weight:600;letter-spacing:.5px}.category-section:nth-child(1) .category-header{background:linear-gradient(135deg,#48bb78,#38a169)}.category-section:nth-child(2) .category-header{background:linear-gradient(135deg,#e53e3e,#c53030)}.category-section:nth-child(3) .category-header{background:linear-gradient(135deg,#ecc94b,#d69e2e)}.category-section:nth-child(4) .category-header{background:linear-gradient(135deg,#ed8936,#dd6b20)}.category-section:nth-child(5) .category-header{background:linear-gradient(135deg,#4299e1,#3182ce)}.category-section:nth-child(6) .category-header{background:linear-gradient(135deg,#9f7aea,#805ad5)}.category-section:nth-child(7) .category-header{background:linear-gradient(135deg,#ed64a6,#d53f8c)}.category-section:nth-child(8) .category-header{background:linear-gradient(135deg,#38b2ac,#319795)}.category-section:nth-child(9) .category-header{background:linear-gradient(135deg,#667eea,#5a67d8)}.category-section:nth-child(10) .category-header{background:linear-gradient(135deg,#718096,#4a5568)}.category-items{list-style:none;padding:0;margin:0}.category-items li{padding:10px 14px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;font-size:.95rem}.category-items li:last-child{border-bottom:none}.category-items li:before{content:"☐";margin-right:10px;color:#a0aec0;font-size:1.1rem}.shopping-list-actions{display:flex;gap:12px;margin-top:16px}.copy-list-btn{flex:1;background:linear-gradient(135deg,#ed8936,#dd6b20);color:#fff;border:none;padding:14px 20px;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.copy-list-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ed893666}.copy-list-btn:active{transform:translateY(0)}.kroger-cart-btn{flex:1;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;padding:14px 20px;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.kroger-cart-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #48bb7866}.kroger-cart-btn:active{transform:translateY(0)}.combined-shopping-list{background:linear-gradient(135deg,#faf5ff,#f0fff4);border:2px solid #9f7aea;border-radius:16px;padding:20px;margin:20px 0}.combined-shopping-list h3{margin:0 0 8px;color:#553c9a;font-size:1.3rem}.combined-shopping-list .shopping-hint{color:#718096;font-size:.9rem;margin:0 0 16px}@media(max-width:480px){.shopping-list-actions{flex-direction:column}.category-header{font-size:.85rem;padding:8px 12px}.category-items li{padding:8px 12px;font-size:.9rem}}.description,.meal-meta,.recipe-description,.intro,.shopping-hint,input,textarea,select,button{font-family:Merriweather,Georgia,serif}button{font-weight:700}label{font-family:Merriweather,Georgia,serif;font-weight:400}.planning-date-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:600;margin-left:auto;margin-right:1rem}.planner-header{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.planner-header h2{margin-right:auto}@media(max-width:600px){.planning-date-badge{order:3;width:100%;text-align:center;margin:.5rem 0 0}}.calendar-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.6rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:transform .2s,box-shadow .2s}.calendar-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.calendar-added-badge{color:#16a34a;font-weight:600;display:flex;align-items:center;gap:.3rem}.calendar-prompt .calendar-prompt-content{padding:1rem 0}.calendar-prompt .calendar-prompt-content>p{margin-bottom:1rem;font-size:1rem}.calendar-preview{background:#f8f9fa;border-radius:8px;padding:.75rem;max-height:200px;overflow-y:auto}.calendar-preview-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e5e7eb}.calendar-preview-item:last-child{border-bottom:none}.preview-date{font-weight:600;color:#667eea;min-width:100px}.preview-meal{flex:1;text-align:right;color:#374151}.calendar-hint{margin-top:1rem;font-size:.85rem;color:#6b7280;font-style:italic}.excluded-info{position:relative}.excluded-toggle{cursor:pointer;text-decoration:underline dotted}.excluded-list-popup{position:absolute;top:100%;left:0;background:#fff;border:1px solid #ddd;border-radius:8px;padding:12px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:280px;max-height:300px;overflow-y:auto}.excluded-explanation{font-size:.85rem;color:#666;margin-bottom:8px}.excluded-list-popup ul{list-style:none;padding:0;margin:0}.excluded-list-popup li{padding:4px 0;border-bottom:1px solid #eee;font-size:.9rem}.excluded-list-popup li:last-child{border-bottom:none}.exclude-reason{font-size:.75rem;color:#999;font-style:italic}.excluded-info{display:flex;align-items:center;gap:8px}.manage-excluded-btn{background:none;border:none;color:#007bff;cursor:pointer;font-size:.85rem;padding:0;text-decoration:underline}.manage-excluded-btn:hover{color:#0056b3}.excluded-modal{max-width:400px}.excluded-explanation{font-size:.85rem;color:#666;margin-bottom:16px}.excluded-section{margin-bottom:16px}.excluded-section h4{font-size:.9rem;color:#333;margin-bottom:8px;border-bottom:1px solid #eee;padding-bottom:4px}.excluded-section ul{list-style:none;padding:0;margin:0}.excluded-section li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.excluded-section li:last-child{border-bottom:none}.excluded-section li span{flex:1;font-size:.9rem}.undo-btn{background:#fee;border:none;color:#c00;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center}.undo-btn:hover{background:#fcc}.no-excluded{text-align:center;color:#999;font-style:italic}.recipe-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.recipe-modal{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem}.recipe-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.recipe-header h2{margin:0;font-size:1.5rem}.recipe-meta{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem}.recipe-meta span{font-size:.9rem}.instructions-list .step-time{display:inline-block;background:#e3f2fd;padding:.25rem .5rem;border-radius:4px;font-size:.85rem;margin-top:.5rem}.instructions-list .step-tip,.step-tip{background:#fff8e1;padding:.5rem;border-radius:4px;font-size:.9rem;margin-top:.5rem}.recipe-section.tips ul,.recipe-section.substitutions ul{list-style:none;padding:0}.recipe-section.tips li,.recipe-section.substitutions li{padding:.5rem;background:#f8f9fa;margin-bottom:.5rem;border-radius:4px}.recipe-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #eee;flex-wrap:wrap}.save-btn{padding:.75rem 1.25rem;background:#4caf50;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.save-btn.saved{background:#81c784}.cook-btn,.commit-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;flex-grow:1}.commit-btn:disabled{opacity:.7;cursor:wait}.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid white;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;margin-right:.5rem;vertical-align:middle}.cooking-step .step-time{display:inline-block;background:#e3f2fd;padding:.5rem 1rem;border-radius:20px;margin-bottom:1rem}.nav-btn{padding:1rem 2rem;font-size:1.1rem;border:none;border-radius:8px;cursor:pointer;background:#f0f0f0;white-space:nowrap;min-width:140px;text-align:center;font-family:Merriweather,Georgia,serif;font-weight:700}.nav-btn.finish{background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;min-width:180px}.rating-modal{text-align:center;max-width:400px}.star-rating{margin:1.5rem 0}.star-rating .star{font-size:2.5rem;background:none;border:none;cursor:pointer;color:#ddd;transition:color .2s}.star-rating .star.filled{color:#ffc107}.rating-modal textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;resize:none}.rating-actions{display:flex;gap:1rem;margin-top:1.5rem}.submit-btn{flex-grow:1;padding:.75rem;background:#4caf50;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.detail-section{margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.detail-section h3{margin:0 0 .5rem;font-size:1rem}.detail-section.shopping ul{margin:0;padding-left:1.25rem}.have-items{margin:0;color:#4caf50}.action-buttons{display:flex;gap:1rem;margin-top:1.5rem}.error{color:#d32f2f;background:#ffebee;padding:.75rem;border-radius:8px;margin:1rem 0}@media(max-width:600px){.recipe-modal{padding:1rem}.recipe-actions,.action-buttons,.cooking-nav{flex-direction:column}.nav-btn{min-width:100%}}.voice-btn{padding:.75rem 1.25rem;background:linear-gradient(135deg,#9c27b0,#673ab7);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600}.voice-btn:hover{opacity:.9}.kroger-btn{padding:.75rem 1.25rem;background:linear-gradient(135deg,#0073e6,#005bb5);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600}.kroger-btn:hover:not(:disabled){opacity:.9}.kroger-btn:disabled{opacity:.6;cursor:not-allowed}.kroger-result{margin-top:1rem;padding:1rem;border-radius:8px}.kroger-result.success{background:#e8f5e9;color:#2e7d32}.kroger-result.error{background:#ffebee;color:#c62828}.kroger-result a{display:inline-block;margin-top:.5rem;color:#0073e6;font-weight:600}.kroger-result .not-found{margin-top:.5rem;font-size:.85rem;opacity:.8}.kroger-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1100}.kroger-preview-modal{background:#fff;border-radius:12px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;padding:1.5rem}.kroger-preview-modal header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.kroger-preview-modal header h3{margin:0}.store-selection{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.selected-store{display:flex;justify-content:space-between;align-items:center;background:#e8f5e9;padding:.75rem;border-radius:8px}.selected-store button{background:none;border:none;color:#0073e6;cursor:pointer}.zip-input{display:flex;gap:.5rem;margin-top:.5rem}.zip-input input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:8px}.zip-input button{padding:.75rem 1rem;background:#0073e6;color:#fff;border:none;border-radius:8px;cursor:pointer}.zip-input button:disabled{opacity:.5}.store-list{margin-top:.75rem;max-height:150px;overflow-y:auto}.store-option{padding:.75rem;border:1px solid #eee;border-radius:8px;margin-bottom:.5rem;cursor:pointer}.store-option:hover{border-color:#0073e6;background:#f8f9fa}.store-option strong{display:block}.store-option span{font-size:.85rem;color:#666}.searching{text-align:center;padding:2rem}.searching .spinner{width:30px;height:30px;border:3px solid #f0f0f0;border-top-color:#0073e6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.product-list{max-height:250px;overflow-y:auto;margin-bottom:1rem}.product-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem;border-bottom:1px solid #f0f0f0;gap:.5rem}.product-row .ingredient{flex:1;font-weight:500}.product-row .product-name{flex:1;font-size:.8rem;color:#666;text-align:center}.product-row .price{font-weight:600;color:#2e7d32}.product-row.skipped{opacity:.6}.product-row .skip-reason{color:#666;font-size:.85rem}.product-row.not-found .not-found-label{color:#c62828;font-size:.85rem}.cart-summary{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1rem}.total-row{display:flex;justify-content:space-between;margin-bottom:.5rem}.price-note{font-size:.75rem;color:#888;margin:.5rem 0 0}.modal-actions{display:flex;gap:1rem}.modal-actions .cancel-btn{flex:1;padding:.75rem;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer}.modal-actions .confirm-btn{flex:2;padding:.75rem;background:#0073e6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}.modal-actions .confirm-btn:disabled{opacity:.5}.estimate-note{font-size:.75rem;color:#888;margin:-.5rem 0 1rem;font-style:italic}.purchased-panel .panel-description{color:#666;margin-bottom:1rem;font-size:.95rem}.purchased-list{max-height:300px;overflow-y:auto;margin-bottom:1rem}.purchased-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-bottom:1px solid #eee;cursor:pointer}.purchased-item:hover{background:#f9f9f9}.purchased-item input[type=checkbox]{width:1.2rem;height:1.2rem;cursor:pointer}.purchased-item .item-name{flex:1}.purchased-item .item-price{color:#666;font-size:.9rem}.purchased-summary{text-align:center;padding:.5rem;background:#f5f5f5;border-radius:6px;margin-bottom:1rem;font-size:.9rem;color:#666}.pantry-updated{color:#2e7d32;font-weight:500;margin-top:.5rem}.dishes-reminder{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 16px;border-radius:12px;margin:1rem 0;text-align:center}.dishes-reminder p{margin:0;font-size:1rem}.dishes-reminder strong{color:gold}.categorized-shopping-preview{margin-top:12px}.category-preview{margin-bottom:12px;background:#f8fafc;border-radius:8px;overflow:hidden;border:1px solid #e2e8f0}.category-preview .category-label{display:block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 12px;font-size:.8rem;font-weight:600;letter-spacing:.5px}.category-preview:nth-child(1) .category-label{background:linear-gradient(135deg,#48bb78,#38a169)}.category-preview:nth-child(2) .category-label{background:linear-gradient(135deg,#e53e3e,#c53030)}.category-preview:nth-child(3) .category-label{background:linear-gradient(135deg,#ecc94b,#d69e2e)}.category-preview:nth-child(4) .category-label{background:linear-gradient(135deg,#ed8936,#dd6b20)}.category-preview:nth-child(5) .category-label{background:linear-gradient(135deg,#4299e1,#3182ce)}.category-preview:nth-child(6) .category-label{background:linear-gradient(135deg,#9f7aea,#805ad5)}.category-preview:nth-child(7) .category-label{background:linear-gradient(135deg,#ed64a6,#d53f8c)}.category-preview:nth-child(8) .category-label{background:linear-gradient(135deg,#38b2ac,#319795)}.category-preview ul{list-style:none;padding:0;margin:0}.category-preview li{padding:8px 12px;border-bottom:1px solid #edf2f7;font-size:.9rem;display:flex;align-items:center}.category-preview li:last-child{border-bottom:none}.category-preview li:before{content:"☐";margin-right:8px;color:#a0aec0}.shopping-actions{display:flex;gap:12px;margin-top:16px}.shopping-actions .copy-list-btn,.copy-list-btn{flex:1;background:linear-gradient(135deg,#ed8936,#dd6b20);color:#fff;border:none;padding:12px 16px;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.shopping-actions .copy-list-btn:hover,.copy-list-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ed893666}.shopping-actions .kroger-btn{flex:1;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;padding:12px 16px;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.shopping-actions .kroger-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #48bb7866}.shopping-actions .kroger-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.category-preview .category-label{font-size:.75rem;padding:6px 10px}.category-preview li{padding:6px 10px;font-size:.85rem}}.voice-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.voice-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:20px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem;color:#fff}.voice-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.voice-header h2{margin:0;font-size:1.3rem}.connection-status{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#aaa}.status-dot{width:8px;height:8px;border-radius:50%;background:#f44}.status-dot.connected{background:#4f4}.close-btn{background:#ffffff1a;border:none;font-size:1.25rem;cursor:pointer;color:#fff;width:36px;height:36px;border-radius:50%}.recipe-info{text-align:center;margin-bottom:1rem}.recipe-info h3{margin:0 0 .25rem;font-size:1.2rem}.step-indicator{color:#aaa;margin:0;font-size:.9rem}.current-step-card{background:#ffffff1a;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.current-step-card .step-number{font-size:.85rem;color:#ff6b35;margin-bottom:.5rem;font-weight:600}.current-step-card .step-text{margin:0;font-size:1.1rem;line-height:1.5}.current-step-card .step-tip{margin:.75rem 0 0;padding:.5rem;background:#ffc10733;border-radius:8px;font-size:.9rem}.voice-controls{display:flex;gap:.5rem;margin-bottom:1.5rem}.control-btn{flex:1;padding:.75rem;background:#ffffff1a;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem}.control-btn:hover:not(:disabled){background:#fff3}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn.repeat{background:#ff6b354d}.mic-section{display:flex;flex-direction:column;align-items:center;margin-bottom:1rem}.mic-btn{width:100px;height:100px;border-radius:50%;border:4px solid rgba(255,255,255,.2);background:linear-gradient(135deg,#ff6b35,#f7931e);font-size:2.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.mic-btn:hover:not(:disabled){transform:scale(1.05)}.mic-btn:disabled{opacity:.5;cursor:not-allowed}.mic-btn.listening{border-color:#4f4;animation:pulse 1s infinite}.mic-btn.speaking{border-color:#4fc3f7;background:linear-gradient(135deg,#4fc3f7,#29b6f6)}@keyframes pulse{0%{box-shadow:0 0 #4f46}70%{box-shadow:0 0 0 20px #4f40}to{box-shadow:0 0 #4f40}}.mic-hint{margin:.75rem 0 0;color:#aaa;font-size:.9rem}.quick-commands{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.quick-commands button{padding:.5rem .75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:20px;color:#fff;cursor:pointer;font-size:.85rem}.quick-commands button:hover{background:#fff3}.messages-container{background:#0000004d;border-radius:12px;padding:.75rem;max-height:150px;overflow-y:auto}.message{padding:.5rem;margin-bottom:.5rem;border-radius:8px;font-size:.9rem}.message:last-child{margin-bottom:0}.message.user{background:#ff6b354d;text-align:right}.message.assistant{background:#4fc3f74d}.message.system{background:#ffffff1a;color:#aaa;font-size:.85rem}@media(max-width:500px){.voice-modal{padding:1rem}.mic-btn{width:80px;height:80px;font-size:2rem}.quick-commands button{font-size:.8rem;padding:.4rem .6rem}}.auto-listen-toggle{margin-top:.75rem}.auto-listen-toggle label{display:flex;align-items:center;justify-content:center;gap:.5rem;color:#aaa;font-size:.9rem;cursor:pointer}.auto-listen-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.voice-commands-hint{text-align:center;margin-bottom:1rem}.voice-commands-hint p{color:#888;font-size:.8rem;margin:0;font-style:italic}.voice-selector{text-align:center;margin-top:1rem;color:#666}.voice-selector small{font-size:.75rem}.voice-selector{text-align:center;margin-top:1rem;color:#aaa}.voice-selector label{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.85rem}.voice-selector select{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.4rem;border-radius:6px;font-size:.85rem;max-width:200px}.voice-selector select option{background:#1a1a2e;color:#fff}.dishes-game-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:3000;padding:1rem}.dishes-game-modal{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:24px;width:100%;max-width:400px;padding:2rem;text-align:center;box-shadow:0 20px 60px #0006;animation:popIn .4s cubic-bezier(.68,-.55,.265,1.55)}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.dishes-game-modal h2{color:#fff;font-size:1.5rem;margin:0 0 1.5rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.spinner-container{padding:1rem 0}.spinner-phrase{color:#ffffffe6;font-size:1.1rem;margin:0 0 1.5rem;font-style:italic}.name-spinner{position:relative;margin:0 auto}.spinner-arrow{font-size:2rem;color:gold;animation:bounce .5s ease infinite;text-shadow:0 2px 4px rgba(0,0,0,.3)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.spinner-display{background:#fff;border-radius:16px;padding:1.5rem 2rem;margin-top:.5rem;min-height:60px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0003}.spinning-name{font-size:1.8rem;font-weight:700;color:#333;animation:pulse .1s ease infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.final-name{font-size:1.8rem;font-weight:700;color:#333}.spinner-dots{display:flex;justify-content:center;gap:8px;margin-top:1.5rem}.spinner-dots .dot{width:12px;height:12px;background:#fff9;border-radius:50%;animation:dotPulse 1s ease infinite}.spinner-dots .dot:nth-child(2){animation-delay:.2s}.spinner-dots .dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.result-container{padding:1rem 0}.confetti{font-size:3rem;animation:celebrate .6s ease}@keyframes celebrate{0%{transform:scale(0) rotate(-180deg)}50%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0)}}.winner-announce{background:#fff;border-radius:16px;padding:1.5rem 2rem;margin:1rem 0;box-shadow:0 8px 24px #0003;animation:slideUp .5s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.winner-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.winner-name{font-size:2rem;font-weight:700;color:#333;display:block}.winner-message{color:#fff;font-size:1.2rem;margin:1rem 0;font-weight:500}.fun-messages{margin:1rem 0}.fun-tip{color:#ffffffd9;font-size:.95rem;margin:0;font-style:italic}.continue-btn{background:linear-gradient(135deg,#f5af19,#f12711);color:#fff;border:none;padding:1rem 2rem;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;margin-top:1.5rem;transition:all .3s ease;box-shadow:0 4px 15px #f1271166}.continue-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f1271180}@media(max-width:400px){.dishes-game-modal{padding:1.5rem}.spinner-display{padding:1rem 1.5rem}.spinning-name,.final-name,.winner-name{font-size:1.5rem}.winner-emoji{font-size:2.5rem}}.calendar-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.calendar-modal{background:#fff;border-radius:16px;width:100%;max-width:1000px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #0000004d}.calendar-display-wrapper{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:2rem;display:flex;align-items:center;justify-content:center}.calendar-display-wrapper .calendar-container{background:#fffffff2;border-radius:24px;padding:2rem;width:100%;max-width:1400px;box-shadow:0 20px 60px #0006}.calendar-container{padding:1.5rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #eee}.calendar-nav{display:flex;align-items:center;gap:1rem}.nav-btn{background:#f5f5f5;border:none;width:40px;height:40px;border-radius:50%;font-size:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-btn:hover{background:#e74c3c;color:#fff}.calendar-title{display:flex;align-items:center;gap:1rem}.calendar-title h2{font-size:1.5rem;color:#333;margin:0}.today-btn{background:#e74c3c;color:#fff;border:none;padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.today-btn:hover{background:#c0392b;transform:scale(1.05)}.calendar-header .close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.5rem;border-radius:50%;transition:background .2s}.calendar-header .close-btn:hover{background:#f0f0f0}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;margin-bottom:1.5rem}.day-column{background:#f9f9f9;border-radius:12px;min-height:180px;display:flex;flex-direction:column;transition:all .2s;cursor:pointer;border:2px solid transparent}.day-column:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#e74c3c}.day-column.today{background:linear-gradient(135deg,#fff5f5,#ffe8e8);border-color:#e74c3c}.day-column.past{opacity:.7}.day-column.future{background:linear-gradient(135deg,#f0fff4,#e8f5e9)}.day-header{padding:.75rem;text-align:center;border-bottom:1px solid #eee}.day-name{display:block;font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:1px;margin-bottom:.25rem}.day-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:1.1rem;font-weight:600;color:#333}.today-number{background:#e74c3c;color:#fff;border-radius:50%}.day-meals{flex:1;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.meal-card{background:#fff;padding:.6rem .75rem;border-radius:8px;box-shadow:0 2px 6px #00000014;border-left:3px solid #e74c3c}.day-column.past .meal-card{border-left-color:#999}.day-column.today .meal-card{border-left-color:#e74c3c}.day-column.future .meal-card{border-left-color:#4caf50}.meal-card.disliked{border-left-color:#999;opacity:.7}.meal-name{display:block;font-size:.85rem;font-weight:600;color:#333;margin-bottom:.25rem;line-height:1.3}.meal-rating{font-size:.7rem}.dislike-badge{font-size:.75rem;margin-left:.25rem}.no-meal{flex:1;display:flex;align-items:center;justify-content:center;color:#ccc}.add-meal-hint{font-size:.85rem;color:#aaa;padding:.5rem;border:2px dashed #ddd;border-radius:8px;transition:all .2s}.day-column:hover .add-meal-hint{color:#e74c3c;border-color:#e74c3c}.empty-day{color:#ddd;font-size:1.5rem}.meal-placeholder{color:#ccc;text-align:center}.calendar-legend{display:flex;align-items:center;gap:1.5rem;padding:1rem;background:#f5f5f5;border-radius:8px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#666}.legend-dot{width:12px;height:12px;border-radius:50%}.today-dot{background:#e74c3c}.past-dot{background:#ccc}.future-dot{background:#4caf50}.legend-hint{margin-left:auto;font-size:.85rem;color:#888;font-style:italic}.display-mode-hint{width:100%;margin-top:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-radius:8px;font-size:.85rem;color:#4338ca;display:flex;align-items:center;gap:.5rem}.display-mode-hint .hint-icon{font-size:1.1rem}.display-mode-hint a{background:#fff;padding:.2rem .6rem;border-radius:4px;font-family:monospace;font-size:.85rem;color:#4338ca;text-decoration:none;font-weight:600;transition:all .2s}.display-mode-hint a:hover{background:#4338ca;color:#fff}.display-mode-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.app-branding{font-size:1.25rem;font-weight:700;color:#e74c3c}.last-updated{font-size:.85rem;color:#999}.display-mode .calendar-title h2{font-size:2rem}.display-mode .day-column{min-height:250px}.display-mode .day-name{font-size:.9rem}.display-mode .day-number{font-size:1.5rem;width:44px;height:44px}.display-mode .meal-name{font-size:1rem}.display-mode .meal-card{padding:.75rem 1rem}.display-mode .day-column{cursor:default}.display-mode .day-column:hover{transform:none;box-shadow:none}.display-mode .day-column.today:hover{border-color:#e74c3c}@media(max-width:900px){.week-grid{grid-template-columns:repeat(7,1fr);gap:.5rem}.day-column{min-height:150px}.day-name{font-size:.65rem}.day-number{font-size:.9rem;width:28px;height:28px}.meal-name{font-size:.75rem}.calendar-legend{flex-direction:column;align-items:flex-start;gap:.5rem}.legend-hint{margin-left:0}}@media(max-width:600px){.calendar-overlay{padding:0}.calendar-modal{border-radius:0;max-height:100vh;height:100vh;display:flex;flex-direction:column}.calendar-container{padding:3.5rem 1rem 1rem;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.calendar-header .close-btn{position:absolute;top:3.5rem;right:.5rem;z-index:20;background:#f0f0f0;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.calendar-header{position:absolute;top:0;left:0;right:0;padding:.75rem 1rem;background:#fff;z-index:15;border-bottom:1px solid #eee;margin-bottom:0}.calendar-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:.5rem;width:100%}.nav-btn{width:44px;height:44px;font-size:1.2rem;background:#e74c3c;color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center}.calendar-title{text-align:center;overflow:hidden}.calendar-title h2{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.today-btn{font-size:.7rem;padding:.2rem .5rem;margin-top:.25rem}.week-grid{display:flex;flex-direction:column;gap:.75rem;flex:1;overflow-y:auto;padding-bottom:1rem;-webkit-overflow-scrolling:touch}.day-column{min-height:auto;border-radius:12px;flex-direction:row;align-items:stretch;flex-shrink:0}.day-header{min-width:70px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-bottom:none;border-right:1px solid #eee;padding:.75rem}.day-meals{flex:1;flex-direction:row;flex-wrap:wrap;align-items:center;align-content:flex-start;padding:.5rem;min-height:60px}.meal-card{margin:.25rem;max-width:calc(100% - .5rem)}.no-meal{flex:1;min-height:50px}.add-meal-hint{font-size:.8rem}.calendar-legend{flex-shrink:0;margin-top:auto;padding:.75rem;font-size:.8rem;gap:.75rem}.legend-item{font-size:.75rem}.legend-dot{width:10px;height:10px}.legend-hint,.display-mode-hint{display:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.display-mode .day-column.today{animation:pulse 3s ease-in-out infinite}.meal-detail-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1100;padding:1rem}.meal-detail-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:85vh;overflow-y:auto;padding:1.5rem;box-shadow:0 20px 60px #0000004d}.meal-detail-modal header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid #eee}.meal-detail-modal header h3{margin:0;font-size:1.25rem;color:#333}.meal-detail-modal .close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;line-height:1}.meal-detail-content{margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #f0f0f0}.detail-row:last-child{border-bottom:none}.detail-row.notes-row{flex-direction:column;align-items:flex-start;gap:.5rem}.detail-label{font-weight:600;color:#555;font-size:.9rem}.detail-value{color:#333}.detail-value.rating-stars{font-size:1.1rem}.detail-value.planned-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600}.meal-detail-actions{display:flex;gap:1rem}.meal-detail-actions .secondary-btn{flex:1;padding:.75rem;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;font-family:Merriweather,Georgia,serif}.meal-detail-actions .secondary-btn:hover{background:#e0e0e0}.meal-detail-actions .primary-btn{flex:2;padding:.75rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;font-family:Merriweather,Georgia,serif;transition:transform .2s,box-shadow .2s}.meal-detail-actions .primary-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b3566}.day-meals .meal-card{cursor:pointer;transition:transform .2s,box-shadow .2s}.day-meals .meal-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}@media(max-width:480px){.meal-detail-modal{padding:1rem;max-width:100%}.meal-detail-actions{flex-direction:column}.meal-detail-actions .primary-btn,.meal-detail-actions .secondary-btn{flex:none}}.meal-description{color:#666;font-size:.95rem;line-height:1.5;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #f0f0f0}.meal-quick-info{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem;background:#f8f9fa;border-radius:8px;margin-bottom:1rem}.meal-quick-info span{font-size:.85rem;color:#555}.ingredients-section{margin:1rem 0;padding:1rem;background:#f8f9fa;border-radius:8px}.ingredients-section h4{margin:0 0 .75rem;font-size:.95rem;color:#333}.pantry-items{margin:0;color:#16a34a;font-size:.9rem}.shopping-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.shopping-list li{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.4rem 0}.shopping-list .ing-emoji{font-size:1rem}.meal-detail-actions .recipe-btn{flex:2;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;font-family:Merriweather,Georgia,serif;transition:transform .2s,box-shadow .2s}.meal-detail-actions .recipe-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b3566}.meal-detail-actions{display:flex;gap:.75rem}.meal-detail-actions .secondary-btn{flex:1;min-width:80px}.meal-detail-actions .recipe-btn{flex:2;min-width:160px}@media(max-width:480px){.meal-detail-actions{flex-direction:column}.meal-detail-actions .secondary-btn,.meal-detail-actions .recipe-btn{flex:none;width:100%}.shopping-list{grid-template-columns:1fr}}.custom-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.custom-modal{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem}.custom-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.custom-header h2{margin:0;font-size:1.5rem}.error{color:#d32f2f;background:#ffebee;padding:.75rem;border-radius:8px;margin-bottom:1rem}.custom-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{background:#f8f9fa;padding:1rem;border-radius:12px}.form-section h3{margin:0 0 1rem;font-size:1.1rem}.form-section label{display:block;margin-bottom:1rem;font-weight:500;font-size:.9rem}.form-section input,.form-section textarea,.form-section select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;margin-top:.25rem;box-sizing:border-box}.form-section textarea{resize:vertical}.form-row{display:flex;gap:1rem}.form-row label{flex:1}.ingredient-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}.amount-input{width:60px!important;flex-shrink:0}.unit-input{width:80px!important;flex-shrink:0}.item-input{flex:1}.notes-input{width:150px!important;flex-shrink:0}.instruction-row{display:flex;gap:.75rem;margin-bottom:.75rem;align-items:flex-start}.step-num{background:#ff6b35;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;margin-top:.5rem}.instruction-inputs{flex:1;display:flex;flex-direction:column;gap:.5rem}.instruction-inputs textarea{margin-top:0}.instruction-inputs input{margin-top:0;font-size:.9rem;color:#666}.tip-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}.tip-row input{flex:1;margin-top:0}.remove-btn{background:#ffebee;border:none;color:#d32f2f;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:.9rem;flex-shrink:0}.remove-btn:hover{background:#ffcdd2}.add-btn{background:none;border:2px dashed #ccc;padding:.5rem 1rem;border-radius:8px;cursor:pointer;color:#666;font-size:.9rem;margin-top:.5rem}.add-btn:hover{border-color:#ff6b35;color:#ff6b35}.custom-actions{display:flex;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.cancel-btn{padding:.75rem 1.5rem;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.save-btn{flex:1;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600}.save-btn:disabled{opacity:.7;cursor:wait}@media(max-width:600px){.custom-modal{padding:1rem}.form-row{flex-direction:column;gap:0}.ingredient-row{flex-wrap:wrap}.amount-input,.unit-input{width:45%!important}.item-input,.notes-input{width:100%!important}}.import-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1100;padding:1rem}.import-modal{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.import-modal header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.import-modal header h3{margin:0;font-size:1.25rem;color:#333}.import-modal .close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#666;padding:.5rem;border-radius:50%;transition:background .2s}.import-modal .close-btn:hover{background:#f0f0f0}.import-content{padding:1.5rem}.instructions{color:#666;margin-bottom:1rem;line-height:1.5;font-size:.95rem}.example-box{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:1rem;margin-bottom:1rem;font-size:.85rem}.example-box strong{color:#495057;display:block;margin-bottom:.5rem}.example-box p{margin:0;color:#6c757d;font-family:monospace;white-space:pre-line;line-height:1.4}.recipe-textarea{width:100%;padding:1rem;border:2px solid #e0e0e0;border-radius:10px;font-size:.95rem;font-family:inherit;resize:vertical;min-height:200px;transition:border-color .2s}.recipe-textarea:focus{outline:none;border-color:#667eea}.recipe-textarea::placeholder{color:#aaa}.action-buttons{display:flex;gap:1rem;margin-top:1.5rem;justify-content:flex-end}.cancel-btn{padding:.75rem 1.5rem;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s}.cancel-btn:hover{background:#f5f5f5}.parse-btn{padding:.75rem 1.5rem;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s}.parse-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.parse-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.recipe-preview{display:flex;flex-direction:column;gap:1rem}.preview-header{display:flex;justify-content:space-between;align-items:center}.preview-header h4{margin:0;font-size:1.25rem;color:#333}.edit-toggle{padding:.5rem 1rem;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.edit-toggle:hover{background:#f5f5f5}.recipe-description{color:#666;line-height:1.5;margin:0}.recipe-meta{display:flex;flex-wrap:wrap;gap:1rem;padding:.75rem 0;border-top:1px solid #eee;border-bottom:1px solid #eee;font-size:.9rem;color:#555}.recipe-section{margin-top:.5rem}.recipe-section h5{margin:0 0 .75rem;color:#333;font-size:1rem}.ingredient-list{list-style:none;padding:0;margin:0}.ingredient-item{padding:.5rem 0;border-bottom:1px solid #f0f0f0;color:#555}.ingredient-item:last-child{border-bottom:none}.instruction-list{padding-left:1.25rem;margin:0}.instruction-item{padding:.5rem 0;color:#555;line-height:1.5}.edit-input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.title-input{font-size:1.25rem;font-weight:600}.edit-textarea{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;resize:vertical;min-height:60px;font-family:inherit}.edit-ingredient{display:flex;gap:.5rem;align-items:center}.edit-ingredient .amt-input{width:50px;padding:.4rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.edit-ingredient .unit-input{width:60px;padding:.4rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.edit-ingredient .item-input{flex:1;padding:.4rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.edit-ingredient .remove-btn,.edit-instruction .remove-btn{padding:.25rem .5rem;border:none;background:#fee;color:#c00;border-radius:4px;cursor:pointer;font-size:.85rem}.edit-ingredient .remove-btn:hover,.edit-instruction .remove-btn:hover{background:#fcc}.edit-instruction{display:flex;gap:.5rem;align-items:flex-start}.instruction-textarea{flex:1;padding:.4rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;resize:vertical;min-height:50px;font-family:inherit}.add-item-btn{margin-top:.5rem;padding:.5rem 1rem;border:1px dashed #ccc;background:#fafafa;border-radius:6px;cursor:pointer;font-size:.85rem;color:#666;transition:all .2s}.add-item-btn:hover{border-color:#999;background:#f0f0f0}.reset-btn{padding:.75rem 1.25rem;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s}.reset-btn:hover{background:#f5f5f5}.save-btn{padding:.875rem 1.5rem;border:none;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.save-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2ecc7166}.save-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-message{background:#fef0f0;color:#c0392b;padding:1rem;border-radius:8px;text-align:center;margin-top:1rem}.success-message{background:#e8f8f0;color:#27ae60;padding:1rem;border-radius:8px;text-align:center;margin-top:1rem;font-weight:500}@media(max-width:480px){.import-content{padding:1rem}.action-buttons{flex-direction:column}.action-buttons button{width:100%}.recipe-meta{gap:.5rem;font-size:.85rem}.edit-ingredient{flex-wrap:wrap}.edit-ingredient .item-input{width:100%}}.shared-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.shared-modal{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem}.shared-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.shared-header h2{margin:0;font-size:1.5rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.custom-badge{font-size:.8rem;background:#f3e5f5;color:#7b1fa2;padding:.25rem .5rem;border-radius:12px;font-weight:400}.shared-by{color:#666;margin-bottom:1rem;font-size:.95rem}.shared-by strong{color:#333}.rating-summary{margin-left:1rem;color:#f59e0b;font-weight:500}.loading-state,.error-state{text-align:center;padding:3rem 1rem}.spinner{width:40px;height:40px;border:3px solid #f0f0f0;border-top-color:#ff6b35;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.error-state h2{margin-bottom:.5rem}.error-state p{color:#666;margin-bottom:1.5rem}.recipe-description{color:#666;font-size:1.1rem;margin-bottom:1rem}.recipe-meta{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;font-size:.9rem}.recipe-section{margin-bottom:1.5rem}.recipe-section h3{margin-bottom:.75rem;color:#333}.ingredients-list{list-style:none;padding:0}.ingredients-list li{padding:.5rem 0;border-bottom:1px solid #f0f0f0;display:flex;gap:.5rem}.ingredients-list .amount{font-weight:600;min-width:80px}.ingredients-list .notes{color:#888;font-size:.9rem}.copy-list-btn{margin-top:1rem;padding:.5rem 1rem;background:#f0f0f0;border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.copy-list-btn:hover{background:#e0e0e0}.instructions-list{padding-left:1.5rem}.instructions-list li{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #f0f0f0}.step-time{display:inline-block;background:#e3f2fd;padding:.25rem .5rem;border-radius:4px;font-size:.85rem;margin-top:.5rem}.step-tip{background:#fff8e1;padding:.5rem;border-radius:4px;font-size:.9rem;margin-top:.5rem}.recipe-section.tips ul{list-style:none;padding:0}.recipe-section.tips li{padding:.5rem;background:#f8f9fa;margin-bottom:.5rem;border-radius:4px}.reviews{background:#f8f9fa;padding:1rem;border-radius:12px}.add-review-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;margin-bottom:1rem}.login-prompt{color:#888;font-style:italic;margin-bottom:1rem}.no-reviews{color:#888;text-align:center;padding:1rem}.reviews-list{display:flex;flex-direction:column;gap:.75rem}.review-card{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.review-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.reviewer-name{font-weight:600}.review-stars{color:#f59e0b}.review-date{color:#888;font-size:.85rem;margin-left:auto}.review-comment{margin:0;color:#555}.rating-form-modal{text-align:center;max-width:400px}.rating-form-modal h2{margin-bottom:.5rem}.rating-form-modal>p{color:#666;margin-bottom:1.5rem}.star-rating-input{margin-bottom:1.5rem}.star-rating-input .star{font-size:2.5rem;background:none;border:none;cursor:pointer;color:#ddd;transition:color .2s}.star-rating-input .star.filled,.star-rating-input .star:hover{color:#f59e0b}.rating-form-modal textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;resize:none;margin-bottom:1rem;box-sizing:border-box}.rating-form-actions{display:flex;gap:1rem}.cancel-btn{flex:1;padding:.75rem;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.submit-rating-btn{flex:1;padding:.75rem;background:#4caf50;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.submit-rating-btn:disabled{opacity:.7}.shared-actions{display:flex;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.back-btn{padding:.75rem 1.25rem;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.cook-btn{flex:1;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600}.promo-banner{margin-top:1.5rem;padding:1rem;background:linear-gradient(135deg,#fff8e1,#ffecb3);border-radius:8px;text-align:center}.promo-banner p{margin:0;color:#555}.promo-banner a{color:#ff6b35;font-weight:600}.cooking-header{margin-bottom:2rem}.step-counter{background:#e3f2fd;padding:.25rem .75rem;border-radius:20px;font-size:.9rem}.cooking-step{padding:2rem;background:#f8f9fa;border-radius:12px;margin-bottom:2rem}.cooking-step .step-number{font-size:1rem;color:#666;margin-bottom:1rem}.cooking-step .step-text{font-size:1.25rem;line-height:1.6;margin-bottom:1rem}.cooking-nav{display:flex;gap:1rem;justify-content:center;margin-bottom:1rem}.nav-btn{padding:1rem 2rem;font-size:1.1rem;border:none;border-radius:8px;cursor:pointer;background:#f0f0f0}.nav-btn.next{background:#4caf50;color:#fff}.nav-btn.finish{background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff}.exit-cooking{background:none;border:none;color:#666;cursor:pointer;text-decoration:underline}@media(max-width:600px){.shared-modal{padding:1rem}.shared-actions,.cooking-nav{flex-direction:column}.review-header{flex-direction:column;align-items:flex-start}.review-date{margin-left:0}}.recipes-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.recipes-modal{background:#fff;border-radius:16px;width:100%;max-width:800px;max-height:90vh;overflow-y:auto;padding:24px}.recipes-hub{max-width:900px}.recipes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.recipes-header h2{margin:0;font-size:24px}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;padding:4px 8px;border-radius:8px}.close-btn:hover{background:#f0f0f0}.recipe-section-group{margin-bottom:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h3{margin:0;font-size:18px;color:#333}.expand-btn{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;font-weight:500}.expand-btn:hover{text-decoration:underline}.community-cards-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.community-card{background:linear-gradient(135deg,#f8f9ff,#fff);border:1px solid #e0e0e0;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;transition:transform .2s,box-shadow .2s}.community-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.community-card-main{cursor:pointer;flex:1}.community-card h4{margin:0 0 6px;font-size:15px;color:#333}.community-card .card-description{font-size:13px;color:#666;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.community-card .card-meta{display:flex;gap:10px;font-size:12px;color:#888}.save-btn{padding:8px 12px;border:2px solid #667eea;border-radius:8px;background:#fff;color:#667eea;font-weight:600;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){background:#667eea;color:#fff}.save-btn.saved{background:#e8f5e9;border-color:#4caf50;color:#4caf50;cursor:default}.save-btn:disabled{opacity:.7;cursor:not-allowed}.section-divider{height:1px;background:linear-gradient(to right,transparent,#ddd,transparent);margin:32px 0}.my-recipes .add-buttons{display:flex;gap:8px}.add-btn{padding:6px 12px;border:1px solid #667eea;border-radius:8px;background:#fff;color:#667eea;font-size:13px;cursor:pointer;transition:all .2s}.add-btn:hover{background:#667eea;color:#fff}.saved-recipes-list{display:flex;flex-direction:column;gap:10px}.saved-recipe-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:14px;display:flex;gap:12px;align-items:center;transition:box-shadow .2s}.saved-recipe-card:hover{box-shadow:0 2px 8px #00000014}.saved-card-main{flex:1;cursor:pointer}.saved-card-header{display:flex;justify-content:space-between;align-items:center}.saved-card-header h4{margin:0;font-size:15px;display:flex;align-items:center;gap:6px}.select-arrow{color:#ccc;font-size:18px}.saved-recipe-card:hover .select-arrow{color:#667eea}.saved-card-main .card-description{font-size:13px;color:#666;margin:6px 0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.saved-card-main .card-meta{display:flex;gap:12px;font-size:12px;color:#888}.saved-card-actions{display:flex;gap:4px}.icon-btn{background:none;border:none;font-size:18px;cursor:pointer;padding:6px;border-radius:8px;transition:background .2s}.icon-btn:hover{background:#f0f0f0}.icon-btn.delete:hover{background:#ffebee}.custom-badge,.shared-badge{font-size:12px;padding:2px 8px;border-radius:12px;margin-left:8px}.custom-badge{background:#fff3e0;color:#e65100}.shared-badge{background:#e3f2fd;color:#1976d2}.custom-tag,.shared-tag{font-size:14px;margin-left:4px}.fav-badge{margin-right:4px}.empty-state{text-align:center;padding:40px 20px;color:#666}.empty-state p{margin:8px 0}.empty-hint{font-size:14px;color:#999}.loading-state{text-align:center;padding:60px 20px}.spinner{width:40px;height:40px;border:3px solid #f0f0f0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.share-modal{max-width:450px;text-align:center}.share-modal h2{margin-bottom:12px}.share-note{color:#666;font-size:14px}.share-link-box{display:flex;gap:8px;margin:16px 0}.share-link-box input{flex:1;padding:10px;border:1px solid #ddd;border-radius:8px;font-size:14px}.copy-btn{padding:10px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer}.share-options{display:flex;justify-content:center;gap:12px;margin:16px 0}.share-btn{padding:10px 16px;border-radius:8px;text-decoration:none;font-weight:500;font-size:14px}.share-btn.twitter{background:#000;color:#fff}.share-btn.facebook{background:#1877f2;color:#fff}.share-btn.sms{background:#25d366;color:#fff}.community-share-btn{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;margin-top:16px}.community-share-btn:disabled{opacity:.7;cursor:not-allowed}.done-btn{width:100%;padding:12px;background:#f0f0f0;border:none;border-radius:8px;margin-top:12px;cursor:pointer;font-size:14px}.cooking-mode{text-align:center}.cooking-header{margin-bottom:24px}.cooking-header h2{margin:0 0 8px}.step-counter{color:#667eea;font-weight:600}.cooking-step{background:#f8f9ff;border-radius:16px;padding:32px;margin-bottom:24px}.step-number{font-size:14px;color:#667eea;font-weight:600;margin-bottom:12px}.step-text{font-size:20px;line-height:1.6;margin:0}.step-time{margin-top:16px;color:#666}.step-tip{margin-top:16px;padding:12px;background:#fff3e0;border-radius:8px;font-size:14px}.cooking-nav{display:flex;gap:12px;justify-content:center}.nav-btn{padding:12px 24px;border:2px solid #667eea;border-radius:8px;background:#fff;color:#667eea;font-weight:600;cursor:pointer}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.nav-btn.next,.nav-btn.finish{background:#667eea;color:#fff}.exit-cooking{margin-top:24px;background:none;border:none;color:#999;cursor:pointer}.recipe-description{color:#666;margin-bottom:16px}.recipe-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:#666;margin-bottom:24px}.recipe-section{margin-bottom:24px}.recipe-section h3{margin:0 0 12px;font-size:16px}.ingredients-list{list-style:none;padding:0;margin:0}.ingredients-list li{padding:8px 0;border-bottom:1px solid #f0f0f0;display:flex;gap:8px}.ingredients-list .amount{color:#667eea;font-weight:500;min-width:80px}.ingredients-list .notes{color:#999;font-size:13px}.instructions-list{padding-left:20px;margin:0}.instructions-list li{padding:12px 0;border-bottom:1px solid #f0f0f0}.instructions-list li p{margin:0}.copy-list-btn{margin-top:12px;padding:8px 16px;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-size:13px}.recipe-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;padding-top:24px;border-top:1px solid #eee}.back-btn{padding:10px 16px;background:#f0f0f0;border:none;border-radius:8px;cursor:pointer}.fav-btn{padding:10px 16px;background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer}.fav-btn.is-fav{border-color:#e91e63;background:#fce4ec}.share-btn{padding:10px 16px;background:#fff;border:2px solid #667eea;border-radius:8px;color:#667eea;cursor:pointer}.cook-btn{padding:10px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}@media(max-width:600px){.recipes-modal{padding:16px;border-radius:12px 12px 0 0;max-height:95vh}.community-cards-row{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:8px}.recipe-actions{flex-direction:column}.recipe-actions button{width:100%}}.page-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.page-modal{background:#fff;border-radius:16px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.page-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.page-header h2{margin:0;font-size:1.5rem;color:#333}.page-header .close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.5rem;border-radius:50%;transition:background .2s}.page-header .close-btn:hover{background:#f0f0f0}.page-content{padding:2rem}.about-logo{text-align:center;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #eee}.about-logo .logo-icon{font-size:4rem;display:block;margin-bottom:.5rem}.about-logo h1{margin:0;font-size:2rem;color:#e74c3c}.about-logo .tagline{color:#666;font-size:1.1rem;margin-top:.5rem}.about-section{margin-bottom:2rem}.about-section h3{color:#333;font-size:1.25rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e74c3c;display:inline-block}.about-section p{color:#555;line-height:1.7;margin-bottom:1rem}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{padding:.75rem 0;border-bottom:1px solid #f0f0f0;color:#555;line-height:1.5}.feature-list li:last-child{border-bottom:none}.feature-list li strong{color:#333}.about-section.contact{background:#f9f9f9;padding:1.5rem;border-radius:12px;margin-top:2rem}.about-section.contact h3{margin-top:0}.about-footer{text-align:center;padding-top:1.5rem;border-top:1px solid #eee;margin-top:1rem}.about-footer p{color:#999;font-size:.9rem;margin:0}@media(max-width:600px){.page-content{padding:1.5rem}.about-logo h1{font-size:1.5rem}.about-logo .logo-icon{font-size:3rem}}.donation-section{background:linear-gradient(135deg,#fff9f0,#fff0f5);border-radius:16px;padding:2rem;text-align:center;margin-top:2rem;border:1px solid #ffe0ec}.donation-icon{font-size:3rem;margin-bottom:.5rem}.donation-section h3{color:#e91e63;margin-bottom:1rem}.donation-section p{color:#555;line-height:1.7;margin-bottom:1rem}.donation-heart{font-style:italic;color:#666}.donate-btn{display:inline-block;margin-top:1.5rem;padding:1rem 2rem;background:linear-gradient(135deg,#ff6b6b,#e91e63);color:#fff;text-decoration:none;border-radius:50px;font-size:1.1rem;font-weight:600;transition:all .3s;box-shadow:0 4px 15px #e91e634d}.donate-btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px #e91e6366}.qa-intro{color:#666;text-align:center;margin-bottom:2rem;font-size:1.05rem;line-height:1.6}.faq-list{display:flex;flex-direction:column;gap:.5rem}.faq-item{border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;transition:box-shadow .2s}.faq-item:hover{box-shadow:0 2px 8px #00000014}.faq-item.open{border-color:#e74c3c;box-shadow:0 2px 12px #e74c3c26}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#fafafa;border:none;cursor:pointer;text-align:left;font-size:1rem;font-weight:500;color:#333;transition:background .2s}.faq-question:hover{background:#f5f5f5}.faq-item.open .faq-question{background:#fef5f4;color:#e74c3c}.faq-icon{font-size:1.5rem;font-weight:300;color:#999;flex-shrink:0;margin-left:1rem}.faq-item.open .faq-icon{color:#e74c3c}.faq-answer{padding:1rem 1.25rem 1.25rem;background:#fff;border-top:1px solid #f0f0f0;animation:slideDown .2s ease-out}.faq-answer p{margin:0;color:#555;line-height:1.7;font-size:.95rem}@media(max-width:600px){.faq-question{padding:.875rem 1rem;font-size:.95rem}.faq-answer{padding:.875rem 1rem 1rem}.faq-icon{font-size:1.25rem}}.app-footer{background:linear-gradient(135deg,#2c3e50,#1a252f);color:#fff;padding:2rem 1rem;margin-top:auto}.footer-content{max-width:800px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.footer-brand{display:flex;align-items:center;gap:.5rem}.footer-logo{font-size:1.5rem}.footer-name{font-size:1.25rem;font-weight:600;color:#fff}.footer-links{display:flex;align-items:center;gap:1rem}.footer-link{background:none;border:none;color:#bdc3c7;font-size:1rem;cursor:pointer;padding:.5rem 1rem;border-radius:6px;transition:all .2s}.footer-link:hover{color:#fff;background:#ffffff1a}.footer-divider{color:#5a6a7a}.footer-copyright{text-align:center}.footer-copyright p{margin:0;color:#7f8c8d;font-size:.85rem}@media(max-width:480px){.app-footer{padding:1.5rem 1rem}.footer-link{font-size:.9rem;padding:.4rem .75rem}}.settings-dropdown{position:relative}.settings-btn{background:transparent;border:none;font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background-color:#ffffff1a}.settings-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;min-width:180px;overflow:hidden;z-index:1000;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;cursor:pointer;font-size:.95rem;color:#333;text-align:left;transition:background-color .15s}.settings-item:hover{background-color:#f5f5f5}.settings-item.danger{color:#dc3545}.settings-item.danger:hover{background-color:#fff5f5}.settings-icon{font-size:1.1rem}.settings-divider{height:1px;background-color:#eee;margin:.25rem 0}@media(max-width:768px){.settings-menu{min-width:160px}.settings-item{padding:.875rem 1rem}}.settings-item.seller-btn{color:#28a745}.settings-item.seller-btn:hover{background:#28a7451a}.settings-item:disabled{opacity:.6;cursor:not-allowed}.delete-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.delete-modal{background:#fff;border-radius:12px;max-width:480px;width:100%;overflow:hidden;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .2s ease-out}.delete-modal-header{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;padding:1.5rem;text-align:center}.delete-warning-icon{font-size:2.5rem;display:block;margin-bottom:.5rem}.delete-modal-header h2{margin:0;font-size:1.5rem}.delete-modal-content{padding:1.5rem}.delete-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;color:#856404}.delete-modal-content>p{margin-bottom:.75rem;color:#555}.delete-list{list-style:none;padding:0;margin:0 0 1.5rem;background:#f8f9fa;border-radius:8px;padding:1rem}.delete-list li{padding:.4rem 0;color:#666;font-size:.95rem}.confirm-section{margin-top:1.5rem}.confirm-section label{display:block;margin-bottom:.5rem;color:#333;font-size:.95rem}.confirm-section input{width:100%;padding:.75rem 1rem;font-size:1rem;border:2px solid #ddd;border-radius:8px;text-align:center;letter-spacing:2px;font-weight:700;transition:border-color .2s}.confirm-section input:focus{outline:none;border-color:#dc3545}.confirm-section input::placeholder{color:#ccc;letter-spacing:2px}.delete-error{color:#dc3545;background:#fff5f5;padding:.75rem;border-radius:6px;margin-top:1rem;font-size:.9rem}.delete-modal-actions{display:flex;gap:1rem;padding:1rem 1.5rem 1.5rem;border-top:1px solid #eee}.delete-modal-actions .cancel-btn{flex:1;padding:.875rem 1.5rem;border:2px solid #ddd;background:#fff;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.delete-modal-actions .cancel-btn:hover:not(:disabled){background:#f5f5f5;border-color:#ccc}.delete-modal-actions .delete-btn{flex:1;padding:.875rem 1.5rem;border:none;background:#dc3545;color:#fff;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.delete-modal-actions .delete-btn:hover:not(:disabled){background:#c82333}.delete-modal-actions .delete-btn:disabled{background:#ccc;cursor:not-allowed}.delete-modal-actions .cancel-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.delete-modal-header,.delete-modal-content{padding:1.25rem}.delete-modal-actions{flex-direction:column-reverse}}.notifications-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.notifications-modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:85vh;overflow:hidden;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #eee;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.notifications-header h2{margin:0;font-size:1.25rem}.notifications-header .close-btn{background:#fff3;border:none;color:#fff;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background .2s}.notifications-header .close-btn:hover{background:#ffffff4d}.notifications-tabs{display:flex;border-bottom:1px solid #eee;background:#f8f9fa}.tab-btn{flex:1;padding:.875rem .5rem;border:none;background:transparent;cursor:pointer;font-size:.9rem;color:#666;transition:all .2s;border-bottom:2px solid transparent;display:flex;align-items:center;justify-content:center;gap:.5rem}.tab-btn:hover{background:#f0f0f0;color:#333}.tab-btn.active{color:#667eea;border-bottom-color:#667eea;background:#fff}.alert-badge{background:#dc3545;color:#fff;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px;min-width:18px;text-align:center}.notifications-content{flex:1;overflow-y:auto;padding:1rem}.alerts-tab{display:flex;flex-direction:column;gap:1.5rem}.section-title{font-size:1rem;color:#333;margin:0 0 .25rem;font-weight:600}.section-subtitle{font-size:.85rem;color:#888;margin:0 0 1rem}.expiring-section{background:#fff8f0;border-radius:8px;padding:1rem;border:1px solid #ffe0c0}.expiring-list{display:flex;flex-direction:column;gap:.75rem}.expiring-item{background:#fff;border-radius:8px;padding:.875rem;border-left:4px solid #ffc107}.expiring-item.expired{border-left-color:#dc3545;background:#fff5f5}.expiring-item.expiring-soon{border-left-color:#fd7e14}.expiring-info{margin-bottom:.75rem}.expiring-name{font-weight:600;color:#333;font-size:1rem;margin-bottom:.25rem}.expiring-details{font-size:.8rem;color:#666}.expiring-actions{display:flex;flex-wrap:wrap;gap:.5rem}.action-btn{padding:.4rem .6rem;border:none;border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .2s;display:flex;align-items:center;gap:.25rem}.action-btn.good{background:#d4edda;color:#155724}.action-btn.good:hover{background:#c3e6cb}.action-btn.snooze{background:#e2e3e5;color:#383d41}.action-btn.snooze:hover{background:#d6d8db}.action-btn.remove{background:#f8d7da;color:#721c24}.action-btn.remove:hover{background:#f5c6cb}.action-loading{color:#888;font-style:italic}.no-expiring{text-align:center;padding:2rem;background:#f0fff4;border-radius:8px;border:1px solid #c3e6cb}.no-expiring-icon{font-size:2.5rem;display:block;margin-bottom:.5rem}.no-expiring p{color:#155724;margin:0}.loading-alerts{text-align:center;padding:2rem;color:#888}.announcements-section{margin-top:.5rem}.announcements-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.announcement-item{background:#f8f9fa;border-radius:8px;padding:1rem;position:relative;border-left:3px solid #ddd}.announcement-item.new{border-left-color:#28a745;background:#f0fff4}.new-badge{position:absolute;top:.75rem;right:.75rem;background:#28a745;color:#fff;font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:10px}.announcement-date{font-size:.75rem;color:#888;margin-bottom:.25rem}.announcement-title{font-weight:600;color:#333;margin-bottom:.5rem}.announcement-description{font-size:.9rem;color:#555;line-height:1.5}.tips-list{display:flex;flex-direction:column;gap:.75rem}.coming-soon-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px dashed #ddd}.coming-soon-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.coming-soon-item{display:flex;gap:.75rem;padding:.875rem;background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border-radius:8px;border:1px solid #e0e7ff}.coming-soon-icon{font-size:1.5rem;flex-shrink:0}.coming-soon-content{flex:1}.coming-soon-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;flex-wrap:wrap;gap:.5rem}.coming-soon-title{font-weight:600;color:#333}.status-badge{font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:10px;text-transform:uppercase}.status-in-development{background:#d4edda;color:#155724}.status-planned{background:#cce5ff;color:#004085}.status-exploring{background:#fff3cd;color:#856404}.coming-soon-description{font-size:.85rem;color:#555;line-height:1.4}.tip-item{display:flex;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;align-items:flex-start}.tip-icon{font-size:1.75rem;flex-shrink:0}.tip-content{flex:1}.tip-title{font-weight:600;color:#333;margin-bottom:.25rem}.tip-description{font-size:.9rem;color:#555;line-height:1.4}@media(max-width:480px){.notifications-modal{max-height:90vh;margin:.5rem}.notifications-header{padding:1rem}.tab-btn{font-size:.8rem;padding:.75rem .25rem}.notifications-content,.expiring-item{padding:.75rem}.expiring-actions{flex-direction:column}.action-btn{justify-content:center;width:100%}.tip-item{flex-direction:column;gap:.5rem}.tip-icon{font-size:1.5rem}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
