*{box-sizing:border-box;margin:0;padding:0}:root{--cream:#f7f2e8;--cream2:#ede6d3;--ink:#2a2416;--muted:#7a6e5b;--sage:#4a6741;--sage-light:#d4e3c8;--sage-bg:#ebf2e5;--terra:#c4552a;--terra-light:#f5d9cc;--terra-bg:#faf0eb;--gold:#d4a017;--gold-light:#faf0c8;--border:#d8ceb8;--radius:14px}body{background:var(--cream);color:var(--ink);min-height:100vh;font-family:DM Sans,sans-serif}#root{min-height:100vh}nav{background:var(--cream);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;height:64px;padding:0 2.5rem;display:flex;position:sticky;top:0}.logo{color:var(--ink);cursor:pointer;font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;text-decoration:none}.logo em{color:var(--terra);font-style:italic}.nav-right{align-items:center;gap:1rem;display:flex}.back-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-family:DM Sans,sans-serif;font-size:.875rem;transition:color .2s;display:flex}.back-btn:hover{color:var(--ink)}.ing-summary-pill{background:var(--sage-bg);border:1px solid var(--sage-light);color:var(--sage);border-radius:50px;padding:6px 14px;font-size:.8rem;font-weight:500}.home-hero{text-align:center;padding:4rem 2.5rem 2.5rem}.eyebrow{background:var(--terra-bg);border:1px solid var(--terra-light);color:var(--terra);letter-spacing:.5px;text-transform:uppercase;border-radius:50px;align-items:center;gap:8px;margin-bottom:1.25rem;padding:6px 14px;font-size:.75rem;font-weight:500;display:inline-flex}.home-hero h1{color:var(--ink);letter-spacing:-1px;margin-bottom:1rem;font-family:Playfair Display,serif;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.05}.home-hero h1 em{color:var(--terra);font-style:italic}.home-hero p{color:var(--muted);max-width:440px;margin:0 auto;font-size:1rem;font-weight:300;line-height:1.7}.input-section{max-width:960px;margin:0 auto;padding:2rem 2.5rem 3rem}.input-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden}.input-cols{grid-template-columns:1fr 80px 1fr;display:grid}.input-col{padding:2rem}.input-divider{z-index:1;justify-content:center;align-items:center;display:flex;position:relative}.input-divider:before{content:"";background:var(--border);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.or-badge{border:1px solid var(--border);width:72px;height:72px;color:var(--muted);z-index:2;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:500;display:flex;position:relative}.col-title{color:var(--ink);margin-bottom:.25rem;font-family:Playfair Display,serif;font-size:1.2rem}.col-sub{color:var(--muted);margin-bottom:1.25rem;font-size:.78rem;font-weight:300;line-height:1.5}.upload-zone{border:1.5px dashed var(--border);text-align:center;cursor:pointer;background:var(--cream);border-radius:10px;padding:2rem 1rem;transition:all .2s}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--terra);background:var(--terra-bg)}.upload-icon{background:var(--terra-bg);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto .75rem;font-size:1.25rem;display:flex}.upload-zone p{color:var(--muted);font-size:.78rem;line-height:1.6}.upload-zone strong{color:var(--terra);font-weight:500}.photo-thumbs{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.thumb{border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb-x{color:#fff;cursor:pointer;background:#2a2416b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;line-height:1;display:flex;position:absolute;top:3px;right:3px}.detected-label{color:var(--muted);margin-top:10px;margin-bottom:5px;font-size:.75rem;font-weight:400}.detected-chips{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.detecting-msg{color:var(--muted);margin-top:8px;font-size:.78rem;font-style:italic}.text-row{gap:8px;margin-bottom:.875rem;display:flex}.text-row input{border:1px solid var(--border);color:var(--ink);background:var(--cream);border-radius:8px;outline:none;flex:1;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.875rem;transition:border-color .2s}.text-row input:focus{border-color:var(--sage)}.add-btn{background:var(--sage);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:500;transition:background .2s}.add-btn:hover{background:var(--ink)}.chip-list{flex-wrap:wrap;gap:6px;min-height:40px;display:flex}.chip{background:var(--sage-bg);border:1px solid var(--sage-light);color:var(--sage);border-radius:50px;align-items:center;gap:5px;padding:4px 11px;font-size:.78rem;display:inline-flex}.chip-x{cursor:pointer;opacity:.5;color:var(--sage);background:0 0;border:none;padding:0;font-size:1rem;line-height:1;transition:opacity .2s}.chip-x:hover{opacity:1}.empty-hint{color:var(--muted);padding:10px 0;font-size:.78rem;font-style:italic;font-weight:300}.cook-footer{background:var(--cream2);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 2rem;display:flex}.total-count{color:var(--muted);font-size:.875rem}.total-count strong{color:var(--ink);font-weight:500}.footer-label{color:var(--muted);margin-bottom:.5rem;font-size:.875rem}.footer-label strong{color:var(--ink)}.footer-chips{flex-wrap:wrap;gap:6px;display:flex}.cook-btn{background:var(--terra);color:#fff;cursor:pointer;letter-spacing:.2px;border:none;border-radius:50px;padding:13px 40px;font-family:DM Sans,sans-serif;font-size:1rem;font-weight:500;transition:all .2s}.cook-btn:hover{background:var(--ink);transform:translateY(-1px)}.cook-btn:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;transform:none}.results-header{max-width:1100px;margin:0 auto;padding:2.5rem 2.5rem 0}.results-title{color:var(--ink);letter-spacing:-.5px;margin-bottom:.375rem;font-family:Playfair Display,serif;font-size:clamp(1.75rem,3vw,2.75rem)}.results-sub{color:var(--muted);margin-bottom:2rem;font-size:.9rem;font-weight:300}.results-sub strong{color:var(--sage);font-weight:500}.sort-bar{flex-wrap:wrap;align-items:center;gap:.75rem;max-width:1100px;margin:0 auto;padding:0 2.5rem 1.5rem;display:flex}.sort-label{color:var(--muted);white-space:nowrap;font-size:.8rem;font-weight:400}.sort-tabs{background:var(--cream2);border:1px solid var(--border);border-radius:50px;gap:4px;padding:4px;display:flex}.sort-tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:50px;padding:7px 22px;font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:400;transition:all .2s}.sort-tab.active{color:var(--ink);background:#fff;font-weight:500;box-shadow:0 1px 4px #2a24161f}.recipe-search{border:1px solid var(--border);color:var(--ink);background:var(--cream);border-radius:8px;outline:none;flex-shrink:0;width:220px;padding:7px 14px;font-family:DM Sans,sans-serif;font-size:.875rem;transition:border-color .2s}.recipe-search:focus{border-color:var(--sage)}.results-count{color:var(--muted);font-size:.8rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;max-width:1100px;margin:0 auto;padding:0 2.5rem 4rem;display:grid}.recipe-card{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;transition:transform .2s,box-shadow .2s;overflow:hidden}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #2a24161a}.recipe-img{justify-content:center;align-items:center;height:150px;font-size:2.75rem;display:flex;position:relative}.rank-badge{background:var(--ink);color:var(--cream);border-radius:50px;padding:4px 10px;font-size:.7rem;font-weight:500;position:absolute;top:10px;left:10px}.score-badge{border-radius:50px;padding:4px 10px;font-size:.7rem;font-weight:500;position:absolute;top:10px;right:10px}.score-high{background:var(--sage);color:#fff}.score-mid{background:var(--gold-light);color:#6b4a00}.score-low{background:var(--terra-bg);color:var(--terra)}.recipe-body{padding:1.125rem 1.25rem 1.375rem}.recipe-tags{flex-wrap:wrap;gap:5px;margin-bottom:.625rem;display:flex}.tag{border-radius:50px;padding:3px 9px;font-size:.68rem;font-weight:500}.tag-healthy{background:var(--sage-bg);color:var(--sage)}.tag-balanced{background:var(--gold-light);color:#6b4a00}.tag-indulgent{background:var(--terra-bg);color:var(--terra)}.recipe-name{color:var(--ink);margin-bottom:.375rem;font-family:Playfair Display,serif;font-size:1.05rem;line-height:1.3}.recipe-meta{color:var(--muted);flex-wrap:wrap;gap:6px 10px;margin-bottom:.875rem;font-size:.78rem;font-weight:300;display:flex}.recipe-stats{border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:4px;padding-top:.75rem;display:grid}.stat-item{text-align:center}.stat-val{color:var(--ink);font-size:.875rem;font-weight:500}.stat-key{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-top:1px;font-size:.65rem}.health-row{align-items:center;gap:8px;margin-bottom:.875rem;display:flex}.health-label{color:var(--muted);white-space:nowrap;font-size:.75rem}.health-bar-bg{background:var(--cream2);border-radius:3px;flex:1;height:5px;overflow:hidden}.health-bar-fill{border-radius:3px;height:100%}.health-val{color:var(--sage);white-space:nowrap;font-size:.75rem;font-weight:500}.match-row{align-items:center;gap:8px;margin-bottom:.875rem;display:flex}.match-label{color:var(--muted);white-space:nowrap;font-size:.75rem}.match-bar-bg{background:var(--cream2);border-radius:3px;flex:1;height:5px;overflow:hidden}.match-bar-fill{background:var(--terra);border-radius:3px;height:100%}.match-val{color:var(--terra);white-space:nowrap;font-size:.75rem;font-weight:500}.view-btn{border:1px solid var(--border);width:100%;color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;margin-top:1rem;padding:9px;font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:400;transition:all .2s}.view-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.loading-state{text-align:center;color:var(--muted);padding:4rem 2rem;font-size:.95rem}.error-state{text-align:center;color:var(--terra);padding:4rem 2rem;font-size:.95rem}.empty-state{text-align:center;color:var(--muted);padding:4rem 2rem}.empty-state h3{color:var(--ink);margin-bottom:.5rem;font-family:Playfair Display,serif;font-size:1.5rem}@media (width<=700px){.input-cols{grid-template-columns:1fr}.input-divider{display:none}nav{padding:0 1rem}.home-hero{padding:2.5rem 1rem 1.5rem}.input-section{padding:1rem 1rem 2rem}.sort-bar{gap:.625rem;padding:0 1rem 1.25rem}.sort-label{display:none}.recipe-search{width:100%}.recipe-grid{padding:0 1rem 3rem}.results-header{padding:1.5rem 1rem 0}}
