@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-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-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-dialog: 130;--z-install-prompt: 140;--z-consent: 150;--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{*{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(3,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")}}@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-search input{width:100%;padding-left:38px;background:linear-gradient(var(--color-slate),var(--color-slate)) 18px 50% / 12px 2px no-repeat,radial-gradient(circle at 14px 46%,transparent 0 5px,var(--color-slate) 5.5px 6.7px,transparent 7px),var(--color-surface)}.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 fit-content(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(3,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 components{.watch-boot-recovery{max-width:var(--app-shell-max-width);margin:var(--space-16) auto;padding:var(--space-16);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}.watch-boot-recovery button{min-height:44px}.watch-button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--muted);font-size:0.78rem;font-weight:700;cursor:pointer}.watch-button-icon{width:16px;height:16px;flex:0 0 auto;display:inline-block;background-color:currentColor;-webkit-mask:var(--watch-bell-icon) center / contain no-repeat;mask:var(--watch-bell-icon) center / contain no-repeat}.watch-button,.watch-button-icon{--watch-bell-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='1.8' 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")}.watch-button:hover{border-color:var(--accent);color:var(--accent)}.watch-button.is-watching{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.watch-button-compact{padding:4px;min-width:32px;justify-content:center}.recipe-ingredient-name .watch-button-compact{min-width:44px;min-height:44px;margin-left:auto}.recipe-create-product-result-row{display:flex;align-items:stretch;gap:8px}.recipe-create-product-result-row .recipe-create-product-result{flex:1 1 auto}.recipe-create-product-result-row .watch-button-compact{align-self:center}.watchlist-content{--wl-sticky-top: 64px;display:grid;gap:var(--space-16);width:100%;max-width:1080px;min-width:0;margin-inline:auto;color:var(--ink)}.watchlist-content :is(h2,h3,p){margin:0}.wl-add-idle[hidden],.wl-try[hidden],.wl-guest-idle[hidden],.wl-empty-idle[hidden],.wl-tr[hidden]{display:none}.wl-icon{display:inline-block;flex:0 0 auto;width:20px;height:20px;background-color:currentColor;-webkit-mask:var(--wl-icon) center / contain no-repeat;mask:var(--wl-icon) center / contain no-repeat}.wl-icon-search{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.6-3.6'/%3E%3C/svg%3E")}.wl-icon-barcode{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8V5.5A1.5 1.5 0 0 1 5.5 4H8M16 4h2.5A1.5 1.5 0 0 1 20 5.5V8M20 16v2.5a1.5 1.5 0 0 1-1.5 1.5H16M8 20H5.5A1.5 1.5 0 0 1 4 18.5V16M8 9v6M11 9v6M14 9v6M17 9v6'/%3E%3C/svg%3E")}.wl-icon-plus{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}.wl-icon-check{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E")}.wl-icon-clock{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E")}.wl-icon-down{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v13M6.5 12.5 12 18l5.5-5.5'/%3E%3C/svg%3E")}.wl-icon-chevron{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E")}.wl-icon-close{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E")}.wl-icon-mail{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='13' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E")}.wl-icon-info{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E")}.wl-icon-external{--wl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 5h5v5M19 5l-8 8M18 14v4a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E")}.wl-primary-button,.wl-secondary-button,.wl-link-button,.wl-stop-button,.wl-sheet-close,.wl-sheet-done,.wl-segment,.wl-try-chip,.wl-noprice-toggle,.wl-row,.wl-table-open,.wl-switch{appearance:none;-webkit-appearance:none;margin:0;font:inherit;cursor:pointer}.wl-primary-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);padding:14px 20px;border:0;border-radius:var(--radius-md);background:var(--color-primary-text);color:var(--color-surface);font-size:1rem;font-weight:700;line-height:1.25;text-align:center;text-decoration:none}.wl-primary-button:hover{box-shadow:inset 0 0 0 100vmax rgba(15,23,42,0.14)}.wl-secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);padding:10px 16px;border:1.5px solid var(--color-primary-text);border-radius:var(--radius-md);background:var(--panel);color:var(--color-primary-text);font-size:0.9375rem;font-weight:700;line-height:1.25;text-align:center;text-decoration:none}.wl-secondary-button:hover{background:var(--accent-soft)}.wl-link-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-primary-text);font-size:0.9375rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.wl-link-button:hover{background:var(--accent-soft)}:is(.wl-primary-button,.wl-secondary-button,.wl-link-button)[aria-disabled=true]{cursor:default;opacity:0.6}:is(.wl-primary-button,.wl-secondary-button)[aria-busy=true]{cursor:progress}.wl-primary-button .wl-icon,.wl-secondary-button .wl-icon{width:18px;height:18px}.wl-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--color-primary-text);font-weight:600;text-decoration:underline;text-underline-offset:3px}.wl-muted{color:var(--muted);font-size:0.875rem}.wl-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-12);min-width:0}.wl-header-text{display:grid;gap:4px;min-width:0}.wl-title{color:var(--color-heading);font-size:1.5rem;font-weight:800;line-height:1.2}.wl-subtitle{color:var(--muted);font-size:0.875rem;overflow-wrap:anywhere}.wl-lede{max-width:60ch;color:var(--color-body-strong);font-size:1rem;line-height:1.45}.wl-add-field-wrap{display:none;position:relative;gap:4px}.wl-add-field-label{color:var(--color-graphite);font-size:0.875rem;font-weight:700}.wl-search-label{color:var(--color-graphite);font-size:1rem;font-weight:800}.wl-search-field{position:relative;display:flex;align-items:center;min-width:0}.wl-search-field>.wl-icon-search{position:absolute;top:50%;left:14px;width:20px;height:20px;color:var(--muted);pointer-events:none;transform:translateY(-50%)}.watchlist-content .wl-search-field input.watchlist-search-input[type=search]{width:100%;min-width:0;min-height:50px;height:50px;padding:10px 14px 10px 44px;border:2px solid var(--line);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);font:inherit;font-size:1.05rem;appearance:none;-webkit-appearance:none}.watchlist-content .wl-search-field:has(.wl-scan-link) input.watchlist-search-input[type=search]{padding-right:52px}.watchlist-content .wl-search-field input.watchlist-search-input[type=search]:focus-visible{outline:2px solid transparent;outline-offset:1px;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.wl-scan-link{position:absolute;top:50%;right:3px;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-sm);color:var(--ink);transform:translateY(-50%)}.wl-scan-link:hover{background:var(--accent-soft);color:var(--color-primary-text)}.watchlist-search-card>.wl-search-field{position:sticky;top:var(--wl-sticky-top);z-index:var(--z-surface-raised);background:var(--panel);border-radius:var(--radius-md)}.watch-search-summary{margin:0;color:var(--muted);font-size:0.875rem}.wl-try{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8)}.wl-try-label{color:var(--muted);font-size:0.875rem}.wl-try-chip{padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--ink);font-size:0.875rem;font-weight:600}.wl-try-chip:hover{border-color:var(--color-primary-text);color:var(--color-primary-text)}.wl-stale-banner,.wl-full-notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-md);background:var(--color-deal-neutral-bg);color:var(--color-deal-neutral-text);font-size:0.9375rem;line-height:1.4}.wl-stale-banner .wl-icon{margin-top:1px}.wl-view-only{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);font-size:0.9375rem}.wl-view-only-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-deal-neutral-bg);color:var(--color-deal-neutral-text);font-size:0.75rem;font-weight:700}.wl-loading{display:grid;gap:var(--space-8)}.wl-loading-text{color:var(--muted);font-size:0.875rem}.wl-skeleton{display:block;height:148px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--line),var(--bg),var(--line));background-size:200% 100%;animation:wl-shimmer 1.4s linear infinite}@keyframes wl-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}.wl-failed,.wl-empty,.wl-more-card,.wl-filter-empty{display:grid;gap:var(--space-8);justify-items:start;padding:var(--space-16);border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--panel)}.wl-failed{border-style:solid}.wl-empty p,.wl-more-card p,.wl-failed p,.wl-filter-empty p{color:var(--color-body-strong);font-size:0.9375rem;line-height:1.45}.wl-more-card .wl-muted{color:var(--muted);font-size:0.875rem}.wl-filter-empty{display:flex;flex-wrap:wrap;align-items:center}.wl-filter-empty p{flex-basis:100%}.wl-end-link{text-align:center}.wl-week-card{display:grid;gap:var(--space-8);padding:var(--space-16);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-card)}.wl-week-main{display:grid;gap:4px}.wl-week-eyebrow{color:var(--muted);font-size:0.8125rem;font-weight:700}.wl-week-headline{color:var(--color-heading);font-size:1.125rem;font-weight:700;line-height:1.3}.wl-week-sub,.wl-week-lines{color:var(--color-body-strong);font-size:0.875rem;line-height:1.4}.wl-week-lines{display:grid;gap:2px}.wl-week-saving{color:var(--color-body-strong);font-size:0.9375rem}.wl-week-saving strong{color:var(--color-heading);font-variant-numeric:tabular-nums}.wl-week-action{display:grid;gap:var(--space-8);margin-top:4px}.wl-week-action>.wl-primary-button,.wl-week-action>.wl-view-list{width:100%}.wl-view-list{padding-block:13px}.wl-email-row{display:flex;align-items:center;gap:10px;min-height:48px;color:var(--color-body-strong);font-size:0.9375rem}.wl-email-row>.wl-icon{color:var(--muted)}.wl-email-text{flex:1 1 auto;min-width:0}.wl-email-row>.wl-link-button{flex:0 0 auto}.wl-week-action>.wl-email-row{padding-top:4px;border-top:1px solid var(--line)}.wl-email-row.is-standalone{padding:0 4px 0 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel)}.wl-filter{display:grid;gap:4px}.wl-filter-label{color:var(--color-graphite);font-size:0.875rem;font-weight:700}.wl-filter-field{position:relative;display:flex;align-items:center;gap:var(--space-8)}.wl-filter-field>.wl-icon-search{position:absolute;top:50%;left:12px;width:18px;height:18px;color:var(--muted);pointer-events:none;transform:translateY(-50%)}.wl-filter-input{flex:1 1 auto;min-width:0;padding:8px 12px 8px 38px;border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);font-size:1rem;appearance:none;-webkit-appearance:none}.wl-filter-input:focus-visible{outline:2px solid transparent;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.wl-filter-status{color:var(--muted);font-size:0.8125rem}@media(max-width:1024.98px){.wl-list-tools{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}.wl-add-row-button{width:100%}.wl-more-card .wl-more-add-button{display:none}.wl-list-tools.has-filter{grid-template-columns:auto minmax(0,1fr);grid-template-areas:". label" "add field" ". status";gap:var(--space-4) var(--space-8)}.wl-list-tools.has-filter .wl-filter{display:contents}.wl-list-tools.has-filter .wl-add-row-button{grid-area:add;align-self:start;width:auto}.wl-list-tools.has-filter .wl-filter-label{grid-area:label}.wl-list-tools.has-filter .wl-filter-field{grid-area:field;flex-wrap:wrap;row-gap:var(--space-4)}.wl-list-tools.has-filter .wl-filter-field>.wl-icon-search{top:calc(var(--control-min-height) / 2)}.wl-list-tools.has-filter .wl-filter-input{flex-basis:12rem}.wl-list-tools.has-filter .wl-filter-status{grid-area:status}}.wl-list{display:grid;gap:var(--space-24)}.wl-section,.wl-noprice{display:grid;gap:var(--space-8)}.wl-section-title{display:flex;align-items:center;gap:var(--space-8);color:var(--color-heading);font-size:1.125rem;font-weight:700}.wl-count{display:inline-grid;place-items:center;min-width:26px;height:24px;padding:0 8px;border-radius:var(--radius-pill);background:var(--color-deal-neutral-bg);color:var(--color-deal-neutral-text);font-size:0.8125rem;font-weight:700;font-variant-numeric:tabular-nums}.wl-count-filter{color:var(--muted);font-size:0.875rem;font-weight:600}.wl-noprice-summary{display:list-item;min-height:44px;padding-top:10px;color:var(--color-heading);font-size:1.125rem;font-weight:700;cursor:pointer}.wl-noprice-help{color:var(--muted);font-size:0.875rem}.wl-rows,.wl-watch-rows{display:grid;gap:var(--space-8);margin:0;padding:0;list-style:none}.wl-row-item{margin:0}.wl-row{display:grid;grid-template-columns:56px minmax(0,1fr) 20px;column-gap:var(--space-12);row-gap:10px;align-items:start;width:100%;padding:var(--space-12);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);color:inherit;text-align:left}.wl-row:hover{border-color:var(--muted)}.wl-row>.wl-thumb-frame{grid-row:1;grid-column:1}.wl-row-main{display:contents}.wl-row-head{grid-row:1;grid-column:2;display:grid;gap:2px;min-width:0}.wl-row>.wl-icon-chevron{grid-row:1;grid-column:3;align-self:center;color:var(--muted)}.wl-row .wl-cells{grid-row:2;grid-column:1 / -1}.wl-row .wl-row-insight{grid-row:3;grid-column:1 / -1}.wl-row-title{display:-webkit-box;overflow:hidden;color:var(--color-heading);font-size:1rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.wl-row-pack{color:var(--muted);font-size:0.8125rem}.wl-row-chip{display:flex;margin-top:4px}.wl-row-insight{color:var(--color-body-strong);font-size:0.8125rem;line-height:1.4}.wl-thumb-frame{display:block;flex:0 0 auto;width:56px;height:56px}.wl-thumb{display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.wl-thumb img{display:block;width:100%;height:100%;padding:4px;object-fit:contain}.wl-thumb>span{display:none}.wl-thumb-fallback,.wl-thumb.image-failed{background:var(--color-deal-neutral-bg);color:var(--color-body-strong);font-size:0.875rem;font-weight:800}.wl-thumb-fallback>span,.wl-thumb.image-failed>span{display:block}.wl-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-pill);font-size:0.8125rem;font-weight:600;line-height:1.3}.wl-chip .wl-icon{width:14px;height:14px}.wl-chip-good{background:var(--color-deal-good-bg);color:var(--color-deal-good-text)}.wl-chip-cheaper{background:var(--color-deal-neutral-bg);color:var(--color-deal-neutral-text)}.wl-cells,.wl-sheet-cells{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8)}.wl-cell{display:grid;align-content:start;gap:2px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.wl-cell.is-cheaper{border-color:var(--color-cheaper-outline);box-shadow:0 0 0 0.5px var(--color-cheaper-outline)}.wl-cell-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 6px;min-width:0}.wl-cell-store{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--ink);font-size:0.75rem;font-weight:600}.wl-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--muted)}.wl-dot-coles{background:var(--color-dot-coles)}.wl-dot-woolworths{background:var(--color-dot-woolworths)}.wl-badge{flex:0 0 auto;padding:2px 6px;border-radius:4px;background:var(--color-deal);color:var(--color-surface);font-size:0.75rem;font-weight:700;line-height:1.3;white-space:nowrap}.wl-cell-price{display:flex;align-items:center;gap:4px;color:var(--color-heading);font-size:1.125rem;font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums}.wl-cell-price .wl-icon-check{width:16px;height:16px}.wl-cell-was,.wl-cell-unit,.wl-cell-date,.wl-cell-name,.wl-cell-checked{color:var(--muted);font-size:0.8125rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.wl-cell-was{text-decoration:line-through}.wl-td-cell .wl-cell-was{text-decoration:none}.wl-cell-cheaper{margin-top:2px;color:var(--ink);font-size:0.8125rem;font-weight:700}.wl-cell-stale{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:0.875rem;font-variant-numeric:tabular-nums}.wl-cell-stale .wl-icon{width:16px;height:16px}.wl-cell-note{color:var(--muted);font-size:0.875rem}.wl-cell-link{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--color-primary-text);font-size:0.875rem;font-weight:600;text-underline-offset:3px}.wl-cell-link .wl-icon{width:14px;height:14px}.wl-usuals,.wl-half,.wl-add-idle,.wl-guest-idle,.wl-empty-idle{display:grid;gap:var(--space-12)}.wl-add-idle,.wl-guest-idle,.wl-empty-idle{gap:var(--space-24)}.wl-block-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-8) var(--space-12)}.wl-block-title{color:var(--color-heading);font-size:1.0625rem;font-weight:700;line-height:1.3}.wl-segments{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--bg)}.wl-segment{padding:0 14px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-body-strong);font-size:0.875rem;font-weight:600}.wl-segment[aria-pressed=true]{background:var(--panel);color:var(--color-heading);font-weight:800;box-shadow:var(--shadow-card)}.wl-half-status{color:var(--muted);font-size:0.8125rem}.wl-show-more{justify-self:start}.wl-watch-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:var(--space-12);padding:10px var(--space-12);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel)}.wl-watch-main{display:grid;gap:4px;min-width:0}.wl-watch-row .watch-button{padding:0 14px;font-size:0.875rem}.wl-watch-price{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--space-8);font-size:0.8125rem}.wl-watch-price-value{color:var(--color-heading);font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.wl-benefits{display:grid;gap:var(--space-12);padding:var(--space-16);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}.wl-benefit-list{display:grid;gap:var(--space-8);margin:0;padding:0;list-style:none}.wl-benefit-list li{display:flex;align-items:flex-start;gap:var(--space-8);color:var(--color-body-strong);font-size:0.9375rem;line-height:1.4}.wl-benefit-list .wl-icon{color:var(--color-success)}.wl-signin{justify-self:center}.wl-sheet-layer{position:fixed;inset:0 0 var(--keyboard-inset, 0px) 0;z-index:var(--z-dialog);display:flex;align-items:flex-end;justify-content:center}.wl-sheet-backdrop{position:absolute;inset:0;background:rgba(15,23,42,0.45)}.wl-sheet{position:relative;display:flex;flex-direction:column;width:100%;max-height:calc(100% - 16px);overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--panel);box-shadow:var(--shadow-modal);color:var(--ink);animation:wl-sheet-up var(--motion-standard) var(--motion-ease)}.wl-product-sheet,.wl-add-sheet{height:min(90dvh,calc(100% - 16px))}html.wl-sheet-scroll-lock,body.wl-sheet-scroll-lock{overflow:hidden;overscroll-behavior:none}body.wl-sheet-scroll-lock{position:fixed;top:var(--wl-sheet-scroll-lock-top, 0px);right:0;left:0;width:100%}@supports (-webkit-touch-callout: none){.wl-sheet-layer.wl-add-layer{top:var(--visual-viewport-top, 0px);bottom:auto;height:var(--visual-viewport-height, 100%)}.wl-add-layer .wl-add-sheet{animation:none}}@keyframes wl-sheet-up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes wl-sheet-in{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}.wl-sheet-head{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-12);padding:var(--space-16) var(--space-16) var(--space-12);border-bottom:1px solid var(--line)}.wl-product-sheet .wl-sheet-head{align-items:flex-start}.wl-sheet-head .wl-thumb-frame{width:72px;height:72px}.wl-sheet-heading{display:grid;flex:1 1 auto;gap:2px;min-width:0}.wl-sheet-title{flex:1 1 auto;min-width:0;color:var(--color-heading);font-size:1.125rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.wl-sheet-pack{color:var(--muted);font-size:0.875rem}.wl-sheet-close,.wl-sheet-done{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;margin-left:auto;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);color:var(--ink);font-size:0.875rem;font-weight:700}.wl-sheet-close .wl-icon{width:16px;height:16px}.wl-sheet-close:hover,.wl-sheet-done:hover{border-color:var(--muted)}.wl-sheet-body{display:grid;flex:1 1 auto;align-content:start;gap:var(--space-16);min-height:0;padding:var(--space-16) var(--space-16) calc(var(--space-24) + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain}.wl-sheet-cells .wl-cell{padding:10px 12px}.wl-sheet-cells .wl-cell-price{font-size:1.25rem}.wl-sheet-notes{display:grid;gap:6px;margin:0;padding:0;list-style:none;color:var(--color-body-strong);font-size:0.875rem}.wl-sheet-notes li{display:flex;align-items:flex-start;gap:6px}.wl-sheet-notes .wl-icon{width:16px;height:16px;margin-top:2px;color:var(--muted)}.wl-sheet-section{display:grid;gap:6px;padding-top:var(--space-12);border-top:1px solid var(--line);font-size:0.9375rem;line-height:1.45}.wl-sheet-subtitle{color:var(--color-heading);font-size:1rem;font-weight:700}.wl-verdict-body{display:flex;align-items:flex-start;gap:10px;padding:var(--space-12);border-radius:var(--radius-md);background:var(--color-deal-neutral-bg);color:var(--color-deal-neutral-text)}.wl-sheet-verdict.is-good .wl-verdict-body{background:var(--color-deal-good-bg);color:var(--color-deal-good-text)}.wl-verdict-body>.wl-icon{margin-top:2px}.wl-verdict-body>div{display:grid;gap:4px}.wl-sheet-email-off{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-8);font-size:0.9375rem}.wl-sheet-added-by,.wl-sheet-view-only{color:var(--muted);font-size:0.875rem}.wl-sheet-actions{display:grid;gap:var(--space-8);padding-top:4px}.wl-sheet-actions>.wl-primary-button,.wl-sheet-actions>.wl-sheet-on-list{width:100%}.wl-sheet-on-list{padding-block:13px}.wl-stop-button{display:inline-flex;align-items:center;justify-self:start;gap:6px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--danger);font-size:0.9375rem;font-weight:700}.wl-stop-button .wl-icon{width:16px;height:16px}.wl-stop-button:hover{text-decoration:underline}.wl-switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);min-height:48px}.wl-switch-label{color:var(--ink);font-size:1rem;font-weight:600;line-height:1.35}.wl-switch{position:relative;flex:0 0 auto;width:56px;height:44px;padding:0;border:0;border-radius:var(--radius-pill);background:transparent}.wl-switch::before{content:"";position:absolute;top:50%;right:2px;left:2px;height:30px;border-radius:var(--radius-pill);background:var(--color-slate);transform:translateY(-50%)}.wl-switch[aria-checked=true]::before{background:var(--color-primary-text)}.wl-switch-knob{position:absolute;top:50%;left:5px;width:24px;height:24px;border-radius:50%;background:var(--color-surface);box-shadow:var(--shadow-card);transform:translateY(-50%);transition:transform var(--motion-fast) var(--motion-ease)}.wl-switch[aria-checked=true] .wl-switch-knob{transform:translate(22px,-50%)}.wl-switch[aria-busy=true]{cursor:progress;opacity:0.7}.wl-sheet-layer.is-popover{position:absolute;inset:calc(100% + 6px) 0 auto auto;z-index:var(--z-surface-actions);display:block;width:min(560px,calc(100vw - 160px))}.wl-add-popover{display:grid;gap:var(--space-12);max-height:520px;padding:var(--space-12) var(--space-12) 0;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-modal);animation:wl-sheet-up var(--motion-fast) var(--motion-ease)}.wl-popover-foot{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-8) 0 var(--space-12);border-top:1px solid var(--line);background:var(--panel)}.wl-popover-foot .wl-icon{width:18px;height:18px}.wl-table-wrap{display:none}.wl-table{width:100%;border:1px solid var(--line);border-radius:var(--radius-lg);border-collapse:separate;border-spacing:0;background:var(--panel);table-layout:fixed}.wl-table thead th{position:sticky;top:var(--wl-sticky-top);z-index:var(--z-surface-sticky);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:0.8125rem;font-weight:700;text-align:left}.wl-table thead th:first-child{border-top-left-radius:var(--radius-lg)}.wl-table thead th:last-child{border-top-right-radius:var(--radius-lg)}.wl-th-product{width:44%}.wl-table thead th:nth-child(2),.wl-table thead th:nth-child(3){width:17%}.wl-table thead th:nth-child(4){width:22%}.wl-group-row th{padding:16px 12px 8px;border-bottom:1px solid var(--line);background:var(--bg);color:var(--color-heading);font-size:1rem;font-weight:700;text-align:left}.wl-group-row .wl-count{margin-left:var(--space-8)}.wl-group-row .wl-noprice-help{display:block;color:var(--muted);font-size:0.8125rem;font-weight:400}.wl-noprice-toggle{display:inline-flex;align-items:center;gap:6px;padding:0 8px 0 0;border:0;background:transparent;color:inherit;font-weight:700}.wl-noprice-toggle .wl-icon-chevron{transition:transform var(--motion-fast) var(--motion-ease)}.wl-noprice-toggle[aria-expanded=true] .wl-icon-chevron{transform:rotate(90deg)}.wl-tr{cursor:pointer}.wl-tr>td{height:88px;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.wl-tr:hover>td,.wl-tr:focus-within>td{background:var(--bg)}.wl-table-open{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:var(--space-12);width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.wl-table-product-text{display:grid;gap:2px;min-width:0}.wl-td-cell .wl-cell{padding:4px 6px;border-color:transparent;background:transparent}.wl-td-cell .wl-cell.is-cheaper{border-color:var(--color-cheaper-outline)}.wl-td-notes{font-size:0.8125rem}.wl-td-notes .wl-row-insight{display:block;margin-top:4px}@media(max-width:359.98px){.wl-cells,.wl-sheet-cells{grid-template-columns:minmax(0,1fr)}.wl-watch-row{grid-template-columns:56px minmax(0,1fr)}.wl-watch-row .watch-button{grid-column:2;justify-self:start}.wl-list-tools.has-filter{grid-template-columns:minmax(0,1fr);grid-template-areas:"add" "label" "field" "status"}.wl-list-tools.has-filter .wl-add-row-button{width:100%;margin-bottom:var(--space-8)}}@media(min-width:1025px){.wl-list,.wl-add-row-button,.wl-list-tools:not(.has-filter){display:none}.wl-table-wrap{display:block}.wl-add-field-wrap{display:grid;flex:0 0 400px;width:400px}.wl-week-card{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.1fr) minmax(240px,1fr);align-items:start;gap:var(--space-24);padding:var(--space-16) var(--space-24)}.wl-week-saving strong{display:block;font-size:1.125rem}.wl-week-action{margin-top:0}.wl-benefits .wl-primary-button{justify-self:start}.wl-sheet-layer{align-items:stretch;justify-content:flex-end}.wl-sheet,.wl-product-sheet,.wl-add-sheet{width:440px;max-width:100%;height:100%;max-height:none;border-radius:0;animation-name:wl-sheet-in}}@media(prefers-reduced-motion:reduce){.wl-sheet,.wl-add-popover,.wl-skeleton{animation:none}.wl-switch-knob,.wl-noprice-toggle .wl-icon-chevron{transition:none}}.watchlist-search-results{display:grid;gap:var(--space-8);min-width:0;padding-bottom:var(--space-8)}.watchlist-search-results:empty{display:none}.watchlist-search-results .microcopy{margin:0}.watch-search-row{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-8);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg)}.watch-search-row .shop-row-thumb{width:44px;height:44px}.watch-search-row .watch-button{flex:0 0 auto;min-height:44px}.watch-search-title{font-size:0.92rem;line-height:1.25}.watch-search-photo-link{display:block;flex:0 0 44px;border-radius:var(--radius-md)}.watch-search-title-link{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;overflow-wrap:anywhere}.watch-search-title-link:hover{text-decoration-color:currentColor}.watch-search-photo-link:focus-visible,.watch-search-title-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.watch-search-chains{display:grid;gap:4px;margin-top:4px}.watch-search-chain{display:flex;align-items:center;gap:var(--space-8);min-width:0;font-size:0.82rem}.watch-search-chain .watch-product-link{flex:1 1 auto;min-width:0;color:var(--muted);overflow-wrap:anywhere}.watch-search-chain .watch-price-line{flex:0 1 48%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--space-8);min-width:0}.watch-search-chain .watch-was-price{white-space:nowrap}.watch-search-unit-price,.watch-search-checked{grid-column:1 / -1}.watch-search-chain .watch-price-unavailable{flex:0 0 auto;font-size:0.76rem}.watch-search-single-chain,.watch-search-missing-chain{color:var(--muted);font-size:0.76rem}.watchlist-empty{display:grid;gap:var(--space-8);justify-items:start;padding:var(--space-24) var(--space-16);border:1px dashed var(--line);border-radius:var(--radius-lg)}.watchlist-empty h4{margin:0}.watchlist-empty p{margin:0;color:var(--muted)}.watchlist-search-input::placeholder{color:var(--muted)}.watchlist-search-input:focus-visible{outline:2px solid transparent;outline-offset:1px;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.watch-product-link{color:inherit;text-decoration:none}.recipe-ingredient-history-link{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:44px;color:inherit;text-decoration:none}.recipe-ingredient-history-link:hover{color:var(--accent);text-decoration:underline}.recipe-ingredient-history-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.watch-row-meta{display:flex;align-items:center;gap:8px;font-size:0.78rem;color:var(--muted)}.watch-retailer-badge{font-size:0.7rem;font-weight:800;padding:1px 8px;border-radius:var(--radius-pill);color:var(--color-surface)}.watch-retailer-coles{background:var(--color-coles)}.watch-retailer-woolworths{background:var(--color-woolworths);color:var(--color-graphite)}.watch-price-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.watch-current-price.is-special{color:var(--color-tomato)}.watch-price-line small.is-stale{color:var(--color-warning)}.watch-was-price{color:var(--muted);font-size:0.8rem}.watch-special-badge,.product-insights-special-badge{font-size:0.72rem;font-weight:800;padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-tomato);color:var(--color-surface)}.watch-promotion-label{color:var(--color-tomato);font-weight:600}.watch-price-unavailable{color:var(--muted);font-size:0.8rem}.watch-chain-line{display:flex;align-items:center;gap:10px;min-width:0}.watch-chain-line .watch-retailer-badge{flex:0 0 auto;min-width:84px;text-align:center}.watch-chain-main{flex:1 1 auto;min-width:0;display:grid;gap:2px;font-size:0.88rem}.watch-chain-main .watch-product-link strong{font-weight:600}.watch-chain-package{color:var(--muted);font-size:0.78rem}.watchlist-search-card{display:grid;gap:var(--space-8);padding:var(--space-16);border:1px solid var(--accent);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-card)}@media(max-width:640px){.watch-search-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:var(--space-8);row-gap:var(--space-8)}.watch-search-row .shop-row-thumb,.watch-search-row .watch-search-photo-link{grid-area:1 / 1;align-self:start}.watch-search-row .watch-chain-main{grid-area:1 / 2}.watch-search-row .watch-button{grid-column:2;grid-row:2;justify-self:start}.watch-search-chain{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:var(--space-8);row-gap:2px}.watch-search-chain .watch-retailer-badge{grid-row:1;grid-column:1;align-self:start}.watch-search-chain .watch-price-line,.watch-search-chain .watch-price-unavailable{grid-row:1;grid-column:2;justify-self:end}.watch-search-chain .watch-product-link{grid-row:2;grid-column:1 / -1}.watch-search-chain .watch-price-line{justify-self:stretch}}.product-insights-content{display:grid;gap:var(--space-16)}.product-insights-header{display:flex;gap:var(--space-12);align-items:center}.product-insights-scan-source{display:grid;gap:2px;padding:var(--space-12) var(--space-16);border:2px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--accent-soft)}.product-insights-scan-source.is-coles{border-color:var(--color-coles);background:color-mix(in srgb,var(--color-coles) 8%,var(--panel))}.product-insights-scan-source.is-woolworths{border-color:var(--color-woolworths);background:color-mix(in srgb,var(--color-woolworths) 10%,var(--panel))}.product-insights-scan-source span{color:var(--muted);font-size:0.72rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase}.product-insights-scan-source strong{font-size:1.05rem}.watch-add-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);width:100%;min-height:48px;font-weight:800}.watch-add-button .watch-button-icon{width:18px;height:18px}.watch-add-button.is-watching{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);cursor:default}.product-insights-header .shop-row-thumb{width:56px;height:56px}.product-insights-header-main{display:grid;gap:4px;min-width:0}.product-insights-price-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.product-insights-city{color:var(--muted);font-size:0.9rem}.product-insights-price-row strong{font-size:1.4rem}.product-insights-price-row strong.is-special{color:var(--color-tomato)}.product-insights-verdict{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-weight:800;font-size:0.85rem}.product-insights-verdict.verdict-stock-up{background:var(--color-green);color:var(--color-surface)}.product-insights-verdict.verdict-fair{background:var(--accent-soft);color:var(--accent)}.product-insights-verdict.verdict-hold{background:#fdf3e0;color:#9a6b0f}.product-insights-verdict.verdict-unknown{background:var(--bg);color:var(--muted)}.product-insights-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-8)}.product-insights-stat{display:grid;gap:2px;padding:var(--space-8) var(--space-12);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel)}.product-insights-stat small{color:var(--muted);font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em}.product-insights-stat strong{font-size:1rem}.product-insights-chart-card{padding:var(--space-12);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}.product-insights-also-at{padding:var(--space-12);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);display:grid;gap:var(--space-8)}.product-insights-also-at h4{margin:0}.product-insights-cheaper-elsewhere{display:grid;gap:2px;padding:var(--space-12);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent)}.product-insights-cheaper-elsewhere strong{font-size:1rem}.product-insights-cheaper-elsewhere span{color:var(--ink);font-size:0.85rem}.product-insights-alt{display:flex;align-items:center;gap:var(--space-8);text-decoration:none;color:inherit;min-width:0}.product-insights-alt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-insights-alt-name small{color:var(--muted)}.product-insights-alt-price{white-space:nowrap}.product-insights-alt-diff{color:var(--muted);white-space:nowrap}.product-insights-alt-diff.is-cheaper{color:var(--good, #1a7f37);font-weight:600}.product-insights-chart-card h4{margin:0 0 var(--space-8)}.price-history-chart{width:100%;height:auto;display:block}.price-chart-line{stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.price-chart-point{fill:var(--accent)}.price-chart-line-coles{stroke:var(--color-coles)}.price-chart-point-coles{fill:var(--color-coles)}.price-chart-line-woolworths{stroke:var(--color-woolworths)}.price-chart-point-woolworths{fill:var(--color-woolworths)}.price-chart-point.is-special{stroke:var(--panel);stroke-width:2}.price-chart-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:4 4}.price-chart-label{fill:var(--muted);font-size:11px;font-family:inherit}.product-insights-notes{display:grid;gap:4px;margin:0;padding:0;list-style:none}.product-insights-notes li{color:var(--muted);font-size:0.85rem;padding-left:18px;position:relative}.product-insights-notes li::before{content:"";position:absolute;left:4px;top:0.5em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.product-insights-thin-history{padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);background:var(--bg);color:var(--muted);font-size:0.85rem}.barcode-scanner-panel{display:grid;gap:var(--space-16);max-width:760px;margin-inline:auto}.scanner-header-action{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;max-width:100%;min-height:42px;padding:9px 13px;border-radius:var(--radius-md);font-weight:800;line-height:1.2;white-space:nowrap;text-align:center;text-decoration:none}.barcode-scanner-camera{position:relative;overflow:hidden;min-height:260px;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--ink)}.barcode-scanner-camera video{width:100%;height:100%;object-fit:cover}.barcode-scanner-guide{position:absolute;inset:50% auto auto 50%;width:min(74%,440px);height:58%;border:3px solid var(--panel);border-radius:var(--radius-md);transform:translate(-50%,-50%);pointer-events:none}.barcode-scanner-guide span{position:absolute;inset:12% 26%;border:1px dashed rgba(255,255,255,0.68);border-radius:var(--radius-sm)}.barcode-scanner-actions,.barcode-scanner-input-row{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.barcode-scanner-form{display:grid;gap:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--line)}.barcode-scanner-form label{font-weight:700}.barcode-scanner-input-row input{flex:1 1 220px}.barcode-scanner-status[data-tone=error]{color:var(--color-error)}.barcode-scanner-status[data-tone=success]{color:var(--color-success)}.barcode-scanner-search-instead{margin:0}.barcode-scanner-search-instead a{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);font-weight:800;text-decoration:none}.barcode-scanner-tool,.barcode-scanner-intro,.barcode-scanner-blocked{display:grid;gap:var(--space-16);min-width:0}.barcode-scanner-tool[hidden],.barcode-scanner-intro[hidden],.barcode-scanner-blocked[hidden]{display:none}.barcode-scanner-blocked{gap:var(--space-12);padding:var(--space-16);border:1px solid var(--color-warning);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-warning) 8%,var(--panel))}.barcode-scanner-intro h4,.barcode-scanner-blocked h4{margin:0;font-size:1.1rem}.barcode-scanner-intro>p,.barcode-scanner-blocked p{margin:0}.barcode-scanner-intro-steps,.barcode-scanner-blocked ol{display:grid;gap:var(--space-8);margin:0;padding-inline-start:1.4em}.barcode-scanner-intro-actions{display:flex;flex-wrap:wrap;gap:var(--space-8)}.barcode-scanner-intro-actions button,.barcode-scanner-blocked button{min-height:44px}.scan-intro-example{display:grid;gap:var(--space-12);min-width:0;margin:0;padding:var(--space-16);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg)}.scan-intro-example-body{display:grid;gap:var(--space-16);align-items:center;min-width:0}.scan-intro-barcode{display:block;width:100%;max-width:220px;height:auto;color:var(--ink)}.scan-intro-barcode-ground{fill:var(--panel)}.scan-intro-barcode-bars,.scan-intro-barcode-digits{fill:currentColor}.scan-intro-barcode-digits{font-size:9px}.scan-intro-result{display:grid;gap:var(--space-8);min-width:0}.scan-intro-result p{margin:0}.scan-intro-product{display:flex;align-items:center;gap:var(--space-12);min-width:0}.scan-intro-product>div{min-width:0}.scan-intro-label,.scan-intro-prices-title{color:var(--muted);font-size:0.8rem}.scan-intro-name{display:block;overflow-wrap:anywhere}.scan-intro-prices{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}.scan-intro-prices li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8)}.scan-intro-prices small{color:var(--muted)}@media(max-width:639.98px){.barcode-scanner-intro{gap:var(--space-12)}.barcode-scanner-intro-steps{gap:var(--space-4)}.scan-intro-example{gap:var(--space-8);padding:var(--space-12)}.scan-intro-example-body{grid-template-columns:minmax(0,112px) minmax(0,1fr);gap:var(--space-8) var(--space-12)}.scan-intro-barcode{max-width:112px}.scan-intro-result:not([aria-busy]){display:contents}.scan-intro-result:not([aria-busy])>:not(.scan-intro-product){grid-column:1 / -1}.scan-intro-prices{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-16)}.barcode-scanner-intro-actions{padding-block:var(--space-8);background:var(--panel);box-shadow:0 var(--space-12) 0 var(--panel)}}@media(max-width:639.98px)and (min-height:440px){.barcode-scanner-intro-actions{position:sticky;bottom:calc(var(--app-shell-bottom-nav-space) - var(--space-4) + env(safe-area-inset-bottom,0px))}body[data-active-view=scan] .page-shell:has(#barcode-scanner-intro:not([hidden])){overflow-x:clip}body[data-active-view=scan] .page-shell:has(#barcode-scanner-intro:not([hidden])) .topbar{position:relative}}@media(min-width:640px){.scan-intro-example-body{grid-template-columns:minmax(0,220px) minmax(0,1fr)}}.barcode-missing-report{display:grid;gap:var(--space-12);padding:var(--space-16);border:1px solid var(--color-warning);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-warning) 8%,var(--panel))}.barcode-missing-report[hidden]{display:none}.barcode-missing-report h4,.barcode-missing-report p{margin:0}.barcode-missing-report-form{display:grid;gap:var(--space-8)}.barcode-missing-report-form label{font-weight:800}.barcode-missing-report-form select,.barcode-missing-report-form input[type=file]{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);color:inherit}.barcode-missing-report-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-8)}.barcode-missing-report[data-submitted=true] #barcode-missing-submit{opacity:0.72}@media(max-width:520px){.barcode-scanner-panel .weekly-shop-header,.product-insights-panel .weekly-shop-header{align-items:flex-start;flex-wrap:wrap}.scanner-header-action{min-height:38px;padding:8px 11px;font-size:0.8rem}.barcode-missing-report-actions{grid-template-columns:1fr}}}@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}}}