:root{--lavender:#ead7f5;--purple:#b695d4;--cream:#faf6f0;--sand:#e8c8a8;--plum:#2e1a47;--plum-80:#4a3561;--plum-60:#6b5a80;--lavender-soft:#f5ecfa;--sand-soft:#f6e8da;--white:#fff;--border:#ddd0e6;--error:#9b1c31;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px #2e1a470f, 0 4px 16px #2e1a470f;--font:"Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-display:Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--plum);background:var(--cream);margin:0;font-size:1rem;line-height:1.5}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:600;line-height:1.2}p{margin:0 0 .5rem}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--plum);outline-offset:2px}h2:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{background:var(--plum);color:var(--cream);border-radius:var(--radius-sm);z-index:10;padding:.5rem 1rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.container{width:100%;max-width:960px;margin:0 auto;padding:0 1rem}.small{font-size:.875rem}.muted{color:var(--plum-60)}.block{display:block}.error{color:var(--error)}.warn{color:#8a4b12;font-weight:600}.stack>*+*{margin-top:1rem}.site-header{background:var(--plum);color:var(--cream)}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;padding-bottom:1rem;display:flex}.site-header__brand{letter-spacing:.08em;text-transform:uppercase;color:var(--sand);margin:0;font-size:.8rem}.site-header__home{color:inherit;text-decoration:none;display:block}.site-header__home .site-header__brand{display:block}.site-header__actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.site-header__link{color:var(--cream);text-underline-offset:3px;font-size:.9rem;font-weight:600}.site-header :focus-visible{outline-color:var(--sand)}.site-header h1{font-size:clamp(1.25rem,4vw,1.75rem)}.site-header .btn--ghost{color:var(--cream);border-color:#faf6f080}.site-header .btn--ghost:hover{background:#faf6f01f}.site-footer{border-top:1px solid var(--border);color:var(--plum-60);margin-top:3rem;padding:1.5rem 0 2rem}.main{padding-bottom:1rem}.step-nav{margin:1rem 0 .5rem}.step-nav ol{grid-template-columns:repeat(5,1fr);gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.step-nav__btn{cursor:pointer;border-radius:var(--radius-sm);width:100%;color:var(--plum-60);background:0 0;border:0;flex-direction:column;align-items:center;gap:.25rem;min-height:44px;padding:.4rem .25rem;display:flex}.step-nav__btn:hover{background:var(--lavender-soft)}.step-nav__num{border:2px solid var(--purple);background:var(--white);border-radius:50%;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid}.step-nav__btn.is-done .step-nav__num{background:var(--lavender)}.step-nav__btn.is-current{color:var(--plum)}.step-nav__btn.is-current .step-nav__num{background:var(--plum);border-color:var(--plum);color:var(--cream)}.step-nav__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;font-size:.85rem;font-weight:600;position:absolute;overflow:hidden}.step-nav__mobile{text-align:center;margin:.5rem 0 0;font-size:.9rem;font-weight:600}@media (width>=640px){.step-nav__label{clip:auto;white-space:normal;width:auto;height:auto;position:static;overflow:visible}.step-nav__mobile{display:none}}.step-header{margin:1.25rem 0 1rem}.step-header__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--plum-60);margin:0 0 .25rem;font-size:.8rem;font-weight:700}.step-header h2{font-size:clamp(1.5rem,5vw,2rem)}.step-header__intro{max-width:60ch;margin-top:.5rem}.step-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.5rem;padding-top:1rem;display:flex}.step-footer__right{flex-wrap:wrap;gap:.5rem;margin-left:auto;display:flex}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}@media (width>=640px){.card{padding:1.25rem 1.5rem}}fieldset.card{min-width:0;margin:0}legend{float:left;width:100%;margin-bottom:.5rem;padding:0;font-weight:700}legend+*{clear:both}.field{flex-direction:column;flex:14rem;gap:.35rem;min-width:0;display:flex}.field label{font-weight:600}.field-row{flex-wrap:wrap;gap:1rem;display:flex}input[type=text],input[type=search],input[type=number],select,textarea{border:1.5px solid var(--purple);border-radius:var(--radius-sm);background:var(--white);width:100%;min-height:44px;padding:.55rem .75rem}textarea{resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--plum);outline-offset:0}.choice-grid{gap:.5rem;display:grid}@media (width>=640px){.choice-grid{grid-template-columns:repeat(3,1fr)}.choice-grid--compact{grid-template-columns:repeat(4,1fr)}.choice-grid--meals{grid-template-columns:repeat(5,1fr)}}.choice{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:.6rem;min-height:44px;padding:.7rem .8rem;display:flex}.choice:hover{border-color:var(--purple)}.choice:has(input:checked){border-color:var(--plum);background:var(--lavender-soft)}.choice input,.grocery-item__check,.rating input{accent-color:var(--plum);flex-shrink:0;width:1.15rem;height:1.15rem;margin:.15rem 0 0}.btn{cursor:pointer;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--plum);color:var(--cream)}.btn--primary:hover:not(:disabled){background:var(--plum-80)}.btn--secondary{background:var(--lavender);color:var(--plum);border-color:var(--purple)}.btn--secondary:hover:not(:disabled){background:#dfc6ef}.btn--selected{background:var(--plum);color:var(--cream);border-color:var(--plum)}.btn--ghost{color:var(--plum);border-color:var(--purple);background:0 0}.btn--ghost:hover{background:var(--lavender-soft)}.btn--small{min-height:36px;padding:.3rem .8rem;font-size:.875rem}.button-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.link-btn{color:var(--plum);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.icon-btn{width:40px;height:40px;color:var(--plum-60);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;font-size:1rem;display:inline-grid}.icon-btn:hover{background:var(--lavender-soft);color:var(--plum)}.chip{border:1.5px solid var(--purple);background:var(--white);cursor:pointer;border-radius:999px;min-height:40px;padding:.35rem .9rem;font-size:.9rem;font-weight:600}.chip--small{text-align:left;min-height:36px;padding:.25rem .75rem;font-size:.85rem}.chip-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.chip-note{background:var(--lavender-soft);border-radius:999px;align-items:center;min-height:36px;padding:.25rem .75rem;font-size:.85rem;display:inline-flex}.chip--removable{background:var(--sand-soft);border-color:var(--sand)}.chip[aria-pressed=true]{background:var(--plum);border-color:var(--plum);color:var(--cream)}.notice{background:var(--sand-soft);border:1px solid var(--sand);border-radius:var(--radius);margin-bottom:1rem;padding:.9rem 1rem}.notice p{margin:0}.empty{text-align:center;margin:1rem 0}.badge.badge--avoid{background:var(--plum);color:var(--cream)}.badge{background:var(--sand-soft);vertical-align:middle;border-radius:999px;margin-left:.4rem;padding:.05rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.ingredients-toolbar{z-index:2;flex-wrap:wrap;align-items:flex-end;gap:.5rem 1rem;display:flex;position:sticky;top:0}.ingredients-toolbar p{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.count{border-radius:999px;padding:.2rem .6rem;font-weight:600}.count--have{background:var(--lavender)}.count--need{background:var(--sand)}.ingredient-group{margin-top:1.5rem}.ingredient-group h3{margin-bottom:.5rem;font-size:1.25rem}.ingredient-list{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.ingredient-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.6rem .9rem;display:flex}.ingredient-row:first-child{border-top:0}.ingredient-row.is-have{background:var(--lavender-soft)}.ingredient-row.is-need{background:var(--sand-soft)}.ingredient-row.is-avoided{background:#f1eef3}.ingredient-row.is-avoided .ingredient-row__label{color:var(--plum-60);text-decoration:line-through}.toggle:disabled{border-color:var(--border);color:var(--plum-60);cursor:not-allowed;opacity:.6;background:0 0}.ingredient-row__name{flex-wrap:wrap;flex:10rem;align-items:center;gap:.15rem .35rem;font-weight:600;display:flex}.staple-btn{width:36px;height:36px;color:var(--plum-60);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-left:-.4rem;font-size:1.2rem;display:inline-grid}.staple-btn:hover:not(:disabled){background:var(--lavender)}.staple-btn.is-on{color:#a0642c}.staple-btn:disabled{opacity:.35;cursor:not-allowed}.staple-hint{margin:.75rem 0 0}.ingredient-row__actions{align-items:center;gap:.4rem;display:flex}.toggle{border:1.5px solid var(--purple);background:var(--white);cursor:pointer;white-space:nowrap;border-radius:999px;min-height:40px;padding:.3rem .8rem;font-size:.875rem;font-weight:600}.toggle--have[aria-pressed=true]{background:var(--plum);border-color:var(--plum);color:var(--cream)}.toggle--need[aria-pressed=true]{background:var(--sand);color:var(--plum);border-color:#b98a5e}.toggle[aria-pressed=true]:before{content:"✓ "}.custom-form{margin-top:1.5rem}.custom-form h3,.add-item-form h3{margin-bottom:.75rem;font-size:1.15rem}.custom-form p[role=status]{min-height:1.3em;margin:.5rem 0 0}.filter-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.meal-grid{gap:1rem;display:grid}@media (width>=720px){.meal-grid{grid-template-columns:repeat(2,1fr)}}.meal-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.9rem;padding:1.15rem 1.15rem 1.25rem;display:flex}@media (width>=640px){.meal-card{padding:1.35rem 1.4rem 1.4rem}}.meal-card.is-selected{border-color:var(--plum);box-shadow:0 0 0 2px var(--lavender), var(--shadow)}.meal-card__header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.meal-card h3{font-size:1.25rem}.meal-card__meta{color:var(--plum-60);margin:.3rem 0 0;font-size:.875rem}.meal-card__desc{color:var(--plum-60);margin:-.4rem 0 0;font-size:.9rem}.availability{white-space:nowrap;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.3rem;font-size:.8rem;font-weight:700;display:inline-flex}.availability__dots{gap:3px;display:inline-flex}.availability__dots span{background:var(--sand);border-radius:50%;width:9px;height:9px}.availability__dots span.is-on{background:var(--plum)}.meal-card__lists{border-top:1px solid var(--lavender);gap:.75rem;margin:0;padding-top:.9rem;display:grid}.meal-card__lists dt{text-transform:uppercase;letter-spacing:.06em;color:var(--plum-60);margin-bottom:.15rem;font-size:.75rem;font-weight:700}.meal-card__lists dd{margin:0;font-weight:600}.meal-card__lists .need dd{border-left:3px solid var(--sand);padding-left:.6rem}.meal-card__on-list{font-weight:400}.meal-card__extras{border-top:1px solid var(--lavender);padding-top:.6rem}.meal-card__extras summary{cursor:pointer;align-items:center;gap:.25rem;min-height:36px;font-size:.9rem;font-weight:600;display:flex}.meal-card__added{color:var(--plum-60);font-weight:400}.meal-card__extras-body{gap:.8rem;padding-top:.5rem;display:grid}.meal-card__extras-body p{margin:0}.meal-card__extras-title{text-transform:uppercase;letter-spacing:.06em;color:var(--plum-60);font-size:.75rem;font-weight:700;margin:0 0 .35rem!important}.meal-card__select{align-self:flex-start;margin-top:auto}.plan-summary{flex-wrap:wrap;gap:1rem;font-weight:600;display:flex}.list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.list-toolbar p,.list-toolbar .button-row{margin:0}.grocery-groups{gap:1rem;display:grid}@media (width>=720px){.grocery-groups{grid-template-columns:repeat(2,1fr);align-items:start}}.grocery-group h3{border-bottom:2px solid var(--lavender);padding-bottom:.5rem;font-size:1.15rem}.grocery-group ul{margin:0;padding:0;list-style:none}.grocery-item{border-bottom:1px solid var(--lavender-soft);align-items:flex-start;gap:.6rem;padding:.5rem 0;display:flex}.grocery-item:last-child{border-bottom:0}.grocery-item__check{margin-top:.7rem!important}.grocery-item__label{cursor:pointer;flex-direction:column;flex:1;justify-content:center;min-width:0;min-height:40px;display:flex}.grocery-item__name{font-size:1.05rem;font-weight:700}.grocery-item__detail{font-weight:400;line-height:1.35}.grocery-item.is-checked .grocery-item__name{color:var(--plum-60);text-decoration:line-through}.grocery-item__actions{display:flex}.grocery-item__edit{flex-wrap:wrap;gap:.4rem;width:100%;display:flex}.grocery-item__edit input{flex:10rem}.list-secondary-actions{gap:1.25rem;margin:.75rem 0;display:flex}.add-item-form{margin-top:1rem}.add-status,.list-status{min-height:1.3em;margin:.5rem 0 0}.list-status:empty{display:none}.save-help{background:var(--lavender-soft);margin-bottom:1rem}.save-help summary{cursor:pointer;min-height:32px;font-weight:700}.save-help ul{margin:.5rem 0 0;padding-left:1.2rem}.save-help li+li{margin-top:.4rem}.avoid-add{margin-top:1rem}.avoid-add label{margin-bottom:.35rem;font-weight:600;display:block}.inline-input{gap:.5rem;display:flex}.inline-input input{flex:1;min-width:0}.avoid-add p{min-height:1.3em;margin:.4rem 0 0}.add-item-form>p{margin:.5rem 0 .75rem}.rating{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.rating__option{border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:.25rem;padding:.6rem .25rem;display:flex}.rating__option:has(input:checked){border-color:var(--plum);background:var(--lavender-soft)}.rating__option input{margin:0}.rating__num{font-size:1.1rem;font-weight:700}.rating__label{font-size:.75rem;line-height:1.2}.home{padding-top:1.5rem}.home-hero{background:linear-gradient(135deg, var(--lavender) 0%, var(--cream) 70%, var(--sand-soft) 100%);border-radius:var(--radius);padding:1.75rem 1.25rem}@media (width>=640px){.home-hero{padding:2.75rem 2.5rem}}.home-hero h2{max-width:22ch;font-size:clamp(1.6rem,6vw,2.4rem)}.home-hero__lead{max-width:48ch;margin:.75rem 0 .5rem;font-size:1.1rem}.home-section{margin-top:2.25rem}.home-section>h2{margin-bottom:.75rem;font-size:1.5rem}.home-section h3{margin-bottom:.35rem;font-size:1.1rem}.how-steps{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.how-steps{grid-template-columns:repeat(2,1fr)}}.how-steps li{align-items:flex-start;gap:.9rem;display:flex}.how-steps p{margin:0}.how-steps__num{background:var(--plum);width:2.2rem;height:2.2rem;color:var(--cream);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.home-tip{background:var(--sand-soft);border-color:var(--sand);margin-top:.75rem}.home-tip p{margin:0}.install-grid{gap:.75rem;margin-top:.75rem;display:grid}@media (width>=720px){.install-grid{grid-template-columns:repeat(3,1fr)}}.install-grid ol{margin:0;padding-left:1.2rem}.install-grid li+li{margin-top:.3rem}.home-cta{text-align:center;margin-top:2rem}.new-week{background:var(--lavender-soft);margin-top:1.5rem}.new-week h3{margin-bottom:.35rem;font-size:1.15rem}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{body{color:#000;background:#fff}.no-print,.skip-link,.step-header__eyebrow{display:none!important}.site-header{color:#000;background:0 0}.site-header__brand{color:#000}.card,.grocery-group{box-shadow:none;border:0;padding:0}.grocery-groups{display:block}.grocery-group{break-inside:avoid;margin-bottom:1rem}.grocery-item__detail{display:none}.grocery-item{padding:.2rem 0}.grocery-item__label{min-height:0}.grocery-item__check{margin-top:.2rem!important}}
