@layer tokens,base,components,views,overrides;@layer tokens{:root{--control-min-height: 44px;--color-primary: #2f6fed;--color-primary-text: #245cc8;--color-green: #2d8a57;--color-citrus: #f5b642;--color-tomato: #bd4727;--color-graphite: #1f2933;--color-heading: #0f172a;--color-body-strong: #334155;--motion-fast: 140ms;--motion-standard: 220ms;--motion-ease: cubic-bezier(0.2, 0.8, 0.2, 1);--color-ink: var(--color-graphite);--color-slate: #5b6879;--color-background: #f7f9fb;--color-surface: #ffffff;--color-border: #dde4ec;--color-success: #0d7a4f;--color-warning: #94600c;--color-error: #c63c3c;--color-coles: #c92d24;--color-woolworths: #7cc242;--color-aldi: #164b92;--color-deal: #b3261e;--color-deal-good-bg: #e6f4ea;--color-deal-good-text: #1e6b3a;--color-deal-neutral-bg: #f1f4f8;--color-deal-neutral-text: var(--color-graphite);--color-cheaper-outline: #1f2328;--color-dot-coles: #e01a22;--color-dot-aldi: #164b92;--color-dot-woolworths: #178841;--shadow-card: 0 1px 2px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.06);--shadow-sheet: 0 8px 16px rgba(15, 23, 42, 0.10), 0 2px 6px rgba(15, 23, 42, 0.06);--shadow-modal: 0 24px 48px rgba(15, 23, 42, 0.16), 0 8px 16px rgba(15, 23, 42, 0.10);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 26px;--radius-pill: 999px;--space-4: 4px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--ink: var(--color-graphite);--muted: var(--color-slate);--bg: var(--color-background);--panel: var(--color-surface);--line: var(--color-border);--accent: var(--color-primary);--accent-soft: #eef4ff;--danger: var(--color-error);--card: var(--color-surface);--shadow: var(--shadow-card);--keyboard-inset: 0px;--z-surface-under: 0;--z-surface-content: 1;--z-surface-raised: 2;--z-surface-sticky: 3;--z-surface-actions: 4;--z-surface-status: 5;--z-seo-topbar: 20;--z-deck-hero-copy: 28;--z-deck-badge: 30;--z-checkout-bar: 30;--z-deck-media-topbar: 31;--z-deck-feedback: 32;--z-deck-actions: 34;--z-deck-filter-chips: 40;--z-deck-menu-overlay: 42;--z-deck-header: 44;--z-plan-overlay-filter: 44;--z-deck-notice: 46;--z-checkout-bar-floating: 50;--z-topbar: 70;--z-app-nav: 80;--z-filter-button: 82;--z-filter-scrim: 88;--z-filter-sheet: 90;--z-account-menu: 110;--z-plan-swipe-overlay: 118;--z-app-nav-floating: 120;--z-filter-scrim-raised: 124;--z-consent: 125;--z-dialog: 130;--z-install-prompt: 140;--z-modal: 150;--z-modal-chrome: 154;--z-over-consent: 155;--z-toast: 156;--z-location-menu: 160;--z-help-overlay: 170;--z-auth-panel: 190;--z-scope-menu: 220;--z-topbar-menu-host: 230;--z-confirm-dialog: 260;--z-drag-preview: 320}}@layer base{*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);min-height:100vh;min-height:100dvh}button,input,select{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden{display:none!important}}@layer components{.eyebrow{margin:0;text-transform:uppercase;letter-spacing:0.16em;font-size:0.72rem;color:var(--muted)}.panel-card{backdrop-filter:blur(14px);background:var(--panel);border:1px solid rgba(255,255,255,0.65);box-shadow:var(--shadow)}.filters-panel{display:flex;flex-direction:column;gap:18px}.social-button:disabled{opacity:0.55;cursor:not-allowed}.panel-card{border-radius:var(--radius-lg);padding:18px}.stack-list{display:flex;flex-direction:column;gap:12px}.stack-item{padding:14px;border-radius:16px;background:rgba(255,255,255,0.6);border:1px solid rgba(27,29,25,0.08)}.stack-item p{margin:4px 0 0;color:var(--muted)}.deck-header-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.swipe-context{display:flex;flex-direction:column;gap:12px;flex:1}.recipe-card.dragging{transition:none}.recipe-card.swipe-right{transform:translateX(120%) rotate(12deg);opacity:0}.recipe-card.swipe-left{transform:translateX(-120%) rotate(-12deg);opacity:0}.badge-row{display:flex;flex-wrap:wrap;gap:10px}.portion-controls::before{content:"Servings";min-width:auto;color:var(--ink);font-size:0.88rem;font-weight:800}.portion-button:disabled{color:var(--muted);cursor:default;opacity:0.55}.ingredient-price-name,.ingredient-price-cell{display:flex;flex-direction:column;gap:3px;min-width:0}.ingredient-price-name span,.ingredient-price-cell span,.ingredient-price-cell small{color:var(--muted);font-size:0.82rem;line-height:1.25}.ingredient-price-cell a:hover{text-decoration:underline}.product-source-note{color:var(--muted)}.ingredient-price-checked{display:block;color:var(--muted);font-size:0.72rem;line-height:1.3}.ingredient-price-checked.is-stale{color:var(--color-warning)}.ingredient-retailer-price.is-stale{text-decoration:underline dotted;text-underline-offset:3px}.promotion-strip span{display:block;font-size:0.82rem;color:var(--muted)}.swipe-action:hover::after,.swipe-action:focus-visible::after{opacity:1;transform:translateX(50%) translateY(0)}.action-save svg{fill:none;stroke-width:2.2}.action-save.is-saved svg,.action-save[aria-pressed=true] svg{fill:currentColor;stroke-width:1.8}@media(max-width:1180px){.filters-panel{order:2}}@media(max-width:760px){.auth-grid,.social-row,.deck-header-actions,.swipe-settings{grid-template-columns:1fr;flex-direction:column}}.login-hint p{margin:6px 0 0}.filters-panel{position:sticky;top:74px;max-height:calc(100vh - 92px);overflow:auto;padding-bottom:4px}.panel-card,.stack-item{border-radius:var(--radius-lg)}.panel-card{background:var(--panel);border:1px solid var(--line);backdrop-filter:none}.filters-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.filters-card summary::-webkit-details-marker{display:none}.filters-card summary strong{display:block;margin-top:3px}.deck-header-actions{align-items:end}.swipe-settings label{min-width:150px}.stack-item{background:var(--color-surface);border:1px solid var(--line)}.topbar-actions .ghost-button{min-height:42px;border-radius:999px;background:var(--color-surface);box-shadow:0 8px 22px rgba(22,34,28,0.08)}.recipe-card.swipe-right,.recipe-card.swipe-left{transition:transform 200ms ease,opacity 200ms ease}.recipe-hero::after{content:"";position:absolute;inset:34% 0 0;background:linear-gradient(180deg,transparent,rgba(0,0,0,0.82));pointer-events:none}.swipe-feedback-mark svg{width:46px;height:46px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.8}.swipe-feedback-mark span{font-size:0.72rem}.recipe-card[data-swipe-intent=accept] .swipe-feedback-accept,.recipe-card[data-swipe-intent=reject] .swipe-feedback-reject{display:grid}.side-panel .panel-card{border-color:rgba(17,19,18,0.06);border-radius:24px;background:var(--color-surface);box-shadow:0 16px 38px rgba(22,34,28,0.09)}.stack-item{border-radius:18px;background:var(--color-surface)}.cooking-mode{border:1px solid rgba(17,19,18,0.06);border-radius:24px;background:var(--color-surface);box-shadow:0 16px 38px rgba(22,34,28,0.09)}.recipe-detail-card .primary-button,.recipe-stepper .primary-button{min-height:50px;background:#43a33d;box-shadow:0 8px 18px rgba(67,163,61,0.28);font-weight:700}.recipe-detail-tabs .active-tab::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;border-radius:999px 999px 0 0;background:#43a33d}.recipe-detail-list,.recipe-step-list{margin:0;padding:0;list-style:none}.recipe-detail-list li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.ingredient-retailer-price{display:inline-flex;align-items:center;justify-content:flex-end;min-height:34px;font-weight:700;text-decoration:none;white-space:nowrap}.ingredient-retailer-price:hover{text-decoration:underline}.missing-price{color:rgba(17,19,18,0.32)}.recipe-step-list{display:grid;gap:12px;counter-reset:recipe-step}.recipe-step-list li{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fbfbfa}.recipe-step-card img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.recipe-step-card div{padding:14px}.recipe-step-list p{margin:6px 0 0;color:var(--muted)}.recipe-step-empty{padding:18px;border-radius:18px;background:#f6f7f2;color:var(--muted)}.recipe-stepper-progress{display:grid;gap:16px;color:rgba(255,255,255,0.72)}.recipe-stepper-copy{display:grid;gap:12px}.nutrition-panel{display:grid;gap:16px}.nutrition-panel p{margin:0}.nutrition-group{display:grid;gap:10px}.nutrition-group>p{color:#47524c;font-weight:800}.nutrition-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nutrition-metric-grid div{min-height:76px;padding:14px;border:1px solid rgba(17,19,18,0.1);border-radius:8px;background:#fbfbfa}.nutrition-metric-grid strong,.nutrition-metric-grid span,.nutrition-metric-grid em{display:block}.nutrition-metric-grid strong{color:#111412;font-size:1.22rem;line-height:1.1}.nutrition-metric-grid span{margin-top:5px;color:#59655f;font-size:0.9rem}.nutrition-metric-grid em{margin-top:8px;color:#167438;font-size:0.82rem;font-style:normal;font-weight:800}.nutrition-source-note{color:#66736c;font-size:0.82rem;line-height:1.35}.nutrition-source-note a{color:#167438;font-weight:800}.nutrition-dropdown{border:1px solid rgba(17,19,18,0.1);border-radius:8px;background:#fbfbfa}.nutrition-dropdown summary{min-height:48px;padding:14px;cursor:pointer;font-weight:800}.nutrition-row-list{display:grid;padding:0 14px 14px}.nutrition-row-list div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:38px;border-top:1px solid rgba(17,19,18,0.08)}.nutrition-row-list span{color:#404a44}.nutrition-row-list strong{color:#111412}.nutrition-row-list em{color:#167438;font-style:normal;font-weight:800;white-space:nowrap}.nutrition-empty{margin:0;padding:0 14px 14px;color:#66736c;font-size:0.86rem;line-height:1.35}.cooking-mode{width:min(100%,960px);margin:0 auto;overflow:hidden;border:1px solid var(--color-border);border-radius:26px;background:var(--color-surface);color:#071126;box-shadow:0 18px 48px rgba(15,23,42,0.14)}.cooking-mode-inner{min-height:min(700px,calc(100dvh - 86px));display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:22px 22px calc(22px + env(safe-area-inset-bottom,0px))}.cooking-mode-brand span{display:grid;width:32px;height:32px;place-items:center;color:var(--color-primary);font-size:1.25rem;font-weight:950}.cooking-mode-brand strong{color:var(--color-heading);font-weight:950}.cooking-progress{display:grid;gap:8px;color:var(--color-heading);font-size:0.88rem;font-weight:800}.cooking-progress div{height:8px;overflow:hidden;border-radius:999px;background:#e7edf5}.cooking-progress span span,#cooking-progress-bar{display:block}#cooking-progress-bar{height:100%;border-radius:inherit;background:var(--color-primary)}#cooking-progress-bar.complete-progress{background:var(--color-success)}.cooking-step-layout{display:grid;gap:20px;align-items:center}.cooking-step-copy{display:grid;gap:10px}.cooking-step-copy>strong{color:var(--color-primary);font-size:1rem;font-weight:950}.cooking-mode h3{max-width:720px;margin:0;color:#071126;font-size:clamp(1.75rem,4vw,2.35rem);line-height:1.08;letter-spacing:0}.complete-cooking-mode .cooking-step-layout{justify-items:center;text-align:center}.complete-cooking-mode .cooking-step-copy>strong,.complete-cooking-mode h3{color:var(--color-success)}.cooking-actions{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:10px;background:linear-gradient(180deg,rgba(255,255,255,0),var(--color-surface) 28%)}.cooking-actions button{min-height:52px;border-radius:14px;font-size:1rem}body.is-cooking-mode .weekly-shop-header,body.is-cooking-mode .recipe-list-panel{display:none!important}body.is-cooking-mode .topbar,body.is-cooking-mode .legal-footer{display:none!important}body.is-cooking-mode .page-shell{width:min(100%,1040px);padding:12px 12px calc(88px + env(safe-area-inset-bottom,0px))}@media(min-width:768px){.cooking-step-layout{grid-template-columns:minmax(0,1.05fr) minmax(240px,0.95fr)}.complete-cooking-mode .cooking-step-layout{grid-template-columns:minmax(0,1fr) 260px}}@media(max-width:620px){.cooking-mode{width:100%;min-height:calc(100dvh - 24px);border-radius:22px}.cooking-mode-inner{min-height:calc(100dvh - 30px);padding:16px}}.topbar-actions .secondary-button,.topbar-actions .ghost-button{min-height:40px;padding:9px 12px;box-shadow:none}body:not(.has-active-recipe) .recipe-detail-card{display:none!important}.ingredient-retailer-price{font-size:0.92rem}@media(max-width:900px){.filters-panel{position:static;max-height:none;overflow:visible;order:2}.deck-header-actions,.swipe-context,.swipe-settings{align-items:stretch}}@media(max-width:620px){.panel-card{padding:14px}}@media(max-width:620px){.ingredient-retailer-price{font-size:0.9rem}}.ingredient-serving-stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:8px 0 4px;color:#111412}.ingredient-serving-stepper>span{font-weight:800}.ingredient-serving-stepper>div{display:grid;grid-template-columns:44px 58px 44px;align-items:center;overflow:hidden;border:1px solid rgba(17,19,18,0.16);border-radius:999px;background:#f7f8f5}.ingredient-serving-stepper button{display:inline-grid;place-items:center;width:44px;min-height:44px;border:0;background:transparent;color:#167438;cursor:pointer;font-size:1.18rem;font-weight:900;line-height:1}.ingredient-serving-stepper button:disabled{color:rgba(17,19,18,0.28);cursor:default}body[data-active-recipe-tab=ingredients] .recipe-ingredient-name{color:#111412}body[data-active-recipe-tab=steps] .recipe-stepper-actions .primary-button{min-height:50px}}.ingredient-retailer-price:has(.ingredient-pack-label){flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.25}.ingredient-pack-label{font-size:0.72rem;font-weight:400}.recipe-ingredient-headings{font-size:0.72rem;padding-top:8px;padding-bottom:8px}@layer components{body[data-active-view=pending] .app-journey-nav,body[data-active-view=recipes] .app-journey-nav{display:none}body[data-active-view=pending] #topbar-login-button{visibility:hidden}*{letter-spacing:0}html{background:var(--color-background)}body{--app-shell-max-width: 430px;--app-shell-inline-padding: 12px;--app-shell-section-padding: 18px;--app-shell-bottom-nav-space: 84px;--topbar-avatar-size: 42px;--recipe-card-inline-padding: 14px;--recipe-card-block-gap: 10px;--recipe-action-height: 48px;--recipe-image-height: 188px;display:block;margin:0;color:var(--color-graphite);background:var(--color-background);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page-shell{width:100%;max-width:none;min-height:100dvh;padding:0 0 var(--app-shell-bottom-nav-space);overflow-x:hidden;background:var(--color-background);box-shadow:none}.topbar{position:sticky;top:0;z-index:var(--z-topbar);display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:center;min-height:64px;margin:0;padding:12px 16px;background:rgba(255,255,255,0.96);border-bottom:1px solid var(--color-border);backdrop-filter:blur(16px)}.brand-lockup{display:inline-flex;align-items:center;gap:8px;min-width:0;color:inherit;text-decoration:none}.brand-mark{position:relative;display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 auto}.brand-w{position:absolute;left:0;bottom:-1px;color:var(--color-primary);font-size:29px;font-weight:900;line-height:1}.brand-arc{position:absolute;left:2px;top:3px;width:18px;height:12px;border:4px solid var(--color-green);border-bottom:0;border-radius:18px 18px 0 0;transform:rotate(-3deg)}.brand-check{position:absolute;right:1px;top:6px;width:22px;height:12px;border-left:5px solid var(--color-primary);border-bottom:5px solid var(--color-primary);transform:rotate(-45deg);border-radius:3px}.brand-copy{display:flex;min-width:0;flex-direction:column;gap:1px}.brand-copy strong{color:var(--color-heading);font-size:1.12rem;font-weight:800;line-height:1}.brand-copy span{color:var(--color-success);font-size:0.68rem;font-weight:600;line-height:1.1}.topbar-actions{display:inline-flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end;position:relative;width:auto!important;gap:8px}.session-pill{display:inline-flex;align-items:center;min-height:36px;width:auto!important;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-graphite);box-shadow:none;font-size:0.8rem;font-weight:700}#topbar-login-button{display:inline-grid;min-height:var(--topbar-avatar-size);height:var(--topbar-avatar-size);padding:0 14px;place-items:center;border-radius:var(--radius-pill);white-space:nowrap;color:var(--color-primary);font-size:0.82rem;font-weight:800}#logout-button{display:grid;min-width:var(--topbar-avatar-size);min-height:var(--topbar-avatar-size);width:var(--topbar-avatar-size)!important;height:var(--topbar-avatar-size);place-items:center;padding:0;border-radius:var(--radius-pill);overflow:hidden;text-indent:0;white-space:nowrap;color:transparent;font-size:0}#topbar-login-button,#logout-button{background:#f2f5f8;border:1px solid var(--color-border)}.layout,.app-shell{display:block;width:100%}.view-panel{display:none;width:100%;padding:0}.view-panel.active-view-panel{display:block}.side-panel{display:var(--side-panel-display, none)!important}.app-nav{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:var(--z-app-nav);display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:none;margin:0;padding:7px max(12px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right));border:0;border-top:1px solid var(--color-border);border-radius:0;background:rgba(255,255,255,0.98);box-shadow:0 -8px 20px rgba(15,23,42,0.08);backdrop-filter:blur(16px)}.nav-button{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:24px 18px 4px;align-items:center;justify-items:center;justify-content:stretch;gap:4px;min-width:0;min-height:62px;padding:4px 6px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-slate);font-size:0.72rem;font-weight:700;text-align:center}.app-journey-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;height:calc(var(--journey-nav-block, 68px) - 24px);margin:12px auto;padding:0 16px;max-width:1120px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.app-journey-nav::-webkit-scrollbar{display:none}.app-journey-nav[hidden]{display:none}.app-journey-nav a{display:inline-flex;flex:0 0 auto;align-items:center;min-height:var(--control-min-height);padding:8px 12px;border-radius:var(--radius-md);color:var(--color-primary-text);text-decoration:none;white-space:nowrap}.app-journey-nav a[aria-current=step]{background:var(--color-surface);font-weight:700}.app-journey-nav label{display:flex;flex:0 0 auto;align-items:center;gap:8px;white-space:nowrap}@media(max-width:767px){.app-journey-nav{gap:4px;height:calc(var(--journey-nav-block, 48px) - 12px);margin:6px auto;padding:0 12px;font-size:0.82rem}.app-journey-nav a{min-height:36px;padding:6px 10px}.app-journey-nav select{min-height:36px;padding-block:4px}}.nav-button::before{content:"";display:block;grid-row:1;align-self:center;justify-self:center;width:22px;height:22px;background:currentColor;transform:none;-webkit-mask:var(--nav-icon) center / contain no-repeat;mask:var(--nav-icon) center / contain no-repeat;line-height:1}.nav-button span{grid-row:2;display:block;width:auto;max-width:100%;justify-self:center;line-height:1;text-align:center}.nav-button.active-view{background:transparent;color:var(--color-primary-text)}.nav-button.active-view::after{content:"";grid-row:3;display:block;align-self:end;justify-self:center;width:22px;height:3px;margin:0 auto;border-radius:var(--radius-pill);background:var(--color-primary);text-align:center}.swipe-grid,.recipes-layout{display:grid;grid-template-columns:1fr;gap:0}.deck-panel,.my-recipes-panel{max-width:var(--app-shell-max-width);margin:0 auto;padding:0 var(--app-shell-inline-padding) var(--app-shell-section-padding)}.deck-header,.weekly-shop-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 8px;background:transparent;border:0;box-shadow:none}.deck-header .eyebrow,.weekly-shop-header .eyebrow{display:none}.deck-header h2,.weekly-shop-header h3{margin:0;color:var(--color-heading);font-size:1.55rem;font-weight:800;line-height:1.14}.deck-remaining,.filter-match-count{margin:4px 0 0;color:var(--color-slate);font-size:0.82rem;font-weight:700}.deck-status-row{display:inline-flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.deck-status-row .deck-remaining{margin:0}.deck-reshuffle-button{min-height:28px;padding:0 10px;border-radius:var(--radius-pill);font-size:0.72rem;font-weight:800;line-height:1;white-space:nowrap}.deck-header-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.deck-reshuffle-dialog{position:fixed;inset:0;z-index:var(--z-dialog);display:grid;place-items:center;padding:18px;background:rgba(15,23,42,0.42)}.deck-reshuffle-dialog.hidden{display:none!important}.deck-reshuffle-card{width:min(100%,420px);display:grid;gap:14px;padding:18px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);box-shadow:0 18px 50px rgba(15,23,42,0.22)}.deck-reshuffle-card h3,.deck-reshuffle-card p{margin:0}.deck-reshuffle-card p{color:var(--color-slate);line-height:1.4}.deck-reshuffle-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.weekly-shop-header .secondary-button{min-height:42px;padding-inline:12px;white-space:nowrap}#plan-share-result{margin-bottom:12px}.filter-chip-row{display:flex;gap:8px;width:100%;margin:4px 0 10px;overflow-x:auto;scrollbar-width:none}.filter-chip-row::-webkit-scrollbar{display:none}.filter-chip,.badge{display:inline-flex;align-items:center;min-height:30px;flex:0 0 auto;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-graphite);font-size:0.78rem;font-weight:700;line-height:1}.badge{color:var(--color-primary);background:#f7fbff}.badge:nth-child(odd){color:var(--color-tomato)}.recipe-image-rating-badge,.recipe-library-card .recipe-rating-badge,.recipe-list-item .recipe-rating-badge{position:absolute;top:10px;left:10px;z-index:var(--z-deck-badge);pointer-events:none}.recipe-media-topbar{position:absolute;top:10px;left:10px;z-index:var(--z-deck-media-topbar);display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:calc(100% - 20px)}.recipe-media-topbar .recipe-image-rating-badge{position:static;inset:auto;z-index:auto}.recipe-thumb-frame{position:relative}.recipe-rating-badge{display:inline-flex;gap:6px;align-items:center;min-width:0;max-width:min(100%,150px);padding:6px 8px;border:1px solid rgba(255,255,255,0.22);border-radius:999px;background:rgba(15,23,42,0.68);color:var(--color-surface);box-shadow:0 10px 24px rgba(15,23,42,0.18);backdrop-filter:blur(12px);font-size:0.72rem;font-weight:900;line-height:1;white-space:nowrap}.recipe-rating-badge-stars{display:inline-flex;gap:1px}.recipe-rating-star{border:0;background:transparent;color:rgba(148,163,184,0.9);cursor:default;font-size:0.9rem;line-height:1;padding:0}.recipe-rating-star.is-selected{color:#f59e0b}.card-stage{min-height:0;width:100%;max-width:none}.recipe-card{width:100%;max-width:none;min-height:0;padding:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sheet);touch-action:pan-y}.recipe-hero{display:grid;grid-template-columns:1fr;min-height:0;border-radius:0;overflow:visible;background:transparent;color:var(--color-graphite)}.recipe-card .recipe-image{display:block;width:100%;height:var(--recipe-image-height);min-height:var(--recipe-image-height);object-fit:cover;background:#eef2f7}.recipe-hero-copy{padding:var(--recipe-card-inline-padding) var(--recipe-card-inline-padding) 4px;background:transparent;color:var(--color-graphite)}.rank-pill{display:none}.recipe-hero h3{max-width:none;margin:0 0 8px;color:var(--color-heading);font-size:1.55rem;font-weight:800;line-height:1.14}.recipe-description{margin:8px 0 12px;color:var(--color-graphite);font-size:0.92rem;line-height:1.42}.recipe-card .badge-row{gap:8px}.portion-controls{display:flex;gap:8px;padding:0 var(--recipe-card-inline-padding) var(--recipe-card-block-gap)}.portion-button{width:44px;min-height:36px;border-radius:var(--radius-md);background:#f8fafc}.portion-input{min-height:36px;border-radius:var(--radius-md)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:4px var(--recipe-card-inline-padding) var(--recipe-card-block-gap);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.swipe-summary-grid .swipe-summary-primary{grid-column:span 2}.swipe-summary-grid .swipe-summary-nutrient{border-top:1px solid var(--color-border)}.swipe-summary-grid .swipe-summary-primary:nth-child(2),.swipe-summary-grid .swipe-summary-nutrient:last-child{border-right:0}.stats-grid div,.comparison-grid div{min-height:64px;padding:10px 8px;border:0;border-right:1px solid var(--color-border);border-radius:0;background:var(--color-surface);box-shadow:none}.stats-grid div:last-child,.comparison-grid div:last-child{border-right:0}.stats-grid span,.comparison-grid span{display:block;color:var(--color-slate);font-size:0.7rem;font-weight:600;line-height:1.15}.stats-grid>div>strong,.comparison-grid>div>strong{display:block;color:var(--color-graphite);font-size:0.98rem;font-weight:800;line-height:1.1}.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 var(--recipe-card-inline-padding) var(--recipe-card-block-gap);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.comparison-grid div:nth-child(2) strong{color:var(--color-coles)}.comparison-grid div:nth-child(1) strong,.comparison-grid div:nth-child(3) strong{color:var(--color-success)}.promotion-strip{display:grid;grid-template-columns:1fr auto;margin:0 var(--recipe-card-inline-padding) var(--recipe-card-block-gap);padding:10px 12px;border:1px solid rgba(17,137,90,0.28);border-radius:var(--radius-md);background:#effaf4}.promotion-strip strong{color:var(--color-success);font-size:0.95rem}.promotion-strip p{color:var(--color-graphite);font-size:0.78rem}.recipe-meta{display:none;margin:0;padding:0;border-radius:0;background:transparent}.recipe-meta>p{display:none}.ingredient-price-lines{gap:8px;margin-top:0}.ingredient-price-row{grid-template-columns:minmax(0,1fr) minmax(70px,auto) minmax(90px,auto);min-height:56px;padding:9px 0;border:0;border-top:1px solid var(--color-border);border-radius:0;background:transparent}.ingredient-price-name strong,.ingredient-price-cell a,.ingredient-price-cell strong{color:var(--color-graphite);font-size:0.82rem;font-weight:800}.ingredient-price-cell:nth-child(2) a,.ingredient-price-cell:nth-child(2) strong{color:var(--color-coles)}.ingredient-price-cell:nth-child(3) a,.ingredient-price-cell:nth-child(3) strong{color:var(--color-success)}.action-row{position:static;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:auto;margin:0;padding:12px var(--recipe-card-inline-padding) var(--recipe-card-inline-padding);background:var(--color-surface)}.recipe-card .action-row{left:auto!important;right:auto!important;transform:none!important;width:auto!important}.recipe-card .swipe-action{width:auto!important}.swipe-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;min-width:0;min-height:var(--recipe-action-height);height:var(--recipe-action-height);padding:0 12px;border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary);box-shadow:none;font-size:0.82rem;font-weight:800}.swipe-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.action-accept{order:4;grid-column:span 2;background:var(--color-primary);color:var(--color-surface)}.action-save{order:3}.action-reject{order:1;color:var(--color-graphite);border-color:var(--color-border)}.action-never{order:2;color:var(--color-graphite);border-color:var(--color-border)}.swipe-action::after{display:none}.swipe-feedback{inset:0}.swipe-feedback-mark{border-radius:0;font-size:1.25rem;backdrop-filter:blur(1px)}.swipe-feedback-accept{background:rgba(17,137,90,0.72)}.swipe-feedback-reject{background:rgba(198,60,60,0.72)}.recipe-menu-overlay{position:static}.recipe-menu-button{position:fixed;right:16px;bottom:var(--app-shell-bottom-nav-space);z-index:var(--z-filter-button);display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:54px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-modal)}.recipe-menu-button span{display:none}.recipe-menu-button svg{width:24px;height:24px}body[data-active-view]:not([data-active-view=swipe]) .recipe-menu-button,body[data-active-view]:not([data-active-view=swipe]) .recipe-menu-panel{display:none!important}.swipe-settings,.filter-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.filter-fields{grid-template-columns:1fr}.filter-choice-group{display:grid;gap:8px;grid-column:1 / -1;min-width:0}.filter-choice-group>span{color:var(--color-graphite);font-size:0.78rem;font-weight:800}.filter-choice-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;grid-column:1 / -1}.filter-choice-row button{min-height:40px;min-width:0;padding:7px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-graphite);box-shadow:none;font-size:0.76rem;font-weight:800;overflow-wrap:anywhere;white-space:normal}.filter-choice-row .active-choice{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-surface)}.recipe-menu-panel .ghost-button,.recipe-menu-panel .secondary-button{min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-graphite);box-shadow:none}label,.panel-form label,.panel-card label{color:var(--color-graphite);font-size:0.78rem;font-weight:700}.check-row{display:flex!important;align-items:center;gap:10px;min-height:44px}.check-row input{min-height:auto}.empty-state,.shopping-empty{display:grid;place-items:center;min-height:480px;padding:24px;text-align:center;border:0;border-radius:0;background:transparent;box-shadow:none}.empty-state h3,.shopping-empty strong{color:var(--color-heading);font-size:1.15rem;font-weight:800}.empty-state p,.shopping-empty p,.microcopy{color:var(--color-slate)}.auth-panel{position:fixed;inset:0;z-index:var(--z-auth-panel);display:grid;place-items:center;padding:20px 16px;overflow-y:auto;background:rgba(247,249,251,0.94)}.auth-card{position:relative;width:min(390px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-modal)}.auth-brand-lockup{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--color-heading);font-size:1rem;font-weight:900}.auth-brand-lockup .brand-mark{width:34px;height:34px}.auth-copy h2{margin:0 0 8px;color:var(--color-heading);font-size:1.35rem;font-weight:800;line-height:1.18}.auth-copy p{color:var(--color-slate);font-size:0.9rem}.auth-copy>.eyebrow,.auth-copy>h2,.auth-copy>p:not(.eyebrow){display:none}.auth-mode-tabs{display:none;grid-template-columns:1fr 1fr;gap:0;margin:14px 0;border-bottom:1px solid var(--color-border)}.auth-mode-tabs button{min-height:44px;border:0;border-radius:0;background:transparent;color:var(--color-slate);font-weight:800}.auth-mode-tabs .active-tab{color:var(--color-primary);box-shadow:inset 0 -2px 0 var(--color-primary)}.auth-grid{display:grid;grid-template-columns:1fr;gap:14px}.panel-form{padding:0;background:transparent}.auth-card .panel-form{display:grid;gap:8px}.panel-form.hidden{display:none}.panel-form h3{margin:0 0 4px;color:var(--color-heading);font-size:1rem;font-weight:950}.panel-form .microcopy{margin-bottom:14px;font-size:0.78rem;line-height:1.35}.panel-form .field-label{gap:6px;color:var(--color-heading)}.panel-form .field-label>span:first-child{font-size:0.78rem;font-weight:800}.field-label input{width:100%;min-height:44px;border-radius:10px}.field-label.field-invalid input{border-color:var(--color-error);background:#fff7f7;box-shadow:0 0 0 2px rgba(239,68,68,0.1)}.field-error{color:var(--color-error);font-size:0.72rem;font-weight:800}.field-error:empty{display:none}.password-requirements{display:grid;gap:4px;margin:-1px 0 2px;padding:0;color:var(--color-slate);font-size:0.72rem;font-weight:800;list-style:none}.password-requirements[hidden]{display:none}.password-requirements li{display:flex;align-items:center;gap:6px}.password-requirements li::before{content:"";width:7px;height:7px;border-radius:999px;background:currentColor}.password-requirements .is-unmet{color:var(--color-error)}.password-requirements .is-met{color:var(--color-success)}.password-control{position:relative;display:block}.password-control input{padding-right:46px}:where(.auth-panel,.account-form) .password-toggle{position:absolute;top:50%;right:8px;width:32px;height:32px;border:0;border-radius:999px;background:transparent;cursor:pointer;transform:translateY(-50%)}:where(.auth-panel,.account-form) .password-toggle::before{content:"";position:absolute;inset:7px;background:var(--color-slate);-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat}:where(.auth-panel,.account-form) .password-toggle::after{content:"";position:absolute;display:none;top:8px;left:15px;width:2px;height:17px;border-radius:999px;background:var(--color-primary);transform:rotate(45deg)}:where(.auth-panel,.account-form) .password-toggle.is-visible{background:#eef4ff}:where(.auth-panel,.account-form) .password-toggle.is-visible::after{display:block}.auth-link{display:inline-flex;margin:-2px 0 4px;color:var(--color-primary);font-size:0.78rem;font-weight:800;text-decoration:none}.auth-switch-copy,.auth-legal-copy{margin:-2px 0 0;color:var(--color-slate);font-size:0.78rem;line-height:1.4}.auth-switch-copy button,.auth-legal-copy button{min-height:auto;border:0;padding:0;background:transparent;color:var(--color-primary);font:inherit;font-weight:800;cursor:pointer}.social-row{display:none;grid-template-columns:1fr;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.social-button{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--color-border);background:#f8fafc;color:var(--color-slate);text-align:left}.social-button span{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#eef2f7;color:var(--color-body-strong);font-size:0.72rem;font-weight:900}.social-button em{border-radius:999px;padding:4px 8px;background:#e8f0ff;color:var(--color-primary);font-size:0.68rem;font-style:normal;font-weight:900;white-space:nowrap}.status-line{display:none;min-height:0;margin:0 0 14px;padding:11px 14px;border:1px solid rgba(220,38,38,0.22);border-radius:12px;background:#fff1f2;color:#b91c1c;font-size:0.82rem;font-weight:800;line-height:1.35}.status-line.is-visible{display:block}.status-line.is-info{border-color:var(--color-border);background:var(--color-background);color:var(--color-primary-text)}#auth-close-button{display:block;width:fit-content;margin:0 0 12px auto;min-height:44px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:rgba(255,255,255,0.96);color:var(--color-heading);font-size:0.74rem;font-weight:800}.my-recipes-panel{padding-top:8px}.recipe-list-panel{display:block;max-height:none;padding:0;overflow:visible;background:transparent;border:0;box-shadow:none}.recipe-list{display:grid;grid-template-columns:1fr;gap:10px}.recipe-list-item{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr) 24px;min-height:108px;gap:12px;align-items:center;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-graphite);box-shadow:var(--shadow-card);text-decoration:none}.recipe-list-item img{width:104px;height:86px;border-radius:var(--radius-sm);object-fit:cover}.recipe-list-item strong{display:block;margin-bottom:4px;font-size:0.94rem;line-height:1.2}.recipe-list-item small{display:block;color:var(--color-slate);font-size:0.76rem}.recipe-list-item em{display:block;margin-top:8px;color:var(--color-success);font-size:0.75rem;font-style:normal;font-weight:800}.active-recipe-list-item{border-color:rgba(47,111,237,0.4);background:#eef4ff}body.has-active-recipe .page-shell{height:auto;min-height:100dvh;overflow:visible}.recipe-detail-hero,body.has-active-recipe .recipe-detail-hero,body[data-active-recipe-tab=ingredients] .recipe-detail-hero,body[data-active-recipe-tab=nutrition] .recipe-detail-hero{position:relative;inset:auto;height:230px;border-radius:0;background:#eef2f7}.recipe-detail-hero img{width:100%;height:100%;object-fit:cover;filter:none}.recipe-detail-hero .recipe-thumb-frame{width:100%;height:100%}.recipe-detail-hero::after,body.has-active-recipe .recipe-detail-hero::after{display:none}.recipe-detail-hero .swipe-action{position:absolute;right:14px;top:14px;width:44px;min-width:44px;height:44px;border-radius:var(--radius-pill);background:rgba(255,255,255,0.92)}.recipe-detail-body,body.has-active-recipe .recipe-detail-body,body[data-active-recipe-tab=ingredients] .recipe-detail-body,body[data-active-recipe-tab=nutrition] .recipe-detail-body{display:grid;grid-template-rows:auto auto auto auto auto auto;gap:12px;height:auto;min-height:0;margin:0;padding:16px 16px 18px;border-radius:0;background:var(--color-surface);color:var(--color-graphite);box-sizing:border-box;overflow-x:clip}.recipe-detail-body h3,body.has-active-recipe .recipe-detail-body h3{max-width:none;margin:0;color:var(--color-heading);font-size:1.45rem;line-height:1.15;text-shadow:none}#recipe-detail-description,body.has-active-recipe #recipe-detail-description{max-width:none;color:var(--color-graphite);font-size:0.9rem}#recipe-detail-badges{display:flex!important}body[data-active-recipe-tab=ingredients] #recipe-detail-title,body[data-active-recipe-tab=nutrition] #recipe-detail-title,body[data-active-recipe-tab=ingredients] #recipe-detail-description,body[data-active-recipe-tab=nutrition] #recipe-detail-description{display:block!important}body[data-active-recipe-tab=ingredients] #recipe-detail-badges,body[data-active-recipe-tab=nutrition] #recipe-detail-badges{display:flex!important}body[data-active-recipe-tab=ingredients] #recipe-detail-macros,body[data-active-recipe-tab=nutrition] #recipe-detail-macros{display:grid!important}.recipe-detail-card .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.recipe-detail-tabs,body.has-active-recipe .recipe-detail-tabs,body[data-active-recipe-tab=steps] .recipe-detail-tabs,body[data-active-recipe-tab=ingredients] .recipe-detail-tabs,body[data-active-recipe-tab=nutrition] .recipe-detail-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent;backdrop-filter:none}.recipe-detail-tabs button,body.has-active-recipe .recipe-detail-tabs button,body[data-active-recipe-tab=ingredients] .recipe-detail-tabs button,body[data-active-recipe-tab=nutrition] .recipe-detail-tabs button{min-height:44px;border:0;border-radius:0;background:transparent;color:var(--color-slate);font-size:0.78rem;font-weight:800}.recipe-detail-tabs .active-tab,body.has-active-recipe .recipe-detail-tabs .active-tab,body[data-active-recipe-tab=ingredients] .recipe-detail-tabs .active-tab,body[data-active-recipe-tab=nutrition] .recipe-detail-tabs .active-tab{color:var(--color-primary);background:transparent;box-shadow:inset 0 -2px 0 var(--color-primary)}.recipe-detail-section,body[data-active-recipe-tab=ingredients] .recipe-detail-section,body[data-active-recipe-tab=nutrition] .recipe-detail-section{overflow:visible;min-height:0;color:var(--color-graphite)}.recipe-ingredient-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.recipe-ingredient-grams,body.has-active-recipe .recipe-ingredient-grams{color:var(--color-graphite);overflow-wrap:anywhere;text-align:right}.coles-price{color:var(--color-coles)}.woolworths-price{color:var(--color-success)}.recipe-stepper,body[data-active-recipe-tab=steps] .recipe-stepper{display:grid;grid-template-rows:auto auto minmax(160px,1fr) auto;gap:18px;min-height:calc(100dvh - 176px);height:auto;margin:0;padding:0;border-radius:0;background:var(--color-surface)}.recipe-stepper-progress progress{width:100%;height:8px;overflow:hidden;border:0;border-radius:var(--radius-pill);background:#e7edf5;appearance:none}.recipe-stepper-progress progress::-webkit-progress-bar{border-radius:inherit;background:#e7edf5}.recipe-stepper-progress progress::-webkit-progress-value{border-radius:inherit;background:var(--color-primary)}.recipe-stepper.final-step .recipe-stepper-progress progress::-webkit-progress-value{background:var(--color-success)}.recipe-stepper-progress progress::-moz-progress-bar{border-radius:inherit;background:var(--color-primary)}.recipe-stepper.final-step .recipe-stepper-progress progress::-moz-progress-bar{background:var(--color-success)}.recipe-stepper-progress p{margin:8px 0 0;color:var(--color-heading);font-weight:800}.recipe-stepper-copy strong{display:none}.recipe-stepper.final-step .recipe-stepper-copy strong{display:block;margin-bottom:10px;color:var(--color-success);font-size:clamp(2rem,8vw,2.7rem);line-height:1.05}.recipe-stepper-copy p,body[data-active-recipe-tab=steps] .recipe-stepper-copy p{margin:0;color:var(--color-heading);font-size:clamp(1.75rem,7.2vw,2.35rem);font-weight:800;line-height:1.12}.recipe-stepper-image,body[data-active-recipe-tab=steps] .recipe-stepper-image{min-height:220px;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background-color:#eef3f0;background-repeat:no-repeat;background-size:contain;background-position:center}.recipe-stepper-image img,body[data-active-recipe-tab=steps] .recipe-stepper-image img{display:block;width:100%;height:100%;min-height:inherit;object-fit:contain}.recipe-stepper-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.shop-meals{display:none}.shopping-groups{gap:14px}.shopping-group{overflow:visible;border:0;border-radius:0;background:transparent}.calendar-grid{display:grid;grid-template-columns:1fr;gap:10px;overflow-x:auto;padding-bottom:4px}.calendar-day{padding:12px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:var(--shadow-card)}.calendar-day h4{color:var(--color-heading);font-size:1rem;font-weight:800}.calendar-slot{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:72px;margin-bottom:8px;padding:10px;border:1px dashed var(--color-border);border-radius:14px;background:#fbfcfd}.calendar-slot.drag-over{background:rgba(47,111,237,0.08);border-color:rgba(47,111,237,0.45)}.filled-calendar-slot{position:relative;overflow:hidden;border-style:solid;background:linear-gradient(90deg,rgba(255,255,255,0.9),rgba(255,255,255,0.58)),var(--calendar-entry-image, none) center / cover no-repeat,var(--color-surface);cursor:grab;touch-action:pan-y;user-select:none}.filled-calendar-slot:active{cursor:grabbing}.calendar-slot-label{position:relative;z-index:var(--z-surface-content);display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;color:var(--color-heading);font-size:0.72rem;font-weight:900}.filled-calendar-slot .calendar-slot-label::after{content:"";display:none}.calendar-drag-handle{display:inline-grid;width:26px;min-width:26px;height:26px;place-items:center;border:1px solid rgba(37,99,235,0.24);border-radius:999px;background:rgba(239,246,255,0.92);color:var(--color-primary);font-size:1rem;line-height:1;cursor:grab;touch-action:none;user-select:none}.calendar-drag-handle:active{cursor:grabbing}.calendar-entry{position:relative;z-index:var(--z-surface-content);display:grid;grid-template-columns:minmax(0,1fr);gap:5px;align-items:center;padding:0;padding-right:46px;background:transparent;cursor:grab}.calendar-entry::after{display:none}.filled-calendar-slot:hover .calendar-entry::after,.filled-calendar-slot:focus-visible .calendar-entry::after,.filled-calendar-slot.is-dragging .calendar-entry::after{background:rgba(37,99,235,0.1);opacity:1}.calendar-entry img{display:none;width:42px;height:42px;border-radius:10px;object-fit:cover;background:#eef2f7;-webkit-user-drag:none;user-select:none}.calendar-entry strong{display:block;max-width:calc(100% - 42px);color:var(--color-heading);font-size:0.9rem;line-height:1.12}.calendar-entry p{max-width:calc(100% - 42px);font-size:0.74rem;line-height:1.18}.calendar-swipe-button{min-width:38px;min-height:38px;padding:6px 8px;border-radius:999px;color:var(--color-primary);font-size:0.76rem}.calendar-slot-actions{display:inline-flex;flex-direction:column;gap:6px;justify-self:end;align-items:center;position:relative;z-index:var(--z-surface-raised)}.calendar-slot-actions .calendar-swipe-button,.calendar-remove-button,.calendar-confirm-remove-button{position:static;right:auto;bottom:auto;min-width:34px;min-height:34px;padding:0;border-radius:999px;font-size:1rem;font-weight:900}.calendar-remove-button{display:grid;place-items:center;color:var(--danger)}.calendar-remove-button svg{width:17px;height:17px}.calendar-remove-button path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.calendar-confirm-remove-button{min-width:68px;padding-inline:10px;border-color:#dc2626;background:#dc2626;color:var(--color-surface);font-size:0.76rem;box-shadow:0 10px 20px rgba(220,38,38,0.2)}.calendar-slot.is-confirming-remove .calendar-remove-button{background:#fff1f2;border-color:rgba(220,38,38,0.28)}.calendar-slot.is-confirming-remove .calendar-confirm-remove-button:hover,.calendar-slot.is-confirming-remove .calendar-confirm-remove-button:focus-visible{border-color:#b91c1c;background:#b91c1c;color:var(--color-surface)}.app-toast{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:var(--z-toast);pointer-events:none;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:430px;margin:0 auto;padding:12px 14px;border-radius:var(--radius-md);color:var(--color-surface);background:#111827;box-shadow:var(--shadow-modal);font-weight:800}#cookie-consent:not(.hidden)~.app-toast{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto;z-index:var(--z-over-consent)}.app-toast.success{background:var(--color-success)}.app-toast.error{background:var(--color-error)}.app-toast button{pointer-events:auto;min-height:44px;border:1px solid rgba(255,255,255,0.28);border-radius:var(--radius-sm);background:transparent;color:var(--color-surface)}.app-toast-message{min-width:0;overflow-wrap:anywhere}.app-toast-controls{display:flex;flex-wrap:wrap;flex-shrink:0;gap:var(--space-8)}@media(max-width:480px){.app-toast{flex-wrap:wrap}.app-toast-controls{margin-left:auto}}@media(min-width:768px){.page-shell{padding-left:92px;padding-bottom:0}.topbar{padding-right:24px}.app-nav{top:64px;bottom:0;right:auto;width:92px;grid-template-columns:1fr;grid-auto-rows:min-content;align-content:start;gap:8px;padding:18px 10px;border-top:0;border-right:1px solid var(--color-border);box-shadow:none}.nav-button{min-height:64px}.deck-panel,.my-recipes-panel{max-width:760px;padding:18px 24px 32px}.recipe-card{display:grid;grid-template-columns:minmax(260px,0.9fr) minmax(0,1.1fr);align-items:start}.recipe-card .recipe-hero,.recipe-card .recipe-meta,.recipe-card .action-row,.recipe-card .promotion-strip{grid-column:auto}.recipe-card .recipe-hero{grid-row:span 6}.recipe-image{height:360px;min-height:360px}.action-row{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-menu-button{right:28px;bottom:28px}.recipes-layout{grid-template-columns:minmax(260px,0.42fr) minmax(0,0.58fr);gap:18px}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1025px){.deck-panel,.my-recipes-panel{max-width:1120px}.swipe-grid{max-width:1120px;margin:0 auto}.recipe-card{grid-template-columns:minmax(320px,0.88fr) minmax(0,1.12fr) 180px}.action-row{grid-column:3;grid-row:1 / span 6;display:flex;flex-direction:column;padding:14px;border-left:1px solid var(--color-border)}.recipe-detail-hero,body.has-active-recipe .recipe-detail-hero,body[data-active-recipe-tab=ingredients] .recipe-detail-hero,body[data-active-recipe-tab=nutrition] .recipe-detail-hero{height:clamp(320px,42vw,520px);border-radius:0}.recipe-detail-body{padding:0}.shopping-line{grid-template-columns:minmax(220px,1fr) 90px 110px 130px minmax(180px,1fr)}}.nav-button[data-nav-icon=watchlist]{--nav-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4a5.4 5.4 0 0 0-5.4 5.4v3.2l-1.5 2.9a.9.9 0 0 0 .8 1.3h12.2a.9.9 0 0 0 .8-1.3l-1.5-2.9V9.4A5.4 5.4 0 0 0 12 4Z'/%3E%3Cpath d='M9.9 19.1a2.2 2.2 0 0 0 4.2 0'/%3E%3C/g%3E%3C/svg%3E")}.nav-button[data-nav-icon=plan]{--nav-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='16' rx='2'/%3E%3Cpath d='M8 3v4'/%3E%3Cpath d='M16 3v4'/%3E%3Cpath d='M4 10h16'/%3E%3Cpath d='M8 14h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 18h.01'/%3E%3Cpath d='M12 18h.01'/%3E%3C/g%3E%3C/svg%3E")}.nav-button[data-nav-icon=scan]{--nav-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8V5a1 1 0 0 1 1-1h3M16 4h3a1 1 0 0 1 1 1v3M20 16v3a1 1 0 0 1-1 1h-3M8 20H5a1 1 0 0 1-1-1v-3'/%3E%3Cpath d='M7 9v6M10 8v8M13 9v6M16 8v8'/%3E%3C/g%3E%3C/svg%3E")}.nav-button[data-nav-icon=recipes]{--nav-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v8'/%3E%3Cpath d='M4 3v4c0 2 1 4 3 4s3-2 3-4V3'/%3E%3Cpath d='M7 11v10'/%3E%3Cpath d='M17 3v18'/%3E%3Cpath d='M14 3h6'/%3E%3Cpath d='M14 7h6'/%3E%3C/g%3E%3C/svg%3E")}}@layer components{#logout-button::before{content:"A";display:grid;place-items:center;text-indent:0;color:var(--color-primary);font-size:0.92rem;font-weight:900}#logout-button[data-initial]::before{content:attr(data-initial)}#logout-button::before{width:100%;height:100%}.account-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:var(--z-account-menu);display:grid;gap:8px;width:min(300px,calc(100vw - 24px));padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-modal)}.account-menu.hidden{display:none}.account-menu-profile{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--color-border)}#account-menu-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-pill);background:#eaf1ff;color:var(--color-primary);font-weight:900}.account-menu-profile strong{color:var(--color-heading);font-size:0.95rem}.account-menu-profile p,.account-menu-status p{margin:2px 0 0;color:var(--color-slate);font-size:0.76rem}.account-menu-status{padding:10px;border:1px solid rgba(17,137,90,0.22);border-radius:var(--radius-md);background:#effaf4}.account-menu-status strong{color:var(--color-success);font-size:0.82rem}.account-menu>button{display:flex;align-items:center;min-height:42px;padding:9px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-graphite);font-weight:800;text-align:left}.account-menu>button:hover,.account-menu>button:focus-visible{background:#f2f6fb}#account-signout-button{color:var(--color-error)}.account-menu>button.account-menu-quiet{min-height:34px;padding-top:5px;padding-bottom:5px;color:var(--color-slate);font-weight:600;font-size:0.92rem}.empty-state::before,.shopping-empty::before{content:"";width:92px;height:92px;background:linear-gradient(var(--color-primary),var(--color-primary)) 50% 35% / 34px 4px no-repeat,linear-gradient(var(--color-primary),var(--color-primary)) 50% 50% / 48px 4px no-repeat,linear-gradient(var(--color-primary),var(--color-primary)) 50% 65% / 34px 4px no-repeat,#eaf1ff;opacity:0.78}.weekly-shop-panel .shopping-empty{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;min-height:0;margin-top:12px;padding:12px 14px;place-items:start;text-align:left;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface)}.weekly-shop-panel .shopping-empty::before{display:none}.weekly-shop-panel .shopping-empty .primary-button{grid-column:2;grid-row:1 / 3;align-self:center;margin-top:0;white-space:nowrap}.weekly-shop-panel .shopping-empty p{margin:0}.weekly-shop-panel .shopping-empty strong,.weekly-shop-panel .shopping-empty p{grid-column:1}@media(max-width:640px){.weekly-shop-panel .shopping-empty{min-height:0;padding:10px 12px}.weekly-shop-panel .shopping-empty p{display:none}.weekly-shop-panel .shopping-empty .primary-button{grid-row:1}}.recipe-list-item>span[aria-hidden=true]{color:transparent;font-size:0}.recipe-list-item>span[aria-hidden=true]::before{content:">";color:var(--color-slate);font-size:0.95rem;font-weight:900}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recipe-library-controls{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:8px;align-items:center}.recipe-library-controls .recipe-library-search input[type=search]{width:100%;padding-left:38px;background:var(--color-surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6879' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.6-3.6'/></svg>") no-repeat 12px center / 18px 18px}.recipe-library-controls .ghost-button{min-height:44px;font-size:0.78rem}.recipe-library-controls .active-filter-button{border-color:var(--color-primary);background:#eaf1ff;color:var(--color-primary)}.recipe-library-filter-panel{display:grid;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.recipe-library-filter-panel .filter-choice-group{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;align-items:start;grid-column:auto}.recipe-library-filter-panel .filter-choice-row{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-library-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.recipe-library-filter-actions button{min-height:44px}.recipe-library-tabs,#shop-summary .shop-mode-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;min-height:46px;border-bottom:1px solid var(--color-border)}#shop-summary .shop-mode-tabs{grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1 / -1;margin-bottom:4px}.recipe-library-tabs button,#shop-summary .shop-mode-tabs button{min-height:44px;border:0;border-radius:0;background:transparent;color:var(--color-slate);font-size:0.78rem;font-weight:800}.recipe-library-tabs .active-tab,#shop-summary .shop-mode-tabs .active-tab{color:var(--color-primary-text);box-shadow:inset 0 -2px 0 var(--color-primary)}.recipe-library-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 2px 0}.recipe-library-section-title strong{color:var(--color-heading);font-size:1rem;font-weight:800}.recipe-library-section-title span{color:var(--color-slate);font-size:0.76rem;font-weight:700}.recipe-card-list,.recipe-card-grid{display:grid;grid-template-columns:1fr;gap:10px}.recipe-library-block{display:grid;gap:10px}.recipe-library-card{position:relative;display:grid;grid-template-rows:132px auto auto auto;gap:7px;min-width:0;min-height:238px;padding:0 0 9px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-graphite);box-shadow:var(--shadow-card);text-decoration:none}.recipe-library-card img{width:100%;height:132px;object-fit:cover;background:#eef2f7}.recipe-library-card strong,.recipe-library-card>small{display:block;padding:0 10px}.recipe-library-card strong{color:var(--color-heading);font-size:0.86rem;font-weight:900;line-height:1.18;min-height:2.05em}.recipe-library-card>small{color:var(--color-slate);font-size:0.72rem;line-height:1.28;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-library-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:2px 10px 0;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:#f8fafc}.recipe-library-metrics span{min-width:0;padding:6px 4px;border-right:1px solid var(--color-border);text-align:center}.recipe-library-metrics span:last-child{border-right:0}.recipe-library-metrics strong{display:block;min-height:0;padding:0;color:var(--color-heading);font-size:0.72rem;font-weight:900;line-height:1.05;white-space:nowrap}.recipe-library-metrics small{display:block;margin-top:3px;color:var(--color-slate);font-size:0.58rem;font-weight:800;line-height:1;white-space:nowrap}.library-save-dot{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:rgba(255,255,255,0.92)}.library-save-dot svg{width:18px;height:18px;fill:none;stroke:var(--color-slate);stroke-width:2;stroke-linejoin:round}.recipe-library-card.is-saved .library-save-dot svg,.recipe-list-item.is-saved>span[aria-hidden=true]::before{fill:var(--color-primary);stroke:var(--color-primary)}.empty-library{display:grid;place-items:center;gap:8px;min-height:280px;text-align:center}.empty-library strong{color:var(--color-heading);font-size:1.08rem}#shop-summary .shop-mode-tabs+.metric-item{margin-top:8px}.weekly-shop-panel .shop-checkout-bar{position:sticky;left:0;right:0;bottom:82px;z-index:var(--z-checkout-bar-floating);display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);gap:10px;align-items:center;margin:18px 0 0;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,0.98);box-shadow:var(--shadow-modal)}body[data-active-view=shop] .weekly-shop-panel .shop-checkout-bar{position:fixed;left:104px;right:24px;bottom:24px;max-width:520px;margin:0 0 0 auto}.weekly-shop-panel .shop-checkout-bar span{display:block;color:var(--color-slate);font-size:0.72rem;font-weight:700}.weekly-shop-panel .shop-checkout-bar strong{color:var(--color-success);font-size:1.05rem;font-weight:900}.weekly-shop-panel .shop-checkout-bar small{color:var(--color-slate);font-size:0.76rem;font-weight:700;line-height:1.35;text-align:right}.weekly-shop-panel .shop-checkout-bar .primary-button{min-height:48px;padding-inline:10px;font-size:0.78rem}.success-button{border-color:var(--color-success);background:var(--color-success);color:var(--color-surface)}.plan-nutrition-summary{grid-column:1 / -1;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.plan-nutrition-summary summary{color:var(--color-heading);cursor:pointer;font-size:0.85rem;font-weight:800}.plan-nutrition-grid{display:grid;gap:8px;margin-top:12px}.plan-nutrition-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;min-height:36px;padding:8px;border-radius:var(--radius-sm);background:var(--color-background)}.plan-nutrition-row strong,.plan-nutrition-row em{color:var(--color-heading);font-style:normal;font-weight:800}.di-tone-green em,.macro-di.di-tone-green{color:var(--color-success)}.di-tone-yellow em,.macro-di.di-tone-yellow{color:#b45309}.di-tone-red em,.macro-di.di-tone-red{color:#dc2626}.plan-nutrition-summary p{margin:10px 0 0;color:var(--color-slate);font-size:0.76rem}@media(max-width:767px){.login-hint{margin:0;border-left:0;border-right:0;border-radius:0}.login-hint-actions .secondary-button{display:none}.weekly-shop-panel{padding-bottom:96px}body[data-active-view=shop] .weekly-shop-panel .shop-checkout-bar{left:12px;right:12px;bottom:calc(118px + env(safe-area-inset-bottom,0px));max-width:none}}@media(min-width:768px){.recipe-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-shop-panel .shop-checkout-bar{bottom:24px;max-width:520px;margin-left:auto}}@media(min-width:1025px){.recipe-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.deck-panel .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.deck-panel .stats-grid strong,.deck-panel .comparison-grid strong{overflow-wrap:anywhere}.deck-panel .recipe-hero::after{display:none!important}body.has-active-recipe .recipes-layout{display:block!important}body:not(.has-active-recipe) .recipes-layout{display:block!important}body.has-active-recipe .my-recipes-panel{max-width:1120px}body:not(.has-active-recipe) .my-recipes-panel{max-width:1120px}body:not(.has-active-recipe) .recipe-list-panel{width:100%}body[data-active-view=account] #login-hint,body[data-active-view=privacy] #login-hint,body[data-active-view=terms] #login-hint,body[data-active-view=share] #login-hint{display:none}@media(min-width:1025px){body.has-active-recipe[data-active-view=recipes] #recipe-detail.recipe-detail-card{width:min(100%,1120px);max-width:1120px}}@media(min-width:1025px){body.has-active-recipe[data-active-view=recipes] #recipe-detail.recipe-detail-card{display:block!important;grid-template-columns:none!important}body.has-active-recipe .recipe-ingredient-row{grid-template-columns:minmax(150px,1fr) 70px 90px 96px!important}}@media(max-width:1024px){body.has-active-recipe[data-active-view=recipes] #recipe-detail.recipe-detail-card{width:min(100%,1120px);max-width:1120px}}@media(max-width:767px){.account-grid{columns:1}.account-summary-card{grid-template-columns:1fr}.account-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.account-summary-metrics div:nth-child(2n){border-right:0}.account-summary-metrics div:nth-child(n+3){border-top:1px solid var(--color-border)}.account-collection{grid-template-columns:1fr}.public-share-shopping-row{grid-template-columns:1fr}.recipe-library-controls{grid-template-columns:minmax(0,1fr) 86px}.recipe-library-filter-panel .filter-choice-group{grid-template-columns:1fr}.recipe-library-filter-panel .filter-choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}}body[data-active-view=account] #login-hint,body[data-active-view=privacy] #login-hint,body[data-active-view=terms] #login-hint,body[data-active-view=share] #login-hint{display:none!important}body:has(#auth-panel:not(.hidden)) #cookie-consent,body:has(#recipe-menu-panel:not(.hidden)) #cookie-consent,body:has(#swipe-detail-overlay:not(.hidden)) #cookie-consent{display:none!important}body:has(#cookie-consent:not(.hidden)) #login-hint{display:none!important}body[data-active-view=share] .topbar-actions,body[data-active-view=privacy] .topbar-actions,body[data-active-view=terms] .topbar-actions{display:none!important}}@layer components{#recipe-detail-macros.stats-grid>div>strong,.swipe-detail-overlay .swipe-detail-metrics>div>strong,.recipe-detail-card #recipe-detail-macros.stats-grid>div>strong{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;align-content:center!important;gap:2px!important;width:100%;text-align:center}#recipe-detail-macros.stats-grid .macro-amount,.swipe-detail-overlay .swipe-detail-metrics .macro-amount,.recipe-detail-card #recipe-detail-macros.stats-grid .macro-amount{display:block;width:100%;text-align:center;white-space:nowrap}#recipe-detail-macros.stats-grid>div>strong em,.swipe-detail-overlay .swipe-detail-metrics>div>strong em,.recipe-detail-card #recipe-detail-macros.stats-grid>div>strong em{display:block;width:100%;text-align:center;line-height:1.05}.recipe-detail-card #recipe-detail-macros.stats-grid div{display:grid;align-content:center;justify-items:center;text-align:center}.recipe-detail-card #recipe-detail-macros .macro-amount{color:var(--color-heading)!important}.recipe-detail-card #recipe-detail-macros>div>span{color:var(--color-slate)!important}.recipe-stepper-actions .step-back-button{display:inline-flex!important;visibility:visible!important;align-items:center;justify-content:center;border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface)}.recipe-stepper-actions .step-back-button::before{content:"<";margin-right:8px;font-weight:950}.recipe-stepper-actions .step-back-button:disabled{opacity:0.55;background:#f8fafc}.auth-panel .password-toggle{width:var(--control-min-height)!important;height:var(--control-min-height)!important;background:#eef4ff!important}.auth-panel .password-toggle:hover,.auth-panel .password-toggle:focus-visible,.auth-panel .password-toggle:active{transform:translateY(-50%)!important}.auth-panel .password-toggle::before{position:absolute!important;inset:7px!important;display:block;width:auto;height:auto}.auth-panel .password-toggle::after{top:8px!important;left:15px!important;height:17px!important}@media(max-width:640px){.deck-panel .portion-controls{margin-top:0!important;padding-block:7px!important}.deck-panel .portion-button,.deck-panel .portion-input{min-height:var(--control-min-height)!important;height:var(--control-min-height)!important}.recipe-detail-card #recipe-detail-macros.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important}.recipe-detail-card #recipe-detail-macros.stats-grid div{min-height:66px;padding:8px 4px!important}.recipe-detail-card #recipe-detail-macros.stats-grid strong{font-size:clamp(0.88rem,3.8vw,1rem)!important;line-height:1.05}.recipe-detail-card #recipe-detail-macros.stats-grid strong em{font-size:0.78em!important}.recipe-detail-card #recipe-detail-macros.stats-grid span{margin-top:3px;text-align:center;line-height:1.05}.recipe-library-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.recipe-library-metrics span{min-height:46px;padding:7px 5px!important;border-bottom:1px solid var(--color-border)}.recipe-library-metrics span:nth-child(2n){border-right:0}.recipe-library-metrics span:nth-last-child(-n+2){border-bottom:0}.recipe-library-metrics strong{font-size:0.78rem!important}.recipe-library-metrics small{font-size:0.62rem!important;line-height:1.1!important;white-space:normal!important}}.recipe-menu-panel label.include-ingredient-field,.recipe-menu-panel label.exclude-ingredient-field{display:grid!important;gap:6px!important;opacity:1}.recipe-menu-panel .deal-toggle-row{display:grid!important;grid-template-columns:minmax(0,1fr) 50px!important;align-items:center!important}.recipe-menu-panel .deal-toggle-row>span{display:grid;gap:2px}.recipe-menu-panel .deal-toggle-row strong{color:var(--color-heading);font-size:0.72rem;line-height:1.15}.recipe-menu-panel .deal-toggle-row small{color:var(--color-slate);font-size:0.64rem;font-weight:600;line-height:1.2}}@layer components{.topbar>.topbar-actions{position:relative}.topbar-actions .session-pill{cursor:pointer}.topbar-actions #session-pill::before{content:"";flex:none;width:7px;height:7px;margin-right:7px;border:2px solid currentColor;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}#session-pill.location-pill-unseen{border-color:var(--color-primary);background:#eff6ff;color:var(--color-primary-text)}.location-menu-note{margin:0;padding:10px 14px;border-top:1px solid var(--color-border);background:#f8fafc;color:var(--color-slate);font-size:0.72rem;font-weight:600;line-height:1.4}.topbar-actions .session-pill::after{content:"";width:8px;height:8px;margin-left:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}.topbar:has(#location-menu:not(.hidden)),.topbar:has(#account-menu:not(.hidden)),.topbar:has(#scope-menu:not(.hidden)){z-index:var(--z-topbar-menu-host)}.location-menu{position:absolute;top:calc(100% + 8px);z-index:var(--z-location-menu);display:grid;width:min(280px,calc(100vw - 28px));overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-modal)}.location-menu{right:50px}.scope-menu{position:fixed;right:16px;bottom:16px;z-index:var(--z-scope-menu);display:grid;gap:0;width:min(320px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-modal)}.location-menu button,.scope-menu button{display:grid;gap:3px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid var(--color-border);background:var(--color-surface);color:var(--color-graphite);text-align:left;cursor:pointer}.location-menu button:last-child,.scope-menu button:last-child{border-bottom:0}.location-menu button[aria-checked=true],.scope-menu button[aria-checked=true]{background:#eff6ff;color:var(--color-primary)}.location-menu span,.scope-menu span{color:var(--color-slate);font-size:0.75rem;font-weight:600}.scope-menu-header{display:grid;gap:3px;padding:12px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.scope-menu-header strong,.scope-create-form>strong{color:var(--color-heading);font-size:0.84rem;font-weight:950}.scope-menu-header span{font-size:0.72rem}.scope-create-form{display:grid;gap:9px;padding:12px;border-top:1px solid var(--color-border);background:#f8fafc}.scope-create-form label{display:grid;gap:5px;color:var(--color-body-strong);font-size:0.74rem;font-weight:800}.scope-create-hint{color:var(--muted);font-size:0.72rem;line-height:1.4}.scope-create-form input,.scope-create-form select{width:100%;min-height:38px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-ink);font:inherit}.scope-create-form .secondary-button{min-height:40px}.recipe-detail-card .stats-grid>div>strong,.swipe-detail-metrics>div>strong{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}.recipe-detail-card .stats-grid>div>strong em,.swipe-detail-metrics>div>strong em{color:var(--color-slate);font-size:0.78em;font-style:normal;font-weight:950;white-space:nowrap}.deck-panel .stats-grid>div>strong em,.recipe-detail-card .stats-grid>div>strong em,.swipe-detail-metrics>div>strong em,.macro-di,.macro-di.di-tone-green,.macro-di.di-tone-yellow,.macro-di.di-tone-red{color:var(--color-slate)!important}.recipe-detail-card .nutrition-metric-grid .di-tone-green em,.recipe-detail-card .nutrition-metric-grid .di-tone-yellow em,.recipe-detail-card .nutrition-metric-grid .di-tone-red em,.recipe-detail-card .nutrition-row-list .di-tone-green em,.recipe-detail-card .nutrition-row-list .di-tone-yellow em,.recipe-detail-card .nutrition-row-list .di-tone-red em,.swipe-detail-overlay .nutrition-metric-grid .di-tone-green em,.swipe-detail-overlay .nutrition-metric-grid .di-tone-yellow em,.swipe-detail-overlay .nutrition-metric-grid .di-tone-red em,.swipe-detail-overlay .nutrition-row-list .di-tone-green em,.swipe-detail-overlay .nutrition-row-list .di-tone-yellow em,.swipe-detail-overlay .nutrition-row-list .di-tone-red em{color:var(--color-slate)!important}.recipe-media-topbar .recipe-image-rating-badge{order:1}.recipe-media-topbar .recipe-card-detail-button{order:2}.recipe-media-topbar .recipe-card-detail-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:38px;margin-top:0;padding:0 12px;border:1px solid #a9c4ff;background:#eff6ff;color:var(--color-primary);box-shadow:0 8px 18px rgba(37,99,235,0.12)}.recipe-media-topbar .recipe-card-detail-button::before{content:"";width:17px;height:17px;margin-right:7px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat}.recipe-title-row{display:flex;align-items:flex-start;gap:10px;max-width:100%}.recipe-title-button{min-width:0;padding:0;border:0;background:transparent;color:var(--color-heading);font:inherit;font-size:clamp(1.45rem,3vw,1.9rem);font-weight:950;line-height:1.1;text-align:left;cursor:pointer}.recipe-title-button:hover,.recipe-title-button:focus-visible{color:var(--color-primary)}.recipe-ingredient-row,body.has-active-recipe .recipe-ingredient-row,body[data-active-recipe-tab=ingredients] .recipe-ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 92px 58px;gap:8px;align-items:center;min-height:68px;padding:10px 12px;border-bottom:1px solid var(--color-border)}.recipe-ingredient-row:last-child{border-bottom:0}.recipe-ingredient-name{color:var(--color-graphite);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0}.recipe-ingredient-history-link>span:last-child{min-width:0;overflow-wrap:anywhere}.recipe-ingredient-row .recipe-ingredient-grams{min-width:58px;overflow-wrap:anywhere}.recipe-ingredient-measure-note{grid-column:1 / -1;color:var(--color-graphite);font-size:0.78rem}.recipe-ingredient-thumb{display:grid;flex:none;width:46px;height:46px;place-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:10px;background:#f8fafc;color:var(--color-success);font-size:0.72rem;font-weight:950}.recipe-ingredient-thumb img{display:block;width:100%;height:100%;object-fit:contain;padding:4px;background:var(--color-surface)}.recipe-ingredient-thumb img+span{display:none}@media(max-width:700px){.location-menu{right:0}.scope-menu{right:8px;bottom:calc(128px + env(safe-area-inset-bottom,0px));width:min(340px,calc(100vw - 16px));max-height:calc(100dvh - 152px - env(safe-area-inset-bottom,0px));border-radius:16px}.recipe-ingredient-row,body.has-active-recipe .recipe-ingredient-row,body[data-active-recipe-tab=ingredients] .recipe-ingredient-row{grid-template-columns:minmax(0,1fr) 58px 72px 48px;gap:6px;padding:9px 10px}.recipe-ingredient-name{gap:8px}.recipe-ingredient-row .recipe-ingredient-grams{min-width:48px}.recipe-ingredient-thumb{width:38px;height:38px}}@media(max-width:480px){.recipe-ingredient-row,body.has-active-recipe .recipe-ingredient-row,body[data-active-recipe-tab=ingredients] .recipe-ingredient-row{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-ingredient-name,.recipe-ingredient-headings>:first-child{grid-column:1 / -1}}}@layer components{#cookie-consent{position:fixed;right:18px;bottom:18px;z-index:var(--z-consent);display:grid;grid-template-columns:1fr;gap:22px;width:min(620px,calc(100vw - 36px));max-width:620px;max-height:min(88dvh,780px);padding:34px 40px;overflow:auto;border:1px solid var(--color-border);border-radius:18px;background:var(--color-surface);color:var(--color-ink);box-shadow:0 20px 60px rgba(15,23,42,0.18)}#cookie-consent .sheet-handle{display:none}#cookie-consent .cookie-notice-view{display:grid;gap:16px}#cookie-consent .cookie-notice-view>strong{display:block;color:var(--color-ink);font-size:1.2rem;font-weight:900;line-height:1.2}#cookie-consent p,#cookie-consent li{margin:0;color:var(--color-slate);font-size:1rem;font-weight:500;line-height:1.45}#cookie-consent .cookie-notice-view ul{display:grid;gap:5px;margin:-2px 0 0 22px;padding:0}#cookie-consent .cookie-policy-copy{font-size:0.92rem}#cookie-consent .cookie-policy-copy button{justify-self:start;min-height:auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--color-primary);font:inherit;text-decoration:underline}#cookie-consent .cookie-actions{position:static;bottom:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:12px;margin:0;padding:0;border:0;background:transparent}#cookie-consent .cookie-actions button{width:100%;min-width:0;min-height:50px;padding:0 14px;border-radius:999px;font-size:0.9rem;font-weight:900;line-height:1.08;white-space:normal}@media(max-width:640px){#cookie-consent{right:0;bottom:0;left:0;gap:14px;width:auto;max-width:none;max-height:88dvh;padding:18px 20px calc(16px + env(safe-area-inset-bottom))}#cookie-consent .cookie-notice-view{gap:8px}#cookie-consent[data-cookie-mode=notice]{max-height:max(120px,calc(100dvh - 260px))}body.text-entry-focused #cookie-consent[data-cookie-mode=notice]{bottom:calc(12px + var(--keyboard-inset));max-height:max(100px,calc(100dvh - var(--keyboard-inset) - 160px))}#cookie-consent .cookie-notice-view>strong{font-size:1.05rem}#cookie-consent p,#cookie-consent li{font-size:0.86rem;line-height:1.35}#cookie-consent .cookie-notice-view ul{display:block;margin:0}#cookie-consent .cookie-notice-view li{display:inline}#cookie-consent .cookie-notice-view li:not(:last-child)::after{content:" · "}#cookie-consent .cookie-policy-copy{font-size:0.82rem}#cookie-consent .cookie-actions{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px}#cookie-consent .cookie-actions button{min-height:46px;padding:0 6px;font-size:0.78rem}}#cookie-consent[data-cookie-mode=notice]{left:18px;right:18px;bottom:var(--cookie-bar-bottom, 18px);width:auto;max-width:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 24px;border-radius:12px}@media(max-width:767px){#cookie-consent{--cookie-bar-bottom: calc(84px + env(safe-area-inset-bottom, 0px))}body[data-active-view=swipe]:not(.plan-swipe-overlay-open) #cookie-consent{--cookie-bar-bottom: calc(80px + env(safe-area-inset-bottom, 0px))}}@media(max-width:640px){body:not([data-active-view=swipe]) #cookie-consent{--cookie-bar-bottom: calc(98px + env(safe-area-inset-bottom, 0px))}}body.cookie-notice-open .page-shell{margin-bottom:calc(var(--cookie-notice-space, 0px) + 30px)}@media(min-width:768px){body.cookie-notice-open{--cookie-notice-reserve: calc(var(--cookie-notice-space, 0px) + 24px)}}#cookie-consent[data-cookie-mode=notice] #cookie-accept,#cookie-consent[data-cookie-mode=notice] #cookie-essential,#cookie-consent[data-cookie-mode=notice] #cookie-save,#cookie-consent[data-cookie-mode=notice] .cookie-settings-view{display:none}#cookie-consent[data-cookie-mode=notice] .cookie-actions{grid-template-columns:1fr}#cookie-consent #cookie-notice-close{min-width:110px}#cookie-consent .cookie-policy-copy a{color:var(--color-primary-text);text-decoration:underline}@media(max-width:640px){#cookie-consent[data-cookie-mode=notice]{left:8px;right:8px;gap:10px;padding:8px 8px 8px 14px;grid-template-columns:minmax(0,1fr) auto;border-radius:14px}#cookie-consent[data-cookie-mode=notice] .cookie-notice-view{gap:0}#cookie-consent[data-cookie-mode=notice] .cookie-policy-copy{font-size:0.78rem;line-height:1.3}#cookie-consent #cookie-notice-close{min-width:64px}#cookie-consent[data-cookie-mode=notice] .cookie-actions button{min-height:44px}}}@layer components{#install-prompt{position:fixed;right:18px;bottom:18px;z-index:var(--z-install-prompt);display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px 16px;width:min(420px,calc(100vw - 36px));padding:18px 20px;border:1px solid var(--color-border);border-radius:18px;background:var(--color-surface);color:var(--color-ink);box-shadow:0 20px 60px rgba(15,23,42,0.18)}#install-prompt .install-prompt-mark{display:grid;place-items:center;overflow:hidden;width:44px;height:44px;border:1px solid var(--color-border);border-radius:12px}#install-prompt .install-prompt-mark img{display:block;width:100%;height:100%}#install-prompt .install-prompt-copy{display:grid;gap:8px}#install-prompt .install-prompt-copy>strong{color:var(--color-ink);font-size:1.05rem;font-weight:900;line-height:1.2}#install-prompt p,#install-prompt li{margin:0;color:var(--color-slate);font-size:0.92rem;font-weight:500;line-height:1.45}#install-prompt .install-prompt-steps{display:grid;gap:6px;margin:2px 0 0 18px;padding:0}#install-prompt .install-prompt-key{padding:1px 6px;border:1px solid var(--color-border);border-radius:6px;background:#f8fafc;color:var(--color-ink);font-size:0.86rem;font-weight:800;white-space:nowrap}#install-prompt .install-prompt-actions{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#install-prompt .install-prompt-actions:has(#install-prompt-accept.hidden){grid-template-columns:minmax(0,1fr)}#install-prompt .install-prompt-actions button{width:100%;min-width:0;min-height:46px;padding:0 14px;border-radius:999px;font-size:0.9rem;font-weight:900;line-height:1.08;white-space:normal}#install-prompt #install-prompt-accept{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-surface)}#install-prompt #install-prompt-dismiss{border-color:var(--color-border);background:transparent;color:var(--color-primary)}@media(max-width:640px){#install-prompt{right:0;bottom:0;left:0;width:auto;border-radius:18px 18px 0 0;padding:18px 20px calc(18px + env(safe-area-inset-bottom))}}}@layer components{.auth-panel[data-auth-mode=login] .social-row{display:grid!important}.auth-action-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.auth-action-split .primary-button,.auth-action-split .secondary-button{width:100%}.auth-agreement-row{display:grid!important;grid-template-columns:18px minmax(0,1fr);gap:9px!important;align-items:start!important;min-height:0!important;margin:0 0 2px;color:var(--color-body-strong)!important;font-size:0.74rem!important;line-height:1.35}.auth-agreement-row input{width:16px!important;height:16px!important;min-height:16px!important;margin:2px 0 0!important;accent-color:var(--color-primary)}.auth-agreement-row button{min-height:auto;border:0;padding:0;background:transparent;color:var(--color-primary);font:inherit;font-weight:800}.auth-agreement-row .field-error{grid-column:2}.auth-agreement-row.field-invalid{color:var(--color-error)!important}.auth-agreement-row.field-invalid input{outline:2px solid rgba(198,51,60,0.22);outline-offset:2px}.auth-panel .social-button strong{min-width:0;color:inherit;font-size:0.86rem;font-weight:800}.auth-panel .social-button{grid-template-columns:26px minmax(0,1fr) auto!important}.auth-panel .social-button em{grid-column:auto!important;width:auto!important;justify-self:end}.social-button[disabled]{display:none}}@layer components{.legal-page{display:grid!important;gap:14px!important;width:min(100%,1120px);margin:0 auto;padding:18px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:0 10px 28px rgba(15,23,42,0.06);line-height:1.6}.legal-page h1,.legal-page h2,.legal-page h3{margin:0;color:var(--color-heading);font-size:1.2rem;font-weight:900}.legal-page p{margin:0;color:var(--color-body-strong)}.legal-page .eyebrow{color:var(--color-primary-text)}.legal-hero{display:grid;gap:8px}.legal-hero h1,.legal-hero h3{margin:0!important;color:var(--color-heading);font-size:1.55rem!important;font-weight:950!important;line-height:1.08}.legal-hero p:not(.eyebrow){max-width:58rem;color:var(--color-slate);font-size:0.94rem!important;line-height:1.45!important}.legal-hero span{color:var(--color-slate);font-size:0.72rem;font-weight:800}.legal-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.legal-summary-grid div,.legal-card{border:1px solid var(--color-border);border-radius:14px;background:#f8fafc;box-shadow:0 6px 18px rgba(15,23,42,0.04)}.legal-summary-grid div{display:grid;gap:4px;min-height:92px;padding:12px}.legal-summary-grid strong,.legal-card h4{margin:0;color:var(--color-heading);font-size:0.92rem;font-weight:950;line-height:1.2}.legal-summary-grid span{color:var(--color-slate);font-size:0.76rem;font-weight:700;line-height:1.32}.legal-card{display:grid;gap:6px;padding:14px}.legal-card h2{font-size:0.92rem}.legal-card p{color:var(--color-body-strong);font-size:0.86rem!important;line-height:1.5!important}.legal-note{border-color:#bfe8d0;background:#effaf4}.legal-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:18px 12px 104px}.legal-footer button{border:0;background:transparent;color:var(--color-slate);cursor:pointer;font-size:0.76rem;font-weight:700}.legal-footer button:hover,.legal-footer button:focus-visible{color:var(--color-primary)}@media(max-width:767px){.legal-page{gap:12px!important;padding:16px!important;border-radius:18px!important}.legal-hero h1,.legal-hero h3{font-size:1.32rem!important}.legal-hero p:not(.eyebrow){font-size:0.84rem!important}.legal-summary-grid{grid-template-columns:1fr;gap:8px}.legal-summary-grid div{min-height:0}}body[data-active-view=share] .page-shell,body[data-active-view=privacy] .page-shell,body[data-active-view=terms] .page-shell{padding-left:0!important;padding-bottom:0!important}}@layer components{.shop-cost-details{grid-column:1 / -1}.shop-cost-details>summary{cursor:pointer;min-height:44px;padding:12px 0;color:var(--color-primary);font-weight:600}.shop-cost-details .metric-item{margin-block:8px}.weekly-shop-panel,.plan-panel{width:min(100%,1120px);max-width:var(--app-shell-max-width);margin:0 auto;padding:0 var(--app-shell-inline-padding) var(--app-shell-section-padding);border:0;background:transparent;box-shadow:none}.weekly-shop-panel .weekly-shop-header,.plan-panel .weekly-shop-header{margin-bottom:10px}.plan-header-actions{display:grid;grid-template-columns:minmax(520px,auto) auto;align-items:end;justify-content:end;gap:12px}.plan-week-control{display:grid;grid-template-columns:auto minmax(260px,400px);align-items:end;gap:8px}.plan-week-nav,.plan-plan-actions,.plan-clear-dialog-actions{display:flex;gap:8px}.plan-week-nav{display:grid;grid-template-columns:1fr 1fr}.plan-week-control select{width:100%}.plan-plan-actions{align-items:end}#plan-clear-button.plan-danger-button{border-color:rgba(220,38,38,0.36);background:var(--color-surface);color:#b91c1c}#plan-clear-button.plan-danger-button:hover,#plan-clear-button.plan-danger-button:focus-visible,#plan-clear-button.is-confirming{border-color:rgba(185,28,28,0.55);background:#fff1f2;color:#991b1b}.plan-header-money{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-top:8px}.plan-header-money[hidden]{display:none}.plan-header-money span{color:var(--color-slate);font-size:0.72rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase}.plan-header-money strong{color:var(--color-heading);font-size:1.3rem;font-weight:900}.plan-header-money em{flex-basis:100%;color:var(--color-success);font-size:0.86rem;font-style:normal;font-weight:800;line-height:1.35}.plan-totals-disclosure{margin:8px 0 16px;border:1px solid var(--color-border);border-radius:18px;background:rgba(255,255,255,0.92);box-shadow:0 14px 34px rgba(15,23,42,0.06)}.plan-totals-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px;padding:12px 14px;cursor:pointer;list-style:none}.plan-totals-disclosure summary::-webkit-details-marker{display:none}.plan-totals-disclosure summary span{color:var(--color-ink);font-size:0.78rem;font-weight:950;letter-spacing:0.14em;text-transform:uppercase}.plan-totals-disclosure summary strong{color:var(--color-slate);font-size:0.78rem;font-weight:700;text-align:right}.plan-totals-disclosure summary::after{content:"+";display:grid;width:30px;min-width:30px;height:30px;place-items:center;border:1px solid rgba(37,99,235,0.22);border-radius:999px;background:#eff6ff;color:var(--color-primary);font-size:1.05rem;font-weight:950}.plan-totals-disclosure[open] summary::after{content:"-"}.plan-totals-disclosure .plan-summary-grid{padding:0 12px 12px}.plan-empty-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding:12px 14px;border:1px solid rgba(37,99,235,0.22);border-radius:16px;background:#eff6ff}.plan-empty-banner.hidden{display:none}.plan-empty-banner p{margin:0;color:var(--color-slate);font-size:0.9rem;line-height:1.4}.plan-empty-banner-actions{display:flex;flex-wrap:wrap;gap:8px}.plan-empty-banner-actions .hidden{display:none}.plan-clear-dialog{position:fixed;inset:0;z-index:var(--z-confirm-dialog);display:grid;place-items:center;padding:20px;background:rgba(15,23,42,0.42)}.plan-clear-dialog.hidden{display:none}.plan-clear-dialog-card{width:min(100%,390px);padding:18px;border:1px solid rgba(220,38,38,0.2);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-modal)}.plan-clear-dialog-card h4{margin:0 0 8px;color:var(--color-heading);font-size:1.2rem;font-weight:950}.plan-clear-dialog-card p{margin:0 0 16px;color:var(--color-slate);font-size:0.9rem;line-height:1.4}.plan-clear-dialog-actions{justify-content:flex-end}.plan-clear-confirm-button{min-height:42px;border:1px solid rgba(185,28,28,0.65);border-radius:14px;padding:0 14px;background:#dc2626;color:var(--color-surface);font-weight:900;cursor:pointer}.plan-clear-confirm-button:hover,.plan-clear-confirm-button:focus-visible{background:#b91c1c}@media(max-width:900px){.plan-header-actions{grid-template-columns:1fr}.plan-week-control{grid-template-columns:1fr}}.shop-settings-panel{margin-bottom:14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);box-shadow:0 8px 24px rgba(15,23,42,0.04)}.shop-settings-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:0 14px;cursor:pointer;list-style:none}.shop-settings-panel summary::-webkit-details-marker{display:none}.shop-settings-panel summary span{color:var(--color-heading);font-size:0.88rem;font-weight:900}.shop-settings-panel summary strong{color:var(--color-primary);font-size:0.76rem;font-weight:800}.shop-settings-panel summary::after{content:"+";display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--color-border);border-radius:999px;color:var(--color-slate);font-weight:900}.shop-settings-panel[open] summary::after{content:"-"}.shop-plan-panel{margin:0 0 14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);box-shadow:0 8px 24px rgba(15,23,42,0.04)}.shop-plan-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:0 14px;cursor:pointer;list-style:none}.shop-plan-panel summary::-webkit-details-marker{display:none}.shop-plan-panel summary span{color:var(--color-heading);font-size:0.88rem;font-weight:900}.shop-plan-panel summary strong{color:var(--color-primary);font-size:0.76rem;font-weight:800}.shop-plan-panel summary::after{content:"+";display:grid;width:28px;height:28px;place-items:center;flex:0 0 auto;border:1px solid var(--color-border);border-radius:999px;color:var(--color-slate);font-weight:900}.shop-plan-panel[open] summary::after{content:"-"}.shop-calendar-grid{padding:0 12px 12px}.weekly-shop-controls{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end;margin-bottom:12px;padding:10px;border-top:1px solid var(--color-border);background:#f8fafc;box-shadow:none}.shop-settings-panel:not([open]) .weekly-shop-controls{display:none!important}.weekly-shop-controls label{color:var(--color-body-strong);font-size:0.72rem;font-weight:800}.weekly-shop-controls select{min-height:42px;border-radius:12px;background:#f8fafc}.weekly-shop-controls label:nth-child(3),.weekly-shop-controls label:nth-child(4),.weekly-shop-controls button{grid-column:span 2}.metrics-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch;margin-bottom:12px}#shop-summary.metrics-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--color-border);border-radius:18px;background:var(--color-surface);box-shadow:0 10px 28px rgba(15,23,42,0.05)}.shop-summary-heading{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px}.shop-summary-heading span{display:block;color:var(--color-slate);font-size:0.72rem;font-weight:800}.shop-summary-heading strong{color:var(--color-heading);font-size:1rem;font-weight:900}.shop-summary-heading .ghost-button{min-height:36px;padding:0 12px;border-radius:10px;color:var(--color-primary)}.shop-summary-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}#shop-summary.metrics-list .shop-mode-tabs{grid-column:1 / -1}.shop-summary-saving,.shop-summary-note{grid-column:1 / -1;margin:0}.shop-summary-saving{color:var(--color-success);font-size:0.92rem;font-weight:900;line-height:1.35}.shop-summary-note{color:var(--color-slate);font-size:0.76rem;font-weight:600;line-height:1.4}.shop-checkout-bar .shop-checkout-saving{grid-column:1 / -1;margin:0;color:var(--color-success);font-size:0.82rem;font-weight:800;line-height:1.35}.metric-item{border:1px solid var(--color-border);min-height:74px;padding:10px 12px;border-radius:14px;background:var(--color-surface);box-shadow:0 8px 24px rgba(15,23,42,0.05)}.metric-item strong{display:block;margin-bottom:3px;color:var(--color-heading);font-size:1.1rem;line-height:1.05}.metric-item p{margin:0;color:var(--color-slate);font-size:0.76rem;line-height:1.2}.shopping-group-header{display:flex;justify-content:space-between;align-items:center;padding:14px 4px 8px;border:0;background:transparent}.shopping-group-header::after{content:attr(data-count)}.shopping-group-header h4{color:var(--color-heading);font-size:1.1rem;font-weight:800}.shopping-lines{display:grid;gap:10px;overflow-x:auto}.shopping-line{display:grid;grid-template-columns:34px 58px minmax(0,1.3fr) minmax(88px,0.55fr) minmax(104px,0.62fr) 86px!important;gap:10px;align-items:center;min-height:86px;padding:10px;border-radius:14px}.shop-row-check{display:grid;width:26px;height:26px;place-items:center;margin:0}.shop-row-check input{position:absolute;width:1px;height:1px;opacity:0}.shop-row-check span{display:grid;width:24px;height:24px;place-items:center;border:1px solid #cbd5e1;border-radius:999px;background:var(--color-surface)}.shop-row-check input:checked+span{border-color:var(--color-success);background:var(--color-success)}.shop-row-check input:checked+span::before{content:"";width:10px;height:6px;border-left:2px solid var(--color-surface);border-bottom:2px solid var(--color-surface);transform:rotate(-45deg) translate(1px,-1px)}.shop-row-thumb{display:grid;width:58px;height:58px;place-items:center;align-self:center;overflow:hidden;border:1px solid var(--color-border);border-radius:12px;background:#f8fafc}.shop-row-thumb img{display:block;width:100%;height:100%;object-fit:contain;padding:4px;background:var(--color-surface)}.shop-row-thumb span{display:none}.shop-row-thumb-fallback,.shop-row-thumb.image-failed{background:linear-gradient(135deg,#ecfdf3,#eff6ff);color:var(--color-success);font-size:0.8rem;font-weight:950}.shop-row-thumb.image-failed span{display:block}.shop-row-main{display:grid;gap:2px;min-width:0}.shop-row-main strong{font-size:0.95rem}.shop-row-main small{min-width:0;overflow:hidden;color:var(--color-slate);font-size:0.72rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.shop-row-main a{color:inherit;text-decoration:none}.shop-row-retailer{display:grid;align-content:center;min-height:58px;padding-left:10px;border-left:1px solid var(--color-border)}.shop-row-retailer-link{display:grid;align-content:center;min-height:100%;color:inherit;text-decoration:none}.shop-row-retailer-link:hover span,.shop-row-retailer-link:focus-visible span{text-decoration:underline}.shop-row-coles strong{color:var(--color-coles)}.shop-row-woolworths strong{color:var(--color-success)}.shop-row-retailer.is-cheapest{border-radius:10px;background:#ecfdf3}.shop-row-retailer span,.shop-row-retailer span a{color:var(--color-slate);text-decoration:none}.shop-row-retailer small{display:inline-flex;width:max-content;max-width:100%;margin-top:3px;border-radius:7px;padding:2px 5px;font-size:0.64rem;font-weight:900;line-height:1}.shop-save-badge{background:#fff1f1;color:var(--color-coles)}.shop-unavailable{background:#f1f5f9;color:var(--color-slate)}.shop-stockup-badge{background:#ecfdf3;color:var(--color-success)}.plan-stockup-strip{display:grid;grid-column:1 / -1;gap:10px;margin-top:4px;border:1px solid #bbf7d0;border-radius:14px;padding:14px 16px;background:#f0fdf4}.plan-stockup-heading{display:grid;gap:2px}.plan-stockup-heading span{color:var(--color-success);font-size:0.68rem;font-weight:900;letter-spacing:0.08em;text-transform:uppercase}.plan-stockup-heading strong{color:var(--color-graphite);font-size:0.92rem}.plan-stockup-item strong{display:block;color:var(--color-graphite);font-size:0.84rem;line-height:1.35}.plan-stockup-item strong a{color:inherit;text-decoration:underline}.plan-stockup-item p{margin:2px 0 0;color:var(--color-slate);font-size:0.8rem;line-height:1.4}.plan-stockup-item p a{color:var(--color-primary);text-decoration:none;font-weight:700}.plan-coswipe-strip{display:grid;gap:10px;margin:4px 0 12px;border:1px solid #ddd6fe;border-radius:14px;padding:14px 16px;background:#f5f3ff}.plan-coswipe-heading{display:grid;gap:2px}.plan-coswipe-heading span{color:#6d28d9;font-size:0.68rem;font-weight:900;letter-spacing:0.08em;text-transform:uppercase}.plan-coswipe-item strong{display:block;color:var(--color-graphite);font-size:0.84rem;line-height:1.35}.shop-row-actions{display:grid;justify-items:end;gap:4px;min-width:0;text-align:right}.shop-row-actions button{display:grid;width:32px;min-height:32px;place-items:center;padding:0;border:0;border-radius:999px;background:#f8fafc;color:var(--color-slate);font-weight:950}.shop-row-actions span{color:var(--color-slate);font-size:0.68rem;font-weight:700}.shop-checkout-bar{position:sticky;bottom:14px;z-index:var(--z-checkout-bar);border:1px solid #bcd7ff;background:rgba(255,255,255,0.96);backdrop-filter:blur(12px)}.plan-summary-grid{display:grid;gap:14px}.plan-item-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;min-height:64px;padding:11px 12px 11px 16px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);transition:transform 140ms ease,box-shadow 140ms ease,border-color 140ms ease,background 140ms ease;cursor:grab}.plan-item-card::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:999px;background:var(--color-primary)}.plan-item-main{display:grid;gap:3px;min-width:0}.plan-item-main>span{color:var(--color-primary);font-size:0.72rem;font-weight:900}.plan-item-actions{display:grid;align-content:start;grid-auto-flow:row;gap:6px}.plan-item-action{display:grid;width:34px;min-height:34px;place-items:center;padding:0;border-radius:999px}.plan-item-action svg,.plan-swap-indicator svg{width:16px;height:16px}.plan-item-action path,.plan-swap-indicator path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.plan-swap-indicator{grid-column:1 / -1;display:none;align-items:center;gap:6px;color:var(--color-primary);font-size:0.72rem;font-weight:900}.plan-item-card.is-dragging{border-color:#91b8ff;background:#f4f9ff;box-shadow:0 12px 28px rgba(37,99,235,0.14);transform:scale(0.985)}.calendar-slot.is-dragging{border-color:#91b8ff!important;background:#f4f9ff!important;box-shadow:0 12px 28px rgba(37,99,235,0.12);opacity:0.42}.calendar-drag-preview{position:fixed!important;top:0;left:0;z-index:var(--z-drag-preview);margin:0!important;border:1px solid rgba(37,99,235,0.35)!important;background:var(--color-surface)!important;box-shadow:0 18px 42px rgba(15,23,42,0.28);opacity:0.96;pointer-events:none;transform-origin:top left}.calendar-drag-preview .calendar-slot-label{color:var(--color-primary)}body.calendar-drag-active{cursor:grabbing;user-select:none}body.calendar-drag-active .plan-panel,body.calendar-drag-active .calendar-grid{touch-action:none}.plan-item-card.is-dragging .plan-swap-indicator,.plan-item-card.drag-over .plan-swap-indicator{display:inline-flex}.plan-item-card.drag-over{border-color:#91b8ff!important;background:#eef6ff!important;box-shadow:inset 0 0 0 1px rgba(37,99,235,0.14)}.calendar-slot.is-swap-target{border-color:rgba(37,99,235,0.28)!important;background:#fbfcfd!important}.plan-item-card.drag-over::after{content:"Swap";position:absolute;top:8px;right:10px;display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;background:rgba(37,99,235,0.1);color:var(--color-primary);font-size:0.68rem;font-weight:900}.calendar-slot.is-swap-target::after{content:"Drop";position:absolute;top:8px;right:8px;bottom:8px;z-index:var(--z-surface-content);display:grid;width:54px;place-items:center;border:1px solid rgba(37,99,235,0.26);border-radius:12px;background:rgba(239,246,255,0.94);color:var(--color-primary);font-size:0.68rem;font-weight:900;pointer-events:none}.calendar-slot.is-swap-target .calendar-slot-actions,.calendar-slot.is-swap-target>.calendar-swipe-button{position:relative;z-index:var(--z-surface-raised)}.empty-calendar-slot{background:linear-gradient(180deg,var(--color-surface),#f8fbff);cursor:pointer}@media(min-width:768px){.plan-summary-grid{grid-template-columns:minmax(0,0.9fr) minmax(280px,0.55fr)}}@media(min-width:1025px){#shop-summary.metrics-list{grid-template-columns:repeat(7,minmax(0,1fr))}.weekly-shop-panel,.plan-panel{max-width:1120px;padding-top:12px}.weekly-shop-controls{grid-template-columns:repeat(5,minmax(0,1fr))}.weekly-shop-controls label:nth-child(3),.weekly-shop-controls label:nth-child(4),.weekly-shop-controls button{grid-column:auto}.shopping-line{grid-template-columns:34px 58px minmax(220px,1fr) 128px 148px 132px!important}.calendar-day{min-height:0;padding:10px}.calendar-slot{position:relative;grid-template-columns:1fr;align-items:center;min-height:92px;padding:8px 8px 8px}.calendar-slot-label{grid-column:1 / -1;font-size:0.68rem;letter-spacing:0.04em}.calendar-entry{grid-column:1;grid-template-columns:38px minmax(0,1fr);gap:7px;padding-right:22px}.calendar-entry::after{content:"⋮";width:16px;min-height:24px;border-radius:999px;font-size:0.9rem;line-height:1}.calendar-entry img{width:38px;height:38px}.calendar-entry strong{display:-webkit-box;overflow:hidden;font-size:0.76rem;line-height:1.12;-webkit-line-clamp:2;-webkit-box-orient:vertical}.calendar-entry p{margin-top:2px;overflow:hidden;color:var(--color-slate);font-size:0.65rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.empty-calendar-slot>.microcopy{align-self:center;padding-right:28px;color:var(--color-slate);font-size:0.82rem;line-height:1.15}.calendar-swipe-button{position:absolute;right:8px;bottom:8px;grid-column:auto;width:32px;min-width:32px;min-height:32px;padding:0}}@media(max-width:767px){.public-share-shopping-row,.public-share-plan-row{grid-template-columns:minmax(0,1fr) auto}.public-share-shopping-row>em,.public-share-plan-row>em{text-align:left}.public-share-plan-row>em{grid-column:1}.public-share-card-icon{grid-column:2;grid-row:1 / span 2}.shopping-line{grid-template-columns:30px 52px minmax(0,1fr) 34px!important;gap:8px;align-items:start;min-height:104px}.shop-row-thumb{grid-column:2;grid-row:1;width:52px;height:52px}.shop-row-main{grid-column:3;grid-row:1;align-self:start;gap:3px}.shop-row-main strong,.shop-row-main span,.shop-row-main small{min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.shop-row-main strong{line-height:1.2}.shop-row-main small{display:block;line-height:1.3}.shop-row-retailer{grid-column:2 / -1;grid-row:2;grid-template-columns:minmax(0,1fr) auto;min-height:0;gap:8px;padding:8px 0 0;border-left:0;border-top:1px solid var(--color-border)}.shop-row-coles{grid-row:2}.shop-row-woolworths{grid-row:3}.shop-row-retailer strong,.shop-row-retailer span,.shop-row-retailer small{min-width:0;overflow-wrap:anywhere}.shop-row-actions{grid-column:4;grid-row:1;justify-self:end;align-self:start}.shop-row-actions span{display:none}.shopping-line .shop-row-actions{display:contents}.shopping-line .shop-row-actions>button{grid-column:4;grid-row:1;justify-self:end;align-self:start}.shopping-line .shop-row-actions>span{display:block;grid-column:2 / -1;grid-row:4;justify-self:start;text-align:left;overflow-wrap:anywhere}.weekly-shop-controls{grid-template-columns:1fr 1fr}}@media(min-width:768px)and (max-width:1024px){.weekly-shop-panel,.plan-panel{max-width:760px;padding:18px 24px 32px}}}@layer components{@media(max-width:640px){body{--app-shell-bottom-nav-space: 118px;padding-bottom:calc(128px + env(safe-area-inset-bottom,0px))}.page-shell{width:100%;min-width:0;padding:8px 8px calc(136px + env(safe-area-inset-bottom,0px))}.topbar{min-height:54px;padding:8px 10px;border-radius:0}.brand-mark{gap:8px}.topbar-actions{gap:6px}.session-pill,#topbar-login-button,#logout-button{min-height:38px;padding:0 10px}.app-nav{position:fixed;left:50%;right:auto;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:var(--z-app-nav-floating);display:var(--app-nav-display, grid)!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0;width:min(calc(100% - 16px),var(--app-shell-max-width));max-width:var(--app-shell-max-width);min-height:68px;padding:7px 8px 8px;border-top:1px solid var(--color-border);border-right:0;border-radius:18px;background:rgba(255,255,255,0.98);box-shadow:0 -10px 24px rgba(15,23,42,0.08);-webkit-transform:translateZ(0);transform:translateX(-50%) translateZ(0);-webkit-transform:translateX(-50%) translateZ(0)}.nav-button{min-width:0!important;min-height:54px;padding:6px 4px;border-radius:12px;font-size:0.66rem}.nav-button::before{width:22px;height:22px}.login-hint{margin:8px 0;padding:10px 12px;border-radius:12px}.login-hint strong{font-size:0.84rem}.login-hint .microcopy{font-size:0.72rem}.deck-panel,.my-recipes-panel,.weekly-shop-panel,.plan-panel{max-width:100%;padding:8px 0 0}.deck-header.panel-card{padding:8px 4px 4px;border:0;background:transparent;box-shadow:none}.deck-header .eyebrow{display:none}.deck-header h2{font-size:1.12rem;line-height:1.12;text-align:center}.filter-chip-row{padding:0 2px}.card-stage{padding:0}.deck-panel .recipe-card,.recipe-card{width:100%;max-width:100%;padding:0!important;border-radius:16px}.deck-panel .recipe-image,.recipe-image{width:100%;height:auto!important;min-height:0!important;aspect-ratio:16 / 10;border-radius:16px 16px 0 0;object-fit:cover}.deck-panel .recipe-hero-copy,.recipe-hero-copy{padding:44px 12px 10px!important}.deck-panel .recipe-hero h3,.recipe-hero h3{margin-bottom:6px;font-size:1.16rem;line-height:1.12}.recipe-description{margin:6px 0 8px;font-size:0.8rem;line-height:1.34}.badge-row{gap:6px}.badge{min-height:22px;padding:3px 7px;border-style:dashed;cursor:default;font-size:0.62rem;pointer-events:none;user-select:none}.badge::before{content:"#";opacity:0.72}.recipe-card-detail-button{min-height:32px;padding:0 10px}.portion-controls{padding:4px 12px 8px}.portion-controls::before{font-size:0.84rem}.portion-button{width:40px;min-height:40px}.deck-panel .stats-grid,.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin:0 8px 6px!important}.stats-grid div,.comparison-grid div{min-height:42px;padding:5px 4px}.stats-grid span,.comparison-grid span{font-size:0.56rem;line-height:1.02}.stats-grid strong,.comparison-grid strong{font-size:0.72rem;line-height:1.02}.deck-panel .comparison-grid,.comparison-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin:0 8px 6px!important}.deck-panel .swipe-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.promotion-strip{grid-template-columns:1fr;margin:0 12px 8px}.recipe-meta{display:none}.recipe-menu-button{right:16px;bottom:88px}.recipe-menu-panel{left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;max-height:86dvh!important;padding:16px 14px calc(16px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0!important}.filter-choice-row{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-choice-row button{min-height:36px;font-size:0.68rem}.swipe-detail-panel{width:100%;max-height:90dvh;padding:14px}.recipe-library-controls{grid-template-columns:minmax(0,1fr) 74px;gap:8px}.recipe-card-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(168px,72%);overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}.recipe-library-card{scroll-snap-align:start}.recipe-card-list{gap:8px}.recipe-library-row{grid-template-columns:86px minmax(0,1fr) 32px;min-height:92px}.weekly-shop-controls{grid-template-columns:1fr 1fr!important}.weekly-shop-controls label:nth-child(3),.weekly-shop-controls label:nth-child(4),.weekly-shop-controls button{grid-column:auto}.weekly-shop-controls button{grid-column:1 / -1}.metrics-list{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{columns:1!important}.auth-panel{place-items:start center;padding:18px 12px 96px;background:rgba(247,249,251,0.98)}.auth-card{width:min(100%,430px);padding:18px;border-radius:18px}.auth-copy h2{font-size:1.12rem}.social-button{grid-template-columns:24px minmax(0,1fr)}.social-button em{grid-column:2;width:max-content}.swipe-detail-actions{grid-template-columns:1fr 1fr}.swipe-detail-actions #swipe-detail-accept{grid-column:1 / -1}}@media(min-width:641px)and (max-width:767px){.app-nav{left:50%;right:auto;width:min(calc(100% - 16px),var(--app-shell-max-width));max-width:var(--app-shell-max-width);transform:translateX(-50%) translateZ(0);-webkit-transform:translateX(-50%) translateZ(0)}}@media(max-width:1024px)and (pointer:coarse){body.text-entry-focused,body.filters-open{--app-nav-display: none}body.text-entry-focused .app-nav,body.filters-open .app-nav{display:none}}}@layer components{@media(max-width:640px){body[data-active-view=recipes] .recipe-card-grid{display:grid!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow-x:visible!important;scroll-snap-type:none!important}body[data-active-view=recipes] .recipe-library-card{width:100%;scroll-snap-align:none!important}body[data-active-view=recipes] .recipe-library-card>small{min-height:2.4em;white-space:normal;overflow:visible;text-overflow:clip}}body[data-active-view=info] #login-hint{display:none!important}.info-page{display:grid!important;gap:22px!important;width:min(100%,1120px);overflow:hidden;padding:18px 20px 26px;border-radius:22px;background:linear-gradient(135deg,rgba(47,111,237,0.08),rgba(20,125,100,0.05) 42%,rgba(255,255,255,0.96) 72%),var(--color-surface)}.info-hero{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(320px,0.78fr);gap:22px;align-items:center;padding:4px 2px 12px}.info-hero-copy{display:grid;gap:12px}.info-hero h3{margin:0;max-width:760px;color:var(--color-heading);font-size:2rem;font-weight:950;line-height:1.04}.info-hero p:not(.eyebrow){max-width:46rem;color:var(--color-slate);font-size:1rem;font-weight:700;line-height:1.45}.info-hero-metrics{display:flex;flex-wrap:wrap;gap:8px}.info-hero-metrics span{display:inline-flex;gap:5px;align-items:center;min-height:34px;padding:0 11px;border:1px solid rgba(47,111,237,0.18);border-radius:999px;background:rgba(255,255,255,0.86);color:var(--color-body-strong);font-size:0.78rem;font-weight:780}.info-hero-metrics strong{color:var(--color-primary);font-weight:950}.info-hero-visual{position:relative;display:grid;gap:8px;margin:0}.info-hero-product-shot{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:center;overflow:hidden;border:1px solid rgba(15,23,42,0.1);border-radius:16px;background:#e8f3ef;box-shadow:0 18px 40px rgba(15,23,42,0.13)}.info-hero-visual figcaption{color:#475569;font-size:0.75rem;font-weight:800;line-height:1.32}.info-priority,.info-zooms,.info-demo,.info-more,.info-note{display:grid;gap:12px}.info-page-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.info-page-link,.info-more-grid a{overflow:hidden;border:1px solid var(--color-border);border-radius:16px;background:rgba(255,255,255,0.9);color:inherit;text-decoration:none;box-shadow:0 10px 24px rgba(15,23,42,0.06)}.info-page-link{display:grid;grid-template-rows:118px auto auto 1fr auto;gap:8px;min-height:342px;padding:0 14px 14px;transition:border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease}.info-page-link:hover,.info-page-link:focus-visible,.info-more-grid a:hover,.info-more-grid a:focus-visible{border-color:rgba(47,111,237,0.42);box-shadow:0 16px 34px rgba(47,111,237,0.12);transform:translateY(-1px)}.info-page-link img{display:block;width:calc(100% + 28px);height:118px;margin:0 -14px;object-fit:cover;object-position:top center;border-bottom:1px solid rgba(221,228,236,0.78)}.info-page-link span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;background:linear-gradient(135deg,var(--color-heading),var(--color-primary));color:var(--color-surface);font-size:0.78rem;font-weight:950}.info-page-link strong,.info-more-grid strong{color:var(--color-heading);font-size:0.95rem;font-weight:950;line-height:1.2}.info-page-link p,.info-more-grid span{margin:0;color:var(--color-body-strong);font-size:0.82rem;font-weight:720;line-height:1.42}.info-page-link small{display:block;min-height:54px;padding-top:8px;border-top:1px solid rgba(221,228,236,0.78);color:#64748b;font-size:0.74rem;font-weight:800;line-height:1.35}.info-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.info-signal-grid div{display:grid;gap:5px;padding:13px;border:1px solid rgba(20,125,100,0.2);border-radius:14px;background:rgba(226,243,237,0.5)}.info-signal-grid strong{color:#0f513f;font-size:0.85rem;font-weight:950}.info-signal-grid span{color:var(--color-body-strong);font-size:0.76rem;font-weight:760;line-height:1.35}.info-zoom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.info-zoom-card{display:grid;gap:9px;padding:12px;overflow:hidden;border:1px solid rgba(47,111,237,0.18);border-radius:16px;background:rgba(255,255,255,0.88);box-shadow:0 10px 24px rgba(15,23,42,0.06)}.info-zoom-frame{position:relative;height:170px;overflow:hidden;border:1px solid rgba(221,228,236,0.82);border-radius:12px;background:#eef3f8}.info-zoom-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.info-zoom-card strong{color:var(--color-heading);font-size:0.93rem;font-weight:950;line-height:1.2}.info-zoom-card p{margin:0;color:var(--color-body-strong);font-size:0.8rem;font-weight:740;line-height:1.42}.info-demo-video{display:block;width:100%;aspect-ratio:16 / 9;border:1px solid var(--color-border);border-radius:16px;background:var(--color-heading);box-shadow:0 12px 30px rgba(15,23,42,0.1)}.info-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.info-more-grid a{display:grid;gap:6px;padding:14px}.info-note{grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:start;padding:14px;border:1px solid rgba(212,154,25,0.28);border-radius:16px;background:rgba(255,247,224,0.72)}.info-note strong{color:#7c4a03;font-size:0.84rem;font-weight:950}.info-note span{color:#475569;font-size:0.8rem;font-weight:760;line-height:1.38}@media(max-width:1023px){.info-hero,.info-page-grid{grid-template-columns:1fr 1fr}.info-hero-visual{align-self:stretch}}@media(max-width:767px){.info-page{gap:14px!important;padding:16px!important;border-radius:18px!important}.info-hero{grid-template-columns:1fr;gap:14px;padding-bottom:4px}.info-hero h3{font-size:1.34rem}.info-hero p:not(.eyebrow){font-size:0.84rem}.info-page-grid,.info-zoom-grid,.info-signal-grid,.info-more-grid{grid-template-columns:1fr}.info-page-link{min-height:0;grid-template-rows:132px auto auto auto auto}.info-zoom-frame{height:178px}.info-zoom-frame img{width:150%}.info-page-link small{min-height:0}.info-note{grid-template-columns:1fr}}}@layer components{input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:44px!important;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-graphite);font-size:0.92rem;padding-block:10px!important;line-height:1.35!important;overflow:visible!important;text-overflow:clip!important}textarea{min-height:96px!important;resize:vertical}input.portion-input,.ingredient-serving-stepper input{min-width:54px;min-height:44px!important;padding-inline:6px!important;line-height:1.2!important}button:is(.primary-button,.secondary-button,.ghost-button,.social-button),.filter-choice-row>button,.meal-type-tabs>button,.auth-mode-tabs>button,.recipe-detail-tabs>button,.shop-mode-tabs>button{min-height:40px;line-height:1.25;overflow-wrap:normal;word-break:normal;white-space:normal}button:is(.primary-button,.secondary-button,.ghost-button,.social-button){border-radius:var(--radius-md);font-weight:800}.deck-status-row .deck-reshuffle-button{min-height:30px;height:30px;padding:0 10px;border-radius:var(--radius-pill);overflow-wrap:normal}.primary-button{background:var(--color-primary);color:var(--color-surface)}.secondary-button{border:1px solid var(--color-primary);background:var(--color-surface);color:var(--color-primary)}.ghost-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-graphite)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled{opacity:0.45;cursor:not-allowed}body[data-active-view=plan] .plan-header-actions button,body[data-active-view=plan] .plan-header-actions select{max-width:100%;overflow-wrap:normal;word-break:normal}body[data-active-view=plan] .plan-header-actions button{white-space:nowrap}@media(min-width:641px)and (max-width:1180px){body[data-active-view=plan] .plan-panel{width:min(100%,980px)}body[data-active-view=plan] .plan-panel .weekly-shop-header{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}body[data-active-view=plan] .plan-header-actions{grid-template-columns:minmax(0,1fr);justify-content:stretch;justify-self:stretch;width:100%}body[data-active-view=plan] .plan-week-control{grid-template-columns:minmax(190px,max-content) minmax(220px,1fr);width:100%}body[data-active-view=plan] .plan-week-nav{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-active-view=plan] .plan-plan-actions{justify-content:end;width:100%}body[data-active-view=plan] .plan-plan-actions button{min-width:max-content}}@media(min-width:641px)and (max-width:760px){body[data-active-view=plan] .plan-week-control{grid-template-columns:minmax(0,1fr)}body[data-active-view=plan] .plan-plan-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}body[data-active-view=plan] .plan-plan-actions button{min-width:0}}@media(min-width:641px)and (max-width:1024px){#plan-metrics.metrics-list{grid-template-columns:repeat(2,minmax(0,1fr))}#plan-metrics .metric-item strong{font-size:1.06rem}}@media(max-width:640px){body[data-active-view=swipe] .deck-panel .portion-controls{margin-top:0!important;margin-bottom:0!important;padding-block:7px!important}body[data-active-view=swipe] .deck-panel .portion-button,body[data-active-view=swipe] .deck-panel .portion-input{width:var(--control-min-height)!important;min-width:var(--control-min-height)!important;height:var(--control-min-height)!important;min-height:var(--control-min-height)!important}body[data-active-view=swipe] .deck-panel .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin:0 8px 6px!important}body[data-active-view=swipe] .deck-panel .stats-grid div{min-height:42px!important;padding:5px 4px!important}}}@layer overrides{button,select,input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]),a[class*=button],a[class*=primary-link],a[class*=secondary-link]{min-height:var(--control-min-height)}.deck-slot-chip,.deck-reshuffle-button,.deck-panel .action-row .swipe-action,body[data-active-view=swipe]:not(.plan-swipe-overlay-open) .deck-panel .recipe-menu-button,.recipe-menu-panel .filter-choice-row button,.recipe-menu-panel .meal-type-tabs button{position:relative!important}.deck-slot-chip::before,.deck-reshuffle-button::before,.deck-panel .action-row .swipe-action::before,body[data-active-view=swipe]:not(.plan-swipe-overlay-open) .deck-panel .recipe-menu-button::before,.recipe-menu-panel .filter-choice-row button::before,.recipe-menu-panel .meal-type-tabs button::before{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}}@layer components{@media(prefers-reduced-motion:reduce){.account-switch-row input::before,.info-page-link,.plan-item-card{transition:none}}}@layer components{.topbar #scope-pill{display:block;min-width:44px;max-width:min(24vw,180px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.topbar{gap:8px;padding:10px 12px}.topbar>.brand-lockup{min-height:42px;min-width:42px}.topbar .brand-copy{overflow:hidden}.topbar .brand-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .brand-copy>span{display:none}.topbar .topbar-actions{min-width:0;gap:6px;flex-shrink:0}.topbar #session-pill{flex-shrink:0}.topbar #scope-pill{max-width:100px}.topbar #topbar-login-button,.topbar #logout-button{flex-shrink:0}.topbar:has(#scope-pill:not(.hidden))>.brand-lockup{flex:0 0 42px}.topbar:has(#scope-pill:not(.hidden)) .topbar-actions{flex:1 1 auto}.topbar:has(#scope-pill:not(.hidden)) .brand-copy{display:none}}}