/* AiShopper application layer: Bootstrap handles the interaction primitives. */
*{box-sizing:border-box}body{min-width:320px;background:var(--ai-cream);color:var(--ai-ink);font-family:Nunito,"Avenir Next","Segoe UI",sans-serif}.welcome-screen{background:linear-gradient(100deg,rgba(255,253,244,.96),rgba(255,253,244,.42)),url('brand/backgrounds/light-organic.png') center/cover}.welcome-panel{border:1px solid rgba(8,116,67,.1);border-radius:2rem;background:rgba(255,253,244,.78);box-shadow:0 1.5rem 4rem rgba(6,42,36,.12);backdrop-filter:blur(10px)}h1{color:var(--ai-deep);font-family:Nunito,"Avenir Next","Segoe UI",sans-serif;font-weight:900;letter-spacing:-.055em}.lead,.subtitle{color:#4b625d}.eyebrow{color:var(--ai-forest);font-weight:900}.rule{height:.25rem;border-radius:99px;background:var(--ai-orange)}.soft-card{background:rgba(234,245,216,.78);border:1px solid rgba(8,116,67,.1)}
.app-shell{min-height:100vh}.app-header{padding:.8rem clamp(1.1rem,4vw,4rem);border-bottom:1px solid rgba(8,116,67,.08);background:rgba(255,253,244,.9);backdrop-filter:blur(18px)}.navbar-brand{margin:0;padding:0}.navbar-brand img{display:block;width:190px;height:auto}.navbar-toggler{border-color:rgba(8,116,67,.25)}.nav-item{border:0!important;border-radius:999px!important;padding:.55rem .8rem!important;color:var(--ai-ink)!important;background:transparent!important;font-size:.84rem;font-weight:800}.nav-item:hover{background:var(--ai-mist)!important;color:var(--ai-forest)!important}.nav-item.selected{color:var(--ai-cream)!important;background:var(--ai-forest)!important;box-shadow:0 .35rem .85rem rgba(8,116,67,.2)}.content{max-width:1440px;padding:clamp(2rem,4vw,4rem) clamp(1.1rem,4vw,4rem) 5rem}.page-intro{max-width:750px;margin-bottom:2rem}.page-intro .eyebrow{margin-bottom:.5rem}
.primary,.secondary{border-radius:999px;font-weight:800;transition:transform .2s,box-shadow .2s,background .2s}.primary{background:var(--ai-forest);border-color:var(--ai-forest);box-shadow:0 .45rem 1rem rgba(8,116,67,.2)}.primary:hover:not(:disabled){background:var(--ai-leaf);border-color:var(--ai-leaf);transform:translateY(-1px)}.secondary{border-color:#b9d9b6;color:var(--ai-forest);background:#fff}.secondary:hover{background:var(--ai-mist)}.plan-button{color:var(--ai-deep);background:var(--ai-orange);border-color:var(--ai-orange);box-shadow:0 .6rem 1.25rem rgba(255,151,0,.24)}.plan-button:hover:not(:disabled){color:var(--ai-deep);background:#ffb23d;border-color:#ffb23d}
.sign-in-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}
.home-dashboard{grid-template-columns:minmax(0,1.7fr) minmax(310px,.75fr);gap:clamp(1.25rem,3vw,3rem)}.next-shop{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:210px;padding:clamp(1.3rem,3vw,2rem);overflow:hidden;border-radius:1.75rem;color:var(--ai-cream);background:linear-gradient(135deg,var(--ai-forest),var(--ai-leaf) 58%,var(--ai-lime));box-shadow:0 1.2rem 2.4rem rgba(8,116,67,.2)}.next-shop span{color:var(--ai-mist)}.next-shop strong{font-family:Nunito,"Avenir Next","Segoe UI",sans-serif;font-size:clamp(1.45rem,3vw,2.25rem);font-weight:900}.next-shop p{color:rgba(255,253,244,.85)}.next-shop img{width:min(30%,180px);height:auto;object-fit:contain;filter:drop-shadow(0 .6rem .9rem rgba(6,42,36,.15))}.home-kitchen{padding:1.25rem;border:1px solid #d8eabe;border-radius:1.75rem;background:linear-gradient(145deg,#fff,var(--ai-mist))}.kitchen-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat{min-height:130px;border:1px solid rgba(8,116,67,.1);background:rgba(255,253,244,.9)}.stat strong{color:var(--ai-forest);font-size:1.75rem;font-weight:900}.stat span{color:#5b7069}.mini{margin-top:auto}
.card{border:1px solid rgba(8,116,67,.1);box-shadow:0 .7rem 2rem rgba(6,42,36,.06)}.empty{background:var(--ai-mist)}.form input,.form textarea,.settings input{border-color:#cfe2c6}.form input:focus,.form textarea:focus,.settings input:focus{border-color:var(--ai-leaf);box-shadow:0 0 0 .25rem rgba(47,168,79,.16)}.loading-status{background:var(--ai-mist)}.spinner{border-top-color:var(--ai-forest)}
.settings-page{max-width:980px}.settings-page .settings-section{max-width:none;margin:.9rem 0;padding:clamp(1.35rem,3vw,2rem);gap:.8rem}.settings-page .settings-section h2{margin-bottom:.2rem}.settings-page .settings-section>strong{font-size:1.1rem}.settings-page .settings-section>span{color:#5b7069;line-height:1.5}.settings-page .settings{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.settings-page .settings>p,.settings-page .settings>h2{grid-column:1/-1}.settings-page .settings .primary{width:max-content}.settings-note{margin:.9rem .25rem}
.settings-page .upgrade-section{border-color:#f0c774;background:linear-gradient(135deg,#fff9ec,#fff)}.upgrade-section .primary:disabled{cursor:not-allowed;opacity:.58}.upgrade-section small{color:#687a74;font-size:var(--ai-small-size)}
.settings-page{display:block;max-width:1080px}.settings-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:1.25rem;margin-bottom:1.25rem}.settings-page .settings-section{margin:0 0 1.25rem}.settings-top .settings-section{margin:0}.usage-limits-section{display:grid;align-content:start}.usage-limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.4rem}.usage-limits>div{display:grid;gap:.2rem;padding:1rem;border:1px solid #d8eabe;border-radius:1rem;background:var(--ai-mist)}.usage-limits strong{color:var(--ai-forest);font-size:1.5rem}.usage-limits span{font-weight:800}.usage-limits small{color:#657a74;line-height:1.4}.settings-page .settings,.settings-page>section:nth-of-type(4),.settings-page .danger-zone,.settings-page .settings-note{grid-column:auto}@media(max-width:900px){.settings-top{grid-template-columns:1fr}.usage-limits{grid-template-columns:1fr}}
.budget-last{display:grid;justify-items:center;gap:.35rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(8,116,67,.12);text-align:center}.budget-last strong{color:var(--ai-forest);font-size:1.65rem;line-height:1.15}.budget-last em{color:#657a74;font-size:.86rem;line-height:1.4}.budget-last small{margin-top:.35rem;color:#657a74;font-size:var(--ai-small-size)}
.settings-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:1rem 1.25rem;align-items:start}.settings-page .settings-section{margin:0}.settings-page .settings,.settings-page>section:nth-of-type(4),.settings-page .danger-zone,.settings-page .settings-note{grid-column:1/-1}.settings-page .upgrade-section{min-height:100%;border:0;background:linear-gradient(140deg,var(--ai-deep),var(--ai-forest));box-shadow:0 1rem 2rem rgba(6,42,36,.18)}.settings-page .upgrade-section .eyebrow{color:var(--ai-lime)}.settings-page .upgrade-section h2,.settings-page .upgrade-section>strong{color:var(--ai-cream)}.settings-page .upgrade-section>span{color:rgba(255,253,244,.82)}.settings-page .upgrade-section .primary{color:var(--ai-deep);background:var(--ai-orange);border-color:var(--ai-orange);opacity:1}.settings-page .upgrade-section .primary:disabled{color:var(--ai-deep);opacity:.7}.settings-page .upgrade-section small{color:rgba(255,253,244,.7)}.settings-page .danger-zone{border-color:#f5c4b7;background:#fff8f5}.danger-zone .remove-item-button{width:max-content;margin-top:.35rem}
.pantry-page{max-width:1080px}.pantry-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);gap:1.25rem;align-items:stretch;margin-bottom:1.5rem}.pantry-manual{padding:1.7rem 0}.pantry-manual h2{margin:.35rem 0}.pantry-copy{max-width:34rem;margin:0 0 1.1rem;color:#5b7069;line-height:1.55}.pantry-scan-card{display:grid;grid-template-columns:68px 1fr;gap:.6rem 1rem;padding:1.4rem;border:1px solid rgba(8,116,67,.16);border-radius:1.5rem;color:var(--ai-cream);background:linear-gradient(140deg,var(--ai-deep),var(--ai-forest));box-shadow:0 1rem 2rem rgba(6,42,36,.16)}.pantry-scan-card img{width:64px;height:64px;grid-row:span 2;object-fit:contain;filter:drop-shadow(0 .35rem .6rem rgba(0,0,0,.2))}.pantry-scan-card .eyebrow{color:var(--ai-lime)}.pantry-scan-card h2{margin:.2rem 0 .3rem;color:var(--ai-cream);font-size:1.15rem}.pantry-scan-card p{margin:0;color:rgba(255,253,244,.82);font-size:.9rem;line-height:1.45}.scan-button{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:2.8rem;border-radius:999px;color:var(--ai-deep);background:var(--ai-orange);font-size:.9rem;font-weight:900;cursor:pointer;transition:transform .2s,background .2s}.scan-button:hover{background:#ffb23d;transform:translateY(-1px)}.scan-button:has(input:disabled){opacity:.7;cursor:wait}.pantry-scan-card small{grid-column:1/-1;color:rgba(255,253,244,.72);font-size:.72rem;line-height:1.4}
.pantry-item{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.2rem}.pantry-item-placeholder{display:grid;place-items:center;width:3.25rem;height:3.25rem;border:1px dashed #9acb8d;border-radius:1rem;color:var(--ai-forest);background:var(--ai-mist);font-size:1.35rem}.pantry-item-details{display:grid;gap:.2rem}.pantry-item-details strong{font-size:1.0625rem;line-height:1.35}.pantry-item-details span{color:#657a74;font-size:var(--ai-small-size)}.pantry-item-actions{display:flex;align-items:center;gap:.65rem}.quantity-stepper{display:flex;align-items:center;min-height:2.5rem;border:1px solid #cfe2c6;border-radius:999px;background:var(--ai-cream);overflow:hidden}.quantity-stepper span{min-width:5.2rem;padding:0 .55rem;text-align:center;color:var(--ai-deep);font-size:.9rem;font-weight:800}.quantity-button{display:grid;place-items:center;width:2.4rem;height:2.4rem;padding:0;border:0;color:var(--ai-forest);background:transparent;font-size:1.3rem;font-weight:800}.quantity-button:hover{background:var(--ai-mist)}.remove-item-button{min-height:2.4rem;padding:.5rem .8rem;border:1px solid #f5c4b7;border-radius:999px;color:#bd3d20;background:#fff;font-size:var(--ai-small-size);font-weight:800}.remove-item-button:hover{color:#fff;background:var(--ai-tomato);border-color:var(--ai-tomato)}
.essentials-page{max-width:1080px}.essential-item{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.2rem}.essential-item-placeholder{display:grid;place-items:center;width:3.25rem;height:3.25rem;border:1px dashed #f2bd74;border-radius:1rem;color:#b56b00;background:#fff4dd;font-size:1.35rem}.essential-item-details{display:grid;gap:.2rem}.essential-item-details strong{font-size:1.0625rem;line-height:1.35}.essential-item-details span{color:#657a74;font-size:var(--ai-small-size)}.essential-item-actions{display:flex;align-items:center;gap:.65rem}
.weekly-prep-page{max-width:1080px}.weekly-prep-item{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;align-items:center;gap:1rem;margin:.7rem 0;padding:1rem 1.2rem}.weekly-prep-item-icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;border:1px dashed #b9d9b6;border-radius:1rem;color:var(--ai-forest);background:var(--ai-mist);font-size:1.35rem}.weekly-prep-item-details{display:grid;gap:.2rem}.weekly-prep-item-details strong{font-size:1.0625rem;line-height:1.35}.weekly-prep-item-details span{color:#657a74;font-size:var(--ai-small-size)}
.receipt-page{max-width:1080px}.receipt-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);gap:1.25rem;align-items:stretch;margin-bottom:1.5rem}.receipt-history-intro{padding:1.7rem 0}.receipt-history-intro h2{margin:.35rem 0}.receipt-history-intro>p:last-child{max-width:34rem;margin:0;color:#5b7069;line-height:1.55}.receipt-scan-card{display:grid;grid-template-columns:68px 1fr;gap:.6rem 1rem;padding:1.4rem;border:1px solid rgba(244,81,42,.22);border-radius:1.5rem;color:var(--ai-cream);background:linear-gradient(140deg,var(--ai-deep),#164f3d);box-shadow:0 1rem 2rem rgba(6,42,36,.16)}.receipt-scan-card img{width:64px;height:64px;grid-row:span 2;object-fit:contain;filter:drop-shadow(0 .35rem .6rem rgba(0,0,0,.2))}.receipt-scan-card .eyebrow{color:var(--ai-orange)}.receipt-scan-card h2{margin:.2rem 0 .3rem;color:var(--ai-cream);font-size:1.15rem}.receipt-scan-card p{margin:0;color:rgba(255,253,244,.82);font-size:.9rem;line-height:1.45}.receipt-scan-card small{grid-column:1/-1;color:rgba(255,253,244,.72);font-size:.72rem;line-height:1.4}
.receipt-history-item small{color:#657a74;font-size:var(--ai-small-size)}.receipt-history-item>span{color:#657a74}
.receipt-history-actions{display:flex;justify-content:flex-end;margin:0 0 .75rem}.receipt-history-actions button{min-height:2.75rem;padding:.65rem 1.1rem;border-radius:999px;font-size:var(--ai-button-size);font-weight:800}.receipt-history-actions button:disabled{cursor:not-allowed;opacity:.55}
.receipt-history-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem}.receipt-item-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:.85rem;color:var(--ai-orange);background:#fff1d8;font-size:1.35rem}.receipt-item-content{display:grid;gap:.25rem}.receipt-item-content>span{color:#657a74}.receipt-item-content small{color:#657a74;font-size:var(--ai-small-size)}
.meal-plan-page{max-width:980px}.meal-plan-empty-action{margin-bottom:.9rem}.meal-plan-empty-banner{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.25rem;min-height:210px;overflow:hidden;padding:1.5rem 1.75rem;background:linear-gradient(135deg,#fff,var(--ai-mist));border-color:rgba(8,116,67,.12)}.meal-plan-empty-banner img{width:min(34%,220px);max-height:150px;object-fit:contain}.meal-plan-empty-banner .eyebrow{margin:0 0 .25rem}.meal-plan-empty-banner h2{margin:0 0 .5rem}.meal-plan-empty-banner p:not(.eyebrow){max-width:34rem;margin:0;color:#5b7069;line-height:1.55}.meal-plan-banner-button{grid-column:1/-1;justify-self:center;margin-top:.25rem}@media(max-width:575.98px){.meal-plan-empty-banner{align-items:flex-start;min-height:0;padding:1.25rem;gap:1rem}.meal-plan-empty-banner img{width:30%;max-height:105px}.meal-plan-empty-banner h2{font-size:1.25rem}}.clear-plan-button{border-color:#f5c4b7;color:#bd3d20}.clear-plan-button:hover{color:#fff;background:var(--ai-tomato);border-color:var(--ai-tomato)}.meal-plan-actions{display:flex;justify-content:flex-end;margin-bottom:.75rem}
.meal-plan-day{margin-bottom:1.15rem;padding:clamp(1rem,2vw,1.4rem);background:linear-gradient(145deg,#fff,var(--ai-mist))}.meal-plan-day header{margin-bottom:1rem}.meal-plan-day header .eyebrow{margin:0 0 .2rem}.meal-plan-day header h2{margin:0;font-size:1.3rem}.meal-plan-day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.meal-plan-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:8.25rem;padding:1rem;border:1px solid rgba(8,116,67,.12);border-radius:1rem;background:#fff}.meal-plan-item-content{display:grid;gap:.25rem;min-width:0}.meal-plan-item-content .eyebrow{margin:0}.meal-plan-item-content strong{font-size:1.05rem}.meal-plan-item-content em{color:#657a74;font-size:.78rem;line-height:1.4}.meal-plan-item-content>span{color:#657a74;font-size:var(--ai-small-size)}.meal-plan-item-icon{display:grid;place-items:center;flex:0 0 auto;width:2.7rem;height:2.7rem;border-radius:.85rem;color:var(--ai-forest);background:var(--ai-mist);font-size:1.3rem}@media(max-width:575.98px){.meal-plan-day-grid{grid-template-columns:1fr}.meal-plan-item{min-height:0}}
.generation-error{display:grid;gap:.25rem;margin-top:.9rem;padding:1rem 1.15rem;border:1px solid #f5c4b7;border-radius:1rem;color:#8d2f1a;background:#fff6f2}.generation-error span{font-size:.88rem;line-height:1.45}
.shopping-list-page{max-width:980px}.shopping-aisle{margin-bottom:1.5rem}.shopping-aisle-heading{display:flex;align-items:center;gap:.5rem;margin:0 .25rem .65rem;color:var(--ai-deep)}.shopping-aisle-heading>span{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:.6rem;color:var(--ai-cream);background:var(--ai-forest);font-weight:900}.shopping-aisle-heading h2{margin:0;font-size:1.05rem}.shopping-aisle-heading small{margin-left:auto;color:#657a74;font-size:var(--ai-small-size)}.shopping-list-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.85rem;margin:.65rem 0;padding:1rem 1.15rem}.shopping-list-item.purchased{opacity:.65;background:#f5f8f1}.purchase-toggle{position:relative;display:grid;place-items:center;width:2rem;height:2rem;margin-top:.05rem}.purchase-toggle input{position:absolute;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.purchase-toggle span{display:grid;place-items:center;width:1.5rem;height:1.5rem;border:1px solid #b9d9b6;border-radius:.5rem;color:transparent;background:#fff;font-size:.85rem;font-weight:900}.purchase-toggle input:checked+span{color:var(--ai-cream);background:var(--ai-forest);border-color:var(--ai-forest)}.shopping-item-main{display:grid;gap:.35rem}.shopping-item-title{width:max-content;max-width:100%;padding:0;border:0;color:var(--ai-deep);background:transparent;text-align:left;font-size:1.03rem;font-weight:900}.shopping-item-title:hover{color:var(--ai-forest);text-decoration:underline}.shopping-item-meta{display:flex;flex-wrap:wrap;gap:.35rem .7rem;color:#657a74;font-size:var(--ai-small-size)}.shopping-item-meta strong{color:var(--ai-deep)}.in-stock-marker{color:var(--ai-forest);font-weight:800}.shopping-item-main p{margin:0;color:#657a74;font-size:var(--ai-small-size);line-height:1.45}.shopping-item-flags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem;max-width:12rem}.shopping-item-flags span{padding:.27rem .48rem;border-radius:999px;color:#567268;background:#eff6e8;font-size:.7rem;font-weight:800;white-space:nowrap}
.prompt-debug{margin-bottom:1rem;background:#fffaf0}.prompt-debug summary{cursor:pointer;color:var(--ai-forest);font-weight:900}.prompt-debug pre{max-height:28rem;margin:1rem 0 0;padding:1rem;overflow:auto;border-radius:.75rem;color:#243b34;background:#f5f1e8;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;line-height:1.5;white-space:pre-wrap}
.meals-page{max-width:1080px}.meal-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.meal-section{align-content:start;padding:1.3rem}.meal-section-heading{display:flex;align-items:center;gap:.75rem}.meal-section-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:1rem;background:var(--ai-mist);font-size:1.45rem}.meal-section-heading h2{margin:.1rem 0 0}.meal-section-description{min-height:2.8rem;margin:1rem 0;color:#657a74;font-size:.9rem;line-height:1.45}.meal-section-add{width:max-content}.meal-section-items{display:grid;gap:.5rem;margin-top:1rem}.meal-section-items>small{color:#72827d}.meal-list-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border-radius:.85rem;background:#f7faf4;font-size:.95rem;font-weight:800}.meal-list-item .remove-item-button{flex:0 0 auto}
.ai-entry-modal{background:rgba(6,42,36,.18);z-index:1055}.ai-entry-modal .modal-backdrop{display:none}.ai-entry-modal .modal-content{overflow:hidden;border:1px solid rgba(8,116,67,.12);border-radius:1.5rem;box-shadow:0 1.5rem 4rem rgba(6,42,36,.22)}.ai-entry-modal .modal-header{align-items:flex-start;border:0;background:var(--ai-mist)}.ai-entry-modal .modal-body{padding:1.5rem}.ai-entry-modal .modal-body>p{color:#5b7069}.ai-entry-modal .modal-footer{gap:.35rem;padding:1rem 1.5rem;border-color:#e1eed1}.ai-entry-modal .form{display:grid;gap:.75rem}.ai-entry-modal textarea{width:100%;min-height:125px;padding:.75rem .9rem;border:1px solid #cfe2c6;border-radius:.85rem;outline:none;resize:vertical}.ai-entry-modal textarea:focus{border-color:var(--ai-leaf);box-shadow:0 0 0 .25rem rgba(47,168,79,.16)}
@media(max-width:1199.98px){.navbar-nav{padding:1rem 0 .25rem;align-items:stretch!important}.nav-item{text-align:left}}@media(max-width:900px){.home-dashboard{display:block}.home-kitchen{margin-top:1.5rem;max-width:620px}.pantry-overview,.receipt-overview,.settings-page{grid-template-columns:1fr}.pantry-manual,.receipt-history-intro{padding:0}.pantry-scan-card,.receipt-scan-card{max-width:620px}}@media(max-width:575.98px){.app-header{padding:.7rem 1rem}.navbar-brand img{width:165px}.next-shop{min-height:180px}.next-shop img{width:28%}.stat{min-height:118px;padding:.85rem}.settings-page .settings,.meal-sections{grid-template-columns:1fr}.settings-page .settings .primary{width:100%}.pantry-scan-card,.receipt-scan-card{grid-template-columns:52px 1fr;padding:1.15rem}.pantry-scan-card img,.receipt-scan-card img{width:52px;height:52px}.pantry-item,.essential-item{grid-template-columns:2.8rem 1fr;gap:.75rem;padding:1rem}.pantry-item-placeholder,.essential-item-placeholder{width:2.8rem;height:2.8rem}.pantry-item-actions,.essential-item-actions{grid-column:1/-1;justify-content:space-between}.quantity-stepper{flex:1;justify-content:space-between}.quantity-stepper span{flex:1}}
.shopping-progress{margin-bottom:1.25rem}.shopping-progress .progress{height:.7rem;background:var(--ai-mist)}.shopping-progress .progress-bar{background:var(--ai-forest);transition:width .2s ease}.shopping-item-main .form-control{min-width:12rem}.meal-list-item-title-row{display:flex;align-items:center;gap:.35rem;min-width:0}.meal-list-item-title-row>span{overflow-wrap:anywhere}
.shopping-item-title-row{display:flex;align-items:center;gap:.35rem;min-width:0}.shopping-item-title{min-width:0;overflow-wrap:anywhere}.shopping-item-edit{flex:0 0 auto;border:0;background:transparent;color:var(--ai-forest);padding:.1rem .3rem;font-size:1rem;line-height:1;cursor:pointer}.shopping-item-edit:hover{color:var(--ai-leaf)}
.pantry-item-title-row{display:flex;align-items:center;gap:.35rem}.pantry-item-details .form-control{min-width:12rem}
.loading-status-prominent{min-height:118px;margin:1.25rem 0;padding:1.35rem 1.5rem;border:1px solid rgba(255,151,0,.58);border-radius:1.25rem;background:linear-gradient(135deg,var(--ai-deep),var(--ai-forest));box-shadow:0 .9rem 2rem rgba(6,42,36,.2);color:var(--ai-cream)}.loading-status-prominent strong{font-size:1.12rem;font-weight:900;color:var(--ai-cream)}.loading-status-prominent small{max-width:48rem;color:rgba(255,253,244,.88);font-size:.95rem;line-height:1.45}.loading-status-prominent .spinner{width:48px;height:48px;border-width:5px;border-color:rgba(255,253,244,.25);border-top-color:var(--ai-orange);box-shadow:0 0 0 8px rgba(255,151,0,.12)}

@media(max-width:575.98px){.weekly-prep-item{grid-template-columns:2.8rem 1fr}.weekly-prep-item>.remove-item-button{grid-column:1/-1;justify-self:stretch}}

/* Let every lower-page view use the full width available beneath the header. */
.content{max-width:none}
.content>.view-fragment,.content>.home-dashboard{width:100%;max-width:none}

/* Shared type and control scale across every feature page. */
.pantry-item-metadata{display:flex;flex-wrap:wrap;gap:.3rem .55rem;margin-top:.2rem}.pantry-item-metadata span{padding:.2rem .45rem;border-radius:999px;color:#567268;background:#eff6e8;font-size:.7rem;font-weight:800}
.recipe-library-page,.recipe-detail-page{width:min(1040px,100%);margin:auto;padding:32px 20px 64px}.recipe-library-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:clamp(28px,5vw,56px);border-radius:30px;background:linear-gradient(135deg,#254d3d,#6c9b77);color:#fff}.recipe-library-hero .eyebrow,.recipe-card .eyebrow{color:inherit}.recipe-library-hero h1{margin:.25rem 0 1rem}.recipe-library-hero p{max-width:580px;margin:0;opacity:.9}.recipe-library-hero>span{font-size:4rem}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px}.recipe-card{position:relative;display:grid;grid-template-columns:44px 1fr;gap:14px;padding:22px;text-decoration:none;color:var(--ai-deep);border:1px solid #d8e5d5;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(28,68,49,.08)}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 16px 35px rgba(28,68,49,.14)}.recipe-card h2{margin:2px 0 8px;font-size:1.2rem}.recipe-card p{margin:0 0 12px;color:#60776e}.recipe-card-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#e8f1e4}.recipe-card-arrow{position:absolute;right:18px;bottom:15px;color:var(--ai-forest);font-weight:900}.recipe-library-empty,.recipe-library-status{margin-top:24px;padding:36px;border-radius:22px;background:#fff;text-align:center}.recipe-detail-card{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px;padding:clamp(26px,5vw,54px);border-radius:30px;background:#fff;box-shadow:0 18px 48px rgba(28,68,49,.12)}.recipe-detail-card header,.recipe-method{grid-column:1/-1}.recipe-detail-card h1{margin:5px 0 12px}.recipe-summary{font-size:1.15rem;color:#60776e;line-height:1.65}.recipe-facts{display:flex;flex-wrap:wrap;gap:10px}.recipe-facts span{padding:8px 12px;border-radius:999px;background:#edf5e8;font-weight:700}.recipe-share{align-self:start;padding:20px;border-radius:20px;background:#f2f7ef}.recipe-share label{display:grid;gap:6px;margin-top:14px;font-size:.82rem;font-weight:800}.recipe-share input{width:100%;padding:9px;border:1px solid #c9dbc6;border-radius:10px}.recipe-socials{display:flex;flex-wrap:wrap;gap:8px}.recipe-socials a,.recipe-socials button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:11px;color:#fff;box-shadow:0 4px 10px rgba(28,68,49,.14)}.recipe-socials svg{width:19px;height:19px;fill:currentColor}.recipe-socials .social-facebook{background:#1877f2}.recipe-socials .social-x{background:#111}.recipe-socials .social-instagram{background:linear-gradient(135deg,#833ab4,#fd1d1d 55%,#fcb045)}.recipe-email{display:inline-block;margin-top:10px;padding:8px 11px;border:0;border-radius:9px;font-size:.82rem;font-weight:800;color:var(--ai-forest);background:#fff}.recipe-email-status{margin:10px 0 0;color:var(--ai-forest);font-size:.82rem;font-weight:800}.recipe-ingredients,.recipe-method{padding:4px 0}.recipe-ingredients h2,.recipe-method h2{margin-top:0}.recipe-ingredients ul,.recipe-method ol{padding-left:22px;line-height:1.7}.recipe-method li{margin-bottom:13px}@media(max-width:720px){.recipe-detail-card{grid-template-columns:1fr}.recipe-library-page,.recipe-detail-page{padding:20px 14px 44px}}
.weekly-prep-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}.saved-recipes-settings{display:grid;gap:.7rem}.saved-recipes-settings .info-action{justify-self:start}
.recipe-fetch-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.75rem;padding:.65rem 1.1rem;border:0;border-radius:999px;color:var(--ai-deep);background:var(--ai-orange);font-size:var(--ai-button-size);font-weight:800;line-height:1.25;transition:transform .2s,background .2s}.recipe-fetch-button:hover:not(:disabled){background:#ffb23d;transform:translateY(-1px)}.recipe-fetch-button:disabled{opacity:.55;cursor:not-allowed}.recipe-fetch-button span{font-size:1rem}.recipe-ai-allowance{display:flex;align-items:center;gap:.65rem;margin:1rem 0 0!important;padding:.7rem .8rem;border-radius:.85rem;color:#5b7069!important;background:#fff4dd;font-size:.82rem;line-height:1.35}.recipe-ai-allowance>span:first-child{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;color:var(--ai-deep);background:var(--ai-orange);font-size:.7rem}.recipe-ai-allowance>span:last-child{display:grid;gap:.1rem}.recipe-ai-allowance strong{color:var(--ai-deep)}.recipe-ai-allowance small{color:#6d725e}
.recipe-filters,.recipe-tags,.recipe-card-tags{display:flex;flex-wrap:wrap;gap:.55rem}.recipe-filters{margin:0 0 1.4rem}.recipe-filters label{display:grid;gap:.25rem;color:#557066;font-weight:700;font-size:.85rem}.recipe-filters select{border:1px solid #cbd9d0;border-radius:.5rem;background:#fff;color:#17382d;padding:.45rem .65rem}.recipe-tags{margin:.75rem 0}.recipe-tags span,.recipe-card-tags span,.recipe-ingredient-flag{display:inline-block;border-radius:999px;background:#e8f1e4;color:#315e4b;font-weight:700;padding:.2rem .55rem;font-size:.75rem}.recipe-card-tags{margin:0 0 .5rem}.recipe-ingredients li{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.recipe-allergens{border-top:1px solid #d7e2d9;margin-top:2rem;padding-top:1.4rem}.recipe-allergens small{color:#557066}
.recipe-section-heading{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}.recipe-section-heading .eyebrow{margin:0 0 .1rem}.recipe-section-heading h2{margin:0;font-size:1.4rem}.recipe-section-art{position:relative;display:grid;place-items:center;flex:0 0 auto;width:3.35rem;height:3.35rem;border:1px solid #d8eabe;border-radius:1.05rem;background:linear-gradient(145deg,#fff,#eaf5d8);box-shadow:.25rem .35rem .8rem rgba(6,42,36,.1);font-size:1.7rem}.recipe-section-art i{position:absolute;right:-.16rem;top:-.25rem;display:grid;place-items:center;width:1.1rem;height:1.1rem;border-radius:50%;color:#fff;background:var(--ai-orange);font-size:.57rem;font-style:normal}.method-art{color:var(--ai-forest);background:linear-gradient(145deg,#f5fbf2,#dff0d6)}.recipe-ingredients ul{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.recipe-ingredients li{min-height:2.6rem;padding:.55rem .7rem;border-bottom:1px solid rgba(8,116,67,.09)}.recipe-ingredients li::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--ai-lime);box-shadow:0 0 0 .18rem #eef6e9}.recipe-ingredient-icon{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:.43rem;font-size:.85rem;font-style:normal;font-weight:900;line-height:1}.non-perishable-icon{color:#386c57;background:#e1f1e6}.bulk-buy-icon{color:#9a6200;background:#fff0cf}.recipe-ingredient-key{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin-top:1rem;padding:.7rem .85rem;border-radius:.85rem;color:#5b7069;background:#f6f8f3;font-size:.76rem;font-weight:800}.recipe-ingredient-key span{display:inline-flex;align-items:center;gap:.35rem}.recipe-ingredient-key i{font-style:normal}.recipe-method{margin-top:.8rem;padding:1.25rem!important;border:1px solid #dcebd6;border-radius:1.25rem;background:linear-gradient(145deg,#fff,#f4f9f0)}.recipe-method ol{display:grid;gap:.8rem;margin:0;padding:0;list-style:none}.recipe-method li{display:grid;grid-template-columns:2.35rem minmax(0,1fr);gap:.8rem;align-items:start;margin:0!important;color:#456158;line-height:1.6}.recipe-method-number{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:2px solid #c9e3bf;border-radius:.7rem;color:#fff;background:linear-gradient(135deg,var(--ai-leaf),var(--ai-forest));box-shadow:0 .3rem .65rem rgba(8,116,67,.18);font-size:.85rem;font-weight:900}@media(max-width:575.98px){.recipe-method{padding:1rem!important}.recipe-section-art{width:3rem;height:3rem}.recipe-method li{grid-template-columns:2rem minmax(0,1fr);gap:.65rem}.recipe-method-number{width:1.9rem;height:1.9rem}}
.recipe-library-hero{overflow:hidden;position:relative}.recipe-library-hero>div{position:relative;z-index:1}.recipe-hero-art{width:min(42%,360px);max-height:215px;object-fit:contain;mix-blend-mode:screen;filter:saturate(1.12);margin:-28px -28px -28px 0}.recipe-card-icon.recipe-icon-coral{background:#ffe1d4}.recipe-card-icon.recipe-icon-sun{background:#fff0bd}.recipe-card-icon.recipe-icon-berry{background:#f3d8e8}.recipe-card-icon.recipe-icon-mint{background:#d7f0df}.recipe-app-promo{grid-column:1/-1;display:flex;align-items:center;gap:clamp(18px,4vw,42px);margin-top:1rem;padding:clamp(22px,4vw,34px);border-radius:22px;background:linear-gradient(135deg,#17382d,#2d7056);color:#fff}.recipe-app-promo img{width:min(185px,38%);height:auto;object-fit:contain}.recipe-app-promo .eyebrow{color:#d8edc8}.recipe-app-promo h2{margin:.2rem 0 .45rem;max-width:620px}.recipe-app-promo p{margin:0 0 1rem;color:#edf7e9}.recipe-app-promo-link{display:inline-block;padding:.7rem 1rem;border-radius:999px;background:#f1a83a;color:#17382d;text-decoration:none;font-weight:800}.recipe-app-promo-link:hover{background:#ffd17a}@media(max-width:560px){.recipe-hero-art{width:40%;margin-right:-45px}.recipe-app-promo{align-items:flex-start;flex-direction:column}.recipe-app-promo img{width:150px}}
:root{--ai-text-size:1rem;--ai-button-size:.9rem;--ai-small-size:.78rem}body{font-size:var(--ai-text-size);line-height:1.5}button,input,textarea{font-size:var(--ai-text-size);line-height:1.4}.eyebrow{font-size:var(--ai-small-size)}.small-note,.pantry-scan-card small,.receipt-scan-card small{font-size:var(--ai-small-size)}.primary,.secondary,.scan-button,.btn-ai-primary{min-height:2.75rem;padding:.65rem 1.1rem!important;border-radius:999px;font-size:var(--ai-button-size)!important;font-weight:800;line-height:1.25}.nav-item{font-size:var(--ai-button-size)!important}.mini{min-height:auto;padding:.4rem .7rem!important;font-size:var(--ai-small-size)!important}

/* Settings-page hierarchy: daily usage and upgrade take priority at the top. */
.settings-page{display:block;max-width:1080px}.settings-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:1.25rem;margin-bottom:1.25rem}.settings-page .settings-section{margin:0 0 1.25rem}.settings-top .settings-section{margin:0}.usage-limits-section{display:grid;align-content:start}.usage-limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.4rem}.usage-limits>div{display:grid;gap:.2rem;padding:1rem;border:1px solid #d8eabe;border-radius:1rem;background:var(--ai-mist)}.usage-limits strong{color:var(--ai-forest);font-size:1.5rem}.usage-limits span{font-weight:800}.usage-limits small{color:#657a74;line-height:1.4}.settings-page .settings,.settings-page>section:nth-of-type(4),.settings-page .danger-zone,.settings-page .settings-note{grid-column:auto}@media(max-width:900px){.settings-top{grid-template-columns:1fr}.usage-limits{grid-template-columns:1fr}}
.settings-page .settings select{width:100%;min-height:3rem;padding:.75rem 2.75rem .75rem 1rem;border:1px solid #cfe2c6;border-radius:999px;color:var(--ai-ink);background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,var(--ai-forest) 50%),linear-gradient(135deg,var(--ai-forest) 50%,transparent 50%);background-position:calc(100% - 1.25rem) 1.25rem,calc(100% - .95rem) 1.25rem;background-size:.35rem .35rem,.35rem .35rem;background-repeat:no-repeat;appearance:none;font:inherit;font-weight:700;cursor:pointer;transition:border-color .2s,box-shadow .2s}.settings-page .settings select:focus{outline:0;border-color:var(--ai-leaf);box-shadow:0 0 0 .25rem rgba(47,168,79,.16)}.settings-page .settings label{align-self:start}
.recipe-steering{grid-column:1/-1;display:grid;gap:.55rem;margin-top:.35rem}.recipe-steering p{margin:0}.recipe-steering h2{margin:0}.recipe-steering>p:not(.eyebrow){color:#5b7069;line-height:1.5}.recipe-steering textarea{width:100%;resize:vertical;min-height:8rem;padding:.85rem 1rem;border:1px solid #cfe2c6;border-radius:1rem;color:var(--ai-ink);background:#fff;font:inherit;line-height:1.5;transition:border-color .2s,box-shadow .2s}.recipe-steering textarea:focus{outline:0;border-color:var(--ai-leaf);box-shadow:0 0 0 .25rem rgba(47,168,79,.16)}
.stat{text-align:center;justify-items:center}.stat-open-arrow{display:inline-block;margin-left:.2rem;font-size:.9rem;line-height:1;transition:transform .2s ease}.stat .mini:hover .stat-open-arrow,.stat .mini:focus-visible .stat-open-arrow{transform:translateX(2px)}
.bulk-buy-page{max-width:1080px}.bulk-buy-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:1.25rem;align-items:stretch;margin-bottom:1rem}.bulk-buy-intro{display:flex;flex-direction:column;justify-content:center;padding:1rem 0}.bulk-buy-intro h2{margin:.25rem 0}.bulk-buy-intro p:not(.eyebrow){margin:0;color:#5b7069}.bulk-buy-generate-card{display:grid;grid-template-columns:3rem 1fr;gap:.9rem;align-items:start;padding:1.25rem;border:1px solid #b9d9b6;border-radius:1.25rem;background:linear-gradient(145deg,#f4fbf1,var(--ai-mist));box-shadow:0 .7rem 1.5rem rgba(6,42,36,.06)}.bulk-buy-generate-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:1rem;background:#fff;color:var(--ai-forest);font-size:1.25rem;box-shadow:0 .25rem .7rem rgba(6,42,36,.08)}.bulk-buy-generate-card h3{margin:.2rem 0 .25rem;font-size:1.1rem}.bulk-buy-generate-card p:not(.eyebrow){margin:0;color:#5b7069;line-height:1.45}.bulk-buy-generate-card .primary{grid-column:1/-1;width:100%;margin-top:.15rem}.bulk-buy-notes{margin:.9rem 0;padding:1.15rem;background:var(--ai-mist)}.bulk-buy-notes p:not(.eyebrow){margin:0;color:#5b7069;line-height:1.5}.bulk-buy-notes small{color:#657a74}.bulk-buy-item{margin:.7rem 0;padding:1rem 1.2rem}.bulk-buy-item-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.bulk-buy-item-heading>div{display:grid;gap:.2rem}.bulk-buy-item-heading strong{font-size:1.05rem}.bulk-buy-item-heading span,.bulk-buy-item>p,.bulk-buy-item>small{color:#657a74}.bulk-buy-item-heading small{color:var(--ai-forest);white-space:nowrap}.bulk-buy-item>p{margin:.65rem 0 0;line-height:1.5}.bulk-buy-item>small{display:block;margin-top:.55rem}@media(max-width:900px){.bulk-buy-header{grid-template-columns:1fr}.bulk-buy-intro{padding:0}}@media(max-width:600px){.bulk-buy-item-heading{display:grid;gap:.5rem}.bulk-buy-item-heading small{justify-self:start}}
.bulk-buy-item{display:grid;grid-template-columns:2.8rem minmax(0,1fr) auto;align-items:start;gap:1rem}.bulk-buy-item-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:.9rem;background:var(--ai-mist);color:var(--ai-forest);font-size:1.3rem}.bulk-buy-item-content{min-width:0}.bulk-buy-item-title{display:flex;align-items:center;gap:.35rem}.bulk-buy-delete{align-self:center;white-space:nowrap}.bulk-buy-item .form-control{min-width:0}@media(max-width:600px){.bulk-buy-item{grid-template-columns:2.8rem minmax(0,1fr)}.bulk-buy-delete{grid-column:2;justify-self:start}.bulk-buy-item-content .d-flex{flex-wrap:wrap}}
.shopping-list-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:1080px}.shopping-list-page>.shopping-progress,.shopping-list-page>.shopping-list-empty,.shopping-list-page>.prompt-debug{grid-column:1/-1}.shopping-list-page .shopping-aisle{min-width:0;margin:0;padding:1.15rem;border:1px solid rgba(8,116,67,.1);border-radius:1.25rem;background:linear-gradient(145deg,#fff,var(--ai-mist));box-shadow:0 .7rem 2rem rgba(6,42,36,.06)}.shopping-list-page .shopping-aisle-heading{margin:0 0 .7rem}.shopping-list-page .shopping-list-item{margin:.55rem 0;padding:.85rem;border-color:rgba(8,116,67,.08);box-shadow:0 .25rem .8rem rgba(6,42,36,.04)}
@media(max-width:700px){.shopping-list-page{grid-template-columns:1fr}.shopping-list-page>.shopping-progress,.shopping-list-page>.shopping-list-empty,.shopping-list-page>.prompt-debug{grid-column:auto}}
.bulk-buy-generate-card{grid-template-columns:68px 1fr;gap:.6rem 1rem;padding:1.4rem;border-color:rgba(8,116,67,.16);border-radius:1.5rem;color:var(--ai-cream);background:linear-gradient(140deg,var(--ai-deep),var(--ai-forest));box-shadow:0 1rem 2rem rgba(6,42,36,.16)}.bulk-buy-generate-icon{width:64px;height:64px;grid-row:span 2;border:1px solid rgba(255,253,244,.22);border-radius:1rem;color:var(--ai-lime);background:rgba(255,253,244,.12);font-size:1.5rem;box-shadow:0 .35rem .7rem rgba(0,0,0,.16);filter:drop-shadow(0 .2rem .35rem rgba(0,0,0,.16))}.bulk-buy-generate-card .eyebrow{color:var(--ai-lime)}.bulk-buy-generate-card h3{color:var(--ai-cream)}.bulk-buy-generate-card p:not(.eyebrow){color:rgba(255,253,244,.82)}.bulk-buy-generate-card .primary{color:var(--ai-deep);background:var(--ai-orange);border-color:var(--ai-orange);box-shadow:0 .6rem 1.25rem rgba(255,151,0,.24)}.bulk-buy-generate-card .primary:hover:not(:disabled){color:var(--ai-deep);background:#ffb23d;border-color:#ffb23d}
.shopping-list-header{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:1.25rem;align-items:stretch;margin-bottom:.25rem}.shopping-list-intro{display:flex;flex-direction:column;justify-content:center;padding:1rem 0}.shopping-list-intro h2{margin:.25rem 0}.shopping-list-intro p:not(.eyebrow){max-width:34rem;margin:0;color:#5b7069;line-height:1.55}.shopping-list-generate-card{display:grid;grid-template-columns:68px 1fr;gap:.6rem 1rem;padding:1.4rem;border:1px solid rgba(8,116,67,.18);border-radius:1.5rem;color:var(--ai-cream);background:linear-gradient(140deg,var(--ai-deep),var(--ai-forest));box-shadow:0 1rem 2rem rgba(6,42,36,.16)}.shopping-list-generate-icon{display:grid;place-items:center;width:64px;height:64px;grid-row:span 2;border:1px solid rgba(255,253,244,.22);border-radius:1rem;background:rgba(255,253,244,.12);font-size:1.75rem;box-shadow:0 .35rem .7rem rgba(0,0,0,.16)}.shopping-list-generate-card .eyebrow{color:var(--ai-lime)}.shopping-list-generate-card h2{margin:.2rem 0 .3rem;color:var(--ai-cream);font-size:1.15rem}.shopping-list-generate-card p{margin:0;color:rgba(255,253,244,.82);font-size:.9rem;line-height:1.45}.shopping-list-generate-button{grid-column:1/-1;min-height:2.8rem;border:1px solid var(--ai-orange);border-radius:999px;color:var(--ai-deep);background:var(--ai-orange);font-size:.9rem;font-weight:900;box-shadow:0 .6rem 1.25rem rgba(255,151,0,.24);transition:transform .2s,background .2s}.shopping-list-generate-button:hover:not(:disabled){background:#ffb23d;border-color:#ffb23d;transform:translateY(-1px)}.shopping-list-generate-button:disabled{opacity:.65;cursor:not-allowed}.shopping-list-generate-card small{grid-column:1/-1;color:rgba(255,253,244,.74);font-size:var(--ai-small-size);line-height:1.4}.shopping-list-generate-card small strong{color:var(--ai-cream)}
@media(max-width:900px){.shopping-list-header{grid-template-columns:1fr}.shopping-list-intro{padding:0}.shopping-list-generate-card{max-width:620px}}@media(max-width:575.98px){.shopping-list-generate-card{grid-template-columns:52px 1fr;padding:1.15rem}.shopping-list-generate-icon{width:52px;height:52px;font-size:1.45rem}}
@media(max-width:575.98px){.shopping-list-item{grid-template-columns:auto minmax(0,1fr)}.shopping-item-flags{grid-column:2;justify-content:flex-start;max-width:none}.shopping-item-title{width:auto;white-space:normal}}
.button-loading-content{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}.button-spinner{width:1rem;height:1rem;border-width:2px;border-color:rgba(6,42,36,.25);border-top-color:var(--ai-deep)}
.usage-limits .usage-indicator{display:block;margin-top:.2rem;color:var(--ai-forest);font-weight:800}
.scan-review-modal .modal-content{border:0;border-radius:1.35rem;overflow:hidden}.scan-review-modal .modal-header{background:var(--ai-mist)}.scan-review-list{display:grid;gap:.55rem;max-height:18rem;overflow:auto}.scan-review-list>div{display:grid;gap:.15rem;padding:.75rem .9rem;border:1px solid rgba(8,116,67,.12);border-radius:.85rem;background:#fff}.scan-review-list span{color:#657a74;font-size:.9rem}

/* Subscription landing page */
.subscription-page{min-height:100vh;padding:clamp(1.25rem,4vw,3rem);background:linear-gradient(135deg,#fffdf4,#eaf5d8)}.subscription-page>.info-back-link{width:min(1080px,100%);margin-bottom:1.25rem}.subscription-hero,.subscription-content,.subscription-faq{width:min(1080px,100%);margin-inline:auto}.subscription-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.45fr);gap:1.25rem;align-items:center;padding:clamp(1.75rem,5vw,4rem);border-radius:2rem;color:var(--ai-cream);background:linear-gradient(135deg,var(--ai-deep),var(--ai-forest));box-shadow:0 1.3rem 3rem rgba(6,42,36,.2)}.subscription-hero h1{max-width:620px;margin:.2rem 0 .7rem;color:var(--ai-cream);font-size:clamp(2rem,5vw,3.6rem)}.subscription-hero p:not(.eyebrow){max-width:600px;margin:0;color:rgba(255,253,244,.84);font-size:1.1rem;line-height:1.6}.subscription-hero .eyebrow,.subscription-checkout .eyebrow{color:var(--ai-lime)}.subscription-price{display:grid;gap:.15rem;padding:1.35rem;border:1px solid rgba(255,253,244,.18);border-radius:1.35rem;background:rgba(255,253,244,.11);text-align:center}.subscription-price span{font-size:3rem;font-weight:900;line-height:1}.subscription-price strong{font-size:1rem}.subscription-price small{color:rgba(255,253,244,.74)}.subscription-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);gap:1.25rem;margin-top:1.25rem}.subscription-plan,.subscription-checkout{padding:clamp(1.4rem,3vw,2rem);border-radius:1.5rem}.subscription-plan{border:1px solid rgba(8,116,67,.1);background:rgba(255,255,255,.8);box-shadow:0 .7rem 2rem rgba(6,42,36,.06)}.subscription-plan h2,.subscription-checkout h2{margin:.15rem 0 1rem}.subscription-plan ul{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.subscription-plan li{display:flex;gap:.75rem;align-items:center;color:#435d55;font-weight:700}.subscription-plan li span{display:grid;place-items:center;flex:0 0 auto;width:1.55rem;height:1.55rem;border-radius:50%;color:#fff;background:var(--ai-forest)}.subscription-checkout{display:grid;align-content:start;gap:.75rem;color:var(--ai-cream);background:linear-gradient(145deg,#164f3d,var(--ai-forest));box-shadow:0 .9rem 2rem rgba(6,42,36,.15)}.subscription-checkout h2{color:var(--ai-cream)}.subscription-checkout p:not(.eyebrow){margin:0;color:rgba(255,253,244,.85);line-height:1.55}.subscription-checkout small{color:rgba(255,253,244,.7);line-height:1.4}.subscription-paypal-button{display:block;width:100%;color:var(--ai-deep)!important;background:var(--ai-orange)!important;border-color:var(--ai-orange)!important;text-align:center;text-decoration:none}.subscription-setup-note{padding:.75rem 1rem;border:1px solid rgba(255,255,255,.18);border-radius:.85rem;background:rgba(255,255,255,.1);font-size:.9rem}.subscription-faq{display:grid;gap:.7rem;margin-top:1.5rem;padding:clamp(1.4rem,3vw,2rem);border-radius:1.5rem;background:rgba(255,255,255,.68)}.subscription-faq h2{margin:0 0 .25rem}.subscription-faq details{padding:.9rem 1rem;border:1px solid rgba(8,116,67,.12);border-radius:.9rem;background:#fff}.subscription-faq summary{cursor:pointer;color:var(--ai-deep);font-weight:900}.subscription-faq p{margin:.7rem 0 0;color:#5b7069;line-height:1.5}@media(max-width:700px){.subscription-hero,.subscription-content{grid-template-columns:1fr}.subscription-price{max-width:320px}.subscription-hero{border-radius:1.5rem}}

/* Keep the shopping-list introduction prominent across the available page width. */
.shopping-list-page{max-width:none}
.shopping-list-header{grid-template-columns:1fr}
.shopping-list-essentials-note{margin-top:.7rem!important;color:var(--ai-forest)!important;font-weight:800}
.shopping-list-email{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:1.5rem;align-items:center;max-width:1080px;margin:1rem auto 0;padding:1.4rem 1.6rem;border:1px solid rgba(8,116,67,.14);border-radius:1.25rem;background:linear-gradient(135deg,#fff,var(--ai-mist))}.shopping-list-email h2{margin:.2rem 0 .4rem;font-size:1.25rem}.shopping-list-email p:not(.eyebrow):not(.shopping-list-email-status){margin:0;color:#5b7069;line-height:1.45}.shopping-list-email-form{display:flex;gap:.65rem}.shopping-list-email-form input{min-width:0;flex:1;padding:.72rem .85rem;border:1px solid #b9d9b6;border-radius:.7rem;color:var(--ai-deep);background:#fff}.shopping-list-email-form .primary{white-space:nowrap}.shopping-list-email-status{grid-column:1/-1;margin:0;color:var(--ai-forest);font-size:var(--ai-small-size);font-weight:800}@media(max-width:700px){.shopping-list-email{grid-template-columns:1fr;margin:1rem 0 0;padding:1.2rem}.shopping-list-email-form{flex-direction:column}.shopping-list-email-form .primary{width:100%}}

/* Signed-in homepage: a single, progressive planning flow. */
.home-dashboard{display:block;max-width:940px}.home-main{display:grid;gap:1.25rem;max-width:none}.next-shop{min-height:172px;margin:0;align-items:flex-start}.next-shop img{align-self:flex-start;width:min(22%,150px)}.homepage-setup{gap:1rem;padding:clamp(1.2rem,3vw,1.75rem);background:linear-gradient(145deg,#fff,var(--ai-mist))}.homepage-setup-heading{display:grid;gap:.3rem}.homepage-setup-heading h2{margin:0;font-size:1.3rem}.homepage-setup-heading p:not(.eyebrow){margin:0;color:#5b7069;line-height:1.5}.homepage-setup-steps{display:grid;gap:0;margin:0;padding:0;list-style:none}.homepage-setup-steps li{position:relative;display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:.85rem;align-items:start;padding:.7rem 0}.homepage-setup-steps li:not(:last-child)::after{position:absolute;top:3.45rem;bottom:-.15rem;left:1.32rem;width:1px;background:#cfe2c6;content:""}.homepage-step-icon{display:grid;place-items:center;z-index:1;width:2.75rem;height:2.75rem;border:1px solid #b9d9b6;border-radius:.9rem;color:var(--ai-forest);background:#fff;font-weight:900}.homepage-setup-steps li.completed .homepage-step-icon{color:#fff;background:var(--ai-forest);border-color:var(--ai-forest)}.homepage-setup-steps li>div{display:grid;gap:.25rem;min-height:2.75rem;padding-top:.15rem}.homepage-setup-steps strong,.homepage-setup-steps a{color:var(--ai-deep);font-size:1rem;font-weight:900}.homepage-setup-steps a:hover{color:var(--ai-leaf)}.homepage-setup-steps small{color:#657a74;font-size:var(--ai-small-size);line-height:1.4}.homepage-step-button,.homepage-generate-shopping-button{justify-self:start;margin-top:.35rem}.homepage-generate-shopping-button{min-height:2.75rem;padding:.65rem 1.1rem;border:1px solid var(--ai-orange);border-radius:999px;color:var(--ai-deep);background:var(--ai-orange);font-size:var(--ai-button-size);font-weight:900;box-shadow:0 .6rem 1.25rem rgba(255,151,0,.24);transition:transform .2s,background .2s}.homepage-generate-shopping-button:hover:not(:disabled){background:#ffb23d;border-color:#ffb23d;transform:translateY(-1px)}.homepage-generate-shopping-button:disabled{opacity:.65;cursor:not-allowed}.home-kitchen{position:static!important;max-width:none!important;margin:0!important;padding:1.25rem;border:1px solid #d8eabe;border-radius:1.75rem;background:linear-gradient(145deg,#fff,var(--ai-mist))}.home-kitchen .section-label,.home-kitchen .kitchen-grid{margin:0!important;padding:0!important;background:transparent!important;border-radius:0!important}.home-kitchen .section-label{margin-bottom:.85rem!important}.home-main .budget-card{margin:0;padding:clamp(1.2rem,3vw,1.75rem)}@media(max-width:575.98px){.next-shop{min-height:150px}.next-shop img{width:25%}.homepage-setup{padding:1.15rem}.homepage-setup-steps li{grid-template-columns:2.5rem minmax(0,1fr);gap:.7rem}.homepage-step-icon{width:2.5rem;height:2.5rem}.homepage-setup-steps li:not(:last-child)::after{left:1.2rem;top:3.2rem}.kitchen-grid{grid-template-columns:repeat(2,1fr)}}

/* Meal-plan timing and the compact homepage plan calendar. */
.meal-plan-start-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}.meal-plan-start-options button{display:grid;gap:.2rem;min-height:5.5rem;padding:1rem;text-align:left}.meal-plan-start-options button span{font-size:var(--ai-small-size)}.meal-plan-start-options button strong{font-size:1rem}.today-card{margin-top:0}.plan-calendar{display:grid;gap:.75rem;padding-top:1rem}.plan-calendar-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.plan-calendar-heading strong{font-size:1rem}.plan-calendar-heading small{color:#657a74;font-size:var(--ai-small-size)}.plan-calendar-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(3.7rem,1fr));gap:.5rem}.plan-calendar-day{display:grid;place-items:center;gap:.05rem;min-height:4.35rem;padding:.45rem .25rem;border:1px solid #d8eabe;border-radius:.85rem;color:#5b7069;background:#fff;font:inherit;line-height:1.05;transition:transform .2s,box-shadow .2s}.plan-calendar-day:hover,.plan-calendar-day.selected{transform:translateY(-2px);box-shadow:0 .45rem .85rem rgba(6,42,36,.12)}.plan-calendar-day>span,.plan-calendar-day>small{font-size:.65rem;font-weight:800}.plan-calendar-day>strong{color:var(--ai-deep);font-size:1.05rem}.plan-calendar-day.calendar-plan-day{border-color:#b9d9b6;background:#eaf5d8}.plan-calendar-day.calendar-shopping-day{border-color:#f0c774;background:#fff4dd}.plan-calendar-day.calendar-shopping-day>strong{color:#a96100}.plan-calendar-day.calendar-meal-start{border-color:var(--ai-forest);color:#fff;background:var(--ai-forest)}.plan-calendar-day.calendar-meal-start>strong{color:#fff}.plan-calendar-day.calendar-shopping-day.calendar-meal-start{border-color:#d68700;background:linear-gradient(135deg,var(--ai-forest) 0 58%,var(--ai-orange) 58% 100%)}.plan-calendar-key{display:flex;flex-wrap:wrap;gap:.4rem 1rem;color:#657a74;font-size:var(--ai-small-size);font-weight:800}.plan-calendar-key span{display:flex;align-items:center;gap:.35rem}.plan-calendar-key i{width:.7rem;height:.7rem;border-radius:50%;background:#eaf5d8}.plan-calendar-key .calendar-key-shopping{background:var(--ai-orange)}.plan-calendar-key .calendar-key-start{background:var(--ai-forest)}.calendar-meal-popover{display:grid;gap:.7rem;padding:1rem 1.1rem;border:1px solid #b9d9b6;border-radius:1rem;background:linear-gradient(145deg,#fff,var(--ai-mist))}.calendar-meal-popover h3{margin:.1rem 0 0;font-size:1rem}.calendar-meal-popover ul{display:grid;gap:.4rem;margin:0;padding:0;list-style:none}.calendar-meal-popover li{display:grid;grid-template-columns:5.25rem minmax(0,1fr);gap:.5rem;padding:.45rem 0;border-top:1px solid rgba(8,116,67,.1);font-size:.86rem}.calendar-meal-popover li strong{color:var(--ai-forest)}.calendar-meal-popover li span{overflow:hidden;color:#5b7069;text-overflow:ellipsis;white-space:nowrap}@media(max-width:575.98px){.meal-plan-start-options{grid-template-columns:1fr}.plan-calendar-heading{display:grid;gap:.2rem}.plan-calendar-days{grid-template-columns:repeat(4,minmax(0,1fr))}.plan-calendar-day{min-height:3.9rem}.calendar-meal-popover li{grid-template-columns:4.6rem minmax(0,1fr)}}
.today-start-date{display:block;margin-top:.35rem;color:#657a74;font-size:var(--ai-small-size);font-weight:800}.today-plan-button{align-self:center;max-width:20rem;white-space:normal;text-align:center}
.meal-plan-start-options button{grid-template-columns:3rem minmax(0,1fr);align-items:center}.meal-plan-start-options button .meal-plan-start-option-icon{display:grid;place-items:center;width:3rem;height:3rem;padding:0;border-radius:.9rem;background:rgba(255,255,255,.62);font-size:1.45rem}.meal-plan-start-options button .meal-plan-start-option-copy{display:grid;gap:.15rem;font-size:inherit}.meal-plan-start-options button .meal-plan-start-option-copy small{font-size:var(--ai-small-size)}.meal-plan-generation-state{display:grid;justify-items:center;gap:.7rem;padding:2.5rem 2rem;text-align:center}.meal-plan-generation-state .spinner{width:3.25rem;height:3.25rem;border-width:5px}.meal-plan-generation-state h2{margin:0;font-size:1.5rem}.meal-plan-generation-state>p:not(.eyebrow){max-width:25rem;margin:0;color:#5b7069;line-height:1.5}.meal-plan-done-icon{display:grid;place-items:center;width:5rem;height:5rem;border:4px solid #d9efc8;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--ai-leaf),var(--ai-forest));box-shadow:0 .7rem 1.4rem rgba(8,116,67,.22);font-size:2.6rem;font-weight:900;animation:meal-plan-done-pop .42s ease-out}.meal-plan-ready-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.9rem;margin-top:.3rem;padding:.7rem 1.2rem;border:1px solid var(--ai-orange);border-radius:999px;color:var(--ai-deep);background:var(--ai-orange);font-weight:900;box-shadow:0 .6rem 1.25rem rgba(255,151,0,.24);transition:transform .2s,background .2s}.meal-plan-ready-button:hover{background:#ffb23d;transform:translateY(-1px)}@keyframes meal-plan-done-pop{0%{transform:scale(.55);opacity:0}70%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}@media(max-width:575.98px){.meal-plan-generation-state{padding:2rem 1.35rem}}
