:root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--surface: light-dark(#fff, #222520);--soft: light-dark(#eef3ea, #293126);--text: light-dark(#20231f, #f1f4ee);--muted: light-dark(#667064, #b4bdb0);--line: light-dark(#d9ded5, #3c4339);--brand: light-dark(#356b3b, #92c999);--brand-text: light-dark(#fff, #122015);--danger: light-dark(#a92c2c, #ff9690);color:light-dark(#20231f,#f1f4ee);background:light-dark(#f5f6f3,#151714);font-synthesis:none}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}html{scrollbar-gutter:stable}.preserved-view[hidden]{display:none!important}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.retail-product-image{position:relative;display:grid;width:100%;height:100%;place-items:center;overflow:hidden}.retail-product-image>img{display:block;max-width:100%;max-height:100%}.retail-product-image-placeholder{display:grid;width:100%;height:100%;min-height:3rem;place-items:center;color:var(--muted);background:color-mix(in srgb,var(--surface) 90%,var(--border))}.retail-product-image-placeholder>svg{width:2rem;height:2rem;opacity:.7}.retail-product-availability-overlay{position:absolute;z-index:1;top:.4rem;left:.4rem;max-width:calc(100% - .8rem);padding:.28rem .45rem;border-radius:.35rem;background:#855000f0;color:#fff;box-shadow:0 1px 5px #00000040;font-size:.68rem;font-weight:850;line-height:1.1;letter-spacing:.02em;text-transform:uppercase}.retail-product-image.discontinued .retail-product-availability-overlay{background:#8f2b23f5}.item-autocomplete-menu .retail-product-availability-overlay,.purchase-history-image .retail-product-availability-overlay{top:.15rem;left:.15rem;width:1rem;height:1rem;overflow:hidden;padding:0;border-radius:999px;color:transparent}.item-autocomplete-menu .retail-product-availability-overlay:after,.purchase-history-image .retail-product-availability-overlay:after{position:absolute;inset:0;display:grid;place-items:center;color:#fff;content:"!";font-size:.7rem}.app-frame{width:min(100%,720px);min-height:100vh;margin:0 auto;background:light-dark(#f5f6f3,#151714);color:var(--text)}.app-utility-bar{display:flex;min-height:36px;align-items:center;justify-content:space-between;padding:0 .45rem;border-bottom:1px solid var(--line);background:var(--surface)}.app-settings-button{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.app-utility-bar .account-status{max-width:calc(100vw - 4.5rem)}.app-utility-bar .account-button{flex:1 1 auto;max-width:none;overflow:hidden;justify-content:flex-start}.app-utility-bar .account-button>span{flex:0 1 auto;max-width:none}.app-utility-bar .account-button small{flex:0 0 auto;white-space:nowrap}.tabs{position:sticky;top:0;z-index:10;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;border-bottom:1px solid var(--line);background:var(--surface)}.tabs button{min-height:42px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-size:.78rem}.tabs button[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand)}.recipe-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:.55rem;overflow:hidden;border:1px solid var(--line);border-radius:.6rem;background:var(--soft)}.recipe-view-tabs button{min-height:38px;border:0;background:transparent;color:var(--muted);font-weight:700}.recipe-view-tabs button[aria-selected=true]{background:var(--surface);color:var(--brand);box-shadow:inset 0 -2px var(--brand)}.retail-capture-page main{padding:0 .8rem 2rem}.retail-capture-finish-button{display:inline-flex;min-height:34px;align-items:center;gap:.35rem;border:0;padding:0 .35rem;background:transparent;color:var(--brand);font-size:.8rem;font-weight:750}.retail-capture-ready{display:grid;min-height:70vh;align-content:center;justify-items:center;gap:.55rem;text-align:center}.retail-capture-ready>svg{color:var(--brand)}.retail-capture-ready h1,.retail-capture-ready p{margin:0}.retail-capture-ready>p:last-of-type{max-width:28rem;color:var(--muted);line-height:1.5}.retail-capture-ready a{display:inline-flex;min-height:42px;align-items:center;gap:.4rem;margin-top:.55rem;border:1px solid var(--brand);border-radius:.55rem;padding:.55rem .8rem;color:var(--brand);font-weight:750;text-decoration:none}.retail-capture-heading{padding:1.15rem .2rem .75rem}.retail-capture-heading h1{margin:0 0 .35rem;font-size:1.45rem}.retail-capture-heading>p:last-child{margin:0;color:var(--muted);line-height:1.45}.retail-capture-eyebrow{margin:0 0 .3rem;color:var(--brand);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.retail-capture-status,.retail-capture-error{margin:.5rem 0;border-radius:.65rem;padding:.8rem;background:var(--soft);line-height:1.4}.retail-capture-error{background:light-dark(#f8e7e1,#4a2923);color:light-dark(#842d1b,#ffd4ca)}.retail-capture-card{display:grid;gap:.8rem;border:1px solid var(--line);border-radius:.85rem;padding:.75rem;background:var(--surface)}.retail-capture-image{display:grid;min-height:15rem;place-items:center;overflow:hidden;border-radius:.65rem;background:#fff}.retail-capture-image img{display:block;width:100%;max-height:min(52vh,34rem);object-fit:contain}.retail-capture-title-row{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.retail-capture-title-row span{color:var(--brand);font-size:.78rem;font-weight:700}.retail-capture-title-row h2{margin:.25rem 0 0;font-size:1.3rem}.retail-capture-title-row a{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;color:var(--brand)}.retail-capture-meta{margin:-.25rem 0 0;color:var(--muted)}.retail-capture-kind{display:grid;max-width:15rem;gap:.3rem;color:var(--muted);font-size:.78rem}.retail-capture-kind select{min-height:42px;border:1px solid var(--line);border-radius:.5rem;padding:.45rem .55rem;background:var(--surface);color:var(--text);font:inherit}.retail-capture-match{display:flex;align-items:center;gap:.4rem;margin:0;border-radius:.5rem;padding:.65rem;background:var(--soft);font-size:.85rem}.retail-capture-card section{border-top:1px solid var(--line);padding-top:.7rem}.retail-capture-card section h3{margin:0 0 .3rem;color:var(--muted);font-size:.73rem;letter-spacing:.05em;text-transform:uppercase}.retail-capture-card section p{margin:0;line-height:1.5;white-space:pre-wrap}.retail-capture-save{min-height:44px;border:0;border-radius:.6rem;background:var(--brand);color:var(--brand-text);font-weight:750}.retail-capture-save:disabled{opacity:.65}.retail-capture-saved{display:flex;align-items:start;gap:.55rem;border-radius:.6rem;padding:.75rem;background:var(--soft);color:var(--text);line-height:1.4}.retail-capture-actions{display:grid;gap:.65rem}.retail-image-removal{display:grid;gap:.55rem;border:1px solid light-dark(#e0c8c3,#644038);border-radius:.6rem;padding:.75rem}.retail-image-removal h3,.retail-image-removal p{margin:0}.retail-image-removal p{margin-top:.2rem;color:var(--muted);font-size:.85rem;line-height:1.4}.retail-image-removal .danger-action{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:42px;border:1px solid light-dark(#d6aaa2,#825349);border-radius:.55rem;background:transparent;color:light-dark(#a92c2c,#ff9690);font-weight:700}.retail-image-removal .danger-action:disabled{opacity:.6}.catalog-link-editor{display:grid;gap:.65rem;border:1px solid var(--line);border-radius:.65rem;padding:.8rem;background:var(--soft)}.catalog-link-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.catalog-link-heading h3,.catalog-link-heading p{margin:0}.catalog-link-heading p{margin-top:.2rem;color:var(--muted);font-size:.82rem;line-height:1.4}.catalog-link-heading>span{display:inline-flex;flex:0 0 auto;align-items:center;gap:.25rem;color:var(--brand);font-size:.75rem;font-weight:750}.catalog-link-editor label{display:grid;gap:.3rem;color:var(--muted);font-size:.78rem;font-weight:650}.catalog-link-editor input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:.5rem;padding:.55rem .65rem;background:var(--surface);color:var(--text);font:inherit}.catalog-link-suggestions{display:flex;flex-wrap:wrap;gap:.4rem}.catalog-link-suggestions button{min-height:34px;border:1px solid var(--line);border-radius:999px;padding:.35rem .65rem;background:var(--surface);color:var(--text);font-size:.8rem}.catalog-link-actions{display:flex;flex-wrap:wrap;gap:.5rem}.catalog-link-actions button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:.35rem;border:0;border-radius:.5rem;padding:.45rem .75rem;background:var(--brand);color:var(--brand-text);font-weight:700}.catalog-link-actions button:disabled{opacity:.55}.catalog-link-actions .catalog-unlink{border:1px solid var(--line);background:transparent;color:var(--muted)}.catalog-link-status{margin:0;color:var(--muted);font-size:.8rem}.retail-memory-choices{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.retail-memory-choices button{min-height:40px;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);color:var(--text);font-size:.82rem}.retail-memory-choices button.selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 13%,var(--surface));color:var(--brand);font-weight:750}.retail-memory-groups{display:grid;gap:.75rem}.retail-memory-group h4{margin:0 0 .35rem;color:var(--muted);font-size:.72rem;letter-spacing:.035em;text-transform:uppercase}.retail-capture-buying-habit{display:grid;gap:.3rem;padding-top:.25rem}.retail-capture-buying-habit h3,.retail-capture-buying-habit p{margin:0}.retail-capture-buying-habit p{color:var(--muted);font-size:.8rem}.retail-capture-buying-habit button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:40px;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);color:var(--text)}.retail-capture-buying-habit button.selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 13%,var(--surface));color:var(--brand);font-weight:750}.retail-memory-notes{display:grid;gap:.3rem;color:var(--muted);font-size:.78rem;font-weight:700}.retail-memory-notes textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:.55rem;padding:.6rem;background:var(--surface);color:var(--text);line-height:1.4;font-weight:400}.retail-list-action{display:grid;gap:.35rem;border-top:1px solid var(--line);padding-top:.75rem}.retail-list-action button{display:flex;min-height:42px;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--brand);border-radius:.55rem;background:transparent;color:var(--brand);font-weight:750}.retail-list-action button:disabled{border-color:var(--line);color:var(--muted)}.retail-action-status{margin:0;color:var(--muted);font-size:.82rem;line-height:1.35}main{position:relative;padding:0 .45rem .75rem}main[aria-busy=true]{min-height:45vh}main[aria-busy=true]>:not(.startup-loading){visibility:hidden}.startup-loading{position:absolute;inset:4.5rem 0 auto;color:var(--muted);font-size:.85rem;text-align:center}.access-gate{display:grid;min-height:100dvh;place-items:center;padding:1rem;background:var(--soft)}.access-card{display:grid;width:min(100%,390px);justify-items:center;gap:.8rem;padding:1.4rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface);box-shadow:0 12px 40px #00000014;text-align:center}.access-card h1,.access-card p{margin:0}.access-card p{color:var(--muted);line-height:1.45}.access-card .access-error{color:var(--danger)}.access-mark{display:grid;width:58px;height:58px;place-items:center;border-radius:999px;background:var(--brand);color:var(--brand-text)}.access-card .access-sign-in{display:flex;min-height:46px;align-items:center;justify-content:center;gap:.55rem;width:100%;border:1px solid light-dark(#747775,#8e918f);border-radius:.55rem;background:light-dark(#fff,#131314);color:light-dark(#1f1f1f,#e3e3e3);font-family:Google Sans,Roboto,Arial,sans-serif;font-size:.9rem;font-weight:500}.access-card .access-sign-in img{width:28px;height:28px}.access-card .access-choice{width:100%;min-height:44px;border:1px solid var(--line);border-radius:.55rem;font-weight:700}.access-card .access-choice.primary{border-color:var(--brand);background:var(--brand);color:var(--brand-text)}.access-card .access-choice.secondary{background:var(--surface);color:var(--text)}.access-card small{display:flex;align-items:center;gap:.3rem;color:var(--muted)}.access-setup{display:grid;width:100%;gap:.55rem;text-align:left}.access-setup label{color:var(--muted);font-size:.8rem;font-weight:650}.access-setup input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);color:var(--text);padding:.6rem .7rem;font:inherit}.access-setup input:focus{border-color:var(--brand);outline:2px solid color-mix(in srgb,var(--brand) 24%,transparent);outline-offset:1px}.access-setup .access-error{text-align:center}.oauth-consent-card{justify-items:stretch;text-align:left}.oauth-consent-card .access-mark,.oauth-consent-card h1{justify-self:center}.oauth-consent-card>p{text-align:center}.oauth-consent-access{width:100%;padding:.75rem;border:1px solid var(--line);border-radius:.6rem;background:var(--soft)}.oauth-consent-access strong{font-size:.82rem}.oauth-consent-access ul{margin:.45rem 0 0;padding-left:1.2rem;color:var(--text);font-size:.85rem}.oauth-consent-note{font-size:.8rem}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.capture{position:sticky;top:42px;z-index:9;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.35rem;align-items:start;padding:.4rem 0 .25rem;background:light-dark(#f5f6f3,#151714)}.capture.without-store,.capture.search-only{grid-template-columns:minmax(0,1fr)}.capture.voice-enabled{grid-template-columns:auto minmax(0,1fr) 42px}.capture select,.capture textarea{min-height:42px;border:1px solid var(--line);border-radius:.65rem;background:var(--surface);color:var(--text)}.capture select{max-width:8rem;padding:.35rem .5rem;font-size:.82rem;font-weight:600}.capture textarea{width:100%;max-height:7.5rem;resize:none;overflow-y:auto;padding:.6rem .7rem;font-size:1rem;line-height:1.3}.item-autocomplete{position:relative;min-width:0}.item-autocomplete>input,.item-autocomplete>textarea{width:100%}.item-autocomplete-menu{position:absolute;z-index:30;top:calc(100% + .2rem);right:0;left:0;max-height:min(19rem,46dvh);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:.6rem;background:var(--surface);box-shadow:0 8px 20px #00000038}.item-autocomplete-menu button{display:flex;align-items:center;gap:.55rem;width:100%;min-height:40px;padding:.48rem .65rem;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);text-align:left}.item-autocomplete-menu button:first-child{border-top:0}.item-autocomplete-menu button.active{background:var(--soft);color:var(--brand)}.item-autocomplete-menu img{width:38px;height:38px;flex:0 0 38px;border-radius:.35rem;background:#fff;object-fit:contain}.item-autocomplete-menu .retail-product-image{width:38px;height:38px;flex:0 0 38px;border-radius:.35rem}.item-suggestion-copy{display:flex;min-width:0;flex-direction:column;gap:.1rem}.item-suggestion-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-suggestion-copy small{color:var(--muted);font-size:.7rem;letter-spacing:.025em;text-transform:uppercase}.capture-mic-button{display:grid;width:42px;height:42px;place-items:center;padding:0;border:1px solid var(--line);border-radius:.65rem;background:var(--surface);color:var(--brand)}.capture-hint{grid-column:1 / -1;color:var(--muted);font-size:.75rem}.run-button{grid-column:1 / -1;justify-self:end;border:0;background:transparent;color:var(--brand);font-size:.82rem;font-weight:600}.voice-entry-backdrop{position:fixed;z-index:30;inset:0;display:grid;place-items:stretch;overflow-y:auto;background:var(--surface)}.voice-entry-screen{display:flex;width:min(100%,36rem);min-height:100dvh;margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));flex-direction:column;background:var(--surface)}.voice-entry-screen header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.voice-entry-screen h2{margin:0;font-size:1.25rem}.voice-entry-screen header p{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}.voice-store-picker{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;color:var(--muted);font-size:.8rem}.voice-store-picker select{min-width:0;max-width:13rem;height:34px;border:1px solid var(--line);border-radius:.45rem;background:var(--soft);color:var(--text)}.voice-entry-screen header button{display:grid;width:42px;height:42px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.voice-microphone-control{display:flex;align-items:center;flex-direction:column;gap:.7rem;margin:clamp(1.5rem,6vh,3.5rem) 0 1.25rem;color:var(--muted);font-weight:650}.voice-microphone-button{position:relative;display:grid;width:76px;height:76px;place-items:center;padding:0;border:2px solid var(--line);border-radius:50%;background:var(--soft);color:var(--muted)}.voice-microphone-control.is-listening{color:var(--brand)}.voice-microphone-control.is-listening .voice-microphone-button{border-color:var(--brand);background:var(--brand);color:var(--brand-text)}.voice-microphone-control.is-listening .voice-microphone-button:before{position:absolute;inset:-9px;border:2px solid var(--brand);border-radius:50%;content:"";animation:voice-ring-pulse 1.5s ease-in-out infinite;pointer-events:none}.voice-transcript{width:100%;min-height:8rem;padding:1.25rem;border:1px solid var(--line);border-radius:.85rem;background:var(--soft);color:var(--text);font-size:clamp(1.25rem,6vw,1.75rem);line-height:1.3;text-align:center;resize:vertical}.voice-transcript.is-empty{color:var(--muted);font-size:1rem}.voice-message{margin:.75rem 0 0;text-align:center;font-size:.85rem}.voice-message{color:var(--muted)}.voice-session-items{margin-top:1.25rem}.voice-session-items h3{margin:0 0 .5rem;font-size:.85rem;color:var(--muted)}.voice-session-list{display:grid;max-height:min(19rem,38dvh);gap:.45rem;padding-right:.15rem;overflow-y:auto;overscroll-behavior:contain}.voice-session-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:.65rem;background:var(--soft)}.voice-session-row input{min-width:0;height:40px;padding:.45rem .6rem;border:1px solid var(--line);border-radius:.55rem;background:var(--soft);color:var(--text)}.voice-session-row>.voice-session-name{width:100%;height:44px;border:0;border-radius:0;background:transparent}.voice-session-controls{display:grid;grid-template-columns:minmax(0,1fr) auto 38px 38px;align-items:center;gap:.35rem;padding:.35rem .4rem;border-top:1px solid var(--line)}.voice-session-controls select{min-width:0;height:38px;border:1px solid var(--line);border-radius:.5rem;background:var(--soft);color:var(--text)}.voice-session-row button{display:grid;width:38px;height:38px;place-items:center;padding:0;border:1px solid var(--line);border-radius:.55rem;background:transparent;color:var(--muted)}.voice-session-row .voice-session-maybe{color:var(--muted);font-weight:750}.voice-session-row .voice-session-maybe.is-maybe{border-color:light-dark(#b88a23,#b98f31);color:light-dark(#946400,#ffd45c);background:light-dark(#fff8df,#3a321c)}.voice-quantity-field{display:flex;align-items:center;gap:.2rem;color:var(--muted);font-size:.7rem}.voice-quantity-field input{width:3.6rem;height:38px;padding:.3rem;text-align:center}.voice-entry-actions{display:grid;gap:.65rem;margin-top:auto;padding-top:1.5rem}.voice-entry-actions button{min-height:50px;border-radius:.75rem;font-size:1rem;font-weight:650}.voice-add-button{border:0;background:var(--brand);color:light-dark(#fff,#102016)}.voice-add-button:disabled{opacity:.4}.voice-retry-button{display:flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--line);background:var(--soft);color:var(--text)}.voice-done-button{border:0;background:transparent;color:var(--muted)}.voice-privacy{margin:.75rem auto 0;color:var(--muted);font-size:.7rem;line-height:1.35;text-align:center}.manage-lists-backdrop{position:fixed;z-index:30;inset:0;overflow-y:auto;background:var(--surface)}.manage-lists-screen{display:flex;width:min(100%,36rem);min-height:100dvh;margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));flex-direction:column;background:var(--surface)}.manage-lists-screen>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.manage-lists-screen h2{margin:0;font-size:1.25rem}.manage-lists-screen header p{margin:.25rem 0 0;color:var(--muted);font-size:.82rem}.manage-lists-screen header button{display:grid;width:42px;height:42px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.manage-list-rows{display:grid;gap:.45rem}.manage-list-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px 44px;min-height:56px;align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:.65rem;background:var(--soft)}.manage-list-row.dragging{z-index:2;opacity:.8;box-shadow:0 4px 14px #0003}.manage-list-row button{display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.manage-list-row .manage-list-handle{touch-action:none;cursor:grab}.manage-list-row .manage-list-delete{color:light-dark(#a92c2c,#ff9690)}.manage-list-copy{min-width:0;align-self:center}.manage-list-copy strong,.manage-list-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-list-copy small{margin-top:.1rem;color:var(--muted);font-size:.72rem}.manage-add-list{display:flex;min-height:50px;align-items:center;justify-content:center;gap:.5rem;margin-top:auto;border:0;border-radius:.75rem;background:var(--brand);color:var(--brand-text);font-weight:650}.list-name-form{display:grid;gap:.5rem;padding:.25rem}.list-name-form label{color:var(--muted);font-size:.78rem}.list-name-form input{min-width:0;min-height:42px;padding:.5rem .6rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text)}.list-retailer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .65rem;margin:.35rem 0;border:1px solid var(--line);border-radius:.6rem;padding:.65rem}.list-retailer-fields legend{padding:0 .25rem;color:var(--text);font-size:.78rem;font-weight:700}.list-retailer-fields p{grid-column:1 / -1;color:var(--muted)}.list-retailer-fields label{display:flex;min-height:34px;align-items:center;gap:.4rem;color:var(--text)}.list-retailer-fields input{width:18px;min-height:18px}.list-name-form p{margin:0;color:light-dark(#a92c2c,#ff9690);font-size:.78rem}.action-sheet .list-name-form .list-name-save{justify-content:center;margin-top:.2rem;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:650}.retailer-website-search-form{display:grid;gap:.55rem;padding:.25rem}.retailer-website-search-form label{color:var(--muted);font-size:.78rem}.retailer-website-search-form input{min-width:0;min-height:44px;padding:.55rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);font:inherit}.retailer-website-search-form p{margin:0;color:var(--muted);font-size:.75rem;line-height:1.4}.retailer-website-search-choice{display:grid;grid-template-columns:repeat(2,1fr);gap:.35rem}.action-sheet .retailer-website-search-form .retailer-website-search-choice button{justify-content:center;min-height:40px;margin:0;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--muted)}.action-sheet .retailer-website-search-form .retailer-website-search-choice button[aria-pressed=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);font-weight:700}.action-sheet .retailer-website-search-form .retailer-website-search-submit{justify-content:center;margin-top:.15rem;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:700}.action-sheet .retailer-website-search-form .retailer-website-search-submit:disabled{background:var(--soft);color:var(--muted)}.delete-list-message{margin:.25rem .25rem .75rem;color:var(--muted);line-height:1.4}.action-sheet .confirm-delete-list{justify-content:center;font-weight:650}@keyframes voice-ring-pulse{0%,to{transform:scale(.92);opacity:.35}50%{transform:scale(1.12);opacity:.9}}@media(prefers-reduced-motion:reduce){.voice-microphone-control.is-listening .voice-microphone-button:before{animation:none}}.shop-view-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:28px;padding:0 0 .25rem}.shop-view-toolbar>button{display:flex;align-items:center;gap:.2rem;min-height:28px;padding:0 .35rem;border:0;border-radius:.4rem;background:transparent;color:var(--brand);font-size:.78rem;font-weight:650}.shopping-inbox{display:grid;gap:.35rem;margin-bottom:.55rem;padding:.45rem;border:1px solid color-mix(in srgb,#d59a20 45%,var(--line));border-radius:.65rem;background:color-mix(in srgb,#d59a20 7%,var(--surface))}.shopping-inbox-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.05rem .15rem 0}.shopping-inbox-heading span{display:flex;align-items:center;gap:.35rem}.shopping-inbox-heading svg{color:light-dark(#795200,#efc96f)}.shopping-inbox-heading strong{font-size:.82rem}.shopping-inbox-heading small{padding:.15rem .38rem;border-radius:999px;background:color-mix(in srgb,#d59a20 25%,var(--surface));color:var(--text);font-size:.68rem;font-weight:750}.shopping-inbox>p{margin:0 .15rem .2rem;color:var(--muted);font-size:.69rem}.shopping-inbox-list{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:.5rem;background:var(--surface)}.shopping-inbox-list article{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;gap:.35rem;align-items:center;min-height:48px;padding:.4rem .35rem .4rem .5rem;border-top:1px solid var(--line)}.shopping-inbox-list article:first-child{border-top:0}.shopping-inbox-list article>span,.shopping-inbox-list article strong,.shopping-inbox-list article small{display:block;min-width:0}.shopping-inbox-list article strong{overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.shopping-inbox-list article small{margin-top:.08rem;color:var(--muted);font-size:.68rem}.shopping-inbox-add{min-height:32px;padding:.25rem .55rem;border:1px solid var(--brand);border-radius:999px;background:transparent;color:var(--brand);font-size:.7rem;font-weight:750}.shopping-inbox-dismiss{display:grid;width:32px;min-height:32px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.settings-backdrop{position:fixed;z-index:30;inset:0;overflow-y:auto;background:var(--surface)}.settings-screen{width:min(100%,36rem);min-height:100dvh;margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));background:var(--surface)}.settings-screen>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.settings-screen h2{margin:0;font-size:1.25rem}.settings-screen header p{margin:.25rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.35}.settings-screen header button{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.settings-scope{margin-bottom:1.75rem}.settings-scope-heading{margin-bottom:.8rem}.settings-scope-heading h3{margin:0;font-size:1rem}.settings-scope-heading p{margin:.2rem 0 0;color:var(--muted);font-size:.76rem;line-height:1.4}.settings-subsection+.settings-subsection{margin-top:1.15rem}.settings-subsection h4{margin:0 0 .4rem;color:var(--muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.settings-section{margin-bottom:1.5rem}.settings-section h3{margin:0 0 .4rem;color:var(--muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.ingredient-preferences-note{margin:0 0 .7rem;color:var(--muted);font-size:.76rem;line-height:1.4}.ingredient-preference-group{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:.65rem;align-items:start;padding:.55rem 0;border-top:1px solid var(--line)}.ingredient-preference-group>strong{padding-top:.22rem;font-size:.78rem}.ingredient-preference-chips{display:flex;flex-wrap:wrap;gap:.35rem}.ingredient-preference-chips>span{display:inline-flex;min-height:30px;align-items:center;gap:.18rem;border-radius:999px;padding:0 .25rem 0 .55rem;background:light-dark(#fff3dc,#44351d);color:light-dark(#7c4b00,#ffd18a);font-size:.74rem;font-weight:650}.ingredient-preference-chips>span.restriction{background:light-dark(#ffe8e5,#492522);color:light-dark(#92271f,#ffaaa3)}.ingredient-preference-chips>span.do_not_buy{background:light-dark(#fff0df,#49331e);color:light-dark(#8a4700,#ffc17a)}.ingredient-preference-chips>span.ingredient-preference-empty{padding-right:.55rem;background:var(--soft);color:var(--muted);font-weight:500}.ingredient-preference-chips button{display:grid;width:28px;height:28px;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:currentColor}.ingredient-preference-interpretation{display:grid;gap:.3rem;margin-top:.2rem;padding:.65rem .7rem;border-radius:.55rem;background:var(--soft)}.ingredient-preference-interpretation p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.4}.ingredient-preference-interpretation strong{color:var(--text)}.ingredient-preference-add{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.4rem;padding-top:.65rem;border-top:1px solid var(--line)}.ingredient-preference-add input,.ingredient-preference-add select{min-width:0;min-height:40px;border:1px solid var(--line);border-radius:.5rem;padding:.4rem .55rem;background:var(--surface);color:var(--text);font:inherit;font-size:.78rem}.ingredient-preference-add button{display:flex;min-height:40px;align-items:center;gap:.25rem;border:0;border-radius:.5rem;padding:.4rem .65rem;background:var(--brand);color:var(--brand-text);font-weight:700}.ingredient-preference-add button:disabled{opacity:.55}.ingredient-preference-message{margin:.45rem 0 0;color:light-dark(#92271f,#ffaaa3);font-size:.74rem}@media(max-width:420px){.ingredient-preference-add{grid-template-columns:minmax(0,1fr) auto}.ingredient-preference-add button{grid-column:1 / -1;justify-content:center}}.settings-about p{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0;padding:.75rem 0;color:var(--text)}.settings-about span{color:var(--muted);font-size:.8rem}.settings-update-check,.settings-update-troubleshooting button{min-height:38px;border:1px solid var(--brand);border-radius:.5rem;padding:.4rem .75rem;background:transparent;color:var(--brand);font-weight:700}.settings-update-check:disabled,.settings-update-troubleshooting button:disabled{opacity:.6}.settings-about .settings-update-message{display:block;padding:.5rem 0;color:var(--muted);font-size:.76rem;line-height:1.4}.settings-update-ready{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--brand);border-radius:.65rem;padding:.65rem .75rem;background:color-mix(in srgb,var(--brand) 10%,var(--surface))}.settings-update-ready span{display:grid;gap:.1rem;color:var(--text)}.settings-update-ready small{color:var(--muted);font-size:.72rem}.settings-update-ready button{min-height:38px;flex:0 0 auto;border:0;border-radius:.5rem;padding:.4rem .75rem;background:var(--brand);color:var(--brand-text);font-weight:750}.settings-update-ready button:disabled{opacity:.65}.settings-update-troubleshooting{margin-top:.75rem;border-top:1px solid var(--line);padding-top:.75rem}.settings-update-troubleshooting summary{color:var(--muted);cursor:pointer;font-size:.78rem}.settings-update-troubleshooting p{display:block;padding:.55rem 0;color:var(--muted);font-size:.74rem;line-height:1.4}.settings-sync-status{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.settings-sync-status span{font-weight:700}.settings-sync-status button,.settings-sync-diagnostic button{min-height:34px;border:1px solid var(--brand);border-radius:.5rem;padding:.35rem .7rem;background:transparent;color:var(--brand);font-weight:700}.settings-sync>p{margin:.55rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.4}.settings-sync-diagnostic{margin-top:.7rem}.settings-sync-diagnostic summary{color:var(--muted);cursor:pointer;font-size:.78rem}.settings-sync-diagnostic pre{max-height:11rem;overflow:auto;margin:.55rem 0;border-radius:.5rem;padding:.65rem;background:var(--surface-strong);color:var(--text);font-size:.7rem;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:52px;align-items:center;gap:1rem;border-top:1px solid var(--line)}.setting-row:last-child{border-bottom:1px solid var(--line)}.setting-row select{max-width:min(11rem,50vw);min-height:38px;padding:.35rem .5rem;border:1px solid var(--line);border-radius:.5rem;background:var(--soft);color:var(--text)}.storage-usage-row{display:grid;gap:.35rem;padding:.65rem 0;border-top:1px solid var(--line)}.storage-usage-row>div:first-child{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem}.storage-usage-row strong{color:var(--muted);font-size:.74rem}.storage-usage-meter{height:7px;overflow:hidden;border-radius:999px;background:var(--soft)}.storage-usage-meter span{display:block;height:100%;border-radius:inherit;background:var(--brand)}.storage-usage-row.warning .storage-usage-meter span{background:#c47a00}.storage-usage-row.critical .storage-usage-meter span{background:#bd3028}.storage-usage-mismatch,.storage-usage-note{margin:.55rem 0 0;color:var(--muted);font-size:.74rem;line-height:1.4}.storage-usage-mismatch{color:light-dark(#8a5200,#ffc46b)}.resource-usage-warning{display:flex;width:100%;min-height:42px;align-items:center;gap:.45rem;padding:.45rem .7rem;border:0;border-bottom:1px solid #df9b38;background:light-dark(#fff1d8,#43321a);color:light-dark(#754800,#ffd28e);text-align:left}.resource-usage-warning span{flex:1;font-size:.76rem;line-height:1.3}.resource-usage-warning strong{font-size:.72rem}.resource-usage-warning.critical{border-color:#cf4a42;background:light-dark(#ffebe8,#472523);color:light-dark(#8c241e,#ffaaa3)}.app-update-ready{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .7rem;border-bottom:1px solid var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--text)}.app-update-ready span{display:grid;gap:.08rem;min-width:0}.app-update-ready strong{font-size:.82rem}.app-update-ready small{color:var(--muted);font-size:.7rem}.app-update-ready button{min-height:36px;flex:0 0 auto;border:0;border-radius:.5rem;padding:0 .75rem;background:var(--brand);color:var(--brand-text);font-weight:750}.app-update-ready button:disabled{opacity:.65}.recent-purchases-view{display:grid;gap:.8rem;padding-bottom:1rem}.recent-purchases-error{margin:0;border:1px solid #cf4a42;border-radius:.65rem;padding:.7rem;background:light-dark(#ffebe8,#472523);color:light-dark(#8c241e,#ffaaa3);font-size:.8rem}.shopping-trip-history{display:grid;gap:.45rem}.shopping-trip-history>h2{margin:0;color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.shopping-trip-summary{overflow:hidden;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}.shopping-trip-summary.voided{opacity:.72}.shopping-trip-summary-button{display:grid;width:100%;grid-template-columns:28px minmax(0,1fr) auto 18px;align-items:center;gap:.6rem;border:0;padding:.65rem .7rem;background:transparent;color:var(--text);text-align:left}.shopping-trip-summary-button>svg:first-child{color:var(--brand)}.shopping-trip-summary-button>svg:last-child{transition:transform .15s ease}.shopping-trip-summary-button>svg:last-child.expanded{transform:rotate(180deg)}.shopping-trip-summary-button>span{display:grid;min-width:0;gap:.08rem}.shopping-trip-summary-button>span strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.shopping-trip-summary-button em{border-radius:999px;padding:.1rem .35rem;background:var(--soft);color:var(--muted);font-size:.62rem;font-style:normal;text-transform:uppercase}.shopping-trip-summary small{color:var(--muted);font-size:.68rem}.shopping-trip-summary-button>strong{font-size:.82rem;white-space:nowrap}.shopping-trip-detail{display:grid;border-top:1px solid var(--line)}.shopping-trip-detail>small{padding:.65rem .75rem}.shopping-trip-line{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--line);padding:.45rem .75rem}.shopping-trip-line.unplanned,.trip-purchase-row.unplanned{box-shadow:inset 3px 0 color-mix(in srgb,var(--brand) 80%,transparent)}.shopping-trip-line.receipt-detail,.shopping-trip-line.not-pantry,.trip-purchase-row.not-pantry{background:color-mix(in srgb,var(--surface) 87%,#000)}.shopping-trip-line>span:first-child{display:grid;min-width:0;gap:.08rem}.shopping-trip-line strong{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.shopping-trip-line>span:last-child{font-size:.74rem;white-space:nowrap}.shopping-trip-totals{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem .8rem;padding:.5rem .75rem;color:var(--muted);font-size:.68rem}.purchase-date-group{overflow:hidden;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}.purchase-date-group>h2{margin:0;padding:.55rem .7rem;background:var(--soft);color:var(--text);font-size:.86rem}.purchase-store-group>h3{margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:.4rem .7rem;color:var(--muted);font-size:.72rem;letter-spacing:.03em;text-transform:uppercase}.purchase-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:54px;align-items:center;gap:.55rem;border-bottom:1px solid var(--line);padding:.35rem .55rem}.purchase-history-row:last-child{border-bottom:0}.trip-purchase-row{min-height:50px;padding-block:.3rem}.trip-purchase-row:last-of-type{border-bottom:1px solid var(--line)}.purchase-history-product{display:grid;min-width:0;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.55rem;border:0;padding:0;background:transparent;color:var(--text);text-align:left}.purchase-history-product.linked:focus-visible{border-radius:.4rem;outline:2px solid var(--brand);outline-offset:2px}.trip-purchase-row .purchase-history-product{grid-template-columns:34px minmax(0,1fr)}.trip-purchase-row .purchase-history-image,.trip-purchase-row .purchase-history-image-placeholder{width:34px;height:34px}.trip-purchase-row .purchase-history-name>strong{overflow:visible;font-size:.76rem;line-height:1.2;text-overflow:clip;white-space:normal}.trip-purchase-row .purchase-history-name small{white-space:normal}.purchase-price-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .4rem}.purchase-price-summary s{color:var(--muted)}.purchase-history-name .purchase-price-summary strong{overflow:visible;color:var(--brand);font-size:.74rem;text-overflow:clip;white-space:nowrap}.purchase-price-summary span{color:var(--brand);font-weight:700}.purchase-history-image,.purchase-history-image-placeholder{width:38px;height:38px;border:0;border-radius:.45rem;padding:0;background:var(--soft)}.purchase-history-image{overflow:hidden}.purchase-history-image img{width:100%;height:100%;object-fit:contain}.purchase-history-image .retail-product-image{width:100%;height:100%}.purchase-history-image-placeholder{display:grid;place-items:center;color:var(--muted)}.purchase-history-product.linked .purchase-history-image-placeholder{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 55%,transparent);color:var(--brand)}.purchase-history-name{display:grid;min-width:0;gap:.1rem;padding:0;color:var(--text);text-align:left}.purchase-history-name.linked>strong{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--brand) 55%,transparent);text-underline-offset:.18rem}.purchase-history-name strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.purchase-history-name small{color:var(--muted);font-size:.68rem}.purchase-history-actions{display:flex;align-items:center;gap:.35rem}.purchase-add-again,.purchase-add-return{display:flex;min-height:34px;align-items:center;gap:.25rem;border:1px solid var(--brand);border-radius:.5rem;padding:.3rem .55rem;background:transparent;color:var(--brand);font-size:.72rem;font-weight:700;white-space:nowrap}.purchase-add-return{border-color:var(--line);color:var(--text)}.purchase-add-again:disabled,.purchase-add-return:disabled{opacity:.55}.purchase-on-list{color:var(--muted);font-size:.72rem;font-weight:650;white-space:nowrap}.purchase-load-more{min-height:42px;border:1px solid var(--line);border-radius:.65rem;background:var(--surface);color:var(--brand);font-weight:700}.purchase-load-more:disabled{opacity:.65}@media(max-width:420px){.shopping-trip-summary-button{grid-template-columns:24px minmax(0,1fr) 16px}.shopping-trip-summary-button>strong{grid-column:2}.shopping-trip-summary-button>svg:last-child{grid-column:3;grid-row:1 / span 2}.purchase-history-row{grid-template-columns:minmax(0,1fr);gap:.45rem;padding-inline:.45rem}.purchase-history-product{grid-template-columns:34px minmax(0,1fr);gap:.45rem}.purchase-history-image,.purchase-history-image-placeholder{width:34px;height:34px}.purchase-history-actions{grid-column:1;margin-left:calc(34px + .45rem)}.purchase-add-again,.purchase-add-return{padding-inline:.45rem}}.density-comfortable .section-header,.density-comfortable .weekly-heading{min-height:46px}.density-comfortable .shopping-row,.density-comfortable .aggregate-row{min-height:44px}.density-comfortable .aggregate-row .item-name,.density-comfortable .aggregate-row .row-actions{height:44px}.density-comfortable .editable-meal-row{min-height:56px}.density-comfortable .group-heading{padding-block:.35rem}.density-comfortable .empty-list{padding-block:.7rem}.account-status,.account-button{display:flex;align-items:center;gap:.25rem;min-width:0;min-height:28px;padding:0 .35rem;border:0;background:transparent;color:var(--muted);font-size:.72rem}.account-button>span{max-width:min(12rem,46vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button small{color:var(--brand);font-size:.65rem}.sync-dots{display:inline-flex;width:.8rem}.sync-dots span{opacity:.2;animation:sync-dot 1.2s infinite}.sync-dots span:nth-child(2){animation-delay:.2s}.sync-dots span:nth-child(3){animation-delay:.4s}@keyframes sync-dot{0%,20%{opacity:.2}45%,65%{opacity:1}90%,to{opacity:.2}}@media(prefers-reduced-motion:reduce){.sync-dots span{opacity:1;animation:none}}.local-status{cursor:default}.account-detail{margin:.25rem .2rem .75rem;color:var(--muted);font-size:.85rem}.account-form{display:grid;gap:.5rem;padding:.25rem}.account-form label{color:var(--muted);font-size:.78rem}.account-form input{min-height:42px;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);padding:.5rem .6rem}.action-sheet .account-form .auth-submit{justify-content:center;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:650}.account-form p{margin:.1rem 0;color:var(--muted);font-size:.78rem}.action-sheet .account-form .google-auth{justify-content:center;border:1px solid light-dark(#747775,#8e918f);border-radius:.5rem;background:light-dark(#fff,#131314);color:light-dark(#1f1f1f,#e3e3e3);font-family:Google Sans,Roboto,Arial,sans-serif;font-size:.875rem;font-weight:500}.google-auth img{width:28px;height:28px}.account-form .auth-privacy{line-height:1.35}.account-access-admin{display:grid;gap:.65rem;margin:.35rem 0;padding:.8rem 0;border-block:1px solid var(--line)}.account-access-admin h3,.account-access-admin p{margin:0}.account-access-form{display:grid;gap:.35rem}.account-access-form>div{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:.4rem}.account-access-form input{min-width:0}.account-access-form button,.account-access-row button{display:grid;place-items:center;padding:0}.account-access-list{display:grid;gap:.35rem;max-height:12rem;overflow-y:auto}.account-access-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:.4rem;padding:.45rem .5rem;border:1px solid var(--line);border-radius:.5rem}.account-access-row>span{display:grid;min-width:0}.account-access-row strong{overflow:hidden;font-size:.8rem;text-overflow:ellipsis}.account-access-row small{color:var(--muted);text-transform:capitalize}.account-access-message{color:var(--muted);font-size:.8rem}.auth-divider{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.7rem;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-divider span{white-space:nowrap}.list-section{margin-bottom:.3rem;overflow:hidden;border:1px solid var(--line);border-radius:.55rem;background:var(--surface)}.list-section.adding-item{position:relative;z-index:4;overflow:visible}.section-header{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;min-height:38px}.section-toggle,.icon-button,.weekly-heading{border:0;background:transparent;color:var(--text)}.section-toggle{display:flex;align-items:center;gap:.45rem;min-width:0;padding:.3rem .5rem;text-align:left;font-weight:600}.section-toggle small,.weekly-heading small{margin-left:auto;color:var(--muted);font-size:.78rem;font-weight:400;white-space:nowrap}.collapsed-icon{transform:rotate(-90deg)}.icon-button{display:grid;place-items:center;border-left:1px solid var(--line);color:var(--muted)}.add-button{color:var(--brand)}.section-body{border-top:1px solid var(--line)}.shopping-row{position:relative;display:grid;grid-template-columns:29px minmax(0,1fr) auto 32px 32px;min-height:35px;border-top:1px solid var(--line);background:var(--surface)}.shopping-row:first-child{border-top:0}.completion-toggle{display:grid;width:29px;height:100%;min-height:35px;place-items:center;cursor:pointer;touch-action:manipulation}.completion-toggle>input{width:18px;height:18px;margin:0;accent-color:var(--brand);cursor:pointer}.shopping-row button{border:0;background:transparent;color:var(--muted)}.shopping-row .item-name{display:flex;align-items:center;gap:.2rem;min-width:0;padding:0 .35rem;overflow:hidden;color:var(--text);font-size:.88rem;text-align:left;white-space:nowrap}.shopping-row .drag-handle,.shopping-row .row-actions{display:grid;place-items:center;padding:0}.shopping-row .drag-handle{touch-action:none;cursor:grab}.shopping-row .drag-handle:active{cursor:grabbing}.shopping-row.completed .item-label{color:var(--muted);text-decoration:line-through}.item-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.maybe-indicator{flex:0 0 auto;color:light-dark(#946400,#ffd45c);font-size:.75rem;font-weight:650;line-height:1}.quantity-indicator{flex:0 0 auto;color:var(--muted);font-size:.75rem;font-weight:650}.quantity-indicator.descriptive{max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maybe-heading{color:light-dark(#855900,#ffd45c)}.maybe-action-icon{display:inline-grid;width:17px;place-items:center;color:light-dark(#946400,#ffd45c);font-weight:650}.not-found-heading{color:light-dark(#8a4c16,#ffc078)}.not-found-action-icon{display:inline-grid;width:17px;place-items:center;color:light-dark(#a95717,#ffc078);font-size:1.1rem;font-weight:750}.not-found-indicator{flex:0 0 auto;border-radius:999px;padding:.08rem .3rem;background:light-dark(#fff0df,#49301e);color:light-dark(#8a4c16,#ffc078);font-size:.62rem;font-weight:750;line-height:1.25}.shopping-row.not-found .item-label,.aggregate-row.not-found .item-label{color:var(--muted)}.shopping-row.dragging{z-index:2;opacity:.78;box-shadow:0 3px 12px #0000002e}.shopping-row.recently-added{animation:newly-added-item 1.6s ease-out}@keyframes newly-added-item{0%,45%{background:color-mix(in srgb,var(--brand) 18%,var(--surface))}to{background:var(--surface)}}@media(prefers-reduced-motion:reduce){.shopping-row.recently-added{animation:none;background:color-mix(in srgb,var(--brand) 12%,var(--surface))}}.group-heading{padding:.2rem .5rem;background:var(--soft);color:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.return-heading{color:light-dark(#8a4c16,#ffc078)}.empty-list{padding:.45rem .55rem;color:var(--muted);font-size:.8rem}.expired-meal-plan{display:grid;gap:.35rem;padding:.8rem;text-align:center}.expired-meal-plan strong{color:var(--ink);font-size:.9rem}.expired-meal-plan>div{display:flex;justify-content:center;gap:.5rem;margin-top:.25rem}.expired-meal-plan button{min-height:38px;padding:0 .75rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--ink);font-weight:650}.expired-meal-plan button:first-child{border-color:var(--brand);background:var(--brand);color:#fff}.all-items-view{margin-bottom:.3rem}.aggregate-group{margin-bottom:.3rem;overflow:hidden;border:1px solid var(--line);border-radius:.55rem;background:var(--surface)}.aggregate-list{overflow:hidden}.aggregate-heading{border-bottom:1px solid var(--line)}.aggregate-row{display:grid;grid-template-columns:29px minmax(0,1fr) auto auto 32px;min-height:35px;align-items:center;border-top:1px solid var(--line);background:var(--surface)}.aggregate-row:first-child{border-top:0}.aggregate-row button{border:0;background:transparent;color:var(--muted)}.aggregate-row .item-name{display:flex;align-items:center;gap:.2rem;min-width:0;height:35px;padding:0 .35rem;overflow:hidden;color:var(--text);font-size:.88rem;text-align:left;white-space:nowrap}.aggregate-row .row-actions{display:grid;place-items:center;width:32px;height:35px;padding:0}.aggregate-row.completed .item-label{color:var(--muted);text-decoration:line-through}@media(pointer:coarse){.shopping-row{grid-template-columns:44px minmax(0,1fr) auto 32px 32px;min-height:44px}.aggregate-row{grid-template-columns:44px minmax(0,1fr) auto auto 32px;min-height:44px}.completion-toggle{width:44px;min-height:44px}.aggregate-row .item-name,.aggregate-row .row-actions{height:44px}}.retail-item-badge{align-self:center;min-height:23px;margin:0 .15rem;padding:.1rem .36rem!important;border:1px solid color-mix(in srgb,var(--brand) 40%,var(--line))!important;border-radius:999px;background:color-mix(in srgb,var(--brand) 11%,var(--surface))!important;color:var(--brand)!important;font-size:.62rem;font-weight:800;letter-spacing:.02em;line-height:1;text-transform:uppercase;white-space:nowrap}.retail-item-badge.upcoming{border-color:light-dark(#aa7800,#d1a33f)!important;background:light-dark(#fff6d8,#423619)!important;color:light-dark(#765200,#f6cf71)!important}.retail-item-badge.ended{border-color:var(--line)!important;background:var(--soft)!important;color:var(--muted)!important}.retail-item-badge.uncertain{border-style:dashed!important;color:light-dark(#8a5c00,#ffd177)!important}.retail-item-badge.availability-warning{border-color:light-dark(#c47a00,#e3a447)!important;background:light-dark(#fff2d8,#49351b)!important;color:light-dark(#815000,#ffd28a)!important}.retail-item-badge.discontinued{border-color:light-dark(#b64338,#db7168)!important;background:light-dark(#ffe6e3,#4c2723)!important;color:light-dark(#8f2b23,#ffaaa2)!important}.retail-product-indicator{display:inline-grid;align-self:center;width:24px;height:24px;margin:0 .1rem;place-items:center;color:var(--muted)}.retail-item-badge-spacer{width:0}.store-tag{align-self:center;max-width:7.5rem;padding:.12rem .35rem;overflow:hidden;border-radius:999px;background:var(--soft);color:var(--muted);font-size:.68rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.unassigned-tag{color:light-dark(#7a5512,#f2c66d)}.aggregate-edit{border-top:1px solid var(--line)}.aggregate-edit:first-child{border-top:0}.inline-add{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:.2rem;padding:.25rem;background:var(--soft)}.inline-add input{min-width:0;min-height:38px;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);padding:.4rem .55rem;font-size:1rem}.inline-add>button{display:grid;place-items:center;border:0;border-radius:.45rem;background:transparent;color:var(--muted)}.inline-add>button:first-of-type{background:var(--brand);color:var(--brand-text)}.inline-edit{border-top:1px solid var(--line)}.item-inline-edit{grid-template-columns:4rem minmax(0,1fr) 38px 38px}.item-inline-edit .quantity-input{padding-inline:.2rem;text-align:center}.weekly-header{display:grid;grid-template-columns:minmax(0,1fr) 38px}.weekly-header.with-menu{grid-template-columns:minmax(0,1fr) 38px 38px}.weekly-heading{display:flex;align-items:center;gap:.4rem;width:100%;min-height:38px;padding:.35rem .55rem;text-align:left;font-weight:600}.weekly-header .icon-button{border-left:1px solid var(--line)}.meal-plan-icon{flex:0 0 auto;color:var(--brand)}.shop-planning-panel{margin-bottom:.5rem;border-color:light-dark(#a9cbaa,#507057);border-radius:.75rem;background:light-dark(#edf6ed,#263328)}.shop-planning-panel .weekly-header .icon-button{border-left-color:light-dark(#bdd6bd,#49624e)}.shop-planning-panel .meal-row{border-top-color:light-dark(#c8ddc7,#405746)}.dated-plan-list,.ranked-plan-list{border-top:1px solid light-dark(#c8ddc7,#405746)}.plan-date-row{display:grid;grid-template-columns:3.8rem minmax(0,1fr);min-height:46px;border-top:1px solid light-dark(#c8ddc7,#405746)}.plan-date-row:first-child{border-top:0}.plan-date-badge{display:flex;align-items:center;justify-content:center;flex-direction:column;border-right:1px solid light-dark(#c8ddc7,#405746);color:var(--muted);line-height:1.05}.plan-date-badge span{font-size:.66rem;font-weight:650;text-transform:uppercase}.plan-date-badge strong{margin-top:.18rem;color:var(--text);font-size:.78rem}.plan-date-content{min-width:0}.planned-occurrence{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;width:100%;min-height:46px;align-items:stretch;border-top:1px solid light-dark(#c8ddc7,#405746);background:transparent;color:var(--text)}.empty-plan-date{display:flex;width:100%;min-height:46px;align-items:center;justify-content:space-between;gap:.35rem;padding:.35rem .45rem;border:0;border-top:1px solid light-dark(#c8ddc7,#405746);background:transparent;color:var(--text);text-align:left}.planned-occurrence:first-child,.empty-plan-date:first-child{border-top:0}.planned-occurrence-copy{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.4rem;padding:.35rem .2rem .35rem .5rem;border:0;background:transparent;color:var(--text);text-align:left}.planned-occurrence-copy>span:first-child{min-width:0}.planned-occurrence strong,.planned-occurrence small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planned-occurrence strong{font-size:.85rem}.planned-occurrence small{margin-top:.1rem;color:var(--muted);font-size:.72rem}.plan-entry-date{flex:0 0 auto;color:var(--muted);font-size:.7rem}.plan-drag-handle,.plan-row-actions{display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.plan-drag-handle{touch-action:none;cursor:grab}.planned-occurrence.dragging{position:relative;z-index:2;background:var(--surface);box-shadow:0 3px 12px #0000002e}.dated-plan-list .planned-occurrence.dragging{z-index:auto;background:color-mix(in srgb,var(--brand) 9%,transparent);box-shadow:inset 3px 0 0 var(--brand)}.plan-drag-overlay{display:grid;width:100%;min-height:46px;grid-template-columns:minmax(0,1fr) 34px;align-items:stretch;overflow:hidden;border:1px solid var(--brand);border-radius:.45rem;background:var(--surface);color:var(--text);box-shadow:0 4px 14px #00000040;opacity:.88;pointer-events:none}.plan-drag-overlay-copy{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:.35rem .25rem .35rem .5rem}.plan-drag-overlay-copy strong,.plan-drag-overlay-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-drag-overlay-copy strong{font-size:.85rem}.plan-drag-overlay-copy small{margin-top:.1rem;color:var(--muted);font-size:.72rem}.plan-drag-overlay-grip{display:grid;place-items:center;color:var(--brand)}.planned-occurrence.plan-note strong{color:var(--muted);font-style:italic}.empty-plan-date{justify-content:flex-start;color:var(--muted);font-size:.78rem}.empty-plan-date svg{margin-left:auto}.plan-outside-label{padding:.3rem .5rem;border-top:1px solid light-dark(#c8ddc7,#405746);background:var(--soft);color:var(--muted);font-size:.68rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.unscheduled-plan-date{background:color-mix(in srgb,var(--brand) 5%,transparent)}.unscheduled-date-badge span,.unscheduled-date-badge strong{text-transform:none}.plan-date-drop-active{position:relative;background:color-mix(in srgb,var(--brand) 14%,transparent);box-shadow:inset 0 0 0 2px var(--brand)}.outside-plan-date{background:color-mix(in srgb,var(--soft) 45%,transparent)}.meals-page-section{margin-top:.35rem}.meals-page-section .weekly-heading{cursor:default}.meal-library{margin-top:.65rem}.meal-library-heading{display:flex;min-height:40px;align-items:center;justify-content:space-between;padding:.35rem .55rem;background:var(--soft)}.meal-library-heading small{color:var(--muted);font-size:.75rem}.meal-library-heading>div{display:flex;align-items:center;gap:.55rem}.meal-library-heading button{display:flex;min-height:34px;align-items:center;gap:.3rem;padding:.3rem .55rem;border:1px solid var(--brand);border-radius:.45rem;background:transparent;color:var(--brand);font-weight:700}.meal-library-row{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .55rem;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left}.meal-library-copy{display:flex;min-width:0;flex:1;align-items:center;justify-content:space-between;gap:.5rem;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.meal-library-copy>span{min-width:0}.meal-library-copy strong,.meal-library-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-library-copy small{margin-top:.1rem;color:var(--muted);font-size:.72rem}.meal-library-copy>svg{flex:0 0 auto;color:var(--brand)}.meal-library-edit{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border:0;border-radius:.4rem;background:transparent;color:var(--muted)}.meal-library-row>span{min-width:0}.meal-library-row strong,.meal-library-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-library-row small{margin-top:.1rem;color:var(--muted);font-size:.72rem}.meal-library-row>svg{flex:0 0 auto;color:var(--brand)}.meal-row{padding:.38rem .55rem;border-top:1px solid var(--line)}.meal-row strong,.meal-row small{display:block}.meal-row strong{font-size:.88rem}.meal-row small{margin-top:.05rem;color:var(--muted);font-size:.75rem}.editable-meal-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;min-height:48px;padding:0;align-items:stretch}.editable-meal-row .meal-copy{min-width:0;padding:.38rem .55rem;border:0;background:transparent;color:var(--text);text-align:left}.editable-meal-row .meal-copy strong,.editable-meal-row .meal-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editable-meal-row .drag-handle,.editable-meal-row .row-actions{display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.editable-meal-row .drag-handle{touch-action:none;cursor:grab}.meal-form{display:grid;gap:.45rem;padding:.2rem .15rem .35rem}.meal-form label{color:var(--muted);font-size:.78rem}.meal-form label span{font-weight:400}.meal-form input,.meal-form select{min-height:42px;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);padding:.5rem .6rem;font-size:1rem}.action-sheet .meal-form .meal-save{justify-content:center;margin-top:.2rem;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:650}.plan-meal-picker{width:100%;min-width:0;max-height:calc(100dvh - 7.5rem - env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.plan-meal-picker>*,.plan-meal-picker form{min-width:0}.plan-meal-picker input,.plan-meal-picker select{width:100%;min-width:0}.action-sheet .meal-form .plan-meal-action{display:grid;min-height:48px;place-items:center;padding:.65rem .75rem;overflow:visible;line-height:1.2;text-align:center}.action-sheet .meal-form .plan-meal-action>span{display:block;color:inherit;line-height:inherit;-webkit-text-fill-color:currentColor}.plan-meal-choice-heading{display:grid;gap:.1rem;margin-top:.25rem;padding-top:.45rem;border-top:1px solid var(--line)}.plan-meal-choice-heading:first-child{margin-top:0;padding-top:0;border-top:0}.plan-meal-choice-heading small{color:var(--muted);font-size:.75rem;line-height:1.35}.action-sheet .meal-form .plan-build-meal{justify-content:center;border:1px solid var(--brand);border-radius:.5rem;color:var(--brand);font-weight:700}.dialog-scrim{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:#00000073}.action-sheet{width:min(100%,720px);padding:.75rem;border-radius:1rem 1rem 0 0;background:var(--surface)}.action-sheet h2{margin:0 .25rem .5rem;font-size:1rem}.action-sheet button{display:flex;align-items:center;gap:.55rem;width:100%;min-height:48px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left}.action-sheet button strong{margin-left:auto;color:var(--brand)}.action-sheet>button:last-child{justify-content:center;margin-top:.25rem;border:0;border-radius:.5rem;background:var(--soft);text-align:center}.action-sheet button:disabled{color:var(--muted);cursor:default}.action-sheet .danger-action{color:light-dark(#a92c2c,#ff9690)}.action-sheet .quantity-action{display:grid;grid-template-columns:minmax(0,1fr) 48px 2.5rem 48px;min-height:52px;align-items:center;border-top:1px solid var(--line)}.action-sheet .quantity-action>button{display:grid;width:42px;min-height:42px;margin:0;place-items:center;padding:0;border:1px solid var(--line);border-radius:.5rem;background:transparent;font-size:1.25rem;text-align:center}.action-sheet .quantity-action>strong{text-align:center}.action-sheet .quantity-action.descriptive-quantity{grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.shopping-item-sources{display:grid;gap:.18rem;padding:.55rem 0;border-top:1px solid var(--line)}.shopping-item-sources small{color:var(--muted)}.meal-shopping-review-action{display:grid;justify-items:center;padding:.55rem}.meal-shopping-review-action small{color:var(--muted);font-size:.72rem}.meal-shopping-review-button{display:flex;width:100%;min-height:42px;align-items:center;justify-content:center;gap:.4rem;margin:0 0 .2rem;border:1px solid var(--brand);border-radius:.55rem;background:transparent;color:var(--brand);font-weight:700}.meal-shopping-review-button:disabled{border-color:var(--line);color:var(--muted)}.placeholder-view{padding:1rem .5rem}.placeholder-view h1{margin:0;font-size:1.1rem}.placeholder-view p{color:var(--muted)}.products-screen{padding:.6rem 0 1rem}.retailer-filter{display:grid;grid-template-columns:1fr 1fr;margin:0 0 .75rem;padding:.2rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface)}.retailer-filter button{min-height:38px;border:0;border-radius:.48rem;background:transparent;color:var(--muted);font-size:.78rem;font-weight:700}.retail-picker .retailer-filter button:first-child:nth-last-child(5){grid-column:1 / -1}.retailer-filter button[aria-selected=true]{background:var(--soft);color:var(--brand)}.products-area-filter{display:grid;grid-template-columns:1fr 1fr;margin:0 0 .7rem;overflow:hidden;border-bottom:1px solid var(--line)}.products-area-filter button{min-height:40px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-size:.78rem;font-weight:700}.products-area-filter button[aria-selected=true]{border-bottom-color:var(--brand);color:var(--brand)}.products-area-filter button span{display:inline-grid;min-width:1.25rem;height:1.25rem;margin-left:.2rem;place-items:center;border-radius:999px;background:var(--soft);font-size:.65rem}.products-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.25rem .15rem .65rem}.products-intro h1{margin:.12rem 0 .2rem;font-size:1.35rem}.products-intro p{max-width:31rem;margin:0;color:var(--muted);font-size:.78rem;line-height:1.35}.products-eyebrow{color:var(--brand);font-size:.7rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase}.products-intro-actions{position:relative;display:flex;flex:0 0 auto;align-items:center;gap:.2rem}.products-progress{display:inline-flex;width:7.6rem;min-height:28px;flex:0 0 auto;align-items:center;justify-content:center;overflow:hidden;padding:.25rem .42rem;border:0;border-radius:999px;background:var(--soft);color:var(--muted);font-size:.68rem;font-weight:650;line-height:1;white-space:nowrap}.products-progress-error{color:light-dark(#8b5600,#ffd08a)}.products-menu-button{display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:.45rem;background:transparent;color:var(--muted)}.products-menu-button:hover,.products-menu-button[aria-expanded=true]{background:var(--soft);color:var(--text)}.products-menu{position:absolute;z-index:12;top:2.35rem;right:0;min-width:13rem;padding:.25rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);box-shadow:0 5px 16px #00000038}.products-menu button{width:100%;min-height:40px;padding:.4rem .55rem;border:0;border-radius:.4rem;background:transparent;color:var(--text);text-align:left;font-size:.78rem}.products-menu button:hover{background:var(--soft)}.products-load-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .65rem;padding:.65rem .7rem;border:1px solid light-dark(#d49b42,#8a622e);border-radius:.6rem;background:light-dark(#fff7e8,#342b1d)}.products-load-error div{display:grid;gap:.12rem}.products-load-error strong{font-size:.78rem}.products-load-error span{color:var(--muted);font-size:.72rem;line-height:1.35}.products-load-error button{min-height:36px;flex:0 0 auto;padding:0 .7rem;border:1px solid var(--brand);border-radius:.5rem;background:transparent;color:var(--brand);font-size:.74rem;font-weight:700}.products-filter{display:grid;grid-template-columns:1fr 1fr;margin-bottom:.6rem;overflow:hidden;border:1px solid var(--line);border-radius:.6rem;background:var(--surface)}.products-filter button{min-height:40px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);font-size:.8rem;font-weight:650}.products-filter button:first-child{border-left:0}.products-filter button[aria-selected=true]{background:var(--soft);color:var(--brand)}.products-filter button span{display:inline-grid;min-width:1.35rem;height:1.35rem;margin-left:.25rem;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,transparent);font-size:.68rem}.products-reviewed-sort{display:flex;min-height:36px;align-items:center;justify-content:flex-end;gap:.4rem;margin:0 0 .45rem;color:var(--muted);font-size:.72rem;font-weight:700}.products-reviewed-sort select{min-height:36px;max-width:min(15rem,72vw);padding:0 1.8rem 0 .55rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);font:inherit;font-weight:600}.products-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:42px;align-items:center;gap:.45rem;margin:0 0 .6rem;padding:0 .65rem;border:1px solid var(--line);border-radius:.6rem;background:var(--surface);color:var(--muted)}.products-search:focus-within{border-color:color-mix(in srgb,var(--brand) 65%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 12%,transparent)}.products-search input{min-width:0;height:40px;padding:0;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:.8rem}.products-search input::-webkit-search-cancel-button{display:none}.products-search input::placeholder{color:var(--muted)}.products-search button{display:grid;width:32px;height:32px;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted)}.products-search button:hover{background:var(--soft);color:var(--text)}.deal-grid{display:grid;gap:.65rem}.deal-grid.compact-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.compact-review-grid .deal-card{display:flex;min-width:0;flex-direction:column}.compact-review-grid .deal-image-link{aspect-ratio:3 / 2}.compact-review-grid .deal-card-copy{flex:1;padding:.48rem .5rem .42rem}.compact-review-grid .deal-card-meta{min-height:20px}.compact-review-grid .deal-category{font-size:.6rem}.compact-review-grid .ingredient-status-icon{width:24px;height:24px}.compact-review-grid .deal-card h2{margin:.12rem 0 .28rem;font-size:.86rem;line-height:1.22}.compact-review-grid .deal-known-preference{font-size:.59rem}.compact-review-grid .deal-disliked-warning{padding:.35rem .4rem;font-size:.65rem}.compact-review-grid .deal-badges{gap:.18rem;margin-bottom:.32rem}.compact-review-grid .deal-badges span{padding:.17rem .28rem;font-size:.59rem}.compact-review-grid .deal-price{flex-wrap:wrap;gap:.18rem}.compact-review-grid .deal-price strong{font-size:.88rem}.compact-review-grid .deal-price span{font-size:.65rem}.compact-review-grid .deal-list-action{padding:0 .5rem .48rem}.compact-review-grid .deal-list-action button{min-height:40px;padding:.25rem;font-size:.68rem}.compact-review-grid .deal-list-action svg{width:15px;height:15px}.compact-review-grid .deal-review-actions button{min-width:0;min-height:46px;gap:.2rem;padding:.3rem .12rem;font-size:.62rem;line-height:1.15}.compact-review-grid .deal-review-actions svg{width:14px;height:14px;flex:0 0 auto}.compact-review-grid .deal-review-actions .deal-skip:last-child{grid-column:1 / -1}.products-loading-status{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;margin:0 0 .6rem;padding:.7rem .75rem;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:.65rem;background:color-mix(in srgb,var(--brand) 6%,var(--surface));color:var(--brand)}.products-loading-status div{min-width:0}.products-loading-status strong,.products-loading-status span{display:block}.products-loading-status strong{font-size:.78rem}.products-loading-status span{margin-top:.08rem;color:var(--muted);font-size:.7rem;line-height:1.35}.products-loading-skeletons{display:grid;gap:.65rem}.products-loading-skeletons.compact-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.product-loading-skeleton{overflow:hidden;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}.product-loading-skeleton-image{aspect-ratio:16 / 11;border-bottom:1px solid var(--line);background:var(--soft)}.product-loading-skeleton-copy{display:grid;gap:.45rem;padding:.7rem}.product-loading-skeleton-copy span,.product-loading-skeleton-copy strong{display:block;height:.7rem;border-radius:999px;background:var(--soft);animation:product-loading-pulse 1.4s ease-in-out infinite alternate}.product-loading-skeleton-copy span:first-child{width:35%;height:.5rem}.product-loading-skeleton-copy strong{width:78%;height:.85rem}.product-loading-skeleton-copy span:last-child{width:52%}@keyframes product-loading-pulse{to{opacity:.48}}@media(prefers-reduced-motion:reduce){.product-loading-skeleton-copy span,.product-loading-skeleton-copy strong{animation:none}}.deal-card{overflow:hidden;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}.deal-image-link{position:relative;display:grid;width:100%;aspect-ratio:16 / 11;place-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:#fff}.deal-image-link>.deal-image-button{width:100%;height:100%;padding:0;border:0;background:transparent}.deal-image-link img{width:100%;height:100%;object-fit:contain}.deal-image-link .retail-product-image{width:100%;height:100%}.deal-scroll-reviewed{position:absolute;top:.4rem;right:.4rem;display:flex;overflow:hidden;align-items:stretch;border-radius:999px;background:#356b3bf0;color:#fff;box-shadow:0 2px 8px #0003;font-size:.6rem;font-weight:750;animation:deal-reviewed-arrive .42s cubic-bezier(.2,.9,.25,1.25)}.deal-scroll-reviewed span{display:flex;align-items:center;gap:.18rem;padding:.25rem .38rem;text-transform:uppercase}.deal-scroll-reviewed button{min-width:0;height:auto;padding:.2rem .4rem;border:0;border-left:1px solid rgb(255 255 255 / .32);background:#0000001f;color:#fff;font:inherit;text-transform:none}.deal-scroll-reviewed button:hover{background:#0000003d}@keyframes deal-reviewed-arrive{0%{opacity:0;transform:translateY(-5px) scale(.82)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.deal-scroll-reviewed{animation:none}}.deal-image-link>a{position:absolute;right:.45rem;bottom:.45rem;display:grid;width:30px;height:30px;place-items:center;border-radius:999px;background:#ffffffeb;color:#405044;box-shadow:0 1px 5px #0000002e}.deal-card-copy{padding:.6rem .65rem .5rem}.deal-card-meta{display:flex;min-height:24px;align-items:center;justify-content:space-between;gap:.45rem}.deal-category{color:var(--muted);font-size:.67rem;font-weight:650;letter-spacing:.025em;text-transform:uppercase}.ingredient-status-icon{display:inline-grid;width:28px;height:28px;flex:0 0 auto;place-items:center;padding:0;border:0;border-radius:999px;background:transparent}button.ingredient-status-icon{cursor:pointer}.ingredient-status-icon.block{color:light-dark(#a72820,#ff9c95)}.ingredient-status-icon.caution{color:light-dark(#946000,#ffd078)}.ingredient-status-icon.pass{color:var(--brand)}.deal-card h2{margin:.18rem 0 .3rem;font-size:1rem;line-height:1.2}.deal-card h2 button{padding:0;border:0;background:transparent;color:var(--text);font:inherit;font-weight:700;text-align:left}.deal-known-preference{display:inline-block;margin:0 0 .4rem;padding:.2rem .38rem;border-radius:999px;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand);font-size:.65rem;font-weight:750}.deal-known-preference.disliked{background:light-dark(#ffe4e1,#502623);color:light-dark(#9d251d,#ffaaa2)}.deal-disliked-warning{display:grid;gap:.12rem;margin:0 0 .45rem;padding:.42rem .5rem;border-left:3px solid light-dark(#b52f25,#ff8f86);border-radius:.3rem;background:light-dark(#fff0ee,#3d2421);color:light-dark(#85231d,#ffb5ae);font-size:.72rem}.deal-disliked-warning span{color:var(--text);line-height:1.3}.deal-badges{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 .4rem}.deal-badges span{padding:.2rem .35rem;border-radius:.3rem;background:color-mix(in srgb,var(--brand) 13%,transparent);color:var(--brand);font-size:.65rem;font-weight:750;text-transform:uppercase}.deal-badges span.urgent{background:#fff0d8;color:#8a4c00}.deal-badges span.limited{background:light-dark(#fff0d8,#503918);color:light-dark(#8a4c00,#ffd08a)}.deal-badges span.ended{background:var(--soft);color:var(--muted)}.deal-price{display:flex;align-items:baseline;gap:.25rem}.deal-price strong{color:var(--brand);font-size:1rem}.deal-price span{color:var(--muted);font-size:.74rem}.deal-details{display:grid;gap:.22rem;margin:.5rem 0 0;font-size:.7rem}.deal-details div{display:grid;grid-template-columns:3.5rem 1fr;gap:.35rem}.deal-details dt{color:var(--muted)}.deal-details dd{margin:0;color:var(--text)}.deal-list-action{padding:0 .65rem .55rem}.deal-list-action button{display:flex;width:100%;min-height:42px;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--brand);border-radius:.55rem;background:transparent;color:var(--brand);font-size:.78rem;font-weight:700}.deal-list-action button:disabled{border-color:var(--line);background:var(--soft);color:var(--muted);cursor:default}.deal-review-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.deal-review-actions button{display:flex;min-height:46px;align-items:center;justify-content:center;gap:.32rem;padding:.35rem;border:0;border-left:1px solid var(--line);background:transparent;color:var(--text);font-size:.73rem;font-weight:650}.deal-review-actions button:first-child{border-left:0;color:var(--brand)}.deal-review-actions button:nth-child(n+3){border-top:1px solid var(--line)}.deal-review-actions button:nth-child(odd){border-left:0}.deal-review-actions button[aria-pressed=true]{background:color-mix(in srgb,var(--brand) 15%,transparent);color:var(--brand);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand) 70%,transparent)}.deal-review-actions .deal-no-decision{color:var(--muted)}.deal-review-actions .deal-skip{color:var(--muted);font-weight:550}.products-bulk-review{display:grid;justify-items:center;gap:.3rem;margin-top:.8rem;padding:.8rem;border:1px dashed var(--line);border-radius:.7rem}.products-bulk-review button{min-height:42px;padding:0 .8rem;border:1px solid var(--brand);border-radius:.55rem;background:transparent;color:var(--brand);font-weight:700}.products-bulk-review button:disabled{opacity:.65;cursor:wait}.products-bulk-review span{color:var(--muted);font-size:.72rem}.deal-reviewed-state{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .65rem;border-top:1px solid var(--line)}.deal-verdict{padding:.25rem .42rem;border-radius:999px;background:var(--soft);color:var(--muted);font-size:.7rem;font-weight:700;text-transform:capitalize}.deal-verdict.maybe_interested,.deal-verdict.interested,.deal-verdict.favorite,.deal-verdict.liked,.deal-verdict.regular_buy{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand)}.deal-reviewed-state button{display:flex;align-items:center;gap:.28rem;min-height:36px;border:0;background:transparent;color:var(--muted);font-size:.72rem}.products-empty{padding:2rem .8rem;border:1px dashed var(--line);border-radius:.7rem;color:var(--muted);text-align:center}.products-empty strong{color:var(--text)}.products-empty p{margin:.3rem 0 .7rem;font-size:.8rem}.products-empty button{min-height:38px;padding:0 .7rem;border:1px solid var(--brand);border-radius:.5rem;background:transparent;color:var(--brand);font-weight:650}.products-hidden-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem;padding:.6rem .7rem;border-radius:.6rem;background:var(--soft)}.products-hidden-heading div{display:grid;gap:.12rem}.products-hidden-heading span{color:var(--muted);font-size:.72rem}.products-hidden-heading button{min-height:36px;border:0;background:transparent;color:var(--brand);font-size:.74rem;font-weight:700}.saved-products-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;margin:.15rem .15rem .65rem}.saved-products-heading h1{margin:0 0 .15rem;font-size:1.25rem}.saved-products-heading p{margin:0;color:var(--muted);font-size:.76rem}.saved-products-heading label{display:grid;flex:0 0 auto;gap:.15rem;color:var(--muted);font-size:.65rem;font-weight:700;text-transform:uppercase}.saved-products-heading select{min-height:36px;padding:0 1.8rem 0 .5rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit;font-size:.75rem;text-transform:none}.saved-products-filters{display:flex;gap:.35rem;margin:0 0 .65rem;overflow-x:auto;scrollbar-width:none}.saved-products-filters::-webkit-scrollbar{display:none}.saved-products-filters button{min-height:34px;flex:0 0 auto;padding:0 .62rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.72rem;font-weight:650}.saved-products-filters button[aria-pressed=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand)}.saved-product-disliked-image-mark{position:absolute;z-index:1;inset:8%;width:84%;height:84%;pointer-events:none;color:light-dark(#b52323,#ff625a);filter:drop-shadow(0 1px 2px rgb(0 0 0 / .28));opacity:.42;stroke-width:2.4}.saved-product-card .deal-image-link>a{z-index:2}.saved-product-badges{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 .4rem}.saved-product-badges span{padding:.2rem .38rem;border-radius:999px;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand);font-size:.65rem;font-weight:700}.saved-product-badges span.disliked,.saved-product-badges span.skipped{background:light-dark(#ffe4e1,#502623);color:light-dark(#9d251d,#ffaaa2)}.saved-product-purchase{margin:.4rem 0 0;color:var(--muted);font-size:.7rem}.product-detail-screen{min-height:calc(100vh - 79px);padding-bottom:66px;background:var(--surface)}.product-detail-header{position:sticky;z-index:8;top:42px;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;min-height:46px;align-items:center;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.product-detail-header button,.product-detail-header a{display:grid;width:42px;height:42px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.product-detail-header .product-detail-back{color:var(--brand)}.product-detail-header .product-detail-back:hover,.product-detail-header .product-detail-back:focus-visible{border-radius:999px;background:var(--soft)}.product-detail-header span{overflow:hidden;font-size:.78rem;font-weight:750;text-align:center;text-overflow:ellipsis;white-space:nowrap}.product-detail-image{position:relative;display:grid;min-height:19rem;max-height:72vh;place-items:center;padding:.7rem;border-bottom:1px solid var(--line);background:#fff}.product-detail-image>a{position:relative;display:grid;width:100%;max-height:68vh;place-items:center;color:inherit}.product-detail-image img{display:block;width:100%;height:auto;max-height:68vh;object-fit:contain}.product-detail-image .retail-product-image{width:100%;max-height:68vh}.product-detail-image-link{position:absolute;right:.15rem;bottom:.15rem;display:grid;width:36px;height:36px;place-items:center;border:1px solid rgb(255 255 255 / .7);border-radius:999px;background:#141914b8;color:#fff;box-shadow:0 2px 9px #00000038;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.product-detail-copy{padding:.85rem .75rem 1.2rem}.product-detail-copy h1{margin:.2rem 0 .15rem;font-size:1.45rem;line-height:1.18}.product-detail-size{margin:0 0 .7rem;color:var(--muted);font-size:.82rem}.product-detail-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem;margin:.65rem 0}.product-detail-price strong{color:var(--brand);font-size:1.3rem}.product-detail-price span{color:var(--muted);font-size:.82rem;font-weight:650}.product-detail-limited-status{display:grid;gap:.16rem;margin:.65rem 0;padding:.55rem .65rem;border-left:3px solid light-dark(#c56f00,#ffbd5c);border-radius:.35rem;background:light-dark(#fff7e8,#3d301d)}.product-detail-limited-status strong{color:light-dark(#8a4c00,#ffd08a);font-size:.78rem;text-transform:uppercase}.product-detail-limited-status span{color:var(--text);font-size:.78rem;line-height:1.35}.product-detail-availability-warning{display:grid;gap:.16rem;margin:.65rem 0;padding:.65rem .7rem;border-left:4px solid light-dark(#c47a00,#e3a447);border-radius:.4rem;background:light-dark(#fff2d8,#49351b)}.product-detail-availability-warning.discontinued{border-left-color:light-dark(#b64338,#db7168);background:light-dark(#ffe6e3,#4c2723)}.product-detail-availability-warning strong{color:light-dark(#815000,#ffd28a);font-size:.8rem;text-transform:uppercase}.product-detail-availability-warning.discontinued strong{color:light-dark(#8f2b23,#ffaaa2)}.product-detail-availability-warning span{font-size:.8rem;line-height:1.4}.product-detail-section{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.product-detail-section h2{margin:0 0 .45rem;font-size:.95rem}.ingredient-detail h2{display:flex;align-items:center;gap:.3rem}.ingredient-detail h2 .ingredient-status-icon{width:auto;height:auto}.ingredient-detail-summary{display:block;margin-bottom:.5rem;color:var(--brand);font-size:.84rem}.ingredient-detail.block .ingredient-detail-summary{color:light-dark(#a72820,#ff9c95)}.ingredient-detail.caution .ingredient-detail-summary{color:light-dark(#946000,#ffd078)}.ingredient-evidence{margin-top:.55rem;border-left:3px solid currentColor;border-radius:.3rem;padding:.45rem .55rem;background:var(--soft);color:var(--muted)}.ingredient-detail.block .ingredient-evidence{color:light-dark(#a72820,#ff9c95)}.ingredient-detail.caution .ingredient-evidence{color:light-dark(#946000,#ffd078)}.ingredient-evidence span{font-size:.7rem;font-weight:750;text-transform:uppercase}.ingredient-evidence p{margin-top:.2rem;color:var(--text)}.ingredient-full-list{margin-top:.55rem;color:var(--muted);font-size:.78rem}.ingredient-full-list p{margin-top:.35rem;color:var(--text)}.ingredient-source{display:inline-flex;align-items:center;gap:.25rem;margin-top:.6rem;color:var(--brand);font-size:.76rem;font-weight:700;text-decoration:none}.ingredient-detail>small{display:block;margin-top:.35rem;color:var(--muted);font-size:.68rem}.product-detail-section p{margin:0;font-size:.85rem;line-height:1.5}.product-description-collapsed{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5}.product-description-toggle{margin-top:.35rem;padding:.2rem 0;border:0;background:transparent;color:var(--brand);font-size:.78rem;font-weight:700}.product-detail-facts{display:grid;gap:.45rem;margin:0;font-size:.82rem}.product-detail-facts div{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:.6rem}.product-detail-facts dt{color:var(--muted)}.product-detail-facts dd{margin:0}.product-detail-disclaimer{margin-top:.7rem!important;color:var(--muted);font-size:.74rem!important}.product-detail-section textarea{width:100%;resize:vertical;padding:.55rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);line-height:1.4}.product-shopping-name>p{margin-bottom:.55rem;color:var(--muted)}.product-shopping-name>input{width:100%;min-height:42px;padding:.5rem .6rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text)}.product-shopping-name>div{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.5rem}.product-shopping-name>div button{min-height:38px;padding:.35rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:transparent;color:var(--text);font-weight:700}.product-shopping-name>div button:last-child{border-color:var(--brand);color:var(--brand)}.product-shopping-name>div button:disabled{opacity:.55}.product-shopping-name .product-shopping-name-status{min-height:1rem;margin:.35rem 0 0;font-size:.72rem}.product-shopping-name-status.saved{color:var(--brand)}.product-shopping-name-status.error{color:light-dark(#a92c2c,#ff9690)}.product-availability-setting>p{margin-bottom:.55rem;color:var(--muted)}.product-availability-setting>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.product-availability-setting>div button{display:flex;min-height:42px;align-items:center;justify-content:center;gap:.25rem;padding:.35rem;border:1px solid var(--line);border-radius:.5rem;background:transparent;color:var(--text);font-size:.73rem}.product-availability-setting>div button[aria-pressed=true]{border-color:light-dark(#c47a00,#e3a447);background:light-dark(#fff2d8,#49351b);color:light-dark(#815000,#ffd28a);font-weight:750}.product-availability-setting>div button:last-child[aria-pressed=true]{border-color:light-dark(#b64338,#db7168);background:light-dark(#ffe6e3,#4c2723);color:light-dark(#8f2b23,#ffaaa2)}.product-availability-setting>div button:disabled{opacity:.6}.product-availability-status{min-height:1rem;margin:.35rem 0 0!important;font-size:.72rem!important}.product-availability-status.saved{color:var(--brand)}.product-availability-status.error{color:light-dark(#a92c2c,#ff9690)}.product-save-management>p,.product-remove-confirmation>p{margin-bottom:.65rem;color:var(--muted)}.product-remove-saved,.product-remove-confirmation button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:.35rem;padding:.4rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:transparent;color:var(--text);font-weight:700}.product-remove-confirmation{padding:.7rem;border:1px solid light-dark(#d6aaa2,#825349);border-radius:.55rem;background:color-mix(in srgb,light-dark(#fff1ef,#502623) 55%,var(--surface))}.product-remove-confirmation>div{display:flex;justify-content:flex-end;gap:.45rem}.product-remove-confirmation .danger-action{border-color:light-dark(#d6aaa2,#825349);color:light-dark(#a92c2c,#ff9690)}.product-remove-confirmation button:disabled{opacity:.6}.product-remove-confirmation .product-remove-error{margin:.55rem 0 0;color:light-dark(#a92c2c,#ff9690)}.product-note-save-status{min-height:1rem;margin:.25rem 0 0!important;color:var(--muted);font-size:.7rem!important}.product-note-save-status.saved{color:var(--brand)}.product-note-save-status.error{color:light-dark(#9d251d,#ffaaa2)}.product-detail-memory-groups{display:grid;gap:.8rem}.product-detail-memory-group h3{margin:0 0 .35rem;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.035em;text-transform:uppercase}.product-detail-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.product-detail-review-actions button{display:flex;min-height:40px;align-items:center;justify-content:center;gap:.3rem;padding:.35rem .45rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--text);font-size:.74rem}.product-detail-review-actions button[aria-pressed=true],.product-detail-regular-buy[aria-pressed=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 16%,var(--surface));color:var(--brand);font-weight:750}.product-detail-regular-buy{display:flex;width:100%;min-height:40px;align-items:center;justify-content:center;gap:.3rem;padding:.35rem .45rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--text);font-size:.74rem}.product-detail-review-status{margin:.55rem 0 0;color:var(--brand);font-size:.75rem;font-weight:650}.product-detail-source{display:inline-flex;align-items:center;gap:.3rem;margin-top:1rem;color:var(--brand);font-size:.8rem;font-weight:700;text-decoration:none}.product-detail-footer{position:fixed;z-index:9;right:max(.45rem,calc((100vw - 720px)/2 + .45rem));bottom:0;left:max(.45rem,calc((100vw - 720px)/2 + .45rem));padding:.55rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.product-detail-footer button{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;gap:.4rem;border:0;border-radius:.55rem;background:var(--brand);color:var(--brand-text);font-weight:750}.product-detail-footer button:disabled{background:var(--soft);color:var(--muted)}.retail-picker-backdrop{position:fixed;z-index:45;inset:0;overflow-y:auto;background:var(--surface)}.retail-picker{width:min(100%,44rem);min-height:100dvh;margin:0 auto;padding:max(.65rem,env(safe-area-inset-top)) .7rem max(1rem,env(safe-area-inset-bottom))}.retail-picker>header{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:.4rem;margin-bottom:.75rem}.retail-picker>header button{display:grid;width:42px;height:42px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.retail-picker>header h2{margin:.15rem 0 .12rem;font-size:1.2rem}.retail-picker>header p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.35}.retail-picker-search{position:sticky;z-index:2;top:0}.retail-picker-summary{margin:-.15rem .15rem .45rem;color:var(--muted);font-size:.7rem}.retail-picker-results{display:grid;gap:.45rem}.retail-picker-product{display:grid;grid-template-columns:64px minmax(0,1fr) 36px;gap:.55rem;align-items:center;padding:.45rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface)}.retail-picker-product img{grid-row:1 / 3;width:64px;height:64px;object-fit:contain;border-radius:.4rem;background:#fff}.retail-picker-product .retail-product-image{grid-row:1 / 3;width:64px;height:64px;border-radius:.4rem}.retail-picker-product div{min-width:0}.retail-picker-product strong,.retail-picker-product span,.retail-picker-product small{display:block}.retail-picker-product strong{font-size:.84rem;line-height:1.25}.retail-picker-product span,.retail-picker-product small{margin-top:.12rem;color:var(--muted);font-size:.68rem}.retail-picker-product a{display:grid;width:34px;height:34px;place-items:center;color:var(--muted)}.retail-picker-product>button{grid-column:2 / 4;display:flex;min-height:36px;align-items:center;justify-content:center;gap:.3rem;border:1px solid var(--brand);border-radius:.45rem;background:transparent;color:var(--brand);font-size:.75rem;font-weight:700}@media(min-width:600px){.deal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.recipe-library,.recipe-detail,.recipe-editor{margin-bottom:.5rem}.recipe-library{overflow:hidden;border:1px solid var(--line);border-radius:.65rem;background:var(--surface)}.recipe-library-heading,.recipe-detail-toolbar,.recipe-editor-toolbar{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:.35rem;padding:.35rem .55rem;background:var(--soft)}.recipe-library-heading button,.recipe-detail-toolbar button,.recipe-editor-toolbar button,.recipe-add-row{display:flex;min-height:34px;align-items:center;gap:.3rem;padding:0 .45rem;border:0;border-radius:.4rem;background:transparent;color:var(--brand);font-weight:650}.recipe-library-card{display:grid;width:100%;border-top:1px solid var(--line);background:transparent}.recipe-card-open{display:grid;grid-template-columns:88px minmax(0,1fr);width:100%;min-height:104px;align-items:center;gap:.7rem;padding:.5rem .6rem;border:0;background:transparent;color:var(--text);text-align:left}.recipe-inbox{margin:.55rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--brand) 50%,var(--line));border-radius:.65rem;background:color-mix(in srgb,var(--brand) 7%,var(--surface))}.recipe-inbox>header{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .65rem;border-bottom:1px solid color-mix(in srgb,var(--brand) 25%,var(--line))}.recipe-inbox>header span{display:flex;align-items:center;gap:.4rem;color:var(--brand)}.recipe-inbox>header small{padding:.2rem .4rem;border-radius:999px;background:var(--brand);color:var(--brand-text);font-size:.68rem;font-weight:800}.recipe-inbox article{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:stretch;border-top:1px solid var(--line)}.recipe-inbox article:first-of-type{border-top:0}.recipe-inbox-review{display:grid;min-width:0;gap:.18rem;padding:.65rem;border:0;background:transparent;color:var(--text);text-align:left}.recipe-inbox-review strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-inbox-review span{color:var(--muted);font-size:.74rem}.recipe-inbox-dismiss{display:grid;width:42px;min-height:42px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.recipe-inbox-loading{padding:.65rem;color:var(--muted);font-size:.76rem;text-align:center}.recipe-card-thumbnail{display:grid;width:88px;height:88px;place-items:center;overflow:hidden;border-radius:.55rem;background:var(--soft);color:color-mix(in srgb,var(--muted) 65%,transparent)}.recipe-card-thumbnail.has-image{background:#fff}.recipe-card-thumbnail img{width:100%;height:100%;object-fit:cover}.recipe-card-copy{min-width:0;align-self:center}.recipe-card-copy strong,.recipe-card-copy small{display:block}.recipe-card-copy strong{line-height:1.25}.recipe-experimental-badge{display:inline-flex;align-items:center;gap:.22rem;margin-left:.45rem;padding:.12rem .35rem;border-radius:999px;background:color-mix(in srgb,var(--brand) 13%,transparent);color:var(--brand);font-size:.66rem;font-weight:700;vertical-align:middle}.recipe-tag-list{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}.recipe-tag-list>button,.recipe-tag-list>span{min-height:26px;padding:.14rem .45rem;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:999px;background:transparent;color:var(--brand);font:inherit;font-size:.68rem;font-weight:650}.recipe-tag-list>button.active{border-color:var(--brand);background:var(--brand);color:var(--brand-text)}.recipe-tag-list.compact{margin-top:.28rem}.recipe-tag-list.compact>button,.recipe-tag-list.compact>span{min-height:24px;padding:.1rem .38rem;font-size:.62rem}.recipe-card-tags{margin:-.2rem .6rem .5rem calc(88px + 1.3rem)}.recipe-card-tags>span{display:inline-flex;align-items:center;justify-content:center}.recipe-filter-summary{padding:.42rem .6rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--soft) 55%,var(--surface))}.recipe-filter-summary-row{display:flex;min-height:34px;align-items:center;justify-content:space-between;gap:.5rem}.recipe-filter-trigger{display:inline-flex;min-height:32px;align-items:center;gap:.35rem;padding:.25rem .5rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit;font-size:.72rem;font-weight:700}.recipe-filter-trigger>span{display:grid;min-width:19px;height:19px;place-items:center;padding:0 .3rem;border-radius:999px;background:var(--brand);color:var(--brand-text);font-size:.62rem}.recipe-filter-summary-row small{color:var(--muted);font-size:.7rem}.recipe-filter-clear{min-height:32px;padding:0 .25rem;border:0;background:transparent;color:var(--brand);font:inherit;font-size:.7rem;font-weight:700}.recipe-filter-active{display:flex;flex-wrap:wrap;gap:.3rem;padding-top:.35rem}.recipe-filter-active button{display:inline-flex;min-height:27px;align-items:center;gap:.2rem;padding:.12rem .42rem;border:1px solid color-mix(in srgb,var(--brand) 40%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--brand);font:inherit;font-size:.66rem;font-weight:700}.recipe-filter-action-sheet{max-height:min(90dvh,720px)}.recipe-filter-sheet{display:grid;max-height:calc(min(90dvh,720px) - 100px);grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem}.recipe-filter-sheet-status{display:flex;min-height:30px;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .25rem;color:var(--muted);font-size:.72rem}.action-sheet .recipe-filter-sheet-status button{width:auto;min-height:30px;padding:0 .25rem;border:0;color:var(--brand);font-size:.7rem;font-weight:700}.recipe-filter-groups{display:grid;gap:.55rem;min-height:0;padding:.15rem .25rem .45rem;overflow-y:auto;overscroll-behavior:contain}.recipe-tag-filter-group{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:.4rem}.recipe-tag-filter-group>span{padding-top:.22rem;color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.recipe-tag-filter-group>div{display:flex;flex-wrap:wrap;gap:.28rem}.recipe-tag-filter-group button{min-height:28px;padding:.18rem .48rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:.68rem}.recipe-tag-filter-group button.active{border-color:var(--brand);background:var(--brand);color:var(--brand-text);font-weight:700}.action-sheet .recipe-filter-sheet .recipe-tag-filter-group button{display:inline-flex;width:auto;min-height:32px;padding:.2rem .52rem;border:1px solid var(--line);border-radius:999px}.action-sheet .recipe-filter-sheet .recipe-tag-filter-group button.active{border-color:var(--brand);background:var(--brand);color:var(--brand-text)}.action-sheet .recipe-filter-sheet .recipe-filter-apply{justify-content:center;min-height:44px;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:800}.recipe-card-copy .recipe-card-description{display:-webkit-box;margin-top:.18rem;overflow:hidden;color:var(--muted);line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}.recipe-card-metadata{margin-top:.3rem;color:var(--brand);font-size:.7rem}@media(min-width:600px){.recipe-card-open{grid-template-columns:104px minmax(0,1fr);min-height:120px}.recipe-card-tags{margin-left:calc(104px + 1.3rem)}.recipe-card-thumbnail{width:104px;height:104px}}.recipe-empty-copy{margin:0;padding:.7rem .6rem;color:var(--muted);font-size:.8rem}.archived-recipes{padding:.45rem .6rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.archived-recipes button{display:block;width:100%;padding:.45rem 0;border:0;background:transparent;color:var(--text);text-align:left}.recipe-detail-toolbar{margin-bottom:.55rem;border:1px solid var(--line);border-radius:.6rem}.recipe-detail-toolbar button{color:var(--muted)}.recipe-title-block{padding:.15rem .3rem .65rem}.recipe-title-block h1{margin:0;font-size:1.3rem}.recipe-title-block p{margin:.25rem 0;color:var(--muted)}.recipe-title-block small{color:var(--brand)}.recipe-cover-frame{position:relative;margin-bottom:.7rem;overflow:hidden;border-radius:.65rem;background:var(--soft)}.recipe-cover-detail{display:block;width:100%;max-height:min(56vh,520px);object-fit:contain}.recipe-cover-unavailable{display:grid;min-height:150px;place-items:center;align-content:center;gap:.35rem;color:var(--muted);font-size:.76rem}.recipe-cover-menu{position:absolute;top:.55rem;right:.55rem;display:grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid rgb(255 255 255 / .48);border-radius:999px;background:#141914b8;color:#fff;box-shadow:0 2px 9px #00000040;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.recipe-photo-input{display:none}.recipe-photo-progress{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#00000085}.recipe-photo-progress-card{display:grid;width:min(100%,20rem);place-items:center;gap:.45rem;padding:1.3rem 1rem;border-radius:.8rem;background:var(--surface);box-shadow:0 8px 30px #0000004d;text-align:center}.recipe-photo-progress-card svg{color:var(--brand);animation:recipe-photo-spin .9s linear infinite}.recipe-photo-progress-card strong{font-size:.95rem}.recipe-photo-progress-card span{color:var(--muted);font-size:.76rem}@keyframes recipe-photo-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.recipe-photo-progress-card svg{animation:none}}.recipe-add-cover{display:flex;min-height:36px;align-items:center;gap:.35rem;margin-top:.55rem;padding:0 .55rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--brand);font-weight:650}.recipe-add-cover:disabled{opacity:.55}.recipe-cover-troubleshooting{border-top:1px solid var(--line);color:var(--muted)}.recipe-cover-troubleshooting summary{min-height:44px;padding:.8rem 0;cursor:pointer;font-size:.78rem}.action-sheet .recipe-cover-troubleshooting button{padding-left:.35rem}.recipe-image-setting-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:58px;align-items:center;gap:.6rem;border-block:1px solid var(--line)}.recipe-image-setting-row>svg{color:var(--muted)}.recipe-image-setting-row strong,.recipe-image-setting-row small{display:block}.recipe-image-setting-row small{margin-top:.1rem;color:var(--muted);font-size:.7rem}.recipe-image-setting-row button{min-height:36px;padding:0 .55rem;border:1px solid var(--line);border-radius:.45rem;background:var(--soft);color:var(--brand);font-weight:650}.recipe-image-setting-row button:disabled{opacity:.55}.recipe-drive-disconnect{margin-top:.5rem;padding:.35rem 0;border:0;background:transparent;color:var(--muted);font-size:.74rem;text-decoration:underline}.recipe-image-setting-message{margin:.4rem 0 0;color:var(--brand);font-size:.75rem}.recipe-content-section,.recipe-comments{margin-bottom:.55rem;overflow:hidden;border:1px solid var(--line);border-radius:.6rem;background:var(--surface)}.recipe-content-section h2,.recipe-comments h2{display:flex;align-items:center;gap:.35rem;margin:0;padding:.4rem .55rem;background:var(--soft);font-size:.9rem}.recipe-ingredient-view{padding:.4rem .55rem;border-top:1px solid var(--line)}.recipe-ingredients-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.recipe-ingredients-heading>span{flex:1;min-width:0;background:var(--soft)}.recipe-ingredients-heading h2{padding-bottom:.1rem}.recipe-ingredients-heading small{display:block;padding:0 .55rem .4rem;color:var(--brand);font-size:.72rem}.recipe-ingredients-heading label{display:flex;align-items:center;gap:.35rem;padding-right:.55rem;color:var(--muted);font-size:.74rem;font-weight:650}.recipe-ingredients-heading select{min-width:4.25rem;padding:.24rem .35rem}.plan-quick-add,.plan-saved-meal-add{display:grid;gap:.35rem}.recipe-ingredient-view:first-of-type{border-top:0}.recipe-ingredient-view strong,.recipe-ingredient-view small{display:block}.recipe-ingredient-line{display:grid;grid-template-columns:minmax(5.25rem,auto) minmax(0,1fr);gap:.55rem;align-items:baseline}.recipe-ingredient-line .recipe-ingredient-amount{color:var(--brand);font-variant-numeric:tabular-nums}.recipe-ingredient-line .recipe-ingredient-amount:empty{display:none}.recipe-preparation-note{color:var(--muted);font-weight:450}.recipe-optional-label{display:inline-block;margin-left:.4rem;padding:.06rem .34rem;border:1px solid color-mix(in srgb,var(--brand) 55%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--brand) 9%,transparent);color:var(--brand);font-size:.62rem;font-weight:700;letter-spacing:.025em;text-transform:uppercase;vertical-align:.08rem}.recipe-ingredient-view small{margin-top:.12rem;color:var(--muted);font-size:.72rem}.recipe-content-section ol{margin:0;padding:.5rem .7rem .6rem 2rem}.recipe-content-section li{padding:.18rem 0}.recipe-steps-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-right:.65rem}.recipe-steps-heading h2{flex:1}.recipe-steps-heading label{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.72rem;font-weight:650;white-space:nowrap}.recipe-steps-heading input{accent-color:var(--brand)}.recipe-step-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.4rem;margin:.55rem 0 .2rem}.recipe-step-photo-grid button{min-height:0;padding:0;border:0;border-radius:.5rem;overflow:hidden;background:var(--soft)}.recipe-step-photo-grid img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.recipe-photo-lightbox{position:fixed;inset:0;z-index:1000;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:1fr auto;align-items:center;gap:.5rem;padding:3.25rem .65rem 1rem;background:#000000eb}.recipe-photo-lightbox>img{grid-column:2;max-width:100%;max-height:calc(100vh - 5rem);margin:auto;object-fit:contain;border-radius:.45rem}.recipe-photo-lightbox button{display:grid;place-items:center;min-width:42px;min-height:42px;padding:0;border-radius:999px;background:#ffffff29;color:#fff}.recipe-photo-lightbox-close{position:absolute;top:.65rem;right:.65rem}.recipe-photo-lightbox-previous{grid-column:1}.recipe-photo-lightbox-next{grid-column:3}.recipe-photo-lightbox small{grid-column:1 / -1;color:#fff;text-align:center}.recipe-content-section h3{margin:.6rem 0 0;padding:.48rem .6rem;border-block:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-left:3px solid var(--brand);background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--text);font-size:.76rem;text-transform:uppercase;letter-spacing:.035em}.recipe-content-section h3:first-of-type{margin-top:0}.recipe-step-cues{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem;color:var(--muted);font-size:.7rem}.recipe-step-cues span{display:inline-flex;align-items:center;gap:.2rem;padding:.12rem .35rem;border:1px solid var(--line);border-radius:999px;background:var(--soft)}.recipe-time-summary{margin:0 0 .55rem;padding:.45rem .55rem;border:1px solid var(--line);border-radius:.55rem;background:var(--soft);color:var(--muted);font-size:.78rem}.recipe-attribution p{margin:0;padding:.5rem .55rem .15rem}.recipe-preserved-text{margin:0;padding:.55rem;white-space:pre-wrap}.recipe-variations article+article{border-top:1px solid var(--line)}.recipe-variations article h3{margin:0;border-block:0;border-left:0;background:transparent;color:var(--text);font-size:.82rem;letter-spacing:0;text-transform:none}.recipe-variations article .recipe-preserved-text{padding-top:.15rem;color:var(--muted)}.recipe-source{display:inline-block;margin:0 .3rem .65rem;color:var(--brand)}.recipe-comments article{padding:.5rem .55rem;border-top:1px solid var(--line)}.recipe-comments article p{margin:0 0 .25rem;white-space:pre-wrap}.recipe-comments article small{color:var(--muted)}.recipe-comment-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem;padding:.45rem;border-top:1px solid var(--line)}.recipe-comment-add textarea,.recipe-editor input,.recipe-editor textarea,.recipe-editor select{min-width:0;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);padding:.5rem .55rem;font:inherit}.recipe-comment-add button{border:0;border-radius:.45rem;background:var(--brand);color:var(--brand-text);font-weight:650}.recipe-comment-add button:disabled{opacity:.5}.recipe-editor{display:grid;gap:.55rem;padding-bottom:4.5rem}.recipe-import-warnings{border:1px solid color-mix(in srgb,var(--brand) 42%,var(--line));border-radius:.6rem;padding:.65rem .75rem;background:color-mix(in srgb,var(--brand) 8%,var(--surface));line-height:1.4}.recipe-import-warnings strong{color:var(--brand)}.recipe-import-warnings ul{margin:.35rem 0 0;padding-left:1.15rem}.recipe-import-warnings li+li{margin-top:.25rem}.recipe-editor-toolbar{position:fixed;z-index:20;right:50%;bottom:max(.5rem,env(safe-area-inset-bottom));width:min(calc(100% - 1rem),704px);transform:translate(50%);border:1px solid var(--line);border-radius:.65rem;box-shadow:0 4px 16px #0003}.recipe-editor-toolbar .primary{background:var(--brand);color:var(--brand-text)}.recipe-editor-toolbar .secondary{border:1px solid var(--line);background:var(--surface);color:var(--text);font-weight:600}.discard-changes-message{margin:.1rem .25rem .6rem;color:var(--muted);font-size:.84rem}.recipe-delete-warning{margin:.1rem .25rem .6rem;padding:.6rem .7rem;border-left:3px solid light-dark(#a92c2c,#ff9690);border-radius:.35rem;background:color-mix(in srgb,#d84a42 9%,transparent);color:var(--text);font-size:.82rem}.recipe-drive-reconnect{display:grid;gap:.45rem;margin:.1rem .25rem .6rem;padding:.65rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface)}.recipe-drive-reconnect p{margin:0;color:var(--muted);font-size:.82rem}.recipe-editor>label,.recipe-two-columns label{display:grid;gap:.2rem;color:var(--muted);font-size:.78rem}.recipe-editor label span{font-weight:400}.recipe-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.recipe-editor fieldset{min-width:0;margin:0;padding:.4rem;border:1px solid var(--line);border-radius:.6rem}.recipe-editor legend{padding:0 .25rem;font-weight:650}.recipe-editor legend span{color:var(--muted);font-size:.75rem;font-weight:400}.recipe-tag-editor{display:grid;gap:.45rem}.recipe-tag-editor .recipe-tag-list{margin-top:0}.recipe-tag-editor .recipe-tag-list>span{display:inline-flex;align-items:center;gap:.2rem}.recipe-tag-editor .recipe-tag-list button{display:grid;width:22px;height:22px;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:inherit}.recipe-tag-add{display:grid;grid-template-columns:minmax(96px,.7fr) minmax(0,1.3fr) auto;align-items:end;gap:.4rem}.recipe-tag-add label{display:grid;gap:.2rem;color:var(--muted);font-size:.72rem}.recipe-tag-add>button{display:flex;min-height:38px;align-items:center;gap:.25rem;padding:0 .6rem;border:0;border-radius:.45rem;background:var(--brand);color:var(--brand-text);font-weight:700}.recipe-tag-add>button:disabled{opacity:.5}.recipe-tag-editor>small{color:var(--muted);font-size:.68rem;line-height:1.35}.recipe-variation-editor{display:grid;gap:.35rem;padding:.45rem;border-top:1px solid var(--line)}.recipe-variation-editor:first-of-type{border-top:0}.recipe-variation-editor label{display:grid;gap:.2rem;color:var(--muted);font-size:.72rem}.recipe-editor-card{display:grid;gap:.3rem;padding:.35rem;border-top:1px solid var(--line)}.recipe-editor-card.dragging{z-index:2;border-radius:.45rem;background:var(--surface);box-shadow:0 4px 12px #0003;opacity:.88}.recipe-editor-card:first-of-type{border-top:0}.recipe-editor-card-compact{grid-template-columns:minmax(0,1fr) auto;gap:.1rem;padding-block:.1rem}.recipe-ingredient-summary{display:flex;min-width:0;min-height:38px;align-items:center;justify-content:space-between;gap:.4rem;padding:.25rem .35rem;border:0;background:transparent;color:var(--text);text-align:left}.recipe-ingredient-summary>span{min-width:0}.recipe-ingredient-summary strong,.recipe-ingredient-summary small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-ingredient-summary-copy strong{display:grid;grid-template-columns:minmax(4.5rem,max-content) minmax(0,1fr);gap:.4rem;align-items:baseline}.recipe-ingredient-summary-copy strong:has(>span:first-child:empty){grid-template-columns:minmax(0,1fr)}.recipe-ingredient-summary-copy strong>span:first-child:empty{display:none}.recipe-ingredient-summary-copy strong>span:first-child{color:var(--brand);font-variant-numeric:tabular-nums}.recipe-ingredient-summary-copy strong>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.recipe-ingredient-summary small{margin-top:.08rem;color:var(--muted);font-size:.7rem;font-weight:400}.recipe-ingredient-summary>svg{flex:0 0 auto;color:var(--muted)}.recipe-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:.15rem}.recipe-row-actions span{margin-right:auto;color:var(--muted);font-size:.75rem}.recipe-editor-card-compact>.recipe-row-actions span{display:none}.recipe-row-actions button{display:grid;width:32px;height:30px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.recipe-ingredient-actions .recipe-drag-handle{margin-right:auto}.recipe-ingredient-actions{min-height:34px}.recipe-row-actions .recipe-drag-handle{cursor:grab;touch-action:none}.recipe-row-actions .recipe-drag-handle:active{cursor:grabbing}.recipe-ingredient-group,.recipe-step-group{min-height:42px;padding:0 .35rem .4rem;border:1px solid var(--line);border-radius:.55rem;transition:background .12s ease,outline-color .12s ease}.recipe-ingredient-group.flat{min-height:0;padding:0;border:0}.recipe-ingredient-group+.recipe-ingredient-group,.recipe-step-group+.recipe-step-group{margin-top:.7rem}.recipe-ingredient-group.drag-over,.recipe-step-group.drag-over{outline:2px solid color-mix(in srgb,var(--brand) 60%,transparent);background:color-mix(in srgb,var(--brand) 8%,transparent)}.recipe-ingredient-group>h3,.recipe-step-group>h3{margin:0 -.35rem .15rem;padding:.48rem .55rem;border-bottom:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-left:3px solid var(--brand);border-radius:.45rem .45rem 0 0;background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--text);font-size:.74rem;font-weight:750;letter-spacing:.035em;text-transform:uppercase}.recipe-step-group>.recipe-add-step{margin:.35rem .15rem 0}.recipe-empty-section{display:block;min-height:34px;padding:.5rem;border:1px dashed var(--line);border-radius:.4rem;color:var(--muted);font-size:.72rem;text-align:center}.recipe-amount-columns{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:.35rem}.recipe-amount-columns label,.recipe-ingredient-options-row>label:not(.recipe-inline-check){display:grid;gap:.15rem;color:var(--muted);font-size:.7rem}.recipe-ingredient-note{display:grid;gap:.15rem;color:var(--muted);font-size:.7rem}.recipe-ingredient-options-row{display:flex;align-items:end;justify-content:space-between;gap:.5rem}.recipe-inline-check{display:flex;min-height:38px;align-items:center;gap:.4rem;color:var(--text);font-size:.8rem}.recipe-inline-check input{width:18px;height:18px;min-height:0;padding:0}.recipe-three-columns{display:grid;grid-template-columns:.65fr .9fr 1.25fr;gap:.3rem}.recipe-source-editor,.recipe-section-editors{padding:.45rem;border:1px solid var(--line);border-radius:.6rem}.recipe-source-editor summary,.recipe-section-editors summary{cursor:pointer;font-weight:650}.recipe-source-editor[open] summary,.recipe-section-editors[open] summary{margin-bottom:.45rem}.recipe-source-editor>label{display:grid;gap:.2rem;margin-top:.45rem;color:var(--muted);font-size:.78rem}.recipe-section-editors summary span{color:var(--muted);font-size:.75rem;font-weight:400}.recipe-section-editor{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:.3rem;margin-top:.3rem}.recipe-section-editor button{display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.recipe-add-row{margin:.25rem 0 0}.recipe-ingredient-done{display:flex;min-height:36px;align-items:center;justify-content:center;gap:.3rem;justify-self:end;min-width:92px;padding:.35rem .7rem;border:1px solid var(--brand);border-radius:.45rem;background:transparent;color:var(--brand);font-weight:650}.recipe-ingredient-done:disabled{opacity:.45}.recipe-ingredient-review-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:start;padding:.65rem .7rem;border:1px solid color-mix(in srgb,#e4a23a 72%,var(--line));border-left-width:4px;border-radius:.45rem;background:color-mix(in srgb,#e4a23a 14%,var(--surface));color:var(--text);font-size:.76rem;line-height:1.4}.recipe-ingredient-review-note>svg{margin-top:.05rem;color:#e4a23a}.recipe-ingredient-review-note strong{display:block;margin-bottom:.1rem;color:color-mix(in srgb,#e4a23a 75%,var(--text));font-size:.82rem}.recipe-step-review-note{padding:.35rem .45rem;border-left:3px solid var(--brand);border-radius:.25rem;background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--text);font-size:.72rem}.recipe-import-step-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.35rem;padding:.35rem;border:1px solid var(--line);border-radius:.45rem;background:var(--soft)}.recipe-import-step-images img{width:100%;max-height:220px;border-radius:.35rem;object-fit:contain;background:var(--surface)}.recipe-import-step-image-option{display:grid;align-content:start;gap:.3rem;padding:.3rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);cursor:pointer}.recipe-import-step-image-option>span{display:flex;align-items:center;gap:.25rem;color:var(--text);font-size:.72rem;font-weight:700}.recipe-import-step-image-option input{accent-color:var(--brand)}.recipe-import-step-images small{grid-column:1 / -1;color:var(--muted);font-size:.68rem;line-height:1.35}.recipe-substitutions{display:grid;gap:.25rem;margin-top:.1rem;padding:.25rem;border:1px solid var(--line);border-radius:.45rem;background:color-mix(in srgb,var(--soft) 55%,transparent)}.recipe-substitution{display:grid;gap:.3rem;padding:.25rem 0 .4rem;border-top:1px solid var(--line)}.recipe-substitution:first-child{border-top:0}.recipe-ingredient-more{padding:.4rem;border:1px solid var(--line);border-radius:.45rem}.recipe-ingredient-more summary{cursor:pointer;color:var(--muted);font-size:.78rem;font-weight:650}.recipe-ingredient-more[open]{display:grid;gap:.35rem}.recipe-add-detail{display:flex;min-height:36px;align-items:center;gap:.3rem;padding:.3rem .1rem;border:0;background:transparent;color:var(--brand);font-weight:650;text-align:left}.recipe-shopping-equivalent{display:grid;gap:.3rem;padding:.45rem;border-radius:.45rem;background:var(--soft)}.recipe-shopping-equivalent small{color:var(--muted);font-size:.7rem;line-height:1.35}.recipe-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recipe-detail-heading button{min-height:30px;padding:0 .3rem;border:0;background:transparent;color:var(--muted);font:inherit}.recipe-step-editor textarea{max-height:none;resize:none;overflow-y:hidden;line-height:1.35}.recipe-step-source{padding:.35rem;border:1px solid var(--line);border-radius:.45rem}.recipe-step-source summary{cursor:pointer;color:var(--muted);font-size:.72rem;font-weight:650}.recipe-step-source[open]{display:grid;gap:.35rem}.recipe-insert-step{display:flex;width:100%;min-height:24px;align-items:center;justify-content:center;gap:.25rem;padding:0;border:0;background:linear-gradient(var(--line),var(--line)) center/100% 1px no-repeat;color:var(--muted);font-size:.68rem}.recipe-insert-step span{padding:.08rem .35rem;background:var(--surface);opacity:0;transition:opacity .12s ease}.recipe-insert-step svg{padding:.1rem;border-radius:999px;background:var(--surface)}.recipe-insert-step:hover span,.recipe-insert-step:focus-visible span{opacity:1}.recipe-comments article small strong{color:var(--text);font-weight:650}.recipe-personal-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.55rem;padding:.5rem;border:1px solid var(--line);border-radius:.6rem;background:var(--surface)}.recipe-personal-summary button,.recipe-personal-summary label{display:inline-flex;min-height:38px;align-items:center;gap:.35rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:.5rem;background:var(--soft);color:var(--text);font-size:.78rem;font-weight:650}.recipe-personal-summary button.is-favorite,.recipe-personal-summary button.is-favorite svg,.recipe-personal-summary label>svg{color:var(--brand)}.recipe-personal-summary select{min-height:30px;border:0;background:transparent;color:var(--text);font:inherit}.recipe-personal-summary>span{margin-left:auto;color:var(--muted);font-size:.75rem;font-weight:650}.recipe-cooking-history{margin-bottom:.55rem;overflow:hidden;border:1px solid var(--line);border-radius:.6rem;background:var(--surface)}.recipe-section-heading{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;background:var(--soft)}.recipe-section-heading h2{margin:0;font-size:.9rem}.recipe-section-heading button{min-height:34px;padding:.3rem .55rem;border:0;border-radius:.45rem;background:var(--brand);color:var(--brand-text);font-weight:700}.recipe-cooking-history article{padding:.6rem;border-top:1px solid var(--line)}.recipe-cooking-history article header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recipe-cooking-history article header span,.recipe-cooking-history article small{color:var(--muted);font-size:.72rem}.recipe-cooking-history article p{margin:.45rem 0 0;white-space:pre-wrap}.preparation-next-time{padding:.4rem .5rem;border-left:3px solid var(--brand);border-radius:.3rem;background:color-mix(in srgb,var(--brand) 8%,transparent)}.preparation-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin-top:.5rem}.preparation-photo-grid>img,.preparation-photo-grid>span,.preparation-photo-grid>a{position:relative;display:block;overflow:hidden;aspect-ratio:4 / 3;border-radius:.45rem;background:var(--soft)}.preparation-photo-grid img{width:100%;height:100%;object-fit:cover}.preparation-photo-grid span button{position:absolute;top:.25rem;right:.25rem;display:grid;width:30px;min-height:30px;place-items:center;padding:0;border:0;border-radius:999px;background:#141914c7;color:#fff}.preparation-form{display:grid;gap:.65rem}.preparation-form>label{display:grid;gap:.25rem;color:var(--muted);font-size:.78rem}.preparation-form>.preparation-unknown-date{display:flex;align-items:center;gap:.45rem;min-height:40px}.preparation-unknown-date input{width:18px;height:18px}.preparation-form input,.preparation-form textarea{min-width:0;padding:.5rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit}.preparation-form fieldset{min-width:0;margin:0;padding:.45rem;border:1px solid var(--line);border-radius:.5rem}.preparation-form legend{padding:0 .25rem;font-size:.8rem;font-weight:700}.preparation-reactions{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem}.action-sheet .preparation-reactions button{display:grid;min-height:62px;place-items:center;gap:.18rem;padding:.35rem .2rem;border:1px solid var(--line);border-radius:.45rem;font-size:.68rem;text-align:center}.action-sheet .preparation-reactions button.selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand)}.preparation-photo-picker{display:flex!important;min-height:40px;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:.45rem;color:var(--brand)!important;font-weight:700;cursor:pointer}.preparation-photo-picker input{display:none}.action-sheet .preparation-save{justify-content:center;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:700}.action-sheet .preparation-save:disabled{opacity:.55;color:var(--brand-text)}.ideas-library,.idea-detail{display:grid;gap:.55rem}.ideas-heading{display:grid;gap:.1rem;padding:.2rem .1rem}.ideas-heading strong{font-size:1rem}.ideas-heading small{color:var(--muted)}.idea-card{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:.45rem;padding:.65rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface);color:var(--text);text-align:left}.idea-card>svg{margin-top:.1rem;color:var(--brand)}.idea-card span,.idea-card strong,.idea-card small{display:block;min-width:0}.idea-card small{display:-webkit-box;margin-top:.15rem;overflow:hidden;color:var(--muted);font-size:.74rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.idea-card em{display:inline-block;margin-top:.35rem;padding:.08rem .35rem;border-radius:999px;background:var(--soft);color:var(--brand);font-size:.65rem;font-style:normal;font-weight:700}.idea-detail>label{display:grid;gap:.2rem;color:var(--muted);font-size:.78rem}.idea-detail input,.idea-detail textarea,.idea-detail select{min-width:0;padding:.5rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit}.idea-back{display:flex;min-height:40px;align-items:center;gap:.25rem;justify-self:start;padding:0 .45rem;border:0;background:transparent;color:var(--brand);font-weight:700}.idea-detail fieldset{min-width:0;margin:0;padding:.5rem;border:1px solid var(--line);border-radius:.55rem}.idea-link-editor{display:grid;grid-template-columns:.8fr 1.4fr 36px;gap:.3rem;margin-bottom:.35rem}.idea-link-editor button{display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.idea-actions{display:grid;gap:.35rem}.idea-actions button{display:flex;min-height:42px;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);font-weight:700}.idea-actions button:first-child{border-color:var(--brand);background:var(--brand);color:var(--brand-text)}.recipe-product-link{color:var(--brand)}.recipe-product-editor{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.recipe-product-editor button{min-height:36px;padding:.35rem .55rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--text)}.recipe-product-chip{display:flex;min-width:0;min-height:34px;align-items:center;gap:.25rem;padding-left:.5rem;border:1px solid var(--brand);border-radius:999px;color:var(--brand);font-size:.75rem}.recipe-product-editor .recipe-product-chip button{display:grid;width:32px;min-height:32px;place-items:center;padding:0;border:0}.meal-component-editor{max-height:70vh;overflow-y:auto}.meal-component-heading{display:flex;align-items:baseline;justify-content:space-between;margin-top:.35rem}.meal-component-heading small{color:var(--muted)}.meal-component-card{display:grid;gap:.35rem;min-width:0;padding:.5rem;border:1px solid var(--line);border-radius:.55rem}.meal-component-card-heading{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:.35rem}.action-sheet .meal-component-card-heading button{display:grid;min-height:38px;place-items:center;padding:0;border:0}.action-sheet .meal-product-choice{min-height:42px;padding:.45rem .55rem;border:1px solid var(--line);border-radius:.5rem}.meal-prep-heading{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem;padding-top:.45rem;border-top:1px solid var(--line)}.meal-prep-heading span{display:flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:700}.meal-prep-heading small{color:var(--muted);font-size:.68rem}.meal-prep-requirement{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.8fr) 36px;gap:.35rem;align-items:end}.meal-prep-requirement.with-custom-timing{grid-template-columns:minmax(0,1fr) minmax(130px,.8fr) 36px}.meal-prep-custom-timing{grid-column:1 / 3}.meal-prep-requirement label{display:grid;gap:.2rem;color:var(--muted);font-size:.7rem}.action-sheet .meal-prep-requirement button{display:grid;min-height:40px;place-items:center;padding:0;border:0}.action-sheet .meal-add-prep{min-height:38px;justify-content:center;border:1px dashed var(--line);color:var(--muted)}.meal-save-guidance{color:var(--muted);text-align:center}.meal-component-add-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.component-bank-editor{max-height:76vh;overflow-y:auto}.component-role-options{display:flex;flex-wrap:wrap;gap:.35rem .65rem;min-width:0;margin:0;padding:.5rem;border:1px solid var(--line);border-radius:.5rem}.component-role-options legend{padding:0 .2rem;font-size:.78rem;font-weight:700}.component-role-options label,.meal-form .component-on-deck{display:flex;min-height:32px;align-items:center;gap:.3rem;color:var(--text);font-size:.78rem}.component-role-options input,.meal-form .component-on-deck input{width:18px;height:18px;min-height:0;margin:0}.component-bank-subheading{display:flex;align-items:baseline;justify-content:space-between;margin-top:.35rem;padding-top:.5rem;border-top:1px solid var(--line)}.component-bank-subheading small{color:var(--muted)}.component-variant-row{display:grid;grid-template-columns:1fr 1fr 36px;gap:.35rem;align-items:end}.component-variant-card{display:grid;gap:.35rem;min-width:0;margin:0;padding:.45rem;border:1px solid var(--line);border-radius:.5rem}.component-variant-row label{display:grid;gap:.2rem;color:var(--muted);font-size:.7rem}.action-sheet .component-variant-row button{display:grid;min-height:40px;place-items:center;padding:0;border:0}.component-requirement-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 84px 36px;gap:.35rem;align-items:end}.component-requirement-row>label{display:grid;gap:.2rem;color:var(--muted);font-size:.7rem}.component-requirement-row .component-requirement-available{display:flex;min-height:40px;align-items:center;gap:.25rem;color:var(--text)}.component-requirement-available input{width:17px;height:17px;min-height:0}.action-sheet .component-requirement-row>button{display:grid;min-height:40px;place-items:center;padding:0;border:0}.component-readiness{font-weight:700}.component-readiness.ready{color:var(--brand)}.component-readiness.prep{color:light-dark(#7b5a00,#e8c96a)}.component-readiness.needs{color:light-dark(#943b2f,#f09a8f)}.component-use-sheet{display:grid;gap:.55rem}.component-use-sheet label{display:grid;gap:.25rem;color:var(--muted);font-size:.75rem}.component-use-sheet select{min-height:42px;padding:.45rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text)}.action-sheet .component-use-sheet>.meal-save{justify-content:center;border:0;background:var(--brand);color:var(--brand-text);font-weight:800}.component-use-target{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem;align-items:end;padding-top:.5rem;border-top:1px solid var(--line)}.action-sheet .component-use-target button{min-height:42px}.component-bank-filter{display:grid;gap:.2rem;margin-bottom:.4rem;color:var(--muted);font-size:.72rem}.component-bank-filter select{min-height:40px;padding:.4rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text)}.component-bank-picker{display:grid;gap:.4rem;max-height:65vh;overflow-y:auto}.component-bank-picker article{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem;border:1px solid var(--line);border-radius:.5rem}.component-bank-picker article>div{flex:1 1 180px;min-width:0}.component-bank-picker strong,.component-bank-picker small{display:block}.component-bank-picker small{margin-top:.1rem;color:var(--muted);font-size:.68rem}.action-sheet .component-bank-picker button{min-height:34px;padding:.3rem .5rem;border:1px solid var(--line);border-radius:.4rem;font-size:.72rem}.meal-prep-plan{margin:.5rem;overflow:hidden;border:1px solid var(--line);border-radius:.55rem;background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.meal-prep-plan-heading{display:flex;align-items:center;justify-content:space-between;padding:.48rem .55rem;border-bottom:1px solid var(--line)}.meal-prep-plan-heading span{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:800}.meal-prep-plan-heading small{color:var(--muted);font-size:.7rem}.meal-prep-plan-list,.meal-prep-task-group{display:grid}.meal-prep-task-group h4{margin:0;padding:.34rem .55rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--brand) 4%,transparent);color:var(--muted);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase}.meal-prep-task-group:first-child h4{border-top:0}.meal-prep-plan-list article{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.42rem .55rem;border-top:1px solid var(--line)}.meal-prep-plan-list time{color:var(--brand);font-size:.72rem;font-weight:800}.meal-prep-plan-list strong,.meal-prep-plan-list small{display:block}.meal-prep-plan-list strong{font-size:.78rem}.meal-prep-plan-list small{margin-top:.08rem;overflow:hidden;color:var(--muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.meal-prep-task.completed>span,.meal-prep-task.skipped>span{opacity:.58}.meal-prep-task.completed strong{text-decoration:line-through}.meal-prep-task-actions{display:flex;gap:.2rem}.meal-prep-task-actions button{display:grid;width:32px;height:32px;place-items:center;padding:0;border:1px solid var(--line);border-radius:.4rem;background:transparent;color:var(--muted)}.meal-prep-task-actions button:hover{border-color:var(--brand);color:var(--brand)}.meal-cooked-label{color:var(--brand)!important;font-weight:800}.leftovers-form{display:grid;gap:.65rem}.leftovers-form>p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}.leftovers-cooked-date{display:grid;gap:.25rem;color:var(--muted);font-size:.74rem}.leftovers-cooked-date input{min-height:42px;padding:.45rem .55rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--text);font:inherit}.leftovers-components{display:grid;gap:.45rem;max-height:52vh;overflow-y:auto}.leftovers-components fieldset{min-width:0;margin:0;padding:.55rem;border:1px solid var(--line);border-radius:.55rem}.leftovers-components fieldset.selected{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.leftovers-component-toggle{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.45rem;align-items:center}.leftovers-component-toggle input{width:19px;height:19px;min-height:0;margin:0}.leftovers-component-fields{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.5rem}.leftovers-component-fields label{display:grid;gap:.2rem;color:var(--muted);font-size:.7rem}.leftovers-component-fields label span{display:flex;justify-content:space-between;gap:.25rem}.leftovers-component-fields label small{font-size:inherit;font-weight:500}.leftovers-component-fields input,.leftovers-component-fields select{width:100%;min-width:0;min-height:40px;padding:.4rem .45rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit}.leftovers-guidance{color:var(--muted);line-height:1.4}.form-error{margin:0;color:var(--danger, #b42318);font-size:.78rem;font-weight:700}.meal-completion-outcomes{display:flex;flex-wrap:wrap;gap:.35rem .75rem;margin-top:.5rem}.meal-completion-outcomes label{display:flex;align-items:center;gap:.25rem;color:var(--text);font-size:.78rem}.meal-completion-outcomes input{min-height:0;margin:0}.meal-completion-inventory{display:grid;gap:.4rem;margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--line)}.meal-completion-inventory>label{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.7fr);gap:.35rem;align-items:center}.meal-completion-inventory>label>span{display:grid;min-width:0}.meal-completion-inventory>label small{color:var(--muted)}.meal-completion-inventory select,.meal-completion-inventory input{width:100%;min-width:0;min-height:38px;padding:.35rem .4rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);font:inherit}.meal-completion-inventory input{grid-column:2}.action-sheet .leftovers-form>.meal-save{justify-content:center;border:0;background:var(--brand);color:var(--brand-text);font-weight:800}@media(max-width:420px){.leftovers-component-fields{grid-template-columns:1fr}.meal-completion-inventory>label{grid-template-columns:1fr}.meal-completion-inventory input{grid-column:1}}.pantry-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.45rem;margin:.6rem 0 .15rem}.pantry-view-toolbar>div{display:flex;overflow:hidden;border:1px solid var(--line);border-radius:.5rem}.pantry-view-toolbar button{min-height:36px;border:0;padding:.35rem .55rem;background:transparent;color:var(--muted);font-size:.74rem;font-weight:700}.pantry-view-toolbar>div button+button{border-left:1px solid var(--line)}.pantry-view-toolbar button[aria-pressed=true]{background:var(--soft);color:var(--brand)}.pantry-view{display:grid;gap:.5rem;padding:.55rem}.pantry-heading{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.pantry-heading small{display:block;color:var(--muted);font-size:.7rem;font-weight:400}.pantry-heading>button{display:flex;min-height:36px;align-items:center;gap:.25rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--brand);font-weight:700}.inventory-domain-filter{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--line);border-radius:.55rem;background:var(--surface)}.inventory-domain-filter button{min-height:36px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.76rem;font-weight:750}.inventory-domain-filter button+button{border-left:1px solid var(--line)}.inventory-domain-filter button[aria-pressed=true]{background:var(--soft);color:var(--brand)}.pantry-search{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;min-height:42px;overflow:hidden;border:1px solid var(--line);border-radius:.55rem;background:var(--surface)}.pantry-search input{min-width:0;min-height:40px;padding:.45rem .6rem;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.pantry-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 18%,transparent)}.pantry-search button{display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted)}.pantry-highlights{display:grid;gap:.3rem;padding:.4rem;border:1px solid color-mix(in srgb,#d59a20 42%,var(--line));border-radius:.65rem;background:color-mix(in srgb,#d59a20 7%,var(--surface))}.pantry-highlights-heading{padding:0 .05rem;color:#d59a20;font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.pantry-priority-divider{padding:.28rem .45rem;border-top:1px solid var(--line);background:color-mix(in srgb,#d59a20 7%,var(--surface));color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.025em;text-transform:uppercase}.pantry-priority-divider:first-child{border-top:0}.pantry-priority-divider+article{border-top:0}.pantry-sections{display:grid;gap:.55rem}.pantry-sections-heading{padding:.2rem .05rem 0;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.pantry-section{display:grid;gap:.3rem}.pantry-section-heading{display:flex;min-height:30px;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .2rem}.pantry-section-heading span{display:flex;align-items:center;gap:.35rem}.pantry-section-heading svg{color:var(--brand)}.pantry-section-heading strong{font-size:.8rem}.pantry-section-heading small{color:var(--muted);font-size:.68rem}.pantry-list{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:.55rem}.pantry-list article{display:grid;grid-template-columns:minmax(0,1fr) auto 34px;gap:.35rem;align-items:center;padding:.4rem .45rem;border-top:1px solid var(--line)}.pantry-list article:first-child{border-top:0}.pantry-list article.low{background:color-mix(in srgb,#d59a20 8%,var(--surface))}.pantry-list article.out{background:color-mix(in srgb,#cf4a42 8%,var(--surface))}.pantry-list article.use-up{box-shadow:inset 3px 0 #d59a20}.pantry-list article.use-soon{box-shadow:inset 3px 0 #d59a20}.pantry-list article.past-estimate{background:color-mix(in srgb,#cf4a42 9%,var(--surface));box-shadow:inset 3px 0 #cf4a42}.pantry-entry-copy{min-width:0;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.pantry-entry-copy strong,.pantry-entry-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pantry-entry-title{display:flex;min-width:0;align-items:center;gap:.35rem}.pantry-entry-title strong{min-width:0}.pantry-use-up-badge{flex:none;padding:.12rem .4rem;border:1px solid #d59a20;border-radius:999px;color:light-dark(#765000,#f0c766);font-size:.65rem;font-weight:800;line-height:1.25}.pantry-entry-copy small{margin-top:.08rem;color:var(--muted);font-size:.7rem}.pantry-entry-copy .pantry-freshness-copy{color:light-dark(#795200,#efc96f);font-weight:700}.pantry-list article.past-estimate .pantry-freshness-copy{color:light-dark(#922e29,#f0958f)}.pantry-row-quantity{display:grid;grid-template-columns:32px minmax(28px,auto);align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.pantry-row-quantity button{display:grid;min-width:28px;min-height:32px;place-items:center;padding:0 .35rem;border:0;border-left:1px solid var(--line);background:transparent;color:var(--brand);font-size:.72rem;font-weight:800}.pantry-row-quantity button:first-child{border-left:0}.pantry-linked-product-note{display:block;padding:.55rem .7rem;color:var(--muted);font-size:.7rem;line-height:1.35}.pantry-editor{gap:.7rem;max-height:calc(100dvh - 8.5rem - env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto;padding:.1rem .25rem .5rem;overscroll-behavior-y:contain}.pantry-editor-intro{margin:-.15rem 0 .05rem;color:var(--muted);font-size:.76rem;line-height:1.4}.pantry-editor .pantry-field{display:grid;min-width:0;gap:.3rem;color:var(--text);font-size:.78rem;font-weight:700}.meal-form .pantry-field-label{display:flex;min-width:0;align-items:baseline;gap:.3rem;padding:0 .05rem;font-weight:700}.pantry-field-label small{color:var(--muted);font-size:.68rem;font-weight:500}.pantry-editor .pantry-field>input,.pantry-editor .pantry-field>select{width:100%;min-width:0}.pantry-product-field{display:grid;gap:.3rem}.pantry-product-field>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.35rem;align-items:center;padding:.45rem .5rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface)}.pantry-product-field strong,.pantry-product-field small{display:block}.pantry-product-field small{margin-top:.08rem;color:var(--muted);font-size:.68rem}.action-sheet .pantry-product-field button{width:auto;min-height:36px;padding:.3rem .5rem;border:1px solid var(--line);border-radius:.45rem;color:var(--brand);font-size:.72rem;font-weight:750}.pantry-count-heading{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.6rem}.pantry-count-step{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.action-sheet .pantry-count-step button{min-height:28px;padding:.2rem .55rem;border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;color:var(--muted);font-size:.65rem;font-weight:700}.action-sheet .pantry-count-step button:first-child{border-left:0}.action-sheet .pantry-count-step button[aria-pressed=true]{background:var(--soft);color:var(--brand)}.pantry-quantity-stepper{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:.45rem;align-items:stretch}.action-sheet .pantry-quantity-stepper>button{display:grid;width:48px;min-height:48px;place-items:center;padding:0;border:1px solid var(--line);border-radius:.55rem;background:var(--soft);color:var(--brand)}.action-sheet .pantry-quantity-stepper>button:disabled{color:var(--muted);opacity:.5}.pantry-quantity-stepper label{display:grid;grid-template-columns:minmax(3.5rem,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:.55rem;background:var(--surface)}.pantry-quantity-stepper label input{width:100%;min-width:0;min-height:46px;padding:.35rem .2rem .35rem .6rem;border:0;background:transparent;color:var(--text);font:inherit;font-size:1rem;font-weight:800;text-align:center}.pantry-quantity-stepper label span{padding-right:.65rem;color:var(--muted);font-size:.72rem;font-weight:650}.pantry-editor .component-on-deck{gap:.45rem;min-height:38px;padding:.15rem .05rem;font-size:.82rem}.pantry-use-up-toggle,.inventory-count-toggle,.inventory-restock-toggle{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.45rem;align-items:start;min-height:44px;padding:.5rem;border:1px solid color-mix(in srgb,#d59a20 55%,var(--line));border-radius:.55rem;background:color-mix(in srgb,#d59a20 7%,var(--surface))}.pantry-use-up-toggle input,.inventory-count-toggle input,.inventory-restock-toggle input{width:19px;height:19px;min-height:0;margin:.05rem 0 0;padding:0}.pantry-use-up-toggle strong,.pantry-use-up-toggle small,.inventory-count-toggle strong,.inventory-count-toggle small,.inventory-restock-toggle strong,.inventory-restock-toggle small{display:block}.pantry-use-up-toggle small,.inventory-count-toggle small,.inventory-restock-toggle small{margin-top:.1rem;color:var(--muted);font-size:.7rem;font-weight:500;line-height:1.35}.pantry-remove-action{display:grid;gap:.45rem;margin-top:.1rem;padding-top:.7rem;border-top:1px solid var(--line)}.pantry-remove-action>span,.pantry-remove-action strong,.pantry-remove-action small{display:block}.pantry-remove-action strong{font-size:.82rem}.pantry-remove-action small{margin-top:.12rem;color:var(--muted);font-size:.7rem;line-height:1.35}.action-sheet .pantry-remove-action .danger-action{min-height:44px;justify-content:center;border:1px solid light-dark(#d6aaa2,#825349);border-radius:.5rem;background:light-dark(#fff8f7,#2f211f);font-weight:700;text-align:center}.pantry-freshness-editor{display:grid;gap:.45rem;min-width:0;margin:0;padding:.6rem;border:1px solid var(--line);border-radius:.6rem}.pantry-freshness-editor legend{padding:0 .25rem;font-weight:800}.pantry-freshness-editor p{display:grid;gap:.1rem;margin:0}.pantry-freshness-editor p strong{display:flex;align-items:center;gap:.25rem}.pantry-freshness-editor p span{color:var(--muted);font-size:.72rem}.pantry-storage-actions{display:flex;flex-wrap:wrap;gap:.35rem}.pantry-storage-actions button{display:inline-flex;min-height:34px;align-items:center;gap:.25rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:.45rem;background:transparent;color:var(--text);font-size:.72rem;font-weight:750}.pantry-frozen-portion{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.7fr);gap:.5rem;align-items:end;padding-top:.45rem;border-top:1px solid var(--line)}.pantry-frozen-portion span,.pantry-frozen-portion strong,.pantry-frozen-portion small{display:block}.pantry-frozen-portion small{margin-top:.08rem;color:var(--muted);font-size:.68rem}.pantry-clear-review{display:grid;gap:.55rem}.pantry-clear-review>p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}.pantry-review-group{display:grid;gap:.35rem;min-width:0;margin:0;padding:.5rem;border:1px solid var(--line);border-radius:.55rem}.pantry-review-group legend{padding:0 .2rem;font-weight:800}.pantry-review-group>small{color:var(--muted)}.pantry-review-group label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.4rem;align-items:start;padding:.25rem 0}.pantry-review-group input{width:19px;height:19px;margin:.05rem 0 0}.pantry-review-group strong,.pantry-review-group label small{display:block}.pantry-review-group label small{margin-top:.08rem;color:var(--muted);font-size:.68rem}.pantry-review-item{display:grid;gap:.25rem}.pantry-review-item>select{min-height:36px;margin:0 0 .25rem 1.65rem;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text)}.action-sheet .pantry-clear-review>.meal-save{justify-content:center;border:0;background:var(--brand);color:var(--brand-text);font-weight:800}.meal-form .meal-save-library-option{display:flex;min-height:42px;align-items:center;gap:.5rem;color:var(--text);font-size:.85rem}.meal-form .meal-save-library-option input{width:19px;height:19px;min-height:0;margin:0;padding:0}.meal-shopping-review{display:grid;gap:.45rem;max-height:74vh;overflow-y:auto;padding:0 .1rem .35rem}.meal-shopping-intro{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4}.meal-shopping-group{display:grid;gap:.4rem;padding:.55rem;border:1px solid var(--line);border-radius:.6rem}.meal-shopping-group.excluded{opacity:.62}.meal-shopping-select{display:grid;grid-template-columns:24px minmax(0,1fr);gap:.4rem;align-items:start}.meal-shopping-select input{width:19px;height:19px;margin-top:.1rem}.meal-shopping-select strong,.meal-shopping-select small{display:block}.meal-shopping-select small{margin-top:.08rem;color:var(--muted)}.meal-shopping-optional{display:inline-block;margin-left:.35rem;padding:.05rem .28rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.62rem;text-transform:uppercase}.meal-shopping-group li em{margin-left:.25rem;color:var(--muted);font-size:.68rem;font-weight:400}.meal-shopping-amount{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.45rem;align-items:center;color:var(--muted);font-size:.78rem}.meal-shopping-amount input{min-height:38px;border:1px solid var(--line);border-radius:.45rem;background:var(--surface);color:var(--text);padding:.4rem .5rem}.meal-shopping-group ul{display:grid;gap:.2rem;margin:0;padding:0;list-style:none}.meal-shopping-group li{display:flex;gap:.35rem;color:var(--muted);font-size:.78rem}.meal-shopping-group li svg{flex:0 0 auto;margin-top:.1rem}.meal-shopping-group li small{display:block}.meal-shopping-existing{color:var(--brand)}.meal-shopping-removals{padding:.55rem;border:1px solid light-dark(#e3b3aa,#77433d);border-radius:.6rem;background:light-dark(#fff7f5,#291c1a)}.meal-shopping-removals p{margin:.2rem 0;color:var(--muted);font-size:.78rem}.meal-shopping-removals ul{margin:.25rem 0 0;padding-left:1.2rem}.action-sheet .meal-shopping-review>.meal-save{justify-content:center;border:0;border-radius:.5rem;background:var(--brand);color:var(--brand-text);font-weight:700}@media(max-width:460px){.recipe-tag-add{grid-template-columns:1fr 1.35fr}.recipe-tag-add>button{grid-column:1 / -1;justify-content:center}.meal-prep-requirement,.meal-prep-requirement.with-custom-timing{grid-template-columns:minmax(0,1fr) 36px}.meal-prep-requirement>label:nth-child(2),.meal-prep-custom-timing{grid-column:1 / -1}.meal-prep-requirement>button{grid-column:2;grid-row:1}.component-requirement-row{grid-template-columns:minmax(0,1fr) 80px 36px}.component-requirement-row .component-requirement-available{grid-column:1 / 3}.component-use-target,.recipe-two-columns{grid-template-columns:1fr}.recipe-three-columns{grid-template-columns:.7fr 1fr}.recipe-three-columns input:last-child{grid-column:1 / -1}}.snackbar{position:fixed;z-index:40;right:max(.75rem,calc((100vw - 720px)/2 + .75rem));bottom:.75rem;left:max(.75rem,calc((100vw - 720px)/2 + .75rem));display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:46px;padding:.5rem .65rem .5rem .85rem;border-radius:.65rem;background:light-dark(#252923,#eef3ea);color:light-dark(#fff,#20231f);box-shadow:0 5px 18px #00000038;font-size:.84rem}.snackbar button{display:flex;align-items:center;gap:.3rem;min-height:34px;padding:0 .55rem;border:0;border-radius:.45rem;background:transparent;color:inherit;font-weight:700}@media(min-width:721px){.app-frame{border-inline:1px solid var(--line)}main{padding-inline:.75rem}}
