.app-shell{background:var(--bg);color:var(--text);font-family:var(--font-body);background-image:radial-gradient(1100px 560px at 85% -10%, color-mix(in oklch, var(--accent) 22%, transparent), transparent 62%), radial-gradient(800px 500px at -5% 95%, color-mix(in oklch, var(--good) 12%, transparent), transparent 65%);background-attachment:fixed;min-height:100vh;line-height:1.6;display:flex;position:relative}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:1;flex-direction:column;width:250px;min-height:100vh;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{font-family:var(--font-display);color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:1.4rem 1.4rem 1.2rem;font-size:1.3rem;font-weight:700;text-decoration:none;display:flex}.sidebar-logo .leaf{background:color-mix(in oklch, var(--accent) 20%, var(--surface2));width:32px;height:32px;box-shadow:0 0 0 1px color-mix(in oklch, var(--accent-glow) 45%, transparent) inset, 0 0 16px color-mix(in oklch, var(--accent-glow) 35%, transparent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;display:flex}.header-quota{font-family:var(--font-mono);border:1.5px solid var(--good);color:var(--good);box-shadow:0 0 8px color-mix(in oklch, var(--good) 45%, transparent);border-radius:999px;flex-shrink:0;margin-left:auto;padding:.2rem .55rem;font-size:.7rem;font-weight:700;display:none}.header-quota.warn{border-color:var(--danger);color:var(--danger);box-shadow:0 0 8px color-mix(in oklch, var(--danger) 45%, transparent)}.sidebar-nav{flex:1;padding:1rem .7rem}.nav-item{min-height:var(--pill-md-h);padding:0 var(--pill-md-px);color:var(--muted);font-size:var(--pill-md-fs);border:1px solid #0000;border-radius:999px;align-items:center;gap:.6rem;margin-bottom:.3rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:flex}.nav-item:hover{color:var(--text);background:var(--surface2)}.nav-item.active{color:var(--text);background:color-mix(in oklch, var(--accent) 14%, transparent);border-color:color-mix(in oklch, var(--accent-glow) 40%, transparent);box-shadow:0 0 20px color-mix(in oklch, var(--accent) 18%, transparent) inset}.nav-item.active .nav-icon{color:var(--accent-glow);filter:drop-shadow(0 0 5px color-mix(in oklch, var(--accent-glow) 70%, transparent))}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.nav-icon svg{width:100%;height:100%}.nav-item.nav-pro{color:var(--accent2);background:color-mix(in oklch, var(--accent2) 16%, transparent);border-color:color-mix(in oklch, var(--accent2) 45%, transparent);box-shadow:0 0 10px color-mix(in oklch, var(--accent2) 30%, transparent)}.nav-item.nav-pro:hover{color:var(--accent2);background:color-mix(in oklch, var(--accent2) 26%, transparent)}.nav-item.nav-pro .nav-icon{color:var(--accent2)}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.7rem;padding:1rem 1.1rem;display:flex}.mobile-footer{display:none}.user-pill{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.user-avatar{background:color-mix(in oklch, var(--accent) 30%, var(--surface2));width:30px;height:30px;color:var(--accent-glow);font-size:.75rem;font-weight:700;font-family:var(--font-display);box-shadow:0 0 0 1px color-mix(in oklch, var(--accent-glow) 40%, transparent) inset;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.user-plan{font-size:.62rem;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.3rem;margin-top:.1rem;display:inline-flex}.user-plan:before{content:"";background:var(--muted);border-radius:50%;width:5px;height:5px}.usage-wrap{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.7rem;padding:.6rem .7rem;display:flex}.usage-ring-wrap{flex-shrink:0;width:40px;height:40px;position:relative}.usage-ring-glow{filter:blur(5px);background:radial-gradient(circle, color-mix(in oklch, var(--good) 55%, transparent), transparent 70%);border-radius:50%;position:absolute;inset:-7px}.usage-ring-glow.warn{background:radial-gradient(circle, color-mix(in oklch, var(--danger) 55%, transparent), transparent 70%)}.usage-ring{border:2px solid var(--good);width:40px;height:40px;box-shadow:0 0 12px color-mix(in oklch, var(--good) 55%, transparent);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.usage-ring.warn{border-color:var(--danger);box-shadow:0 0 12px color-mix(in oklch, var(--danger) 55%, transparent)}.usage-ring-num{font-family:var(--font-mono);color:var(--good);font-size:.68rem;font-weight:700}.usage-ring.warn .usage-ring-num{color:var(--danger)}.usage-label{color:var(--muted);font-size:.68rem;line-height:1.35}.usage-label b{color:var(--text);font-weight:700}.main{z-index:1;flex:1;max-width:calc(100vw - 250px);margin-left:250px;padding:2.2rem 2.5rem;position:relative}.page-title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:.25rem;font-size:1.9rem;font-weight:700}.page-sub{color:var(--muted);margin-bottom:2rem;font-size:.88rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.card-label{font-size:.72rem;font-family:var(--font-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.form-section{margin-bottom:1.4rem}.form-section+.form-section{border-top:1px solid color-mix(in oklch, var(--border) 70%, transparent);padding-top:1.3rem}.form-section:last-child{margin-bottom:0}.section-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.section-dot.violet{background:var(--accent-glow);box-shadow:0 0 8px 1px color-mix(in oklch, var(--accent-glow) 70%, transparent)}.section-dot.amber{background:var(--accent2);box-shadow:0 0 8px 1px color-mix(in oklch, var(--accent2) 70%, transparent)}.section-dot.green{background:var(--good);box-shadow:0 0 8px 1px color-mix(in oklch, var(--good) 70%, transparent)}.section-dot.red{background:var(--danger);box-shadow:0 0 8px 1px color-mix(in oklch, var(--danger) 70%, transparent)}label{color:var(--muted);margin-bottom:.35rem;font-size:.82rem;font-weight:500;display:block}input,textarea,select{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius);font-size:.88rem;font-family:var(--font-body);outline:none;padding:.65rem .9rem;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--accent-glow);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent-glow) 18%, transparent)}textarea{resize:vertical;min-height:100px}.field{margin-bottom:1.1rem}.field-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field-3{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}.toggle-row{border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .6rem;display:flex}.toggle-row+.toggle-row{margin-top:.6rem}.toggle-row.locked{background:color-mix(in oklch, var(--accent2) 8%, transparent);border:1px dashed color-mix(in oklch, var(--accent2) 40%, transparent)}.toggle-left{align-items:center;gap:.7rem;display:flex}.toggle-switch{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:999px;flex-shrink:0;width:38px;height:22px;padding:0;position:relative}.toggle-switch:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .18s,background .18s;position:absolute;top:2px;left:2px}.toggle-switch.on{border-color:color-mix(in oklch, var(--good) 55%, transparent);background:color-mix(in oklch, var(--good) 20%, transparent);box-shadow:0 0 10px color-mix(in oklch, var(--good) 40%, transparent)}.toggle-switch.on:after{background:var(--good);box-shadow:0 0 6px 1px color-mix(in oklch, var(--good) 70%, transparent);transform:translate(16px)}.toggle-switch:disabled{opacity:.5;cursor:not-allowed}.toggle-text{color:var(--text);cursor:pointer;margin-bottom:0;font-size:.85rem;font-weight:500}.toggle-text.muted{color:var(--muted);font-size:.82rem}.upgrade-badge{color:var(--accent2);background:color-mix(in oklch, var(--accent2) 16%, transparent);border:1px solid color-mix(in oklch, var(--accent2) 45%, transparent);box-shadow:0 0 12px color-mix(in oklch, var(--accent2) 30%, transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .65rem .3rem .5rem;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex}.upgrade-badge svg{width:13px;height:13px}.cta-note{color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem;margin-top:.9rem;font-size:.78rem;display:flex}.stacked-action{margin-top:.6rem}.locked-pill{cursor:default;gap:.55rem}.locked-pill:hover{color:var(--muted);border-color:var(--border);transform:none}.upgrade-badge-mini{padding:.15rem .5rem .15rem .4rem;font-size:.66rem}.upgrade-badge-mini svg{width:11px;height:11px}.alert{border-radius:var(--radius);border:1px solid #0000;margin-bottom:1.2rem;padding:.85rem 1.1rem;font-size:.88rem}.alert-success{background:var(--success-bg);border-color:var(--success-border);color:var(--good)}.spinner{border:2px solid color-mix(in oklch, var(--accent-glow) 35%, transparent);border-top-color:var(--accent-glow);vertical-align:middle;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.tabs{gap:.5rem;margin-bottom:1.2rem;display:flex}.tab-btn{min-height:var(--pill-md-h);padding:0 var(--pill-md-px);border:1px solid var(--border);cursor:pointer;color:var(--muted);font-size:var(--pill-md-fs);font-family:var(--font-body);background:0 0;border-radius:999px;align-items:center;gap:.4rem;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.tab-btn:hover{color:var(--text);border-color:color-mix(in oklch, var(--text) 30%, var(--border))}.tab-btn.active{color:var(--accent-glow);background:color-mix(in oklch, var(--accent) 18%, transparent);border-color:color-mix(in oklch, var(--accent-glow) 65%, transparent);box-shadow:0 0 14px color-mix(in oklch, var(--accent-glow) 30%, transparent)}.tab-panel{display:none}.tab-panel.active{display:block}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:box-shadow .2s,border-color .2s;overflow:hidden}.recipe-card:hover{border-color:color-mix(in oklch, var(--accent-glow) 40%, var(--border));box-shadow:0 4px 26px color-mix(in oklch, var(--accent) 14%, transparent)}.recipe-card.expanded{border-color:color-mix(in oklch, var(--accent-glow) 45%, var(--border))}.recipe-header-toggle{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;align-items:center;gap:.9rem;padding:1.1rem 1.4rem;display:flex}.recipe-header-text{flex:1;min-width:0}.recipe-emoji{flex-shrink:0;font-size:1.7rem}.recipe-name{font-family:var(--font-display);margin-bottom:.2rem;font-size:1.1rem;font-weight:700}.recipe-desc{color:var(--muted);font-size:.85rem}.recipe-chevron{width:18px;height:18px;color:var(--muted);flex-shrink:0;transition:transform .2s}.recipe-card.expanded .recipe-chevron{color:var(--accent-glow);transform:rotate(180deg)}.recipe-meta{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:1.3rem;padding:1rem 1.4rem;display:flex}.recipe-stat{flex-direction:column;align-items:center;gap:.4rem;display:flex}.recipe-stat-ring{width:46px;height:46px;font-family:var(--font-mono);background:var(--surface2);text-align:center;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;line-height:1.1;display:flex}.recipe-stat-ring.time{border:2px solid var(--accent);color:var(--accent-glow);box-shadow:0 0 10px color-mix(in oklch, var(--accent) 40%, transparent)}.recipe-stat-ring.difficulty{border:2px solid var(--good);color:var(--good);box-shadow:0 0 10px color-mix(in oklch, var(--good) 40%, transparent)}.recipe-stat-ring.kcal{border:2px solid var(--accent2);color:var(--accent2);box-shadow:0 0 10px color-mix(in oklch, var(--accent2) 40%, transparent)}.recipe-stat-value,.recipe-stat-unit{white-space:nowrap;display:block}.recipe-stat-unit{opacity:.85;font-size:.55rem;font-weight:500}.recipe-stat-label{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.6rem}.recipe-body{padding:1.2rem 1.4rem}.recipe-section-title{font-size:.72rem;font-family:var(--font-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem}.ingredient-list{flex-direction:column;gap:.3rem;margin-bottom:1.2rem;list-style:none;display:flex}.ingredient-list li{padding-left:1rem;font-size:.85rem;position:relative}.ingredient-list li:before{content:"·";color:var(--accent-glow);position:absolute;left:0}.step-list{flex-direction:column;gap:.75rem;margin-bottom:1.2rem;list-style:none;display:flex}.step-list li{gap:.75rem;font-size:.88rem;display:flex}.step-num{background:var(--surface2);width:22px;height:22px;color:var(--accent-glow);border:1.5px solid var(--accent);box-shadow:0 0 8px color-mix(in oklch, var(--accent) 40%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:.7rem;font-weight:700;display:flex}.tip-list{flex-direction:column;gap:.4rem;list-style:none;display:flex}.tip-list li{color:var(--muted);padding-left:1.2rem;font-size:.82rem;position:relative}.tip-list li:before{content:"💡";font-size:.7rem;position:absolute;left:0}.grocery-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:.7rem;padding:.5rem 0;font-size:.88rem;display:flex}.grocery-item:last-child{border-bottom:none}.grocery-check{border:1.5px solid var(--border);border-radius:5px;flex-shrink:0;width:18px;height:18px;transition:background-color .15s,border-color .15s,box-shadow .15s}.grocery-check.checked{background:var(--good);border-color:var(--good);box-shadow:0 0 8px color-mix(in oklch, var(--good) 55%, transparent)}.grocery-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;margin-top:1rem;display:flex}@media (width<=900px){.sidebar{border-right:none;border-bottom:1px solid var(--border);z-index:5;flex-flow:wrap;width:100%;height:auto;min-height:auto;position:sticky;top:0;bottom:auto;left:auto}.sidebar-logo{border-bottom:none;flex:0 0 100%;padding:.9rem 1rem .4rem}.header-quota{align-items:center;display:inline-flex}.sidebar-nav{flex:0 0 100%;gap:.4rem;padding:0 .8rem .8rem;display:flex;overflow-x:auto}.nav-item{white-space:nowrap;flex:none;margin-bottom:0}.sidebar>.sidebar-footer{display:none}.main{max-width:100vw;margin-left:0;padding:1.2rem 1rem 2rem}.mobile-footer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.7rem;margin:0 1rem 1.5rem;padding:1rem 1.1rem;display:flex}}:root{--radius:12px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}.landing{background:var(--bg);color:var(--text);font-family:var(--font-body);background-image:radial-gradient(1200px 620px at 88% -8%, color-mix(in oklch, var(--accent) 16%, transparent), transparent 60%), radial-gradient(800px 520px at -4% 40%, color-mix(in oklch, var(--good) 8%, transparent), transparent 65%);background-attachment:fixed;line-height:1.65;overflow-x:hidden}.landing nav{background:var(--nav-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:1.1rem 2.5rem;display:flex;position:sticky;top:0}.landing .logo{font-family:var(--font-display);color:var(--text);align-items:center;gap:.4rem;font-size:1.3rem;font-weight:700;text-decoration:none;display:flex}.landing .nav-right{align-items:center;gap:.75rem;display:flex}.landing .hero{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;max-width:1100px;margin:0 auto;padding:6rem 2rem 4rem;display:grid}.landing .hero-badge{background:var(--accent-light);color:var(--accent-glow);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;font-weight:600;font-family:var(--font-mono);border:1px solid color-mix(in oklch, var(--accent-glow) 30%, transparent);border-radius:999px;align-items:center;gap:.4rem;margin-bottom:1.5rem;padding:.3rem .9rem;display:inline-flex}.landing .hero h1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:1.2rem;font-size:clamp(2.4rem,5vw,3.8rem);font-weight:700;line-height:1.1}.landing .hero h1 em{color:var(--accent-glow);font-style:italic}.landing .hero p{color:var(--muted);max-width:480px;margin-bottom:2rem;font-size:1.1rem}.landing .hero-cta{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.landing .hero-note{color:var(--muted);margin-top:.75rem;font-size:.8rem}.landing .demo-box{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft), 0 0 50px color-mix(in oklch, var(--accent) 14%, transparent);border-radius:18px;overflow:hidden}.landing .demo-bar{background:var(--surface2);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.landing .dot{border-radius:50%;width:11px;height:11px}.landing .dot-r{background:#ff5f57}.landing .dot-y{background:#ffbd2e}.landing .dot-g{background:#28c840}.landing .demo-inner{padding:1.5rem}.landing .demo-label{font-size:.7rem;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.landing .demo-input{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:10px;margin-bottom:1rem;padding:.85rem;font-size:.82rem;line-height:1.6}.landing .demo-recipes{flex-direction:column;gap:.6rem;display:flex}.landing .demo-recipe{background:var(--accent-light);border:1px solid color-mix(in oklch, var(--accent-glow) 25%, transparent);border-radius:10px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.landing .demo-recipe-name{color:var(--accent-glow);font-size:.88rem;font-weight:700}.landing .demo-recipe-meta{color:var(--muted);font-size:.75rem}.landing .section{max-width:1000px;margin:0 auto;padding:5rem 2rem}.landing .section-label{font-family:var(--font-mono);color:var(--accent-glow);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem;font-size:.75rem}.landing .section h2{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:3rem;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:700}.landing .steps{grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.landing .step-big-num{font-family:var(--font-display);color:var(--accent);text-shadow:0 0 20px color-mix(in oklch, var(--accent-glow) 45%, transparent);margin-bottom:.75rem;font-size:2.5rem;font-weight:700}.landing .step h3{font-family:var(--font-display);margin-bottom:.5rem;font-size:1.15rem;font-weight:700}.landing .step p{color:var(--muted);font-size:.88rem}.landing .features{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:5rem 2rem}.landing .features-inner{max-width:1000px;margin:0 auto}.landing .features-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:3rem;display:grid}.landing .feature-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:border-color .18s,box-shadow .18s}.landing .feature-card:hover{border-color:color-mix(in oklch, var(--accent-glow) 40%, var(--border));box-shadow:0 0 26px color-mix(in oklch, var(--accent) 12%, transparent)}.landing .feature-icon{margin-bottom:.75rem;font-size:1.5rem}.landing .feature-card h3{font-family:var(--font-display);margin-bottom:.4rem;font-size:1rem;font-weight:700}.landing .feature-card p{color:var(--muted);font-size:.85rem}.landing .pricing-grid{grid-template-columns:1fr 1fr;gap:1.5rem;max-width:640px;margin:3rem auto 0;display:grid}.landing .plan{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:2rem;position:relative}.landing .plan.featured{border-color:color-mix(in oklch, var(--accent-glow) 55%, transparent);box-shadow:0 0 0 1px color-mix(in oklch, var(--accent-glow) 30%, transparent), 0 0 40px color-mix(in oklch, var(--accent) 18%, transparent)}.landing .plan-badge{background:color-mix(in oklch, var(--accent) 25%, var(--surface));color:var(--accent-glow);white-space:nowrap;letter-spacing:.06em;border:1px solid color-mix(in oklch, var(--accent-glow) 55%, transparent);box-shadow:0 0 14px color-mix(in oklch, var(--accent-glow) 40%, transparent);border-radius:999px;padding:.25rem .9rem;font-size:.68rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.landing .plan-name{font-size:.75rem;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.landing .plan-price{font-family:var(--font-display);letter-spacing:-.03em;font-size:3rem;font-weight:700;line-height:1}.landing .plan-period{font-size:.85rem;font-family:var(--font-body);color:var(--muted)}.landing .plan-features{flex-direction:column;gap:.5rem;margin:1.5rem 0;list-style:none;display:flex}.landing .plan-features li{color:var(--muted);padding-left:1.2rem;font-size:.85rem;position:relative}.landing .plan-features li:before{content:"✓";color:var(--accent-glow);font-weight:700;position:absolute;left:0}.landing .social{background:var(--accent-light);border-top:1px solid color-mix(in oklch, var(--accent-glow) 30%, transparent);border-bottom:1px solid color-mix(in oklch, var(--accent-glow) 30%, transparent);text-align:center;padding:2rem}.landing .social p{font-family:var(--font-display);color:var(--accent-glow);max-width:600px;margin:0 auto .5rem;font-size:1.1rem;font-style:italic}.landing .social cite{color:var(--muted);font-size:.82rem}.landing .cta-strip{text-align:center;background:var(--surface);border-top:1px solid var(--border);padding:6rem 2rem}.landing .cta-strip h2{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700}.landing .cta-strip p{color:var(--muted);margin-bottom:2rem}.landing footer{border-top:1px solid var(--border);text-align:center;color:var(--muted);padding:1.5rem 2rem;font-size:.8rem}.landing footer a{color:var(--muted);text-decoration:none}.pricing-page{--radius:12px;background:var(--bg);color:var(--text);font-family:var(--font-body);background-image:radial-gradient(1100px 600px at 90% -10%, color-mix(in oklch, var(--accent) 16%, transparent), transparent 60%);background-attachment:fixed;min-height:100vh;line-height:1.6}.pricing-page *{box-sizing:border-box}.pricing-page nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.1rem 2.5rem;display:flex}.pricing-page .logo{font-family:var(--font-display);color:var(--text);font-size:1.3rem;font-weight:700;text-decoration:none}.pricing-page main{text-align:center;max-width:700px;margin:0 auto;padding:5rem 2rem}.pricing-page h1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:.75rem;font-size:clamp(2rem,5vw,3rem);font-weight:700}.pricing-page .sub{color:var(--muted);margin-bottom:3rem}.pricing-page .flash{background:var(--success-bg);border:1px solid var(--success-border);color:var(--good);border-radius:10px;margin-bottom:1.5rem;padding:.85rem 1rem;font-size:.9rem}.pricing-page .flash-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:10px;margin-bottom:1.5rem;padding:.85rem 1rem;font-size:.9rem}.pricing-page .plans{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:4rem;display:grid}.pricing-page .plan{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:18px;padding:2rem;position:relative}.pricing-page .plan.featured{border-color:color-mix(in oklch, var(--accent-glow) 55%, transparent);box-shadow:0 0 0 1px color-mix(in oklch, var(--accent-glow) 30%, transparent), 0 0 40px color-mix(in oklch, var(--accent) 18%, transparent)}.pricing-page .plan-badge{background:color-mix(in oklch, var(--accent) 25%, var(--surface));color:var(--accent-glow);white-space:nowrap;border:1px solid color-mix(in oklch, var(--accent-glow) 55%, transparent);box-shadow:0 0 14px color-mix(in oklch, var(--accent-glow) 40%, transparent);border-radius:999px;padding:.25rem .9rem;font-size:.68rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.pricing-page .plan-name{font-size:.75rem;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.pricing-page .plan-price{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.25rem;font-size:3rem;font-weight:700;line-height:1}.pricing-page .plan-period{font-size:.85rem;font-family:var(--font-body);color:var(--muted)}.pricing-page .plan-desc{color:var(--muted);margin:.75rem 0 1.5rem;font-size:.82rem}.pricing-page .plan-features{flex-direction:column;gap:.5rem;margin-bottom:1.8rem;list-style:none;display:flex}.pricing-page .plan-features li{color:var(--muted);padding-left:1.2rem;font-size:.85rem;position:relative}.pricing-page .plan-features li:before{content:"✓";color:var(--accent-glow);font-weight:700;position:absolute;left:0}.pricing-page .plan-renewal{color:var(--muted);text-align:center;margin-top:.85rem;font-size:.75rem}.pricing-page .plan-renewal a{color:var(--muted)}.pricing-page .faq{text-align:left;max-width:560px;margin:0 auto}.pricing-page .faq h2{font-family:var(--font-display);text-align:center;margin-bottom:2rem;font-size:1.6rem;font-weight:700}.pricing-page .faq-item{border-bottom:1px solid var(--border);padding:1.1rem 0}.pricing-page .faq-q{margin-bottom:.35rem;font-size:.9rem;font-weight:700}.pricing-page .faq-a{color:var(--muted);font-size:.85rem}.pricing-page footer{border-top:1px solid var(--border);text-align:center;color:var(--muted);padding:1.5rem;font-size:.8rem}.pricing-page footer a{color:var(--muted);text-decoration:none}.auth-page{--radius:10px;background:var(--bg);color:var(--text);font-family:var(--font-body);background-image:radial-gradient(1000px 560px at 85% -10%, color-mix(in oklch, var(--accent) 18%, transparent), transparent 60%), radial-gradient(700px 460px at -5% 100%, color-mix(in oklch, var(--good) 10%, transparent), transparent 65%);background-attachment:fixed;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;line-height:1.6;display:flex;position:relative}.auth-page *{box-sizing:border-box}.auth-page .wrap{width:100%;max-width:420px}.auth-page.auth-page-wide .wrap{max-width:440px}.auth-page .logo{text-align:center;font-family:var(--font-display);color:var(--text);margin-bottom:2rem;font-size:1.7rem;font-weight:700;text-decoration:none;display:block}.auth-page .card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem}.auth-page .card-title{font-family:var(--font-display);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.auth-page .card-sub{color:var(--muted);margin-bottom:1.8rem;font-size:.85rem}.auth-page label{color:var(--muted);margin-bottom:.35rem;font-size:.82rem;font-weight:500;display:block}.auth-page input{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius);font-size:.9rem;font-family:var(--font-body);outline:none;padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s}.auth-page input:focus{border-color:var(--accent-glow);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent-glow) 18%, transparent)}.auth-page .field{margin-bottom:1.1rem}.auth-page .field-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.auth-page form .btn{margin-top:.25rem}.auth-page .alert{border-radius:var(--radius);border:1px solid #0000;margin-bottom:1.2rem;padding:.8rem 1rem;font-size:.85rem}.auth-page .alert-error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.auth-page .alert-success{background:var(--success-bg);border-color:var(--success-border);color:var(--good)}.auth-page .footer-link{text-align:center;color:var(--muted);margin-top:1.5rem;font-size:.85rem}.auth-page .footer-link a{color:var(--accent-glow);font-weight:700;text-decoration:none}.auth-page .forgot{text-align:right;margin-top:.25rem;font-size:.78rem}.auth-page .forgot a{color:var(--muted);text-decoration:none}.auth-page .forgot a:hover{color:var(--accent-glow)}.auth-page .divider{color:var(--muted);align-items:center;gap:.75rem;margin:1.2rem 0;font-size:.78rem;display:flex}.auth-page .divider:before,.auth-page .divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-page .perks{flex-direction:column;gap:.4rem;margin-bottom:1.5rem;list-style:none;display:flex}.auth-page .perks li{color:var(--muted);padding-left:1.3rem;font-size:.83rem;position:relative}.auth-page .perks li:before{content:"✓";color:var(--accent-glow);font-weight:700;position:absolute;left:0}.auth-page .terms{color:var(--muted);text-align:center;text-wrap:balance;margin-top:.8rem;font-size:.75rem}.auth-page .terms a{color:var(--accent-glow);white-space:nowrap;font-weight:700;text-decoration:none}.auth-page .back{text-align:center;margin-top:1.2rem;font-size:.85rem}.auth-page .back a{color:var(--accent-glow);font-weight:700;text-decoration:none}.auth-page .dev-reset{border:1px dashed var(--warning);background:color-mix(in oklch, var(--warning) 10%, transparent);border-radius:10px;margin-top:1rem;padding:.85rem}.auth-page .dev-reset-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.75rem;font-weight:700}.auth-page .dev-reset p{color:var(--muted);margin-bottom:.65rem;font-size:.78rem}.auth-page .dev-reset input{background:var(--surface);margin-bottom:.65rem}@media (width<=900px){.auth-page .field-row{row-gap:0}}.account-stack{flex-direction:column;gap:1rem;max-width:640px;display:flex}.account-details{grid-template-columns:auto 1fr;gap:.5rem 1.5rem;font-size:.9rem;display:grid}.account-details dt{color:var(--muted)}.account-details dd{overflow-wrap:anywhere}.account-text{margin-bottom:1rem;font-size:.9rem;line-height:1.6}.account-danger{border-color:color-mix(in oklch, var(--danger) 35%, var(--border))}.account-confirm{border-top:1px solid var(--border);padding-top:1rem}.account-actions{flex-wrap:wrap;gap:.75rem;display:flex}.account-subscription-note{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2);margin-bottom:1rem;padding:1rem}.account-subscription-note a{color:var(--accent-glow);font-weight:700}.account-check{color:var(--text);cursor:pointer;align-items:center;gap:.5rem;margin:0;font-size:.85rem;display:flex}.account-check input{width:auto;accent-color:var(--accent)}.auth-page.legal-page{align-items:flex-start}.auth-page.legal-page .wrap{max-width:760px}.legal-body .legal-updated{color:var(--muted);margin-bottom:1.5rem;font-size:.8rem}.legal-body h2{font-family:var(--font-display);margin:1.8rem 0 .6rem;font-size:1.1rem;font-weight:700}.legal-body p,.legal-body li{color:var(--text);font-size:.9rem;line-height:1.65}.legal-body p{margin-bottom:.8rem}.legal-body ul{margin-bottom:.8rem;padding-left:1.2rem}.legal-body li{margin-bottom:.35rem}.legal-body a{color:var(--accent-glow)}.legal-body .legal-notice{font-weight:700}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(97% .006 300);--surface:oklch(100% 0 0);--surface2:oklch(94% .012 300);--border:oklch(85% .02 300);--accent:oklch(50% .16 300);--accent-glow:oklch(58% .19 300);--accent2:oklch(60% .14 60);--accent-light:oklch(90% .05 300);--good:oklch(55% .15 150);--text:oklch(20% .012 300);--muted:oklch(50% .02 300);--danger:oklch(55% .18 25);--warning:oklch(60% .14 60);--nav-bg:oklch(97% .006 300/.9);--font-display:"Sora", system-ui, sans-serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--shadow-soft:0 20px 60px oklch(30% .02 300/.1);--shadow-accent:0 4px 16px oklch(50% .16 300/.28);--success-bg:oklch(93% .05 150);--success-border:oklch(78% .1 150);--error-bg:oklch(93% .05 25);--error-border:oklch(78% .12 25);--error-text:oklch(45% .16 25);--info-bg:oklch(93% .04 60);--info-border:oklch(78% .1 60);--info-text:oklch(45% .13 60)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(15.5% .028 300);--surface:oklch(21.5% .032 300);--surface2:oklch(25.5% .034 300);--border:oklch(40% .05 300/.4);--accent:oklch(72% .19 300);--accent-glow:oklch(80% .21 300);--accent2:oklch(72% .15 60);--accent-light:oklch(32% .08 300/.4);--good:oklch(78% .17 150);--text:oklch(95% .01 300);--muted:oklch(68% .03 300);--danger:oklch(68% .19 25);--warning:oklch(72% .15 60);--nav-bg:oklch(19.5% .032 300/.88);--shadow-soft:0 20px 60px oklch(8% .02 300/.55);--shadow-accent:0 0 26px oklch(68% .19 300/.45);--success-bg:oklch(30% .09 150/.35);--success-border:oklch(55% .14 150/.6);--error-bg:oklch(30% .1 25/.3);--error-border:oklch(55% .15 25/.6);--error-text:oklch(82% .12 25);--info-bg:oklch(30% .08 60/.3);--info-border:oklch(55% .13 60/.6);--info-text:oklch(85% .1 60)}body{overflow-wrap:anywhere;transition:background-color .18s,color .18s}.landing nav,.pricing-page nav{background:var(--nav-bg)}.demo-box{box-shadow:var(--shadow-soft)}.modal-backdrop{z-index:200;background:color-mix(in oklch, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:440px;box-shadow:0 0 0 1px color-mix(in oklch, var(--accent-glow) 25%, transparent), 0 20px 60px color-mix(in oklch, var(--accent) 25%, transparent);border-radius:18px;padding:1.75rem}.modal-title{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.35rem;font-weight:700}.modal-body{color:var(--text);font-size:.92rem;line-height:1.6}.modal-body p{margin-bottom:.75rem}.modal-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.select-field{position:relative}.select-field select{appearance:none;cursor:pointer;padding-right:2.6rem}.select-field.has-icon select{padding-left:2.5rem}.select-icon,.select-chevron{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.select-icon{width:16px;height:16px;color:var(--muted);left:.8rem}.select-field.cook .select-icon{color:var(--accent-glow)}.select-chevron{width:14px;height:14px;color:var(--muted);right:.9rem}:root{--pill-lg-h:40px;--pill-lg-px:1.25rem;--pill-lg-fs:.9rem;--pill-md-h:36px;--pill-md-px:1rem;--pill-md-fs:.82rem;--pill-sm-h:32px;--pill-sm-px:.9rem;--pill-sm-fs:.8rem}.btn{min-height:var(--pill-lg-h);padding:.3rem var(--pill-lg-px);font-family:var(--font-body);font-size:var(--pill-lg-fs);text-align:center;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s;display:inline-flex}.btn-md{min-height:var(--pill-md-h);padding:.25rem var(--pill-md-px);font-size:var(--pill-md-fs)}.btn-sm{min-height:var(--pill-sm-h);padding:.2rem var(--pill-sm-px);font-size:var(--pill-sm-fs)}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}@media (prefers-reduced-motion:no-preference){.btn:not(:disabled):hover{transform:translateY(-1px)}}.btn-primary{color:var(--accent-glow);background:color-mix(in oklch, var(--accent) 18%, transparent);border-color:color-mix(in oklch, var(--accent-glow) 65%, transparent);box-shadow:0 0 20px color-mix(in oklch, var(--accent-glow) 35%, transparent)}.btn-primary:not(:disabled):hover{background:color-mix(in oklch, var(--accent) 28%, transparent);box-shadow:var(--shadow-accent)}.btn-ghost{color:var(--muted);border-color:var(--border);background:0 0}.btn-ghost:not(:disabled):hover{color:var(--text);border-color:color-mix(in oklch, var(--text) 30%, var(--border))}.btn-warning{color:var(--accent2);background:color-mix(in oklch, var(--accent2) 16%, transparent);border-color:color-mix(in oklch, var(--accent2) 60%, transparent);box-shadow:0 0 16px color-mix(in oklch, var(--accent2) 30%, transparent)}.btn-warning:not(:disabled):hover{background:color-mix(in oklch, var(--accent2) 26%, transparent)}.btn-success{color:var(--good);background:color-mix(in oklch, var(--good) 18%, transparent);border-color:color-mix(in oklch, var(--good) 60%, transparent);box-shadow:0 0 16px color-mix(in oklch, var(--good) 30%, transparent)}.btn-success:not(:disabled):hover{background:color-mix(in oklch, var(--good) 28%, transparent)}.btn-danger{color:var(--danger);background:color-mix(in oklch, var(--danger) 10%, transparent);border-color:color-mix(in oklch, var(--danger) 45%, transparent)}.btn-danger:not(:disabled):hover{background:color-mix(in oklch, var(--danger) 20%, transparent)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-glow);outline-offset:2px}.sidebar-logo:focus-visible{outline-offset:-6px;border-radius:14px}a,button,select,label,summary{touch-action:manipulation}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}.header-quota,.recipe-stat-ring,.plan-price{font-variant-numeric:tabular-nums}h1,h2,h3{text-wrap:balance}h1.page-title,h1.card-title{margin-top:0}.alert-success,.flash{background:var(--success-bg)!important;border-color:var(--success-border)!important;color:var(--good)!important}.alert-error{background:var(--error-bg)!important;border-color:var(--error-border)!important;color:var(--error-text)!important}.alert-info{background:var(--info-bg)!important;border-color:var(--info-border)!important;color:var(--info-text)!important}.theme-toggle{min-height:var(--pill-md-h);padding:0 var(--pill-md-px);border:1px solid var(--border);background:var(--surface);color:var(--text);font:600 var(--pill-md-fs) var(--font-body);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;transition:background-color .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent-glow);color:var(--accent-glow);transform:translateY(-1px)}.theme-toggle-icon{justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.theme-toggle-text{line-height:1}.quick-ingredients-label{color:var(--muted);font-size:.72rem;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.55rem;line-height:1}.quick-ingredients{flex-wrap:wrap;gap:.45rem;display:flex}.ingredient-chip{background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;font:600 var(--pill-md-fs) var(--font-body);min-height:var(--pill-md-h);padding:0 var(--pill-md-px);border-radius:999px;align-items:center;transition:background-color .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s;display:inline-flex}.ingredient-chip:hover,.ingredient-chip:focus-visible{border-color:var(--accent-glow);color:var(--accent-glow)}.ingredient-chip.active{background:var(--accent-light);border-color:var(--accent-glow);color:var(--accent-glow);box-shadow:0 0 14px color-mix(in oklch, var(--accent-glow) 40%, transparent)}.auth-theme-toggle{z-index:20;position:absolute;top:1rem;right:1rem}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:var(--surface2)!important;border-color:var(--border)!important;color:var(--text)!important}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{background:var(--surface)!important;border-color:var(--accent-glow)!important;box-shadow:0 0 0 3px color-mix(in oklch, var(--accent-glow) 18%, transparent)!important}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:oklch(60% .02 300)}[data-theme=dark] .demo-bar{background:var(--surface2)!important}[data-theme=dark] .demo-input,[data-theme=dark] .feature-card{background:var(--bg)!important}[data-theme=dark] .demo-recipe{background:var(--accent-light)!important}[data-theme=dark] .demo-recipe-name,[data-theme=dark] .social p{color:var(--accent-glow)!important}[data-theme=dark] .demo-recipe-meta,[data-theme=dark] .social cite{color:var(--muted)!important}[data-theme=dark] .social{background:oklch(30% .09 150/.25)!important;border-color:oklch(55% .14 150/.5)!important}@media (width<=640px){body{min-width:0}.card{padding:1.15rem!important}.theme-toggle-text{display:none}.auth-theme-toggle{top:.75rem;right:.75rem}}@media (width<=900px){.app-shell{display:block!important}.sidebar{z-index:100;border-right:0!important;border-bottom:1px solid var(--border)!important;width:100%!important;min-height:auto!important;position:sticky!important;top:0!important;bottom:auto!important}.sidebar-logo{border-bottom:0!important;padding:.8rem 1rem .6rem!important}.sidebar-nav{flex-wrap:wrap!important;flex:0 0 100%!important;gap:.4rem .25rem!important;min-width:0!important;padding:0 .75rem .6rem!important;display:flex!important;overflow-x:visible!important}.nav-item{white-space:nowrap!important;flex:none!important}.sidebar>.sidebar-footer{display:none!important}.main{width:100%!important;max-width:none!important;margin-left:0!important;padding:1.25rem!important}.page-title{font-size:1.55rem!important}.page-sub{margin-bottom:1.25rem!important}.dashboard-grid,.field-row,.field-3,.weekly-meals{grid-template-columns:1fr!important}.dashboard-grid .field-row{grid-template-columns:1fr 1fr!important}.tabs{scrollbar-width:none;white-space:nowrap!important;overflow-x:auto!important}.tabs::-webkit-scrollbar{display:none}.tab-btn{flex:none!important}.recipe-header,.recipe-meta,.recipe-body{padding-left:1rem!important;padding-right:1rem!important}.step-list li{gap:.55rem!important}}@media (width<=760px){.landing nav,.pricing-page nav{flex-wrap:wrap!important;gap:.75rem!important;padding:.85rem 1rem!important}.nav-right,.pricing-nav-actions{scrollbar-width:none;gap:.5rem!important;width:100%!important;padding-bottom:.1rem!important;display:flex!important;overflow-x:auto!important}.nav-right::-webkit-scrollbar{display:none}.pricing-nav-actions::-webkit-scrollbar{display:none}.nav-right .btn,.pricing-nav-actions .btn{flex:none!important}.hero{grid-template-columns:1fr!important;gap:2rem!important;padding:2.5rem 1rem 3rem!important}.hero h1{font-size:2.25rem!important}.hero p{font-size:1rem!important}.hero-cta{align-items:stretch!important}.hero-cta .btn{justify-content:center!important;width:100%!important}.demo-inner{padding:1rem!important}.section,.features,.cta-strip,main{padding-left:1rem!important;padding-right:1rem!important}.section{padding-top:3rem!important;padding-bottom:3rem!important}.steps,.pricing-grid,.plans{grid-template-columns:1fr!important}.features{padding-top:3rem!important;padding-bottom:3rem!important}.pricing-grid,.plans{margin-top:2rem!important}.plan,.feature-card{padding:1.25rem!important}.wrap{max-width:100%!important}}@media (width<=420px){.main{padding:1rem .75rem!important}.logo,.sidebar-logo{font-size:1.25rem!important}.hero-cta .btn,.plan .btn,.card .btn-full{justify-content:center;width:100%}}
