@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff")}:root{--color-primary:#3d6b82;--color-primary-container:#d3e4eb;--color-secondary:#c97b84;--color-secondary-container:#f5dcdf;--color-tertiary:#e0a458;--color-tertiary-container:#fbe7ce;--color-tertiary-text:#7a5416;--color-surface:#fffdfa;--color-background:#fbf3ea;--color-text:#2c2416;--color-text-muted:#5c5144;--color-text-muted-light:#6e6256;--color-text-faint:#8a7d70;--color-border:#e6ddd2;--color-border-input:#d4c8ba;--color-danger:#dc2626;--color-success:#16a34a;--color-warning:#d97706;--radius-card:20px;--radius-pill:999px;--radius-image:20px;--radius-input:12px;--shadow-card:0 1px 4px #2c241614;--shadow-card-sm:0 1px 3px #2c241614;--shadow-photo:0 10px 28px #2c241614}body{background:var(--color-background);color:var(--color-text);margin:0;font-family:DM Sans,system-ui,sans-serif}button,input,textarea,select{font-family:inherit}.card{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:16px}.btn{border-radius:var(--radius-pill);cursor:pointer;box-sizing:border-box;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--color-primary);color:#fff}.btn--secondary{background:var(--color-secondary);color:#fff}.btn--tertiary{background:var(--color-tertiary);color:var(--color-text)}.btn--neutral{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-input)}.btn--oauth{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.save-btn{z-index:2;width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-card-sm);background:#fffdfaeb;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.05rem;line-height:1;display:flex;position:absolute;top:6px;right:6px}.save-btn--saved{color:var(--color-secondary)}.save-btn:disabled{opacity:.65;cursor:default}.ai-disclaimer{color:var(--color-text-faint);margin:0;font-size:.75rem;line-height:1.4}.icon-label{position:relative}@media (width<=480px){.icon-label__text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}@media (width<=1024px){#next-steps>div{padding:24px 20px}}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}@media (width<=1024px){#spacer{height:48px}}@media (width>=960px){body:has(.auth){overflow:hidden}.auth{flex-direction:row;height:100dvh;max-height:100dvh;overflow:hidden}.auth-panel{box-sizing:border-box;background:linear-gradient(165deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 72%, var(--color-text)) 100%);color:#fff;flex-direction:column;flex:50%;justify-content:flex-end;min-width:0;padding:56px;display:flex}.auth-panel .logo{background:var(--color-background);border-radius:16px;width:fit-content;margin-bottom:28px;padding:10px}.auth-panel h2{max-width:12ch;margin:0;font-size:3.25rem;font-weight:700;line-height:1.05}.auth-panel p{max-width:22ch;color:var(--color-primary-container);margin:16px 0 0;font-size:1.15rem;line-height:1.4}.auth-main{flex:50%;align-items:center;min-width:0;padding:20px 48px;overflow:hidden}.auth-card__mark{display:none}.auth-card__header{margin-bottom:12px}.auth-card__title{font-size:1.7rem}.auth-card__subtitle{margin-top:4px;font-size:.9rem}.auth-form__label{margin:8px 0 4px}.auth-form__input{padding:8px 12px}.auth-form__submit{margin-top:10px;padding:10px 16px}.auth-form__hint{margin:0 0 4px}.auth-form__check{margin-top:8px}.auth-divider{margin:10px 0}.auth-oauth{margin-bottom:8px}}.marketing{background:var(--color-background);min-height:100dvh;color:var(--color-text);flex-direction:column;display:flex}.marketing__header{z-index:20;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbf3eaf0;position:sticky;top:0}.marketing__bar{box-sizing:border-box;width:min(1120px,100%);padding:12px 20px;padding-top:calc(12px + env(safe-area-inset-top));align-items:center;gap:12px;margin:0 auto;display:flex}.marketing__brand{color:inherit;text-decoration:none;display:inline-flex}.marketing__brand:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px}.marketing__links{display:none}.marketing__account{align-items:center;gap:8px;margin-left:auto;display:flex}.marketing__account a.btn{white-space:nowrap;padding:8px 14px;font-size:.9rem;text-decoration:none}.marketing__login,.marketing__menu{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none}.marketing__login:focus-visible,.marketing__menu:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.marketing__login{display:none}@media (width<=359px){.marketing__bar{gap:8px;padding-left:16px;padding-right:16px}.marketing__brand .logo{gap:6px}.marketing__brand .fridge-mark{width:24px;height:24px}.marketing__account{gap:4px}.marketing__account a.btn{padding:8px 10px}.marketing__menu{padding:8px 6px}}.marketing__drawer{border-top:1px solid var(--color-border);flex-direction:column;gap:4px;padding:4px 20px 16px;display:flex}.marketing__drawer a{color:var(--color-text);padding:10px 4px;font-weight:600;text-decoration:none}.marketing__drawer a[aria-current=page]{color:var(--color-primary)}.marketing__drawer a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.marketing__main{flex:1;width:100%}.marketing__footer{border-top:1px solid var(--color-border);padding:28px 20px calc(28px + env(safe-area-inset-bottom))}.marketing__footer-inner{flex-direction:column;align-items:flex-start;gap:16px;width:min(1120px,100%);margin:0 auto;display:flex}.marketing__footer-nav{flex-wrap:wrap;gap:8px 18px;display:flex}.marketing__footer-nav a{color:var(--color-text-muted);font-size:.9rem;font-weight:600;text-decoration:none}.marketing__footer-nav a:hover,.marketing__footer-nav a[aria-current=page]{color:var(--color-primary)}.marketing__footer-nav a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.marketing-hero{box-sizing:border-box;text-align:center;width:min(760px,100%);margin:0 auto;padding:56px 20px 8px}.marketing-hero__kicker{color:var(--color-primary);margin:0;font-size:.95rem;font-weight:700;line-height:1.35}.marketing-hero__title{margin:12px 0 0;font-size:clamp(2.2rem,6vw,3.4rem);font-weight:700;line-height:1.08}.marketing-hero__lead{max-width:36rem;color:var(--color-text-muted);margin:16px auto 0;font-size:1.05rem;line-height:1.5}.marketing-hero__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin:24px 0 0;display:flex}.marketing-hero__actions a.btn{text-decoration:none}.marketing-steps{box-sizing:border-box;gap:16px;width:min(1120px,100%);margin:36px auto 0;padding:0 20px;list-style:none;display:grid}.marketing-step{background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:20px;padding:22px 20px}.marketing-step h2{margin:12px 0 0;font-size:1.15rem;line-height:1.3}.marketing-step p{color:var(--color-text-muted);margin:8px 0 0;font-size:.95rem;line-height:1.45}.marketing-step .marketing-step__index{background:var(--color-primary-container);width:32px;height:32px;color:var(--color-primary);text-align:center;border-radius:50%;margin:0;font-size:.9rem;font-weight:700;line-height:32px}.price-toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;flex-wrap:wrap;justify-content:center;gap:6px;width:min(100%,640px);margin-top:28px;padding:4px;display:flex}.price-toggle button{border-radius:var(--radius-pill);color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px;font-size:.9rem;font-weight:600;display:inline-flex}.price-toggle button[aria-pressed=true]{background:var(--color-primary);color:#fff}.price-toggle button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.price-toggle__save{border-radius:var(--radius-pill);background:var(--color-primary-container);color:var(--color-primary);padding:2px 8px;font-size:.75rem;font-weight:700}.price-toggle button[aria-pressed=true] .price-toggle__save{color:var(--color-primary);background:#fff}.marketing-plans{box-sizing:border-box;gap:20px;width:min(880px,100%);margin:36px auto 0;padding:16px 20px 0;display:grid}.marketing-plan{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:24px;flex-direction:column;align-items:flex-start;padding:28px 24px 24px;display:flex;position:relative}.marketing-plan h2{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.85rem;font-weight:700}.marketing-plan ul{color:var(--color-text);margin:18px 0 22px;padding-left:18px;font-size:.95rem;line-height:1.45}.marketing-plan li+li{margin-top:8px}.marketing-plan a.btn{box-sizing:border-box;width:100%;margin-top:auto;text-decoration:none}.marketing-plan__amount{margin:14px 0 0;font-size:3rem;font-weight:700;line-height:1}.marketing-plan__amount span{color:var(--color-text-muted);margin-left:4px;font-size:1rem;font-weight:600}.marketing-plan__note{color:var(--color-text-muted);margin:8px 0 0;font-size:.95rem}.marketing-plan--featured{border:2px solid var(--color-primary);box-shadow:var(--shadow-photo)}.marketing-plan__badge{border-radius:var(--radius-pill);background:var(--color-primary);color:#fff;white-space:nowrap;margin:0;padding:4px 12px;font-size:.75rem;font-weight:700;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.marketing-note{text-align:center;width:min(640px,100% - 40px);color:var(--color-text-muted);margin:20px auto 0;font-size:.95rem;line-height:1.45}.faq-list{box-sizing:border-box;flex-direction:column;gap:10px;width:min(720px,100%);margin:28px auto 0;padding:0 20px;display:flex}.faq-item{background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:16px;padding:16px 18px}.faq-item summary{cursor:pointer;font-weight:700;line-height:1.35}.faq-item summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px}.faq-item p{color:var(--color-text-muted);margin:10px 0 0;font-size:.95rem;line-height:1.45}@media (width>=900px){.marketing__bar{grid-template-columns:auto 1fr auto;align-items:center;display:grid}.marketing__links{justify-content:center;gap:28px;display:flex}.marketing__links a{color:var(--color-text);font-size:.95rem;font-weight:600;text-decoration:none}.marketing__links a:hover,.marketing__links a[aria-current=page]{color:var(--color-primary)}.marketing__links a:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px}.marketing__account{justify-self:end;margin-left:0}.marketing__login{display:inline}.marketing__menu,.marketing__drawer{display:none}.marketing__footer-inner{flex-direction:row;justify-content:space-between;align-items:center}.marketing-steps{grid-template-columns:repeat(3,1fr)}.marketing-plans{grid-template-columns:1fr 1fr;align-items:stretch;padding-top:28px}.marketing-plan--featured{transform:translateY(-12px)}.pitch-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px}.marketing-hero--start{text-align:left;width:auto;margin:0;padding-left:0;padding-right:0}.marketing-hero--start .marketing-hero__lead{margin-left:0}.marketing-hero--start .marketing-hero__actions{justify-content:flex-start}}.marketing-band{padding:8px 0 56px}.marketing-band--wash{background:linear-gradient(180deg, var(--color-primary-container) 0%, var(--color-background) 100%)}.pitch-split{box-sizing:border-box;gap:28px;width:min(1120px,100%);margin:0 auto;padding:8px 20px 0;display:grid}.pitch-stage{margin:0}.stage__photo{min-height:280px;box-shadow:var(--shadow-photo);background:linear-gradient(#2c241647 0%,#2c24160d 42%,#2c24166b 100%),url(/stage/fridge.jpg) 50%/cover no-repeat;border-radius:28px;flex-direction:column;justify-content:space-between;gap:24px;padding:22px;display:flex}.stage__label{color:#fff;text-shadow:0 1px 2px #2c241659;margin:0;font-weight:700}.stage__chips{flex-wrap:wrap;gap:8px;display:flex}.scan-play .stage__item{opacity:0;transform:translateY(8px)}.scan-play .stage__item--in{opacity:1;transition:opacity .35s,transform .35s;transform:none}.scan-play--still .stage__item,.scan-play--still .stage__item--in{opacity:1;transform:none}.stage--recipes .stage__recipes{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stage__recipe{aspect-ratio:3/4;border-radius:24px;flex-direction:column;justify-content:flex-end;margin:0;padding:14px;display:flex;box-shadow:0 18px 40px #2c241629}.stage__recipe p,.stage__recipe h3{margin:0}.stage__recipe h3{margin-top:4px;font-size:1.05rem;line-height:1.25}.stage__recipe--teal,.stage__recipe--amber{color:#fff;text-shadow:0 1px 2px #2c241659}.stage__recipe--teal{background:linear-gradient(#2c241600 42%,#2c2416b8 100%),url(/stage/lemon-yogurt-bowl.jpg) 50%/cover no-repeat}.stage__recipe--amber{background:linear-gradient(#2c241600 42%,#2c2416b8 100%),url(/stage/spinach-skillet.jpg) 50%/cover no-repeat}.stage__confirm{background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:20px;margin:0;padding:6px 0;list-style:none}.stage__confirm li{border-bottom:1px solid var(--color-border);padding:14px 18px;font-weight:600}.stage__confirm li:last-child{border-bottom:0}.story{box-sizing:border-box;gap:20px;width:min(1120px,100%);margin:0 auto;padding:12px 20px 48px;display:grid}.scan-play{flex-direction:column;justify-content:center;min-height:420px;display:flex}.scan-play .stage{width:100%}.scan-play .stage--recipes .stage__recipe{aspect-ratio:4/5}.story__stage{display:none}.story__step .marketing-step__index{background:var(--color-primary-container);width:32px;height:32px;color:var(--color-primary);text-align:center;border-radius:50%;margin:0;font-size:.9rem;font-weight:700;line-height:32px;transition:background .4s,color .4s}.story__steps{flex-direction:column;gap:28px;margin:0;padding:0;list-style:none;display:flex}.story__step h2{margin:12px 0 0;font-size:1.35rem}.story__step p{color:var(--color-text-muted);margin:8px 0 0;line-height:1.45}.story__scene{margin-bottom:16px}.story__play .stage{width:100%}.story__meter{gap:6px;width:min(220px,100%);margin:16px auto 0;display:flex}.story__meter-mark{background:var(--color-border);border-radius:99px;flex:1;height:3px}.story__meter-mark--on{background:var(--color-primary)}.story__caption{color:var(--color-text-faint);text-align:center;margin:10px 0 0;font-size:.85rem}@media (prefers-reduced-motion:no-preference){.story__stage{flex-direction:column;justify-content:center;min-height:420px;display:flex}.story__scene{display:none}.story__play{animation:.45s marketing-rise}.story__step{opacity:.42;transition:opacity .4s}.story__step--active{opacity:1}.story__step--active .marketing-step__index{background:var(--color-primary);color:#fff}.marketing-step,.faq-item,.marketing-plan__amount{animation:.45s both marketing-rise}.marketing-step:nth-child(2){animation-delay:60ms}.marketing-step:nth-child(3){animation-delay:.12s}}@media (prefers-reduced-motion:reduce){.story{grid-template-columns:1fr}.story__stage{display:none}.story__scene{display:block}.story__step{min-height:0}.story__step .marketing-step__index{transition:none}}@media (width>=900px) and (prefers-reduced-motion:no-preference){.story{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.story__stage{order:2}}@keyframes marketing-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width>=800px){.plan-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:16px}}@media (width>=800px){.subscription-card>.btn{width:auto}}@media (width>=800px){.price-card--featured{margin-top:0}}@media (width>=800px){.price-card__blurb{min-height:2.6em}}@media (width>=800px){.price-card__note--deal{flex-flow:wrap;align-items:center}}.screen{flex-direction:column;gap:20px;max-width:480px;margin:0 auto;padding:16px;display:flex}.logo{color:var(--color-primary);align-items:center;gap:8px;display:inline-flex}.logo--stacked{align-items:flex-start}.logo__text{flex-direction:column;gap:2px;display:flex}.logo__name{white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.1}.logo__tagline{color:var(--color-text-muted);font-size:.8rem;font-weight:500;line-height:1.35}.fridge-mark{flex-shrink:0;display:block}.screen-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.screen-header__title{margin:0;font-size:1.75rem;line-height:1.15}.screen-header__subtitle{color:var(--color-text-muted);letter-spacing:0;margin:4px 0 0;font-size:.95rem;font-weight:400}.group-block__label{margin:0 4px 8px;font-size:1.125rem}.group{background:var(--color-surface);border-radius:16px;overflow:hidden}.group__row{border-top:1px solid var(--color-border);align-items:center;gap:10px;min-height:48px;padding:10px 14px;display:flex}.group__row:first-child{border-top:none}.group__name{font-size:.95rem;font-weight:600}.group__trail{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.chip{border-radius:var(--radius-pill);letter-spacing:0;border:1px solid #0000;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.chip--teal{background:var(--color-primary-container);color:var(--color-primary)}.chip--amber{background:var(--color-tertiary-container);color:var(--color-tertiary-text)}.chip--plain{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border-input)}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.recipe-card{aspect-ratio:3/4;background:var(--color-primary-container);cursor:pointer;border-radius:28px;position:relative;overflow:hidden;box-shadow:0 18px 40px #2c241629}.recipe-card--locked .recipe-card__image{filter:brightness(.62)}.recipe-card__image{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.recipe-card__image--placeholder{background:var(--color-primary-container)}.recipe-card__lock-overlay{z-index:2;justify-content:center;display:flex;position:absolute;top:22%;left:0;right:0}.recipe-card__lock-price{background:var(--color-secondary);color:#fff;border-radius:var(--radius-pill);letter-spacing:0;padding:8px 14px;font-size:.85rem;font-weight:700;box-shadow:0 10px 24px #2c24162e}.recipe-card__badge{z-index:2;background:var(--color-tertiary-container);color:var(--color-tertiary-text);border-radius:var(--radius-pill);letter-spacing:0;padding:4px 8px;font-size:.7rem;font-weight:700;position:absolute;top:10px;left:10px}.recipe-card__copy{z-index:1;background:linear-gradient(180deg, #fbf3ea00 0%, #fbf3eaf0 46%, var(--color-background) 100%);flex-direction:column;gap:6px;padding:56px 12px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.recipe-card__title{letter-spacing:-.03em;margin:0;font-size:1.05rem;font-weight:700;line-height:1.1}.recipe-card__description{letter-spacing:0;color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.78rem;font-weight:400;display:-webkit-box;overflow:hidden}.recipe-card__meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recipe-card__pill{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);padding:4px 10px;font-size:.72rem;font-weight:700;box-shadow:0 6px 14px #2c24161a}.working-line{color:var(--color-primary);letter-spacing:.01em;margin:0 0 12px;font-size:.95rem;font-weight:600}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.skeleton-block,.skeleton-line{background:linear-gradient(90deg,#efe4d6 0%,#f8f3ec 45%,#efe4d6 80%) 0 0/200% 100%;border-radius:12px;animation:1.4s ease-in-out infinite shimmer}.skeleton-line--btn{vertical-align:middle;border-radius:999px;width:72px;height:12px;display:inline-block}.recipe-card--skeleton{cursor:default}.recipe-card--skeleton .skeleton-block{border-radius:0;width:100%;height:100%;position:absolute;inset:0}.recipe-card--skeleton .recipe-card__copy{background:0 0}.recipe-card--skeleton .skeleton-line{background:#e4d3c0;height:12px;animation:none}.recipe-card--skeleton .skeleton-line--title{width:80%;height:16px}.recipe-card--skeleton .skeleton-line--text{width:95%}.recipe-card--skeleton .skeleton-line--meta{border-radius:999px;width:42%;height:18px}.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:10;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{color:var(--color-text-faint);flex-direction:column;flex:1;align-items:center;gap:2px;font-size:.7rem;text-decoration:none;display:flex}.bottom-nav__item--active{color:var(--color-primary)}.bottom-nav__icon{justify-content:center;align-items:center;line-height:1;display:flex}.bottom-nav__label{font-weight:600}.app-layout{background:var(--color-background);min-height:100dvh}.app-layout__brand{box-sizing:border-box;max-width:480px;padding:calc(12px + env(safe-area-inset-top)) 16px 0;margin:0 auto}.app-layout__brand-link{border-radius:4px;text-decoration:none;display:inline-flex}.app-layout__brand-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.app-layout__content{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.app-layout:has(.dashboard){flex-direction:column;height:100dvh;max-height:100dvh;display:flex;overflow:hidden}:is(.app-layout:has(.dashboard) .app-layout__brand,.app-layout:has(.dashboard) .app-layout__content){flex-shrink:0}.app-layout:has(.dashboard) .app-layout__content{flex-direction:column;flex:1;min-height:0;display:flex}.portion-scale{flex-direction:column;gap:8px;display:flex}.portion-scale__bar{background:var(--color-background);border-radius:999px;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid}.portion-scale__bar button{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 0;font-size:.9rem;font-weight:700}.portion-scale__bar button[aria-pressed=true]{background:var(--color-primary);color:#fff}.portion-scale__bar button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.portion-scale__bar button:disabled{opacity:.45;cursor:default}.portion-scale__custom{align-items:center;gap:8px;display:flex}.portion-scale__custom label{color:var(--color-text-muted);font-size:.85rem;font-weight:700}.portion-scale__custom input{box-sizing:border-box;border:1px solid var(--color-border-input);background:var(--color-surface);width:72px;color:var(--color-text);font:inherit;border-radius:12px;padding:8px 10px;font-weight:700}.portion-scale__custom span{color:var(--color-text-muted);font-weight:700}.portion-scale__custom button{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;padding:8px 14px;font-size:.85rem;font-weight:700}.portion-scale__custom button:disabled{opacity:.45;cursor:default}.portion-scale__error{color:var(--color-danger);margin:0;font-size:.8rem}.recipe-sheet{z-index:30;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.recipe-sheet__backdrop{-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#2c241673;border:none;position:absolute;inset:0}.recipe-sheet__panel{background:var(--color-background);width:min(480px,100%);max-height:min(92vh,840px);margin-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:28px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #2c241629}.recipe-sheet__header{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 8px;display:flex}.recipe-sheet__close,.recipe-sheet__edit{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);font:inherit;cursor:pointer;border:none;padding:8px 14px;font-size:.95rem;font-weight:700;box-shadow:0 6px 14px #2c241614}.recipe-sheet__edit{margin-left:auto}.recipe-sheet__scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.recipe-sheet__image-wrap{background:var(--color-primary-container);width:100%;height:220px;position:relative}.recipe-sheet__image-wrap--empty{background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);height:96px}.recipe-sheet__image{object-fit:cover;width:100%;height:100%;display:block}.recipe-sheet__image--placeholder{background:var(--color-primary-container);color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.9rem;display:flex}.recipe-sheet__image--loading .skeleton-block{border-radius:0;width:100%;height:100%;position:absolute;inset:0}.recipe-sheet__body{padding:16px 16px calc(28px + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:12px;display:flex}.recipe-sheet__body>.recipe-sheet__title,.recipe-sheet__body>.recipe-sheet__from,.recipe-sheet__body>.recipe-sheet__meta,.recipe-sheet__body>.recipe-sheet__description,.recipe-sheet__body>.recipe-sheet__section,.recipe-sheet__body>.recipe-sheet__planner,.recipe-sheet__body>.recipe-sheet__disclaimer,.recipe-sheet__body>.recipe-sheet__empty{align-self:stretch}.recipe-sheet__title{letter-spacing:-.04em;margin:0;font-size:1.85rem;font-weight:700;line-height:1.08}.recipe-sheet__from{color:var(--color-text-muted);margin:0;font-size:.95rem;font-weight:600}.recipe-sheet__source{color:var(--color-primary);font-size:.95rem;font-weight:600}.recipe-sheet__meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recipe-sheet__description{color:var(--color-text-muted);margin:0;font-size:.95rem;line-height:1.45}.recipe-sheet__section{flex-direction:column;gap:6px;display:flex}.recipe-sheet__section h2{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.8rem;font-weight:700}.recipe-sheet__checks{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.recipe-sheet__check{background:linear-gradient(100deg, var(--color-primary-container) 0%, var(--color-surface) 46%);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:7px 12px;font-size:.92rem;font-weight:600;line-height:1.3;display:flex}.recipe-sheet__check input{width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0;margin:0}.recipe-sheet__check--done span{color:var(--color-text-faint);text-decoration:line-through}.recipe-sheet__empty{background:var(--color-surface);color:var(--color-text-muted);border-radius:18px;margin:0;padding:16px;font-size:.95rem;font-weight:600;box-shadow:0 10px 24px #2c241614}.recipe-sheet__disclaimer{border-top:1px solid var(--color-border);margin-top:8px;padding-top:16px}.recipe-sheet__planner{flex-direction:column;gap:10px;margin:0 0 20px;display:flex}.recipe-sheet__planner-actions{gap:8px;display:flex}.recipe-sheet__scales{flex-wrap:wrap;gap:6px;display:flex}.recipe-sheet__scale{border:1px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);cursor:pointer;padding:8px 14px;font-size:.85rem;font-weight:600}.recipe-sheet__scale--on{background:var(--color-primary-container);color:var(--color-primary);border-color:#0000}.recipe-sheet__scale:disabled{opacity:.45;cursor:default}.recipe-sheet__swap-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.recipe-sheet__swap-item{text-align:left;background:var(--color-surface);width:100%;font:inherit;cursor:pointer;border:none;border-radius:16px;padding:14px;font-weight:600;box-shadow:0 8px 20px #2c241614}.recipe-sheet__swap-item:disabled{opacity:.45;cursor:default}.recipe-sheet__swap-name{font-weight:600;display:block}.recipe-sheet__swap-meta{color:var(--color-text-muted);margin-top:4px;font-size:.8rem;display:block}.confirm-dialog{z-index:40;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.confirm-dialog__backdrop{-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#2c241673;border:none;position:absolute;inset:0}.confirm-dialog__panel{box-sizing:border-box;background:var(--color-surface);border-radius:28px;width:min(420px,100%);padding:24px 20px;position:relative;box-shadow:0 18px 40px #2c241629}.confirm-dialog__panel:focus{outline:none}.confirm-dialog__panel h2{margin:0;font-size:1.45rem;line-height:1.2}.confirm-dialog__panel p{color:var(--color-text-muted);margin:10px 0 0;font-size:.95rem;line-height:1.45}.confirm-dialog__actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.confirm-dialog__confirm--primary{background:var(--color-primary);color:#fff}.confirm-dialog__confirm--danger{background:var(--color-danger);color:#fff}.image-drop-zone{cursor:pointer;border-radius:inherit;outline-offset:-2px;outline:2px dashed #0000;transition:outline-color .15s;position:relative}.image-drop-zone--dragging{outline-color:var(--color-primary)}.image-drop-zone--dragging>:not(.image-drop-zone__overlay){visibility:hidden}.image-drop-zone--disabled{cursor:default}.image-drop-zone__overlay{z-index:1;background:var(--color-primary-container);color:var(--color-primary);letter-spacing:-.02em;border-radius:inherit;pointer-events:none;justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;display:flex;position:absolute;inset:0}.home-greeting{background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);color:var(--color-primary);border-radius:28px;padding:22px 20px;box-shadow:0 18px 40px #2c241629}.home-greeting .screen-header__title{letter-spacing:-.04em;font-size:2.15rem;font-weight:700;line-height:1.05}.home-greeting .screen-header__subtitle{color:var(--color-text-muted);margin-top:8px}.home__disclaimer{margin-top:0}.home__scan-btn{align-self:stretch}.home__scan-btn:disabled{opacity:.45;cursor:default}.home__error{color:var(--color-danger);margin:0;font-size:.9rem}.scan-uploads{flex-direction:column;gap:12px;display:flex}.scan-uploads .image-drop-zone{border-radius:var(--radius-card)}.upload-card{text-align:center;background:var(--color-primary-container);min-height:188px;color:var(--color-primary);border-radius:var(--radius-card);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex;position:relative;overflow:hidden}.upload-card>svg{width:28px;height:28px}.upload-card strong{letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.upload-card>span{color:var(--color-text-muted);font-size:.9rem}.upload-card--photos{justify-content:flex-start;padding:12px}.upload-card__photos{grid-template-columns:1fr;gap:8px;width:100%;display:grid}.upload-card--two .upload-card__photos{grid-template-columns:1fr 1fr}.upload-card__photo{min-width:0;margin:0;position:relative}.upload-card__photo img{object-fit:cover;border-radius:12px;width:100%;height:168px;display:block}.upload-card__photo figcaption{color:var(--color-primary);margin-top:6px;font-size:.8rem;font-weight:700}.upload-card--two .upload-card__photo img{height:140px}.upload-card__remove{background:var(--color-surface);width:36px;height:36px;color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-card-sm);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:8px;right:8px}.upload-card__status{color:var(--color-text-muted);margin:0;font-size:.9rem}.upload-card--skeleton{align-items:center;gap:10px}.upload-card--skeleton .skeleton-block{border-radius:16px;width:100%;height:120px}.upload-card--skeleton .skeleton-line{height:12px}.upload-card--skeleton .skeleton-line--title{width:46%;height:16px}.upload-card--skeleton .skeleton-line--text{width:68%}.confirm-card{flex-direction:column;gap:12px;display:flex}.confirm-card__hint{color:var(--color-text-muted);margin:0;font-size:.85rem}.confirm-card__add{gap:8px;display:flex}.confirm-card__input{border-radius:var(--radius-input);border:1px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text);flex:1;padding:12px 14px;font-size:.9rem}.confirm-card__submit{align-self:stretch}.confirm-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.confirm-list__item{background:var(--color-background);border-radius:var(--radius-input);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.confirm-list__name{flex:1;min-width:80px;font-size:.92rem;font-weight:600}.confirm-list__tags{flex-shrink:0;gap:4px;display:flex}.confirm-list__use-first{color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:flex}.confirm-list__use-first input{width:16px;height:16px}.confirm-list__remove{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1}.confirm-tag{border-radius:var(--radius-pill);padding:2px 8px;font-size:.68rem;font-weight:600}.confirm-tag--fridge{background:var(--color-primary-container);color:var(--color-primary)}.confirm-tag--pantry{background:var(--color-tertiary-container);color:#92661f}.confirm-tag--added{color:var(--color-text-muted);background:#f3f4f6}.recipe-list h2{margin:0}.recipe-list__header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.recipe-list__header h2{margin:0}.recipe-list__see-all{color:var(--color-primary);font-size:.85rem;font-weight:600;text-decoration:none}.scan-actions{flex-direction:column;gap:8px;margin-top:4px;display:flex}.scan-actions .btn{width:100%}.scan-actions__note{color:var(--color-text-muted);margin:0;font-size:.85rem;line-height:1.4}.scan-actions__delete{color:var(--color-danger)}.home .home-confirm{flex-direction:column;gap:10px;display:flex}.home .home-confirm__row{background:var(--color-surface);border-radius:20px;align-items:center;gap:12px;min-height:68px;padding:10px 12px;display:flex;box-shadow:0 12px 28px #2c24161a}.home .home-confirm__row--teal{background:linear-gradient(100deg, var(--color-primary-container) 0%, var(--color-surface) 58%)}.home .home-confirm__row--amber{background:linear-gradient(100deg, var(--color-tertiary-container) 0%, var(--color-surface) 58%)}.home .home-confirm__name{letter-spacing:-.02em;min-width:0;font-size:1.05rem;font-weight:700}.home .home-confirm__tags{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.home .home-confirm__remove{background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;border:none;border-radius:50%;font-size:1.15rem;line-height:1;box-shadow:0 6px 14px #2c24161a}.home .purchase-card{background:linear-gradient(165deg, var(--color-secondary-container) 0%, var(--color-surface) 72%);border-radius:28px;flex-direction:column;gap:8px;padding:28px 22px;display:flex;box-shadow:0 18px 40px #2c241629}.home .purchase-card h3{letter-spacing:-.04em;margin:0;font-size:1.85rem;font-weight:700;line-height:1.08}.home .purchase-card p{letter-spacing:0;color:var(--color-text-muted);margin:0;font-size:.95rem;font-weight:400}.home .purchase-card .btn{white-space:normal;text-align:center;align-self:flex-start;max-width:100%;margin-top:4px}.diet-tracker{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;padding:16px;display:flex}.diet-tracker__header h1{margin:0 0 4px;font-size:1.4rem}.diet-tracker__subtitle{color:var(--color-text-muted-light);margin:0;font-size:.85rem}.pillars-card{flex-direction:column;gap:16px;display:flex}.pillar__header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.pillar__label{font-size:.9rem;font-weight:700}.pillar__count{color:var(--color-text-muted);font-size:.8rem}.pillar__track{border-radius:var(--radius-pill);background:#f0f0ee;height:8px;overflow:hidden}.pillar__fill{border-radius:var(--radius-pill);height:100%;transition:width .3s}.pillar__detail{color:var(--color-text-faint);margin:4px 0 0;font-size:.72rem}.pillar--primary .pillar__fill{background:var(--color-primary)}.pillar--secondary .pillar__fill{background:var(--color-secondary)}.pillar--tertiary .pillar__fill{background:var(--color-tertiary)}.pillars-card__settings{border-top:1px solid var(--color-border);gap:12px;padding-top:8px;display:flex}.pillars-card__settings label{color:var(--color-text-muted);flex-direction:column;flex:1;gap:4px;font-size:.75rem;display:flex}.pillars-card__settings input{border-radius:var(--radius-input);border:1px solid var(--color-border-input);padding:8px 10px;font-size:.9rem}.log-card h3{margin:0 0 10px;font-size:.95rem}.log-card__hint{color:var(--color-text-faint);margin:-6px 0 10px;font-size:.78rem}.log-card__select{border-radius:var(--radius-input);border:1px solid var(--color-border-input);background:var(--color-surface);width:100%;padding:10px 12px;font-size:.9rem}.log-card__preview{background:var(--color-background);border-radius:12px;gap:10px;margin-top:12px;padding:10px;display:flex}.log-card__preview img{object-fit:cover;border-radius:10px;flex-shrink:0;width:64px;height:64px}.log-card__preview-body{flex-direction:column;justify-content:center;gap:4px;display:flex}.log-card__preview-title{margin:0;font-size:.85rem;font-weight:600}.log-card__preview-impact{color:var(--color-text-muted);margin:0 0 4px;font-size:.75rem}.log-card__preview--editable{align-items:flex-start}.log-card__preview--editable img{width:80px;height:80px}.log-card__preview--skeleton{align-items:center}.log-card__preview--skeleton .skeleton-block{border-radius:10px;flex-shrink:0;width:64px;height:64px}.log-card__preview--skeleton .skeleton-line{width:140px;height:12px}.log-card__preview--skeleton .skeleton-line--short{width:96px}.log-card__preview-actions{gap:8px;margin-top:8px;display:flex}.log-card__manual-form{flex-direction:column;gap:8px;display:flex}.log-card__manual-form input[type=text]{border-radius:var(--radius-input);border:1px solid var(--color-border-input);padding:10px 12px;font-size:.9rem}.log-card__manual-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.log-card__manual-grid input{border-radius:var(--radius-input);border:1px solid var(--color-border-input);width:100%;padding:8px 10px;font-size:.85rem}.log-list h3{margin:0 0 8px;font-size:.95rem}.log-list__empty{color:var(--color-text-muted-light);font-size:.85rem}.log-list ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.log-list__item{background:var(--color-surface);box-shadow:var(--shadow-card-sm);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.log-list__name{margin:0;font-size:.85rem;font-weight:600}.log-list__macros{color:var(--color-text-muted-light);margin:2px 0 0;font-size:.72rem}.log-list__remove{color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:1.1rem}.log-list__remove:hover{color:var(--color-danger)}.photo-drop-zone{border:1.5px dashed var(--color-border-input);border-radius:12px;padding:20px}.photo-drop-zone__content{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:6px;font-size:.82rem;display:flex}.photo-drop-zone__icon{font-size:1.6rem}.combo{flex-direction:column;gap:8px;font-family:DM Sans,system-ui,sans-serif;display:flex;position:relative}.combo__label{font-size:.8rem;font-weight:700}.combo__selected,.combo__list{flex-wrap:wrap;gap:8px;display:flex}.combo__chip{border:1px solid var(--color-border-input,#d4c8ba);background:var(--color-surface,#fffdfa);color:var(--color-text-faint,#8a7d70);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;display:inline-flex}.combo__chip--on{background:var(--color-primary-container,#d3e4eb);color:var(--color-primary,#3d6b82);border-color:#0000}.combo__chip:disabled{opacity:.35;cursor:default}.combo__chip:focus-visible{outline:2px solid var(--color-primary,#3d6b82);outline-offset:2px}.combo__trigger{border:1px solid var(--color-border-input,#d4c8ba);background:var(--color-surface,#fffdfa);width:100%;color:var(--color-text-muted,#5c5144);font:inherit;text-align:left;cursor:pointer;border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-weight:600;display:flex;box-shadow:0 8px 18px #2c24160f}.combo__trigger--open{border-color:var(--color-primary,#3d6b82)}.combo__trigger:focus-visible{outline:2px solid var(--color-primary,#3d6b82);outline-offset:2px}.combo--open{z-index:30}.combo__panel{z-index:6;box-sizing:border-box;background:var(--color-surface,#fffdfa);border-radius:18px;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 18px 40px #2c241629}.combo__panel--end{width:min(280px,78vw);left:auto;right:0}.combo--single .combo__list{flex-flow:column;gap:2px;max-height:280px}.combo__option{width:100%;color:var(--color-text,#2c2416);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:flex-start;gap:8px;padding:8px;font-size:.85rem;font-weight:600;display:flex}.combo__option svg{flex-shrink:0;margin-top:2px}.combo__option--on{background:var(--color-primary-container,#d3e4eb);color:var(--color-primary,#3d6b82)}.combo__option:focus-visible{outline:2px solid var(--color-primary,#3d6b82);outline-offset:2px}.combo__search{box-sizing:border-box;border:1px solid var(--color-border-input,#d4c8ba);background:var(--color-background,#fbf3ea);width:100%;color:var(--color-text,#2c2416);font:inherit;border-radius:12px;padding:10px 12px}.combo__list{align-content:flex-start;max-height:180px;overflow:auto}.combo__empty{color:var(--color-text-muted,#5c5144);margin:0;font-size:.85rem}.combo__custom{background:var(--color-primary,#3d6b82);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;align-self:flex-start;padding:8px 14px;font-weight:700}.dashboard.screen{flex:1;gap:12px;max-width:1040px;min-height:0;overflow:hidden}.dashboard__note,.dashboard__empty,.dashboard__error{flex-shrink:0;margin:0}.dashboard__error{color:var(--color-danger)}.dashboard__stats{flex-shrink:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dashboard__stat{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border-bottom:3px solid var(--color-primary);padding:14px 14px 12px}.dashboard__stat--fees{border-bottom-color:var(--color-tertiary)}.dashboard__stat--model{border-bottom-color:var(--color-secondary)}.dashboard__stat--profit{border-bottom-color:var(--color-success)}.dashboard__stat-value{font-variant-numeric:tabular-nums;margin:0;font-size:1.35rem;font-weight:700;line-height:1.15}.dashboard__stat-label{color:var(--color-text-muted);margin:6px 0 0;font-size:.82rem}.dashboard__filters{flex-shrink:0;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.dashboard__accounts{background:var(--color-surface);border-radius:var(--radius-card);min-height:0;box-shadow:var(--shadow-card);flex-direction:column;flex:1;display:flex;overflow:hidden}.dashboard__table-wrap{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:auto}.dashboard__table{border-collapse:collapse;width:100%;min-width:720px}.dashboard__table th,.dashboard__table td{border-bottom:1px solid var(--color-border);text-align:right;vertical-align:top;font-variant-numeric:tabular-nums;padding:12px 14px}.dashboard__table th{background:var(--color-surface);color:var(--color-text-muted);letter-spacing:.01em;font-size:.78rem;font-weight:700;position:sticky;top:0}.dashboard__table th:first-child,.dashboard__table td:first-child{text-align:left}.dashboard__table tbody tr:last-child td{border-bottom:0}.dashboard__person{flex-direction:column;gap:2px;min-width:200px;display:flex}.dashboard__name{font-weight:700}.dashboard__email{color:var(--color-text-muted);font-size:.85rem}.dashboard__id{color:var(--color-text-faint);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}@media (width>=720px){.dashboard__stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=719px){.app-layout:has(.dashboard){height:auto;max-height:none;display:block;overflow:visible}.app-layout:has(.dashboard) .app-layout__content{flex:none;min-height:0;display:block}.dashboard.screen,.dashboard__accounts{flex:none;overflow:visible}.dashboard__table-wrap{flex:none;overflow:auto visible}}.auth{background:var(--color-surface);flex-direction:column;min-height:100dvh;display:flex}.auth-panel{display:none}.auth-main{box-sizing:border-box;padding:28px 20px calc(28px + env(safe-area-inset-bottom));flex:1;justify-content:center;display:flex}.auth-card{width:100%;max-width:400px}.auth-card__mark{margin:0 0 28px}.auth-card__header{text-align:left;margin-bottom:22px}.auth-card__title{margin:0;font-size:2rem;font-weight:700;line-height:1.15}.auth-card__subtitle{color:var(--color-text-muted);margin:8px 0 0;font-size:.95rem}.auth-card__switch{color:var(--color-text-muted);text-align:center;margin:4px 0 0;font-size:.9rem}.auth-card__switch a{color:var(--color-primary);font-weight:700;text-decoration:none}.auth-form{flex-direction:column;display:flex}.auth-form__label{color:var(--color-text);margin:14px 0 6px;font-size:.85rem;font-weight:600}.auth-form__label:first-of-type{margin-top:0}.auth-form__input{box-sizing:border-box;border:1px solid var(--color-border-input);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;border-radius:12px;padding:12px 14px;font-size:.95rem}.auth-form__input:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.auth-form__submit{border-radius:12px;width:100%;margin-top:18px;padding:12px 20px}.auth-form__error{color:var(--color-danger);background:#fdecec;border-radius:12px;margin:0 0 14px;padding:12px 14px;font-size:.85rem}.auth-form__hint{color:var(--color-text-muted-light);margin:-2px 0 6px;font-size:.8rem;line-height:1.35}.auth-form__check{color:var(--color-text-muted);cursor:pointer;align-items:flex-start;gap:10px;margin-top:16px;font-size:.85rem;font-weight:600;line-height:1.4;display:flex}.auth-form__check input{width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0;margin-top:2px}.auth-form__check a{color:var(--color-primary);font-weight:700;text-decoration:none}.auth-divider{color:var(--color-text-faint);letter-spacing:.04em;align-items:center;margin:18px 0;font-size:.8rem;font-weight:700;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-divider span{padding:0 10px}.auth-oauth{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.auth-oauth__google{justify-content:center;width:100%;max-width:100%;display:flex;position:relative}.auth-oauth__google--blocked{opacity:.45}.auth-oauth__google iframe{max-width:100%}.auth-oauth__cover{z-index:2;cursor:not-allowed;background:0 0;border:none;padding:0;position:absolute;inset:0}@media (width>=960px){body:has(.auth){overflow:hidden}.auth{flex-direction:row;height:100dvh;max-height:100dvh;overflow:hidden}.auth-panel{box-sizing:border-box;background:linear-gradient(165deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 72%, var(--color-text)) 100%);color:#fff;flex-direction:column;flex:50%;justify-content:flex-end;min-width:0;padding:56px;display:flex}.auth-panel .logo{background:var(--color-background);border-radius:16px;width:fit-content;margin-bottom:28px;padding:10px}.auth-panel h2{max-width:12ch;margin:0;font-size:3.25rem;font-weight:700;line-height:1.05}.auth-panel p{max-width:22ch;color:var(--color-primary-container);margin:16px 0 0;font-size:1.15rem;line-height:1.4}.auth-main{flex:50%;align-items:center;min-width:0;padding:20px 48px;overflow:hidden}.auth-card__mark{display:none}.auth-card__header{margin-bottom:12px}.auth-card__title{font-size:1.7rem}.auth-card__subtitle{margin-top:4px;font-size:.9rem}.auth-form__label{margin:8px 0 4px}.auth-form__input{padding:8px 12px}.auth-form__submit{margin-top:10px;padding:10px 16px}.auth-form__hint{margin:0 0 4px}.auth-form__check{margin-top:8px}.auth-divider{margin:10px 0}.auth-oauth{margin-bottom:8px}}.theme-picker{flex-direction:column;gap:8px;margin:8px 0;display:flex}.theme-picker__label{font-size:.9rem}.theme-picker__search{box-sizing:border-box;border:1px solid var(--color-border-input);width:100%;font:inherit;background:var(--color-surface);border-radius:14px;padding:12px 14px;font-size:.95rem;box-shadow:0 8px 18px #2c24160f}.theme-picker__selected,.theme-picker__list{flex-wrap:wrap;gap:6px;display:flex}.theme-picker__chip{border:1px solid var(--color-border-input);background:var(--color-surface);border-radius:var(--radius-pill);cursor:pointer;padding:4px 10px;font-size:.8rem}.theme-picker__chip--on{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.theme-picker__chip:disabled{opacity:.45;cursor:default}.theme-picker__empty{color:var(--color-text-muted);margin:0;font-size:.85rem}.theme-picker__custom{align-self:flex-start}.legal{box-sizing:border-box;min-height:100dvh;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:var(--color-background)}.legal__frame{max-width:640px;margin:0 auto}.legal__card{background:var(--color-surface);border-radius:28px;box-shadow:0 18px 40px #2c241629}.legal__header{background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);border-radius:28px 28px 0 0;padding:28px 24px 22px}.legal__back{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 12px;font-size:.9rem;display:flex}.legal__back a,.legal__back .legal__back-btn{color:var(--color-primary);font-weight:700;text-decoration:none}.legal__back .legal__back-btn{cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-weight:700}.legal__back .legal__back-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.legal__title{margin:0;font-size:2.15rem;font-weight:700;line-height:1.1}.legal__updated{color:var(--color-text-muted);margin:8px 0 0;font-size:.9rem}.legal__body{flex-direction:column;gap:12px;padding:20px 24px 4px;display:flex}.legal__body h2{border-top:1px solid var(--color-border);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:8px 0 0;padding-top:20px;font-size:.8rem;font-weight:700}.legal__body p,.legal__body li{color:var(--color-text);margin:0;font-size:.95rem;line-height:1.55}.legal__body ul{margin:0;padding-left:1.2rem}.legal__body li+li{margin-top:8px}.legal__body a{color:var(--color-primary);font-weight:700;text-decoration:none}.legal__nav{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:8px 16px;margin:8px 24px 0;padding:16px 0 22px;font-size:.9rem;display:flex}.legal__nav a{color:var(--color-primary);font-weight:700;text-decoration:none}.profile{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;padding:16px;display:flex}.profile__error{color:var(--color-danger);margin:0 0 12px;font-size:.85rem}.profile__legal{flex-wrap:wrap;justify-content:center;gap:8px 16px;padding:4px 0 8px;font-size:.8rem;display:flex}.profile__legal a{color:var(--color-primary);font-weight:600;text-decoration:none}.profile-header{text-align:center;background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);border-radius:28px;flex-direction:column;align-items:center;gap:4px;padding:22px 20px;display:flex;box-shadow:0 18px 40px #2c241629}.profile-header__avatar-btn{cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:0;position:relative}.profile-header__avatar-btn:hover .profile-header__avatar-edit,.profile-header__avatar-btn--busy .profile-header__avatar-edit{opacity:1}.profile-header__avatar-btn:disabled{cursor:default}.profile-header__avatar{object-fit:cover;border:3px solid var(--color-primary-container);border-radius:50%;width:88px;height:88px;display:block}.profile-header__avatar--placeholder{background:var(--color-primary-container);color:var(--color-primary);justify-content:center;align-items:center;font-size:1.4rem;font-weight:700;display:flex}.profile-header__avatar-edit{color:#fff;opacity:0;background:#00000073;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.profile-header__name-row{align-items:center;gap:8px;display:flex}.profile-header__name{letter-spacing:-.04em;color:var(--color-primary);margin:0;font-size:2.15rem;font-weight:700;line-height:1.05}.profile-header__edit-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600}.profile-header__name-edit{align-items:center;gap:8px;display:flex}.profile-header__name-input{border:1px solid var(--color-border-input);font:inherit;background:var(--color-surface);border-radius:14px;padding:10px 14px;font-size:1rem}.profile-header__email{color:var(--color-text-muted-light);margin:2px 0 0;font-size:.85rem}.profile-subscribe{background:linear-gradient(165deg, var(--color-secondary-container) 0%, var(--color-surface) 72%);border-radius:28px;flex-direction:column;gap:8px;padding:28px 22px;display:flex;box-shadow:0 18px 40px #2c241629}.profile-subscribe h2{letter-spacing:-.04em;margin:0;font-size:1.85rem;font-weight:700;line-height:1.08}.profile-subscribe p{color:var(--color-text-muted);margin:0;font-size:.95rem}.profile-subscribe__deal{color:var(--color-text);font-weight:600}.profile-subscribe__notice{color:var(--color-primary);font-weight:600}.profile-subscribe__actions{flex-direction:column;gap:8px;margin-top:8px;display:flex}.profile-subscribe__choice,.profile-subscribe__manage{width:100%}.profile .card{border-radius:28px;box-shadow:0 18px 40px #2c241629}.profile-account{flex-direction:column;gap:8px;display:flex}.profile-account .btn{width:100%}.profile-account__delete{width:100%;color:var(--color-danger);font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:.9rem;font-weight:700;display:inline-flex}.profile-account__delete:disabled{opacity:.45;cursor:default}.subscription-card h3{margin:0 0 8px}.subscription-card__plan{text-transform:capitalize;margin:0 0 4px;font-size:.95rem}.subscription-card__status{text-transform:capitalize;font-weight:600}.subscription-card__status--active{color:var(--color-success)}.subscription-card__status--past_due{color:var(--color-warning)}.subscription-card__status--canceled,.subscription-card__status--trialing{color:var(--color-text-muted-light)}.subscription-card__tier{margin:0 0 4px;font-size:.95rem;font-weight:700}.subscription-card__renews{color:var(--color-text-muted-light);margin:0 0 12px;font-size:.85rem}.subscription-card__none{color:var(--color-text-muted-light);margin:0 0 12px;font-size:.9rem}.subscription-card__notice{color:var(--color-primary);margin:0 0 12px;font-size:.9rem}.subscription-card__actions{flex-direction:column;gap:8px;display:flex}.plan-picker{grid-template-columns:1fr;align-items:stretch;gap:20px;margin:8px 0 12px;padding-top:4px;display:grid}@media (width>=800px){.plan-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:16px}}.subscription-card>.btn{width:100%}@media (width>=800px){.subscription-card>.btn{width:auto}}.price-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;flex-direction:column;min-width:0;padding:16px;display:flex;position:relative}.price-card--current{border:2px solid var(--color-primary)}.price-card--featured{background:var(--color-primary);color:#fff;border-color:var(--color-primary);margin-top:8px}@media (width>=800px){.price-card--featured{margin-top:0}}.price-card--featured .price-card__blurb,.price-card--featured .price-card__amount span:last-child{color:#ffffffd1}.price-card--featured .price-card__note--deal{color:#fff;font-size:.95rem;font-weight:700}.price-card--featured .price-card__was{color:#ffffffa6}.price-card--featured .price-card__features li:before{color:#fff}.price-card--featured .price-card__cta--current{color:#fff;border-color:#ffffffd9}.price-card__popular{border-radius:var(--radius-pill);background:var(--color-tertiary);color:var(--color-text);white-space:nowrap;margin:0;padding:4px 10px;font-size:.72rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.price-card__name{letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:.8rem;font-weight:700}.price-card__blurb{color:var(--color-text-muted);margin:0 0 12px;font-size:.82rem;line-height:1.35}@media (width>=800px){.price-card__blurb{min-height:2.6em}}.price-card__amount{align-items:flex-end;gap:4px;margin:0;display:flex}.price-card__amount span:first-child{font-size:2.2rem;font-weight:800;line-height:1}.price-card__amount span:last-child{color:var(--color-text-muted-light);margin-bottom:4px;font-size:.9rem}.price-card__note{color:var(--color-text-muted-light);margin:6px 0 12px;font-size:.8rem}.price-card__note--deal{flex-direction:column;align-items:flex-start;gap:6px;font-weight:700;display:flex}.price-card__note--deal strong{font-size:1.05rem}@media (width>=800px){.price-card__note--deal{flex-flow:wrap;align-items:center}}.price-card__was{color:var(--color-text-faint);font-weight:600;text-decoration:line-through}.price-card__save{border-radius:var(--radius-pill);background:var(--color-tertiary);color:var(--color-text);letter-spacing:.02em;padding:3px 8px;font-size:.75rem;font-weight:800;display:inline-block}.price-card__features{border-top:1px solid var(--color-border);margin:14px 0 0;padding:12px 0 0;list-style:none}.price-card__features li{margin:0 0 8px;padding-left:18px;font-size:.82rem;position:relative}.price-card__features li:before{content:"✓";color:var(--color-primary);font-weight:700;position:absolute;left:0}.price-card--featured .price-card__features{border-top-color:#ffffff40}.price-card__cta{width:100%}.price-card__cta--current,.price-card__cta--quiet{color:var(--color-primary);border:1px solid var(--color-primary);cursor:default;background:0 0}.price-card__cta--quiet{color:var(--color-text-muted);border-color:var(--color-border)}.preferences-card{flex-direction:column;gap:18px;display:flex}.preferences-card h3{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.8rem;font-weight:700}.preferences-card .theme-picker{border-top:1px solid var(--color-border);margin:4px 0 0;padding-top:12px}.preferences-card__hint{color:var(--color-text-muted-light);margin:-10px 0 0;font-size:.8rem}.preference-group+.preference-group{border-top:1px solid var(--color-border);padding-top:16px}.preference-group{flex-direction:column;gap:8px;display:flex}.preference-group__header h4{margin:0 0 2px;font-size:.9rem}.preference-group__header p{color:var(--color-text-muted-light);margin:0;font-size:.75rem}.preference-group__chips{flex-wrap:wrap;gap:6px;min-height:24px;display:flex}.preference-group__empty{color:var(--color-text-faint);align-self:center;font-size:.8rem}.preference-group__subtitle{color:var(--color-text-muted-light);margin:0 0 8px;font-size:.8rem}.preference-group__select{border-radius:var(--radius-input);border:1px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text-muted);align-self:flex-start;padding:6px 10px;font-size:.82rem}.preference-group__other{gap:8px;display:flex}.preference-group__other-input{border-radius:var(--radius-input);border:1px solid var(--color-border-input);flex:1;padding:6px 10px;font-size:.85rem}.preference-group--allergy .preference-chip{color:#a12626;background:#fdecec}.preference-group--dislike .preference-chip{background:var(--color-tertiary-container);color:#92661f}.diet-prefs{flex-direction:column;gap:12px;display:flex}.diet-prefs--skeleton .diet-prefs__skeleton-switch{border-radius:999px;height:40px}.diet-prefs--skeleton .diet-prefs__skeleton-field{border-radius:14px;height:44px}.diet-prefs__switch{background:var(--color-background);border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.diet-prefs__switch button{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:.9rem;font-weight:700;display:inline-flex}.diet-prefs__switch button span{font-variant-numeric:tabular-nums}.diet-prefs__switch button[aria-pressed=true]{background:var(--color-primary);color:#fff}.diet-prefs__switch button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.diet-prefs .preferences-card__hint{margin:0}.week-defaults{flex-direction:column;gap:16px;display:flex}.week-defaults__meals{grid-template-columns:1fr 1fr;gap:10px;display:grid}.week-defaults__meal{background:var(--color-background);border-radius:16px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.week-defaults__meal>span{color:var(--color-text-muted);font-size:.8rem;font-weight:700}.week-defaults__stepper{justify-content:space-between;align-items:center;display:flex}.week-defaults__stepper button{border:1px solid var(--color-border-input);background:var(--color-surface);width:32px;height:32px;color:var(--color-primary);font:inherit;cursor:pointer;border-radius:999px;font-size:1.15rem;line-height:1}.week-defaults__stepper button:disabled{opacity:.35;cursor:default}.week-defaults__stepper button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.week-defaults__stepper>span{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.week-defaults__switch{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:0;font-weight:700;display:flex}.week-defaults__switch>span:first-child{flex-direction:column;gap:2px;display:flex}.week-defaults__switch>span:first-child span{color:var(--color-text-muted-light);font-size:.8rem;font-weight:500}.week-defaults__switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:8px}.week-defaults__track{background:var(--color-border);border-radius:999px;flex:none;width:44px;height:26px;position:relative}.week-defaults__track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;position:absolute;top:3px;left:3px}.week-defaults__track--on{background:var(--color-primary)}.week-defaults__track--on:after{transform:translate(18px)}.week-defaults__scale{background:var(--color-background);border-radius:999px;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid}.week-defaults__scale button{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 0;font-size:.9rem;font-weight:700}.week-defaults__scale button[aria-pressed=true]{background:var(--color-primary);color:#fff}.week-defaults__scale button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.preference-chip{border-radius:var(--radius-pill);align-items:center;gap:4px;padding:4px 6px 4px 10px;font-size:.8rem;font-weight:500;display:inline-flex}.preference-chip__remove{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:2px 4px;font-size:.95rem;line-height:1}.preference-chip__remove:hover{opacity:1}.saved-preview__header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.saved-preview__header h3{margin:0}.saved-preview__see-all{color:var(--color-primary);font-size:.85rem;font-weight:600;text-decoration:none}.saved-preview__grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.saved-preview__item{text-align:center}.saved-preview__image{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-image);width:100%;margin-bottom:4px}.saved-preview__image--placeholder{background:var(--color-primary-container,#d7e3ea)}.saved-preview__name{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.72rem;display:-webkit-box;overflow:hidden}.saved-preview__empty{color:var(--color-text-muted-light);font-size:.85rem}.settings-list h3{margin:0 0 8px}.settings-list ul{margin:0;padding:0;list-style:none}.settings-list li{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:12px 0;font-size:.9rem;display:flex}.settings-list li:last-child{border-bottom:none}.settings-list li button{color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:0;font-size:.9rem}.settings-list li button:disabled{opacity:.6;cursor:default}.settings-list__static{color:var(--color-text-muted)}.settings-list__value{color:var(--color-text-muted-light)}.settings-list__logout{font-weight:600;color:var(--color-danger)!important}.recipe-form{z-index:30;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.recipe-form__backdrop{-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#2c241673;border:none;position:absolute;inset:0}.recipe-form__backdrop:disabled{cursor:default}.recipe-form__panel{box-sizing:border-box;background:var(--color-background);width:min(480px,100% - 24px);min-width:0;max-height:min(92vh,840px);margin-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:28px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #2c241629}.recipe-form__panel:focus{outline:none}.recipe-form__header{flex-shrink:0;align-items:center;padding:16px 16px 8px;display:flex}.recipe-form__close{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);font:inherit;cursor:pointer;border:none;align-items:center;gap:8px;padding:8px 14px;font-size:.95rem;font-weight:700;display:inline-flex;box-shadow:0 6px 14px #2c241614}.recipe-form__close:disabled{opacity:.45;cursor:default}.recipe-form__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.recipe-form__heading{letter-spacing:-.04em;margin:0;font-size:1.85rem;font-weight:700;line-height:1.08}.recipe-form__scroll{-webkit-overflow-scrolling:touch;box-sizing:border-box;width:100%;min-width:0;padding:8px 16px calc(28px + env(safe-area-inset-bottom));flex-direction:column;flex:1;align-items:stretch;gap:8px;margin:0;display:flex;overflow-y:auto}.recipe-form__error{color:var(--color-danger);background:#fff6f5;border-radius:18px;margin:0;padding:16px;font-size:.95rem;font-weight:600}.recipe-form__photo{background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);border-radius:20px;justify-content:center;align-items:center;min-height:112px;display:flex;overflow:hidden}.recipe-form__photo-img{object-fit:cover;width:100%;height:180px}.recipe-form__photo-hint{letter-spacing:-.02em;color:var(--color-primary);text-align:center;margin:0;padding:24px 16px;font-size:.95rem;font-weight:700}.recipe-form__label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:10px 0 0;font-size:.8rem;font-weight:700}.recipe-form__hint{letter-spacing:0;text-transform:none;color:var(--color-text-muted-light);font-weight:600}.recipe-form__input,.recipe-form__textarea{box-sizing:border-box;border:1px solid var(--color-border-input);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;border-radius:14px;padding:10px 14px;font-size:.95rem;box-shadow:0 8px 18px #2c24160f}.recipe-form__input::placeholder,.recipe-form__textarea::placeholder{color:var(--color-text-muted-light)}.recipe-form__input:focus,.recipe-form__textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.recipe-form__textarea{resize:vertical;min-height:64px}.recipe-form__textarea--steps{min-height:140px}.recipe-form__ingredients{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.recipe-form__ingredient{background:var(--color-primary-container);border-radius:16px;grid-template-columns:1fr 1fr;align-items:center;gap:8px;padding:10px 12px;display:grid}.recipe-form__ingredient .recipe-form__input{box-shadow:none}.recipe-form__required{color:var(--color-text);align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.recipe-form__required input{width:16px;height:16px;accent-color:var(--color-primary);margin:0}.recipe-form__remove{color:var(--color-danger);font:inherit;cursor:pointer;background:0 0;border:none;justify-self:end;padding:0;font-size:.85rem;font-weight:700}.recipe-form__remove:disabled{opacity:.45;cursor:default}.recipe-form__add{align-self:stretch}.recipe-form__submit{width:100%;margin-top:8px}.cookbook{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;padding:16px;display:flex}.cookbook__poster{background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);color:var(--color-primary);border-radius:28px;padding:22px 20px;box-shadow:0 18px 40px #2c241629}.cookbook__poster h1{letter-spacing:-.04em;margin:0;font-size:2.15rem;font-weight:700;line-height:1.05}.cookbook__subscribe{background:linear-gradient(165deg, var(--color-secondary-container) 0%, var(--color-surface) 72%);border-radius:28px;flex-direction:column;gap:8px;padding:28px 22px;display:flex;box-shadow:0 18px 40px #2c241629}.cookbook__subscribe p{color:var(--color-text-muted);margin:0;font-size:.95rem}.cookbook__subscribe-actions{flex-wrap:wrap;gap:8px;display:flex}.cookbook__actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:24px;display:grid}.cookbook__actions .btn{width:100%}.cookbook__template{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.85rem;font-weight:600}.cookbook__csv,.cookbook__capture{border-radius:28px;box-shadow:0 18px 40px #2c241629}.cookbook__csv{flex-direction:column;gap:12px;display:flex}.cookbook__csv p{margin:0;font-size:.9rem}.cookbook__csv-title{letter-spacing:-.03em;margin:0;font-size:1.35rem;font-weight:700}.cookbook__paste-label{flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;display:flex}.cookbook__paste-label span{color:var(--color-text-muted);font-weight:500}.cookbook__paste-text,.cookbook__paste-url{box-sizing:border-box;border:1px solid var(--color-border-input);width:100%;font:inherit;background:var(--color-surface);border-radius:14px;padding:12px 14px;font-size:.95rem;font-weight:400}.cookbook__paste-text{resize:vertical;min-height:140px}.cookbook__csv-cols{flex-direction:column;gap:6px;margin:0;display:flex}.cookbook__csv-cols div{background:var(--color-primary-container);border-radius:12px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.cookbook__csv-cols dt{font-size:.85rem;font-weight:700}.cookbook__csv-cols dd{color:var(--color-text-muted);margin:0;font-size:.82rem}.cookbook__csv-cols code{font-size:.78rem}.cookbook__csv-example-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:4px 0 0;font-size:.8rem;font-weight:700}.cookbook__csv-example{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cookbook__csv-example li{background:var(--color-primary-container);color:var(--color-text);border-radius:12px;padding:8px 12px;font-size:.85rem;font-weight:600;line-height:1.35}.cookbook__capture{flex-direction:column;gap:12px;display:flex}.cookbook__capture>p{margin:0;font-size:.9rem}.cookbook__capture-sides{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cookbook__capture-side{text-align:center;background:linear-gradient(180deg, var(--color-primary-container) 0%, var(--color-background) 100%);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:168px;padding:16px 12px;display:flex}.cookbook__capture-thumb{object-fit:cover;border-radius:14px;width:100%;height:96px}.cookbook__capture-side-body{flex-direction:column;align-items:center;gap:4px;display:flex}.cookbook__capture-label{letter-spacing:-.02em;color:var(--color-primary);margin:0;font-size:1.05rem;font-weight:700}.cookbook__capture-status{color:var(--color-text-muted);margin:0;font-size:.78rem}.cookbook__capture-note{color:var(--color-text-muted-light);margin:0;font-size:.82rem}.cookbook__capture-skeleton .skeleton-block{border-radius:20px;min-height:168px}.cookbook__capture-error{color:var(--color-danger);margin:0;font-size:.85rem}.cookbook__subtitle{color:var(--color-text-muted);margin:8px 0 0;font-size:.95rem;font-weight:400}.cookbook__subtitle-skeleton{vertical-align:middle;width:148px;height:14px;display:inline-block}.cookbook__search{box-sizing:border-box;border:1px solid var(--color-border-input);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;border-radius:14px;padding:12px 14px;font-size:.95rem;box-shadow:0 8px 18px #2c24160f}.cookbook__search:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.cookbook__empty,.cookbook__error{background:var(--color-surface);color:var(--color-text-muted);border-radius:18px;margin:0;padding:16px;font-size:.95rem;font-weight:600;box-shadow:0 10px 24px #2c241614}.cookbook__error{color:var(--color-danger);background:#fff6f5}.filter-chips{scrollbar-width:none;flex-wrap:nowrap;gap:8px;margin-inline:-16px;padding-inline:16px;display:flex;overflow-x:auto}.filter-chips::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);cursor:pointer;flex-shrink:0;padding:8px 14px;font-size:.85rem;font-weight:600}.filter-chip--active{background:var(--color-primary-container);color:var(--color-primary);border-color:#0000}.cookbook-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.cookbook-grid .recipe-card--skeleton{aspect-ratio:4/3}.cookbook-card{aspect-ratio:4/3;background:var(--color-primary-container);cursor:pointer;border-radius:28px;position:relative;overflow:hidden;box-shadow:0 18px 40px #2c241629}.cookbook-card__image{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.cookbook-card__image--placeholder{background:var(--color-primary-container)}.cookbook-card__badge{z-index:2;background:var(--color-tertiary-container);color:var(--color-tertiary-text);border-radius:var(--radius-pill);padding:4px 8px;font-size:.7rem;font-weight:700;position:absolute;top:10px;left:10px}.cookbook-card__copy{z-index:1;background:linear-gradient(180deg, #fbf3ea00 0%, #fbf3eaf0 46%, var(--color-background) 100%);flex-direction:column;gap:6px;padding:48px 16px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}.cookbook-card__title{letter-spacing:-.03em;margin:0;font-size:1.25rem;font-weight:700;line-height:1.1}.cookbook-card__from{color:var(--color-text-muted);margin:0;font-size:.72rem;font-weight:600}.cookbook-card__source{color:var(--color-primary);align-self:flex-start;font-size:.72rem;font-weight:600}.cookbook-card__description{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.78rem;display:-webkit-box;overflow:hidden}.cookbook-card__meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cookbook-card__pill{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);padding:4px 10px;font-size:.72rem;font-weight:700;box-shadow:0 6px 14px #2c24161a}.planner{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;padding:16px 16px 24px;display:flex}.planner .card{border-radius:28px;box-shadow:0 18px 40px #2c241629}.planner__header{background:linear-gradient(165deg, var(--color-primary-container) 0%, var(--color-background) 100%);color:var(--color-primary);border-radius:28px;padding:22px 20px;box-shadow:0 18px 40px #2c241629}.planner__header h1{letter-spacing:-.04em;margin:0;font-size:2.15rem;font-weight:700;line-height:1.05}.planner__subtitle{color:var(--color-text-muted);margin:8px 0 0;font-size:.95rem;font-weight:400}.planner__disclaimer{margin-top:8px}.planner__week-nav{align-items:center;gap:8px;display:flex}.planner__week-nav .btn{flex:none;padding:8px 14px}.planner__week-label{text-align:center;letter-spacing:-.02em;flex:1;margin:0;font-size:.95rem;font-weight:700}.planner__subscribe{background:linear-gradient(165deg, var(--color-secondary-container) 0%, var(--color-surface) 72%);color:var(--color-text-muted);border-radius:28px;margin:0;padding:22px 20px;font-size:.95rem;box-shadow:0 18px 40px #2c241629}.planner__subscribe a{color:var(--color-primary);font-weight:700}.planner__error{color:var(--color-danger);background:#fff6f5;border-radius:16px;margin:0;padding:14px 16px;font-size:.9rem}.planner__status{background:var(--color-surface);color:var(--color-text-muted);border-radius:20px;align-items:center;gap:8px;margin:0;padding:16px;display:flex;box-shadow:0 8px 18px #2c24160f}.planner__scan-btn{align-self:stretch}.planner__scan-btn:disabled{opacity:.45;cursor:default}.planner__on-hand h2{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 8px;font-size:.8rem;font-weight:700}.planner__on-hand-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.planner__hint{color:var(--color-text-muted);margin:0;font-size:.85rem}.planner .confirm-list__item{background:var(--color-surface);border-radius:16px;padding:10px 12px;box-shadow:0 8px 18px #2c24160f}.planner .confirm-list__item--teal{background:var(--color-primary-container)}.planner .confirm-list__item--amber{background:var(--color-tertiary-container)}.planner .confirm-list__remove{background:var(--color-surface);width:32px;height:32px;color:var(--color-text);border-radius:50%;padding:0;box-shadow:0 6px 14px #2c24161a}.planner .confirm-list__use-first input{accent-color:var(--color-primary)}.planner .confirm-card__input{border-radius:14px;box-shadow:0 8px 18px #2c24160f}.planner-shop h2{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 8px;font-size:.8rem;font-weight:700}.planner-shop__empty{color:var(--color-text-muted);margin:8px 0 4px;font-size:.9rem}.planner-shop__items{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.planner-shop__item{background:var(--color-background);border-radius:16px;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:8px 12px;display:flex;box-shadow:0 8px 18px #2c24160f}.planner-shop__check{flex:1;align-items:center;gap:8px;min-width:0;font-size:.92rem;font-weight:600;display:flex}.planner-shop__check input{width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0;margin:0}.planner-shop__done{color:var(--color-text-faint);text-decoration:line-through}.planner-shop__remove{color:var(--color-danger);font:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:.85rem;font-weight:700}.planner-shop__remove:disabled{opacity:.45;cursor:default}.planner-shop__add{grid-template-columns:1fr auto;gap:8px;margin-top:8px;display:grid}.planner-shop__add input{box-sizing:border-box;border:1px solid var(--color-border-input);width:100%;min-width:0;font:inherit;background:var(--color-surface);color:var(--color-text);border-radius:14px;padding:12px 14px;font-size:.95rem;box-shadow:0 8px 18px #2c24160f}.planner-shop__add input:first-child{grid-column:1/-1}.planner-intent{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.planner-intent legend{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding:0;font-size:.8rem;font-weight:700}.planner-intent__toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.planner-intent__option{border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 8px;font-size:.9rem;font-weight:700;display:inline-flex;box-shadow:0 8px 18px #2c24160f}.planner-intent__option--on{background:var(--color-primary);color:#fff;box-shadow:none}.planner-intent__note{color:var(--color-text-muted);margin:0;font-size:.85rem}.planner-quiz{flex-direction:column;gap:0;display:flex}.planner-quiz h2{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.8rem;font-weight:700}.planner-quiz__section{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;margin-top:20px;padding-top:20px;display:flex}.planner-quiz__section:first-of-type{border-top:none;margin-top:16px;padding-top:0}.planner-quiz__hint{color:var(--color-text-muted);margin:0;font-size:.85rem;line-height:1.45}.planner-quiz__row{justify-content:space-between;align-items:center;gap:12px;margin:0;font-size:.9rem;display:flex}.planner-quiz__row input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0}.planner-quiz__row select,.planner-quiz__row input[type=text]{border:1px solid var(--color-border-input);font:inherit;background:var(--color-surface);border-radius:14px;padding:10px 12px;font-size:.9rem;box-shadow:0 8px 18px #2c24160f}.planner-quiz__row--check{justify-content:flex-start}.planner-quiz__row--stack{flex-direction:column;align-items:stretch}.planner-quiz__grid{flex-direction:column;gap:10px;margin:8px 0 12px;display:flex}.planner-quiz__days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.planner-quiz__day{background:var(--color-background);color:var(--color-text-muted);font:inherit;cursor:pointer;border:none;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 0;font-size:.78rem;font-weight:700;display:flex}.planner-quiz__day--on{background:var(--color-primary);color:#fff}.planner-quiz__day-date{font-size:.85rem;font-weight:700}.planner-quiz__day-card{background:var(--color-background);border-radius:20px;padding:8px 14px 12px}.planner-quiz__day-card h3{letter-spacing:-.03em;color:var(--color-primary);margin:8px 0;font-size:1.15rem;font-weight:700}.planner-quiz__meal{flex-direction:column;align-items:stretch;gap:8px;padding:10px 0;font-size:.95rem;display:flex}.planner-quiz__meal+.planner-quiz__meal{border-top:1px solid var(--color-border)}.planner-quiz__meal input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0;margin-top:2px}.planner-quiz__meal .planner-quiz__meal-check>span{flex-direction:column;gap:2px;display:flex}.planner-quiz__meal .theme-picker{margin:0}.planner-quiz__meal .planner-quiz__row{font-size:.85rem}.planner-quiz__meal em{color:var(--color-primary);font-size:.75rem;font-style:normal;font-weight:600}.planner-quiz__meal--leftover{background:var(--color-primary-container);border-top-color:#0000;margin:0 -14px;padding:10px 14px}.planner-quiz__meal-check{align-items:flex-start;gap:8px;min-width:0;display:flex}.planner-quiz__scale{flex-direction:column;gap:8px;display:flex}.planner-quiz__scale>span{font-size:.85rem;font-weight:700}.planner-quiz__pin{width:100%;max-width:none;margin:0}.planner-quiz__pin .combo__trigger{box-shadow:none;padding:10px 12px;font-size:.9rem}.planner-quiz__pin .combo__trigger span{min-width:0;line-height:1.3}.planner-quiz__chips{flex-wrap:wrap;gap:6px;display:flex}.planner-quiz__chip{border:1px solid var(--color-border-input);background:var(--color-surface);border-radius:var(--radius-pill);cursor:pointer;padding:4px 10px;font-size:.8rem}.planner-quiz__chip--on{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.planner-quiz__add{gap:8px;display:flex}.planner-quiz__add input{flex:1}.planner-week{flex-direction:column;gap:12px;min-width:0;display:flex}.planner-week--skeleton .planner-day__skeleton-title{width:38%;height:18px;margin-bottom:6px}.planner-week--skeleton .planner-day__skeleton-date{width:22%;height:12px;margin-bottom:12px}.planner-week--skeleton .planner-slot__skeleton{border-radius:16px;height:48px}.planner-week--skeleton .planner-slot__skeleton+.planner-week--skeleton .planner-slot__skeleton{margin-top:8px}.planner-day{box-sizing:border-box;background:var(--color-surface);border-radius:28px;flex-direction:column;min-width:0;max-width:100%;padding:16px;display:flex;overflow:hidden;box-shadow:0 18px 40px #2c241629}.planner-day__title{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;margin:0 0 12px;display:flex}.planner-day__weekday{letter-spacing:-.03em;color:var(--color-primary);font-size:1.15rem;font-weight:700;line-height:1.2}.planner-day__date{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.planner-day__meals{flex-direction:column;flex:1;gap:8px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.planner-day__meals li{min-width:0;max-width:100%}.planner-slot{box-sizing:border-box;border:1.5px dashed var(--color-border-input);text-align:left;background:0 0;border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-width:0;max-width:100%;padding:8px 12px;font-size:.9rem;display:flex;overflow:hidden}.planner-slot--button{cursor:pointer;font:inherit;color:inherit;border:none;min-width:0;max-width:100%}.planner-slot--button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.planner-slot__meal{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:700}.planner-slot__name{overflow-wrap:anywhere;width:100%;font-weight:600;line-height:1.35}.planner-slot--cooked{background:linear-gradient(160deg, var(--color-primary-container), var(--color-surface));border-style:solid;border-color:#0000;box-shadow:0 8px 18px #2c241614}.planner-slot--leftovers{background:var(--color-primary-container);border-style:solid;border-color:#0000}.planner-slot--leftovers .planner-slot__name{color:var(--color-primary);font-weight:600}.planner-slot--busy{background:var(--color-tertiary-container);border-style:solid;border-color:#0000}.planner-slot--busy .planner-slot__name{color:var(--color-text);font-weight:600}.planner-slot--off .planner-slot__name{color:var(--color-text-faint);font-weight:500}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
