:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--radius:12px;--background:#fff;--foreground:#1f2937;--card:#fff;--card-foreground:#1f2937;--primary:#00be3c;--primary-hover:#00d343;--primary-foreground:#fff;--secondary:#f3f4f6;--secondary-hover:#e5e7eb;--secondary-foreground:#111827;--muted-foreground:#6b7280;--border:#e5e7eb;font-family:system-ui,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;scroll-behavior:smooth}body{background-color:var(--background);color:var(--foreground);margin:0;font-family:inherit}.btn{text-align:center;border-radius:9999px;padding:.75rem 2rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-block}.btn-primary{background-color:var(--primary);color:var(--primary-foreground);border:none}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary);color:var(--secondary-foreground);border:1px solid var(--border)}.btn-secondary:hover{background-color:var(--secondary-hover)}.soft-shadow{box-shadow:0 0 24px #0000000d,0 1px 3px #0000001a}.auth-page{background:linear-gradient(to bottom right, var(--background), #f0fff4);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--card);width:100%;max-width:420px;color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius);padding:32px 28px}.auth-card h1{text-align:center;color:var(--primary);margin:0 0 8px;font-size:1.8rem}.auth-subtitle{text-align:center;color:var(--muted-foreground);margin-bottom:24px;font-size:.95rem}.auth-card form{flex-direction:column;gap:14px;display:flex}.auth-card input{border-radius:var(--radius);border:1px solid var(--border);background:var(--background);outline:none;width:100%;padding:12px 14px;font-size:.95rem;transition:all .15s}.auth-card input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #00be3c26}.auth-card input::placeholder{color:var(--muted-foreground)}.auth-card button{background:var(--primary);width:100%;color:var(--primary-foreground);cursor:pointer;border:none;border-radius:9999px;margin-top:6px;padding:.75rem 2rem;font-weight:500;transition:background-color .15s;display:inline-block}.auth-card button:hover:not(:disabled){background:var(--primary-hover)}.auth-card button:disabled{opacity:.5;cursor:not-allowed}.auth-success{text-align:center;font-size:.9rem}.auth-back{color:var(--primary);margin-bottom:12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:opacity .15s;display:inline-block}.auth-back:hover{opacity:.7}.auth-error{color:red;font-size:.9rem}.auth-footer{text-align:center;color:var(--muted-foreground);margin-top:20px;font-size:.9rem}.auth-footer a{color:var(--primary);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.header{z-index:100;background-color:var(--background);border-bottom:1px solid var(--border);width:100%;transition:max-width .3s,transform .3s,border-radius .3s,box-shadow .3s,border .3s,padding .3s}.header-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:.75rem 1.5rem;transition:padding .3s;display:flex}.header-left{align-items:center;gap:.75rem;display:flex}.header-logo{object-fit:cover;border-radius:8px;width:36px;height:36px}.header-title{font-size:1.1rem;font-weight:600}.header-nav{gap:2rem;display:flex}.header-link{color:var(--foreground);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .15s}.header-link:hover{color:var(--primary)}.header-actions{align-items:center;gap:1rem;display:flex}@media (width<=768px){.header-nav{display:none}.header{position:sticky;top:0}.btn{border-radius:9999px;padding:.5rem 1.5rem;font-size:.8rem}}@media (width>=768px){.header.is-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff;border:1px solid #d3d3d3;border-radius:9999px;max-width:900px;margin-left:auto;margin-right:auto;padding:.5rem 1rem;position:sticky;top:0;transform:translateY(.75rem);box-shadow:0 10px 30px #0000001a}}.landing-banner{background-color:#faebd7;flex-direction:column;justify-content:center;align-items:center;width:100%;padding-top:30px;display:flex;overflow:hidden}.utensils-title-wrapper{justify-content:center;align-items:center;margin-top:2rem;display:flex;position:relative}.title-group{z-index:1;flex-direction:column;align-items:center;margin-bottom:-50px;display:flex}.title-group>a{margin-top:15px}.bowl-title{color:#333;z-index:1;margin:0;font-size:4rem;font-weight:800}.bowl-subtitle{color:#666;z-index:1;margin:0;font-size:1.2rem}.utensil{z-index:2;width:auto;height:450px;position:absolute;left:50%}.bowl-scene{flex-shrink:0;width:680px;height:640px;margin-bottom:-250px;position:relative}.bowl-img{z-index:1;width:90%;height:auto;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.bowl-front-img{z-index:3;pointer-events:none;width:90%;height:auto;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.food-item{z-index:2;filter:drop-shadow(0 2px 4px #00000026);width:240px;height:auto;position:absolute}.food-chicken{width:600px;top:15%;left:50%}.food-chilli{width:220px;top:32%;left:1%}.food-longbeans{width:230px;top:34%;left:10%}.food-mushroom{width:200px;top:37%;left:20%}.food-potato{width:220px;top:35%;right:15%}.food-mushroom-2{width:180px;top:40%;right:7%}.food-mushroom-3{width:170px;top:42%;left:42%}.food-chilli-2{width:200px;top:40%;right:20%}.landing-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:900px;margin:0 auto;padding-top:4rem;display:flex}.features-section{padding:6rem 1.5rem}.section-header{text-align:center;max-width:700px;margin:0 auto 4rem}.section-subtitle{color:var(--muted-foreground);margin-top:1.5rem;font-size:1.125rem}.features-grid{grid-template-columns:1fr;gap:2rem;max-width:1200px;margin:0 auto;display:grid}.feature-card{background-color:var(--card);border:1px solid var(--border);border-radius:20px;padding:2rem;transition:transform .15s,box-shadow .15s}.feature-card:hover{transform:translateY(-4px)}.feature-icon{width:3rem;height:3rem;color:var(--primary);background-color:#2563eb1a;border-radius:14px;justify-content:center;align-items:center;margin-bottom:1rem;display:flex}.feature-title{color:var(--foreground);margin:0;font-size:1.25rem;font-weight:600}.feature-description{color:var(--muted-foreground);margin-top:1rem}@media (width>=640px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.features-grid{grid-template-columns:repeat(3,1fr)}}.card{background-color:#fff;border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 2px 8px #00000014}.card-image{object-fit:cover;width:100%;height:180px}.card-body{flex-direction:column;flex:1;gap:8px;padding:14px;display:flex}.card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.card-meta{color:#666;flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.card-save-btn{color:#fff;cursor:pointer;background-color:#22c55e;border:none;border-radius:8px;width:100%;margin-top:auto;padding:8px;font-size:13px}.save-btn{color:#fff;cursor:pointer;background-color:#22c55e;border:none;border-radius:24px;width:100%;margin-top:16px;padding:12px 32px;font-size:15px;font-weight:600}.save-btn.saved{color:#166534;background-color:#86efac}.similar-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.similar-card{cursor:pointer;background:#fff;border-radius:12px;padding:16px;transition:transform .15s;box-shadow:0 2px 8px #0000000f}.similar-card:hover{transform:translateY(-2px)}.similar-title{margin-bottom:8px;font-size:14px;font-weight:600;line-height:1.3}.similar-card span{color:#666;font-size:13px}.home-container{background-color:#f5f0e8;min-height:100vh;padding:40px}.home-title{text-align:center;margin-bottom:32px}.recipe-grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto;display:grid}.welcome-section{text-align:center;margin-bottom:40px}.search-bar{justify-content:center;gap:10px;margin-top:32px;margin-bottom:32px;display:flex}.search-input{border:1px solid #ddd;border-radius:24px;outline:none;width:400px;padding:12px 20px;font-size:16px}.search-button{color:#fff;cursor:pointer;background-color:#22c55e;border:none;border-radius:24px;padding:12px 24px;font-size:16px}.pagination{justify-content:center;align-items:center;gap:16px;margin:32px 0;display:flex}.pagination button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:10px 20px;font-size:18px;display:flex}.pagination button:disabled{opacity:.3;cursor:not-allowed}.pagination span{color:#666;font-size:15px}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#ffffffb3;border-radius:50px;justify-content:space-between;align-items:center;margin:16px 40px;padding:12px 24px;display:flex;box-shadow:0 2px 12px #00000014}.navbar-logo{font-size:18px;font-weight:700}.navbar-links{align-items:center;gap:24px;display:flex}.navbar-links a{color:#333;font-size:15px;text-decoration:none}.navbar-links button{color:#fff;cursor:pointer;background-color:#22c55e;border:none;border-radius:50px;padding:10px 24px;font-size:15px;font-weight:600}.search-wrapper{max-width:600px;margin:0 auto 32px;position:relative}.search-input-row{gap:10px;display:flex}.search-input{border:.5px solid #ddd;border-radius:24px;outline:none;flex:1;padding:12px 20px;font-size:15px}.search-input:focus{border-color:#22c55e}.search-button{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:24px;padding:12px 24px;font-size:15px}.filter-panel{background:#fff;border:.5px solid #eee;border-radius:16px;margin-top:8px;padding:20px}.filter-section{margin-bottom:20px}.filter-section:last-child{margin-bottom:0}.filter-label{color:#999;letter-spacing:.05em;margin-bottom:10px;font-size:12px;font-weight:500}.filter-chips{flex-wrap:wrap;gap:8px;display:flex}.chip{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:20px;padding:7px 16px;font-size:13px}.chip.active{color:#fff;background:#22c55e;border-color:#22c55e}.onboarding-page{background:linear-gradient(#eef7f1 0%,#f8fbf9 100%);justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.onboarding-card{background:#fff;border:1px solid #e6ece8;border-radius:24px;width:100%;max-width:820px;padding:40px;box-shadow:0 16px 50px #00000014}.onboarding-header{text-align:center;margin-bottom:32px}.onboarding-step{color:#16a34a;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:.85rem;font-weight:600}.onboarding-title{color:#111827;margin:0 0 12px;font-size:2rem;font-weight:700}.onboarding-subtitle{color:#4b5563;max-width:560px;margin:0 auto;font-size:1rem;line-height:1.6}.onboarding-form{flex-direction:column;gap:24px;display:flex}.onboarding-section{background:#f9fbfa;border:1px solid #e7eeea;border-radius:18px;padding:24px}.onboarding-section h2{color:#111827;margin:0 0 8px;font-size:1.15rem}.onboarding-section p{color:#6b7280;margin:0 0 16px;font-size:.95rem;line-height:1.5}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.option-card{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #dfe8e2;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;font-weight:500;transition:all .18s;display:flex}.option-card:hover{border-color:#22c55e;transform:translateY(-1px);box-shadow:0 6px 16px #22c55e14}.option-card input{accent-color:#22c55e;flex-shrink:0;width:16px;height:16px;margin:0}.onboarding-section input[type=text]{box-sizing:border-box;background:#fff;border:1px solid #d7e1da;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-size:.98rem;transition:border-color .18s,box-shadow .18s}.onboarding-section input[type=text]:focus{border-color:#22c55e;box-shadow:0 0 0 4px #22c55e1f}.success-message{color:#15803d;margin:-4px 0 0;font-weight:500}.onboarding-actions{justify-content:flex-end;gap:12px;margin-top:8px;display:flex}.secondary-btn,.primary-btn{cursor:pointer;border:none;border-radius:999px;padding:12px 20px;font-size:.95rem;font-weight:600;transition:transform .18s,box-shadow .18s,opacity .18s}.secondary-btn{color:#374151;background:#eef2f0}.primary-btn{color:#fff;background:#22c55e}.secondary-btn:hover,.primary-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #00000014}@media (width<=700px){.onboarding-card{padding:24px}.option-grid{grid-template-columns:1fr}.onboarding-actions{flex-direction:column}.secondary-btn,.primary-btn{width:100%}.onboarding-title{font-size:1.6rem}}.ingredient-search-row{align-items:center;gap:12px;display:flex}.ingredient-search-row input{flex:1}.add-chip-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:12px;padding:14px 18px;font-weight:600;transition:transform .18s,box-shadow .18s}.add-chip-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #22c55e26}.ingredient-chip-list{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.ingredient-chip{background:#fff;border:1px solid #dfe8e2;border-radius:999px;align-items:center;gap:10px;padding:8px 10px 8px 8px;display:flex;box-shadow:0 4px 10px #0000000a}.ingredient-chip-image{object-fit:cover;background:#f3f4f6;border-radius:50%;width:34px;height:34px}.ingredient-chip-label{color:#1f2937;text-transform:capitalize;font-size:.95rem;font-weight:500}.ingredient-chip-remove{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.1rem;line-height:1}.ingredient-chip-remove:hover{color:#111827}@media (width<=700px){.ingredient-search-row{flex-direction:column;align-items:stretch}.add-chip-btn{width:100%}}.quick-pick-section{margin-top:20px}.quick-pick-section h3{color:#111827;margin-bottom:12px;font-size:1rem;font-weight:600}.allergen-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.allergen-card{cursor:pointer;text-align:center;color:#1f2937;background:#fff;border:1px solid #dfe8e2;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px 10px;font-weight:500;transition:all .18s;display:flex}.allergen-card:hover{border-color:#22c55e;transform:translateY(-2px);box-shadow:0 8px 18px #22c55e1a}.allergen-card-image{object-fit:cover;background:#f3f4f6;border-radius:50%;width:52px;height:52px}.allergen-card span{color:#1f2937;font-size:.9rem;font-weight:500}.allergen-card.selected{background:#ecfdf5;border-color:#22c55e;box-shadow:0 6px 16px #22c55e1f}@media (width<=900px){.allergen-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.allergen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.progress-bar{background:#e5e7eb;border-radius:999px;width:100%;max-width:420px;height:10px;margin:18px auto 0;overflow:hidden}.progress-bar-fill{background:#22c55e;border-radius:999px;height:100%;transition:width .25s}.onboarding-actions-left,.onboarding-actions-right{gap:12px;display:flex}.onboarding-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}@media (width<=700px){.onboarding-actions{flex-direction:column;align-items:stretch}.onboarding-actions-left,.onboarding-actions-right{flex-direction:column;width:100%}}.detail-container{max-width:900px;margin:0 auto;padding:40px 24px}.back-btn{cursor:pointer;color:#22c55e;background:0 0;border:none;margin-bottom:24px;padding:0;font-size:15px}.detail-hero{gap:32px;margin-bottom:40px;display:flex}.detail-image{object-fit:cover;border-radius:16px;flex-shrink:0;width:400px;height:280px}.detail-hero-info{flex:1}.detail-title{margin-bottom:16px;font-size:26px;font-weight:700;line-height:1.3}.detail-meta{color:#666;flex-wrap:wrap;gap:12px;margin-bottom:16px;font-size:14px;display:flex}.detail-diets{flex-wrap:wrap;gap:8px;display:flex}.diet-tag{color:#16a34a;background-color:#dcfce7;border-radius:20px;padding:4px 12px;font-size:13px}.detail-section{margin-bottom:40px}.detail-section h2{border-bottom:1px solid #eee;margin-bottom:16px;padding-bottom:8px;font-size:20px;font-weight:600}.ingredients-list{color:#333;padding-left:20px;line-height:2;list-style:outside}.steps-list{color:#333;padding-left:20px;line-height:1.8}.steps-list li{margin-bottom:12px}.loading{text-align:center;color:#666;padding:40px}
