@font-face{font-family:Cereal;src:url('../assets/fonts/AirbnbCerealApp-Book.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cereal;src:url('../assets/fonts/AirbnbCerealApp-Medium.ttf') format('truetype');font-weight:500 600;font-display:swap}
@font-face{font-family:Cereal;src:url('../assets/fonts/AirbnbCerealApp-Bold.ttf') format('truetype');font-weight:700 900;font-display:swap}
:root{--purple:#685cc1;--purple-dark:#5548a6;--ink:#2c1f52;--muted:#6b657a;--lilac:#eeebf8;--paper:#faf9fc;--line:#e5e0ee;--green:#23634a;--radius:14px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#b9b0d7 var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Cereal,sans-serif;font-size:15px;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:#d8d0f4;color:var(--ink)}
button,input,select,textarea{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none;text-underline-offset:4px}svg{flex-shrink:0;vertical-align:middle}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8f80d3;outline-offset:4px}input,textarea{caret-color:var(--purple)}
h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{text-wrap:balance;letter-spacing:-.025em}h1{font-size:36px;line-height:1.18;font-weight:700}h2{font-size:25px;line-height:1.25}h3{font-size:19px}small{font-size:12px}p{max-width:72ch}img{max-width:100%;display:block}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;left:20px;top:-80px;padding:12px;background:white;z-index:100}.skip-link:focus{top:10px}.loading,.load-error{padding:50px}.load-error p{margin:20px 0}
.sidebar{position:fixed;inset:0 auto 0 0;width:224px;padding:35px 20px 20px;background:#f0edf8;display:flex;flex-direction:column;border-right:1px solid #e7e2f1;z-index:10}.brand{width:129px;margin:0 16px 38px}.brand img{width:129px;height:auto;mix-blend-mode:multiply}.challenge-label{font-size:12px;color:var(--muted);padding:0 16px;margin-bottom:16px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.nav-link{display:flex;gap:12px;align-items:center;padding:14px 13px;font-size:13px;border-radius:10px;transition:background .2s,color .2s}.nav-link:hover{background:#e4def4}.nav-link.active{background:var(--purple);color:white;box-shadow:0 5px 14px #685cc124}.nav-count{font-size:10px;margin-left:auto;background:#ded7f0;color:var(--ink);border-radius:5px;padding:1px 5px}.active .nav-count{background:#ffffff29;color:white}.sidebar-bottom{margin-top:auto;padding:28px 15px 30px}.tiny-turtle{width:46px;margin-bottom:17px}.tiny-turtle img{mix-blend-mode:multiply}.sidebar-bottom p{font-size:23px;line-height:1.3}.sidebar-bottom p strong{font-weight:700}.sidebar-bottom>span{display:block;font-size:11px;color:var(--muted);margin-top:12px}.week-marks{display:flex;gap:10px;margin-top:24px}.week-marks>*{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:11px;border:1px solid #cdc4e4;color:#75668f}.week-marks b{background:var(--purple);color:white;border-color:var(--purple)}.local-tag{font-size:10px;text-align:center;color:var(--muted);padding-top:14px;border-top:1px solid #ded8eb}
.workspace{margin-left:224px}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 46px;font-size:13px;background:#ffffff70}.topbar-right{display:flex;gap:22px;align-items:center}.week-label{color:var(--muted);font-size:12px}.avatar{border:1px solid #dad2eb;background:transparent;width:35px;height:35px;border-radius:50%;display:grid;place-items:center}main{max-width:1390px;margin:auto;padding:39px 46px 42px;outline:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:28px}.page-heading p{margin-top:10px;color:var(--muted);font-size:14px}.button{min-height:44px;padding:11px 18px;border-radius:9px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:11px;font-size:13px;font-weight:500;transition:background .2s,box-shadow .2s,transform .2s;white-space:nowrap}.primary{background:var(--purple);color:white}.primary:hover{background:var(--purple-dark);box-shadow:0 5px 13px #685cc126}.primary:active{transform:scale(.98)}.secondary{background:white;border:1px solid #dcd6e9;color:var(--ink)}.secondary:hover{background:#f2effa}.full{width:100%}.text-button{border:0;background:transparent;padding:6px 0;display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--purple-dark);font-weight:500;text-align:left}.text-button:hover{text-decoration:underline}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:8px;background:transparent;border:0;border-radius:6px}.icon-button:hover{background:var(--lilac)}
.meal-hero{display:grid;grid-template-columns:1fr .92fr;background:#e9e3f6;border-radius:var(--radius);overflow:hidden;min-height:320px}.hero-copy{padding:36px 38px;display:flex;flex-direction:column;align-items:flex-start}.hero-copy h2{font-size:clamp(33px,3.5vw,52px);font-weight:500;line-height:1.05;letter-spacing:-.035em}.hero-copy p{color:#655677;font-size:14px;line-height:1.6;margin:17px 0 24px}.hero-small{display:flex;align-items:center;gap:6px;font-size:10px;color:#655677;margin-top:14px}.hero-photo{position:relative;min-height:320px;overflow:hidden}.hero-photo>img{width:100%;height:100%;object-fit:cover;position:absolute;object-position:50% 60%;animation:photo-reveal 1.2s var(--ease) both}.photo-caption{position:absolute;left:18px;right:18px;bottom:18px;background:#fffdf7ef;padding:12px 15px;border-radius:8px;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px}.photo-caption svg{color:var(--purple)}
.target-strip{display:flex;gap:25px;align-items:center;padding:21px 3px;border-bottom:1px solid var(--line);font-size:12px}.target-strip>span{color:var(--muted)}.target-strip strong{font-size:17px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.target-strip small{font-size:12px;font-weight:400;color:var(--muted)}.strip-end{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:11px}.week-section{margin-top:32px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:21px}.section-heading h2{font-size:22px;font-weight:500}.section-heading p{font-size:13px;color:var(--muted);margin-top:8px}.day-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:23px}.day-tab{border:1px solid var(--line);background:transparent;border-radius:9px;padding:11px 8px;display:flex;justify-content:center;align-items:center;gap:11px;transition:background .2s,border-color .2s}.day-tab span{font-size:12px;color:var(--muted)}.day-tab b{font-size:16px;font-weight:500}.day-tab:hover{background:var(--lilac)}.day-tab.selected{background:var(--purple);border-color:var(--purple);color:white}.day-tab.selected span{color:#f2edff}.daily-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.daily-heading h3{font-size:15px;font-weight:500}.daily-heading>span{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.daily-heading i{width:3px;height:3px;background:#b6adcb;border-radius:50%}.daily-heading .icon-button{padding:2px}.meal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;animation:menu-in .4s var(--ease)}.meal-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.meal-image{border:0;position:relative;width:100%;height:154px;padding:0;background:#ede6e0;display:block;overflow:hidden}.meal-image>img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}.meal-image:hover img{transform:scale(1.05)}.time-label{position:absolute;bottom:9px;left:10px;padding:4px 7px;background:#fffef9ed;border-radius:5px;font-size:10px;display:flex;align-items:center;gap:4px}.meal-card-body{padding:15px 16px 12px}.meal-type{font-size:10px;color:#776783}.recipe-title{background:transparent;border:0;text-align:left;padding:5px 0 0;width:100%;min-height:50px}.recipe-title h4{font-size:16px;line-height:1.3;font-weight:500}.meal-card-body>p{font-size:10px;color:var(--muted);margin:10px 0 13px}.meal-card-body p span{margin:0 5px}.swap-button{padding:10px 0 0;border:0;border-top:1px solid #eeeaf4;width:100%;background:none;display:flex;gap:7px;align-items:center;color:var(--purple-dark);font-size:11px}.swap-button:hover{color:var(--ink)}.recipe-plain{background:#ebe8d9}.recipe-plain>div{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#656846}.recipe-plain>div>span{font-size:10px}.plan-footnote{display:flex;gap:9px;color:var(--muted);margin-top:16px;font-size:10px}.plan-footnote svg{margin-top:2px}.baseline-banner{display:flex;align-items:center;gap:20px;margin-top:37px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.banner-icon{color:var(--purple);padding:12px;background:var(--lilac);border-radius:12px}.baseline-banner h3{font-size:17px;font-weight:500}.baseline-banner p{font-size:12px;color:var(--muted);margin-top:5px}.baseline-banner>a{margin-left:auto;white-space:nowrap}.footer{max-width:1390px;margin:auto;display:flex;justify-content:space-between;gap:15px;padding:0 46px 27px;font-size:10px;color:#736b80}
.shopping-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:32px;margin-top:37px;align-items:start}.shop-toolbar{display:flex;align-items:center;gap:17px;padding-bottom:20px;border-bottom:1px solid var(--line)}.shop-toolbar h2{font-size:21px}.shop-toolbar p{font-size:11px;color:var(--muted);margin-top:3px}.shop-toolbar>.text-button{margin-left:auto;font-size:11px}.store-mark{font-family:Arial,sans-serif;font-weight:900;letter-spacing:1px;color:#d52731;font-size:16px;position:relative;padding-bottom:7px}.store-mark span{display:block;position:absolute;bottom:0;left:0;right:0;height:3px;background:repeating-linear-gradient(115deg,#1d5090 0 10px,transparent 10px 14px)}.shopping-help{font-size:12px;color:var(--muted);margin:17px 0}.shopping-progress{display:flex;align-items:center;gap:16px;font-size:10px;color:var(--muted);margin-bottom:8px}.shopping-progress>div{flex:1;height:3px;background:#ece8f4;border-radius:2px}.shopping-progress>div>span{display:block;height:3px;width:100%;transform-origin:left;background:var(--purple);transition:transform .35s var(--ease)}.product-row{display:flex;gap:14px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--line)}.tick-box{position:relative;display:block;flex:0 0 21px;margin-top:2px;cursor:pointer}.tick-box input{position:absolute;opacity:0;width:22px;height:22px;margin:0}.tick-box>span:first-of-type{border:1px solid #bdb3d3;display:grid;place-items:center;width:21px;height:21px;border-radius:6px;color:transparent;transition:all .2s}.tick-box input:checked+span{background:var(--purple);border-color:var(--purple);color:white}.tick-box input:focus-visible+span{outline:3px solid #8f80d3;outline-offset:3px}.product-info{min-width:0;flex:1}.product-info h3{font-size:14px;font-weight:500;line-height:1.4;letter-spacing:-.01em}.product-info>p{font-size:11px;color:var(--muted);margin-top:4px}.product-info p span{margin:0 4px}.product-info>small{font-size:10px;color:#777080;display:block;margin-top:5px}.pantry-button{border:0;background:none;padding:5px 0 0;font-size:10px;color:var(--purple-dark);text-decoration:underline}.product-buy{text-align:right;flex-shrink:0;padding-left:4px}.product-buy>strong{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.product-buy>a{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--purple-dark);margin-top:12px}.product-buy>a:hover{text-decoration:underline}.is-checked .product-info h3{text-decoration:line-through;color:var(--muted)}.is-checked .product-buy strong{color:var(--muted)}.receipt{background:#ede8f7;padding:27px 24px;border-radius:12px;position:relative}.receipt h2{font-size:21px}.receipt-description{font-size:11px;color:#6e5d80;margin-top:7px}.receipt-total{font-size:46px;letter-spacing:-.035em;margin:20px 0 0;font-weight:500;font-variant-numeric:tabular-nums}.sample-price{font-size:10px;color:#6d5e7e}.receipt dl{margin:25px 0 14px;border-block:1px dashed #c7bdd8;padding:12px 0}.receipt dl>div{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:5px 0}.receipt dd{margin:0;font-weight:500;font-variant-numeric:tabular-nums}.receipt-note{font-size:10px;color:#6d5e7e;margin:17px 0 20px}.receipt .button{font-size:11px;margin-top:9px}.pantry-tip{padding:28px 12px 10px}.pantry-tip>svg{color:var(--green);margin-bottom:11px}.pantry-tip h3{font-size:17px;font-weight:500}.pantry-tip p{font-size:12px;color:var(--muted);margin-top:8px}.data-note{font-size:10px;color:var(--muted);padding:14px 12px}.owned-section{margin-top:26px}.owned-section h3{font-size:16px}.owned-row{display:flex;align-items:center;gap:9px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.owned-row>svg{color:var(--green)}.owned-row .text-button{margin-left:auto;font-size:11px}
.drawer-open{overflow:hidden}.drawer-backdrop{position:fixed;inset:0;background:#24173759;z-index:30;animation:fade-in .2s}.drawer{position:fixed;inset:0 0 0 auto;width:min(510px,100%);background:var(--paper);z-index:31;box-shadow:-12px 0 45px #24173717;overflow-y:auto;animation:drawer-in .45s var(--ease)}.drawer>header{display:flex;justify-content:space-between;align-items:center;padding:25px 28px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:2;gap:20px}.drawer>header h2{font-size:23px}.drawer-content{padding:26px 30px 35px}.drawer-lead{font-size:14px;color:var(--muted);line-height:1.65;margin-bottom:26px}.drawer-content h3{font-size:18px;margin:28px 0 13px}.drawer-content p+p{margin-top:15px}.drawer-content form h3:first-child{margin-top:0}.drawer-content form>.button{margin-top:22px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:12px;font-weight:500}label>span{font-size:10px;font-weight:400;color:var(--muted)}input,select,textarea{width:100%;display:block;border:1px solid #dcd5e9;background:white;border-radius:8px;padding:11px 12px;min-height:43px;margin-top:7px;color:var(--ink);font-size:14px}input::placeholder,textarea::placeholder{color:#7b728a;font-size:12px}select{appearance:auto;accent-color:var(--purple)}form>label{margin-top:17px}.field-help{font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0 17px}.form-error{font-size:12px;color:#9b2b46;margin:12px 0}.form-error:empty{display:none}.swap-options{display:flex;flex-direction:column;gap:0}.swap-option{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:19px 0;background:transparent;border:0;border-bottom:1px solid var(--line)}.swap-option:hover b{color:var(--purple)}.swap-option>img,.swap-placeholder{width:80px;height:86px;object-fit:cover;border-radius:8px}.swap-placeholder{display:grid;place-items:center;background:var(--lilac);flex-shrink:0}.swap-option>span:not(.swap-placeholder){flex:1}.swap-option b{display:block;font-size:15px;font-weight:500}.swap-option small{display:block;font-size:10px;color:var(--muted);margin-top:7px}.swap-option em{display:block;font-size:11px;font-style:normal;color:var(--muted);margin-top:7px}.recipe-cover{width:100%;height:235px;object-fit:cover;border-radius:12px}.recipe-facts{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;margin:20px 0}.recipe-facts>span{display:flex;gap:5px;align-items:center}.ingredients{list-style:none;padding:0}.ingredients li{display:flex;gap:15px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.ingredients li b{white-space:nowrap;font-weight:500}.recipe-steps{padding-left:23px;font-size:13px;color:var(--muted)}.recipe-steps li{padding:7px 0 9px 5px}.recipe-steps li::marker{color:var(--purple);font-weight:700}.copy-fallback{height:65vh;font-size:12px}.skip-test{display:block;margin:18px auto 0}.saved-note{color:var(--green);font-size:12px;margin-top:15px}
#toast{position:fixed;bottom:28px;left:calc(50% + 112px);transform:translate(-50%,20px);background:var(--ink);color:white;max-width:calc(100% - 36px);padding:14px 23px;border-radius:9px;font-size:12px;box-shadow:0 8px 24px #2c1f5226;opacity:0;pointer-events:none;transition:opacity .25s,transform .35s var(--ease);z-index:60}#toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes photo-reveal{from{clip-path:inset(0 0 0 8%);transform:scale(1.04)}to{clip-path:inset(0);transform:scale(1)}}@keyframes menu-in{from{transform:translateY(7px)}to{transform:translateY(0)}}@keyframes drawer-in{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}
