.ingredient-input-section{display:flex;flex-direction:column;gap:1rem}.ingredient-input-section h3{font-size:1.3rem;color:var(--dark);margin-bottom:.5rem}.input-wrapper{display:flex;gap:.75rem}.search-input-container{flex:1;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:1rem;font-size:1.2rem;pointer-events:none}.ingredient-input{width:100%;padding:.875rem 1rem .875rem 3rem;border:2px solid var(--border);border-radius:12px;font-size:1rem;transition:all .3s ease}.ingredient-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff6b6b1a}.clear-input-btn{position:absolute;right:.5rem;background:var(--light);border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:.9rem;color:var(--text-light)}.add-btn{padding:.875rem 1.75rem;background:var(--primary);color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.add-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-2px)}.add-btn:disabled{opacity:.5;cursor:not-allowed}.suggestions-dropdown{background:#fff;border:2px solid var(--border);border-radius:12px;max-height:250px;overflow-y:auto;box-shadow:var(--shadow)}.suggestion-item{width:100%;padding:.875rem 1rem;border:none;background:#fff;text-align:left;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:background .2s;border-bottom:1px solid var(--light)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{background:var(--light)}.suggestion-icon{font-size:1.2rem}.selected-ingredients{display:flex;flex-direction:column;gap:1rem}.ingredients-header{display:flex;justify-content:space-between;align-items:center}.ingredients-count{font-weight:600;color:var(--text)}.clear-all-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-light);cursor:pointer;font-size:.9rem;transition:all .3s}.clear-all-btn:hover{border-color:var(--danger);color:var(--danger)}.ingredient-chips{display:flex;flex-wrap:wrap;gap:.75rem}.ingredient-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border-radius:50px;font-weight:600;font-size:.95rem;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.chip-text{text-transform:capitalize}.chip-remove{background:#ffffff4d;border:none;color:#fff;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.chip-remove:hover{background:#ffffff80;transform:scale(1.1)}.quick-add-section{margin-top:1rem}.quick-add-title{font-weight:600;color:var(--text-light);margin-bottom:.75rem;font-size:.95rem}.quick-add-chips{display:flex;flex-wrap:wrap;gap:.5rem}.quick-add-chip{padding:.5rem 1rem;background:var(--light);border:2px dashed var(--border);border-radius:50px;color:var(--text);cursor:pointer;font-size:.9rem;transition:all .3s;text-transform:capitalize}.quick-add-chip:hover:not(:disabled){background:var(--primary);color:#fff;border-style:solid;border-color:var(--primary);transform:translateY(-2px)}@media (max-width: 768px){.input-wrapper{flex-direction:column}.add-btn{width:100%}}.image-upload-container{display:flex;flex-direction:column;gap:1rem}.image-upload-container h3{font-size:1.3rem;color:var(--dark);margin-bottom:.5rem}.upload-zone{border:3px dashed var(--border);border-radius:16px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s;background:var(--light)}.upload-zone:hover:not(.disabled){border-color:var(--primary);background:#ff6b6b0d}.upload-zone.drag-active{border-color:var(--primary);background:#ff6b6b1a;transform:scale(1.02)}.upload-zone.disabled{opacity:.6;cursor:not-allowed}.upload-icon{font-size:4rem;margin-bottom:1rem}.upload-text{font-size:1.2rem;font-weight:600;color:var(--dark);margin-bottom:.5rem}.upload-subtext{color:var(--text-light)}.preview-container{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.preview-image{width:100%;max-height:400px;object-fit:cover}.clear-preview-btn{position:absolute;top:1rem;right:1rem;background:#fff;border:none;padding:.75rem 1.5rem;border-radius:50px;cursor:pointer;font-weight:600;box-shadow:var(--shadow);transition:all .3s}.clear-preview-btn:hover{background:var(--danger);color:#fff;transform:translateY(-2px)}.processing-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff}.upload-tips{background:var(--light);padding:1rem;border-radius:12px;font-size:.9rem}.upload-tips p{font-weight:600;margin-bottom:.5rem}.upload-tips ul{margin-left:1.5rem;color:var(--text-light)}@media (max-width:768px){.upload-zone{padding:2rem 1rem}.upload-icon{font-size:3rem}}.filter-panel{background:var(--light);border-radius:12px;padding:1rem}.filter-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.toggle-filters-btn{flex:1;padding:1rem;background:#fff;border:none;border-radius:12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:600;transition:all .3s;box-shadow:var(--shadow)}.toggle-filters-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.filter-badge{background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:50px;font-size:.85rem;margin-left:.5rem}.toggle-icon{color:var(--text-light)}.reset-filters-btn{padding:.75rem 1.25rem;background:#fff;border:1px solid var(--border);border-radius:12px;cursor:pointer;font-weight:600;transition:all .3s}.reset-filters-btn:hover{border-color:var(--primary);color:var(--primary)}.filter-content{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-label{font-weight:600;color:var(--text);font-size:.95rem}.filter-select{padding:.75rem;border:2px solid var(--border);border-radius:10px;font-size:1rem;cursor:pointer;transition:all .3s}.filter-select:focus{outline:none;border-color:var(--primary)}.filter-range{width:100%;height:6px;background:var(--border);border-radius:3px;cursor:pointer;-webkit-appearance:none}.filter-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--primary);border-radius:50%;cursor:pointer}.filter-range::-moz-range-thumb{width:20px;height:20px;background:var(--primary);border-radius:50%;cursor:pointer;border:none}.range-labels{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-light);margin-top:.5rem}.sort-options{display:flex;gap:.5rem;flex-wrap:wrap}.sort-btn{padding:.75rem 1.25rem;background:#fff;border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .3s;font-size:.9rem}.sort-btn:hover{border-color:var(--primary)}.sort-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.quick-filters{display:flex;flex-direction:column;gap:.75rem}.quick-filters-title{font-weight:600;color:var(--text);font-size:.95rem}.quick-filter-tags{display:flex;gap:.5rem;flex-wrap:wrap}.quick-filter-tag{padding:.625rem 1rem;background:#fff;border:2px solid var(--border);border-radius:50px;cursor:pointer;transition:all .3s;font-size:.9rem}.quick-filter-tag:hover{border-color:var(--primary)}.quick-filter-tag.active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (max-width:768px){.filter-row{grid-template-columns:1fr}.sort-options{flex-direction:column}.sort-btn{width:100%}}.recipe-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s;cursor:pointer;display:flex;flex-direction:column}.recipe-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.recipe-image-container{position:relative;width:100%;padding-top:66.67%;overflow:hidden}.recipe-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}.recipe-card:hover .recipe-image{transform:scale(1.05)}.save-btn{position:absolute;top:1rem;right:1rem;background:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:1.5rem;cursor:pointer;box-shadow:var(--shadow);transition:all .3s;z-index:2}.save-btn:hover{transform:scale(1.1)}.save-btn.saved{animation:heartbeat .3s}.match-badge{position:absolute;bottom:1rem;left:1rem;padding:.5rem 1rem;border-radius:50px;font-weight:700;font-size:.9rem;box-shadow:var(--shadow)}.match-badge.high{background:var(--success);color:#fff}.match-badge.medium{background:var(--warning);color:#fff}.match-badge.low{background:var(--danger);color:#fff}.recipe-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.recipe-title{font-size:1.25rem;font-weight:700;color:var(--dark);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--text-light);font-size:.9rem}.meta-item{display:flex;align-items:center;gap:.25rem}.meta-icon{font-size:1.1rem}.dietary-badges{display:flex;flex-wrap:wrap;gap:.5rem}.dietary-badge{padding:.375rem .75rem;background:var(--light);border-radius:50px;font-size:.85rem;color:var(--text)}.ingredients-match{display:flex;flex-direction:column;gap:.5rem}.match-bar{width:100%;height:8px;background:var(--light);border-radius:4px;overflow:hidden}.match-bar-fill{height:100%;background:linear-gradient(90deg,var(--success),var(--primary));border-radius:4px;transition:width .5s}.match-text{display:flex;justify-content:space-between;font-size:.85rem}.match-used{color:var(--success);font-weight:600}.match-missed{color:var(--text-light)}.nutrition-quick{display:flex;gap:1.5rem;padding:1rem;background:var(--light);border-radius:12px;justify-content:space-around}.nutrition-item{text-align:center;font-size:.9rem;color:var(--text-light)}.nutrition-item strong{display:block;font-size:1.1rem;color:var(--dark)}.recipe-rating{display:flex;flex-direction:column;gap:.5rem}.star-container{display:flex;gap:.25rem}.star{background:none;border:none;font-size:1.3rem;cursor:pointer;transition:transform .2s;padding:0}.star:hover,.star.filled{transform:scale(1.15)}.rating-text{font-size:.85rem;color:var(--text-light)}.view-recipe-btn{width:100%;padding:.875rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:12px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s;margin-top:auto}.view-recipe-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b66}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media (max-width:480px){.recipe-content{padding:1.25rem}.recipe-title{font-size:1.1rem}.nutrition-quick{flex-wrap:wrap;gap:1rem}}.recipe-grid-container{width:100%}.results-header{background:#fff;padding:2rem;border-radius:20px;box-shadow:var(--shadow);margin-bottom:2rem;text-align:center}.results-header h2{color:var(--dark);margin-bottom:.5rem}.results-header p{color:var(--text-light)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem}@media (max-width:768px){.recipe-grid{grid-template-columns:1fr;gap:1.5rem}.results-header{padding:1.5rem}}@media (max-width:480px){.recipe-grid{gap:1rem}}.saved-recipes-container{width:100%}.saved-header{background:#fff;padding:2rem;border-radius:20px;box-shadow:var(--shadow);margin-bottom:2rem;text-align:center}.saved-header h2{color:var(--dark);margin-bottom:.5rem}.saved-header p{color:var(--text-light)}.saved-empty{background:#fff;padding:4rem 2rem;border-radius:20px;text-align:center;box-shadow:var(--shadow)}.empty-icon{font-size:5rem;margin-bottom:1.5rem}.saved-empty h2{color:var(--dark);margin-bottom:1rem}.saved-empty p{color:var(--text-light);font-size:1.1rem;margin-bottom:.5rem}.empty-hint{color:var(--primary);font-weight:600}.saved-section{margin-bottom:3rem}.section-title{font-size:1.5rem;color:#fff;font-weight:700;margin-bottom:1.5rem;padding-left:.5rem;border-left:4px solid var(--primary)}.saved-tips{background:#fff;padding:1.5rem;border-radius:16px;text-align:center;color:var(--text-light);box-shadow:var(--shadow);font-size:.95rem}@media (max-width:768px){.saved-header{padding:1.5rem}.saved-empty{padding:3rem 1.5rem}.section-title{font-size:1.25rem}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-content{background:#fff;border-radius:24px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease}.modal-close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;border-radius:50%;background:#fff;border:none;font-size:1.5rem;cursor:pointer;z-index:10;box-shadow:var(--shadow);transition:all .3s}.modal-close:hover{background:var(--danger);color:#fff;transform:rotate(90deg)}.modal-header{position:relative;height:400px;overflow:hidden}.modal-image{width:100%;height:100%;object-fit:cover}.modal-header-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);display:flex;flex-direction:column;justify-content:flex-end;padding:2rem}.modal-title{color:#fff;font-size:2rem;font-weight:800;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.modal-actions{display:flex;gap:1rem}.modal-save-btn{padding:.875rem 1.75rem;border:none;border-radius:50px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s;box-shadow:var(--shadow)}.modal-save-btn.saved{background:var(--primary);color:#fff}.modal-save-btn:not(.saved){background:#fff;color:var(--dark)}.modal-save-btn:hover{transform:translateY(-2px)}.modal-body{padding:2rem}.modal-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.meta-card{background:var(--light);padding:1.5rem;border-radius:16px;text-align:center;transition:all .3s}.meta-card:hover{background:var(--primary);color:#fff;transform:translateY(-4px)}.meta-icon{font-size:2rem;margin-bottom:.5rem}.meta-value{font-size:1.75rem;font-weight:800;margin-bottom:.25rem}.meta-label{font-size:.9rem;opacity:.8}.modal-tags{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.tag{padding:.625rem 1.25rem;background:var(--light);border-radius:50px;font-weight:600;font-size:.9rem}.modal-rating-section{background:var(--light);padding:1.5rem;border-radius:16px;margin-bottom:2rem;text-align:center}.section-label{font-weight:600;margin-bottom:1rem}.star-rating-large{display:flex;gap:.5rem;justify-content:center}.star-large{background:none;border:none;font-size:2.5rem;cursor:pointer;transition:all .3s;padding:0}.star-large:hover,.star-large.filled{transform:scale(1.15)}.rating-note{margin-top:1rem;color:var(--text-light);font-size:.95rem}.modal-section{margin-bottom:2.5rem}.section-title{font-size:1.5rem;font-weight:700;color:var(--dark);margin-bottom:1.5rem}.recipe-summary{color:var(--text);line-height:1.8;font-size:1.05rem}.ingredients-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem}.ingredient-item{display:flex;gap:.75rem;padding:.75rem;background:var(--light);border-radius:10px;align-items:center}.ingredient-bullet{color:var(--primary);font-size:1.25rem;font-weight:800}.ingredient-text{color:var(--text);line-height:1.5}.instructions-list{counter-reset:step;display:flex;flex-direction:column;gap:1.5rem}.instruction-step{display:flex;gap:1.5rem;align-items:flex-start}.step-number{min-width:48px;height:48px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.25rem;flex-shrink:0}.step-text{flex:1;color:var(--text);line-height:1.8;padding-top:.5rem;font-size:1.05rem}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem}.nutrition-card{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;padding:1.5rem;border-radius:16px;text-align:center;transition:all .3s}.nutrition-card:hover{transform:translateY(-4px)}.nutrition-value{font-size:2rem;font-weight:800;margin-bottom:.5rem}.nutrition-label{font-size:.95rem;opacity:.9}.nutrition-details{background:var(--light);border-radius:12px;padding:1rem}.nutrient-row{display:flex;justify-content:space-between;padding:.75rem;border-bottom:1px solid var(--border)}.nutrient-row:last-child{border-bottom:none}.nutrient-name{font-weight:600;color:var(--text)}.nutrient-amount{color:var(--text-light)}.source-link{display:inline-block;padding:1rem 2rem;background:var(--primary);color:#fff;text-decoration:none;border-radius:12px;font-weight:600;transition:all .3s}.source-link:hover{background:var(--primary-dark);transform:translateY(-2px)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.modal-backdrop{padding:0;align-items:flex-end}.modal-content{max-height:95vh;border-bottom-left-radius:0;border-bottom-right-radius:0}.modal-header{height:300px}.modal-title{font-size:1.5rem}.modal-body{padding:1.5rem}.modal-meta{grid-template-columns:repeat(2,1fr)}.meta-value{font-size:1.5rem}.ingredients-list{grid-template-columns:1fr}.step-number{min-width:40px;height:40px;font-size:1.1rem}.nutrition-grid{grid-template-columns:repeat(2,1fr)}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #FF6B6B;--primary-dark: #EE5A52;--secondary: #4ECDC4;--accent: #FFE66D;--dark: #2C3E50;--light: #ECF0F1;--success: #2ECC71;--warning: #F39C12;--danger: #E74C3C;--text: #2C3E50;--text-light: #7F8C8D;--border: #E0E0E0;--shadow: 0 2px 8px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.15)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#fff;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.header-content{max-width:1400px;margin:0 auto;padding:1.5rem 1rem;text-align:center}.header-content h1{font-size:2.5rem;color:var(--primary);margin-bottom:.5rem;font-weight:800}.header-content p{color:var(--text-light);font-size:1.1rem}.header-nav{display:flex;justify-content:center;gap:1rem;padding:0 1rem 1rem;max-width:1400px;margin:0 auto}.header-nav button{padding:.75rem 1.5rem;border:none;background:var(--light);color:var(--text);border-radius:50px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.header-nav button:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}.header-nav button.active{background:var(--primary);color:#fff}.app-main{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:2rem 1rem}.input-section{margin-bottom:3rem}.input-container{background:#fff;border-radius:20px;padding:2rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1.5rem}.search-btn{width:100%;padding:1rem 2rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:12px;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.search-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 20px #ff6b6b66}.search-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner-small{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.error-message{background:#fff3cd;border-left:4px solid var(--warning);padding:1rem 1.5rem;border-radius:8px;margin-bottom:2rem;display:flex;align-items:center;gap:.75rem;font-weight:500;color:var(--dark)}.loading-state{text-align:center;padding:4rem 2rem;color:#fff}.spinner{width:60px;height:60px;border:5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{font-size:1.3rem;font-weight:600}.empty-state,.welcome-state{background:#fff;border-radius:20px;padding:4rem 2rem;text-align:center;box-shadow:var(--shadow-lg)}.empty-icon,.welcome-icon{font-size:5rem;margin-bottom:1.5rem}.welcome-state h2{font-size:2rem;color:var(--dark);margin-bottom:1rem}.welcome-state p{font-size:1.2rem;color:var(--text-light);margin-bottom:2rem}.feature-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;max-width:800px;margin:0 auto}.feature{background:var(--light);padding:1rem;border-radius:12px;font-weight:600;color:var(--dark)}.app-footer{background:#fff;padding:2rem 1rem;text-align:center;color:var(--text-light);margin-top:auto}.app-footer p{margin:.25rem 0}@media (max-width: 768px){.header-content h1{font-size:2rem}.header-content p{font-size:1rem}.header-nav{flex-direction:column;gap:.75rem}.header-nav button{width:100%}.app-main{padding:1rem}.input-container{padding:1.5rem}.search-btn{font-size:1rem;padding:.875rem 1.5rem}.welcome-icon,.empty-icon{font-size:3.5rem}.welcome-state h2{font-size:1.5rem}.feature-list{grid-template-columns:1fr}}@media (max-width: 480px){.header-content{padding:1rem}.header-content h1{font-size:1.75rem}.welcome-state,.empty-state{padding:3rem 1.5rem}}
