:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-family-sans:var(--font-dm-sans),"DM Sans",Arial,sans-serif;--font-family-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:3rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-tight:1.2;--line-height-base:1.5;--surface-canvas:#f7f3ea;--surface-base:#fffdf8;--surface-raised:#fff;--surface-subtle:#f4f0e7;--surface-media:#14251d;--surface-scrim:color-mix(in srgb,var(--text-primary)72%,transparent);--surface-scrim-soft:color-mix(in srgb,var(--text-primary)48%,transparent);--surface-selected:#dbe8dc;--text-primary:#183b2e;--text-secondary:#43564b;--text-muted:#627067;--text-inverse:#fff;--border-subtle:#e1ddd3;--border-strong:#c9c3b8;--action-primary:#285943;--action-primary-hover:#1e4835;--action-secondary:#f4f0e7;--action-secondary-hover:#ebe5da;--action-destructive:#a8322f;--action-destructive-hover:#852724;--focus-ring:#285943;--focus-ring-soft:color-mix(in srgb,var(--focus-ring)28%,transparent);--decision-buy:#286640;--decision-buy-surface:#dceedd;--decision-buy-border:color-mix(in srgb,var(--decision-buy)28%,var(--surface-raised));--decision-consider:#9b5d0a;--decision-consider-surface:#fae8c8;--decision-consider-border:color-mix(in srgb,var(--decision-consider)28%,var(--surface-raised));--decision-wait:#ae3934;--decision-wait-surface:#fae5e2;--decision-wait-border:color-mix(in srgb,var(--decision-wait)28%,var(--surface-raised));--decision-stable:#416575;--decision-stable-surface:#dfeaed;--decision-stable-border:color-mix(in srgb,var(--decision-stable)28%,var(--surface-raised));--status-success:#2d6a5d;--status-success-surface:#e0efeb;--status-success-border:color-mix(in srgb,var(--status-success)28%,var(--surface-raised));--status-success-hover-surface:color-mix(in srgb,var(--status-success)18%,var(--surface-raised));--status-warning:#8a520d;--status-warning-surface:#f9e7c9;--status-warning-border:color-mix(in srgb,var(--status-warning)28%,var(--surface-raised));--status-error:#9f2d2a;--status-error-surface:#fae2df;--status-error-border:color-mix(in srgb,var(--status-error)28%,var(--surface-raised));--status-error-hover-surface:color-mix(in srgb,var(--status-error)12%,transparent);--status-info:#416575;--status-info-surface:#dfeaed;--status-info-border:color-mix(in srgb,var(--status-info)28%,var(--surface-raised));--data-series-one:#416575;--data-series-two:#9b5d0a;--data-series-three:#6b4f86;--data-series-four:#9a526e;--data-series-neutral:#627067;--data-series-coles:var(--decision-wait);--data-series-woolworths:var(--decision-buy);--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-pill:999px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--control-height:2.75rem;--control-height-large:3.25rem;--icon-button-size:2.75rem;--mobile-navigation-height:4rem;--spinner-size-lg:3rem;--toast-max-width:25rem;--shadow-subtle:0 1px 2px color-mix(in srgb,var(--text-primary)8%,transparent);--shadow-raised:0 10px 28px color-mix(in srgb,var(--text-primary)12%,transparent);--motion-fast:.15s ease;--motion-base:.2s ease;--motion-slow:.3s ease;--z-navigation:20;--z-modal:90;--z-toast:100}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-3)var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-subtle);color:var(--text-primary);cursor:pointer;max-width:100%;font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);text-align:center;overflow-wrap:anywhere;transition:background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),color var(--motion-fast),transform var(--motion-fast);border:1px solid transparent;text-decoration:none;display:inline-flex}.button:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.button:disabled{cursor:not-allowed;opacity:.55}.button:hover:not(:disabled){box-shadow:var(--shadow-raised);text-decoration:none;transform:translateY(-1px)}.button:not(:disabled):active{transform:translateY(1px)}.button--large{min-height:var(--control-height-large);padding:var(--space-4)var(--space-5)}.button--small{min-width:6.25rem;padding:var(--space-2)var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.button--full-width,.button--mobile-full{width:100%}@media (min-width:48rem){.button--mobile-full{width:auto}}.button--fixed-height{height:var(--control-height)}.button--primary{background-color:var(--action-primary);color:var(--text-inverse)}.button--primary:hover:not(:disabled){background-color:var(--action-primary-hover);box-shadow:var(--shadow-raised);color:var(--text-inverse)}.button--primary.button--selected{border-color:var(--status-success-border);background-color:var(--status-success-surface);box-shadow:none;color:var(--status-success)}.button--primary.button--selected:hover:not(:disabled){border-color:var(--status-success);background-color:var(--status-success-hover-surface);box-shadow:var(--shadow-subtle);color:var(--status-success)}.button--success{background-color:var(--status-success);color:var(--text-inverse)}.button--success:hover:not(:disabled){background-color:var(--decision-buy);box-shadow:var(--shadow-raised);color:var(--text-inverse)}.button--danger{background-color:var(--action-destructive);color:var(--text-inverse)}.button--danger:hover:not(:disabled){background-color:var(--action-destructive-hover);box-shadow:var(--shadow-raised);color:var(--text-inverse)}.button--secondary{background-color:var(--action-secondary);border-color:var(--border-subtle);color:var(--text-primary)}.button--secondary:hover:not(:disabled){background-color:var(--action-secondary-hover);border-color:var(--border-strong);color:var(--text-primary)}.button--secondary.button--selected{border-color:var(--status-success-border);background-color:var(--status-success-surface);color:var(--status-success)}.button--secondary.button--selected:hover:not(:disabled){border-color:var(--status-success);background-color:var(--status-success-hover-surface);color:var(--status-success)}.button--outline{border-color:var(--action-primary);box-shadow:none;color:var(--action-primary);background-color:transparent}.button--outline:hover:not(:disabled){background-color:var(--action-primary);color:var(--text-inverse)}.button--outline.button--outline-gray{border-color:var(--border-strong);color:var(--text-secondary)}.button--outline.button--outline-gray:hover:not(:disabled){background-color:var(--text-secondary);border-color:var(--text-secondary);color:var(--text-inverse)}@media (min-width:40rem){.button{white-space:nowrap}}.icon-button{width:var(--icon-button-size);height:var(--icon-button-size);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle);color:var(--text-primary);cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),color var(--motion-fast),transform var(--motion-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.icon-button:disabled{cursor:not-allowed;opacity:.55}.icon-button:hover:not(:disabled){box-shadow:var(--shadow-raised);transform:translateY(-1px)}.icon-button:not(:disabled):active{transform:translateY(1px)}.icon-button--primary{background-color:var(--action-primary);border-color:var(--action-primary);color:var(--text-inverse)}.icon-button--primary:hover:not(:disabled){background-color:var(--action-primary-hover);border-color:var(--action-primary-hover);box-shadow:var(--shadow-raised)}.icon-button--destructive{background-color:var(--action-destructive);border-color:var(--action-destructive);color:var(--text-inverse)}.icon-button--destructive:hover:not(:disabled){background-color:var(--action-destructive-hover);border-color:var(--action-destructive-hover);box-shadow:var(--shadow-raised)}.icon-button--secondary:hover:not(:disabled){background-color:var(--action-secondary);border-color:var(--border-strong)}.icon-button__icon{pointer-events:none}.recommendation-section{width:100%;max-width:100%;margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-base);box-shadow:var(--shadow-subtle);transition:border-color var(--motion-fast),box-shadow var(--motion-fast);overflow:hidden}.recommendation-section:hover{border-color:var(--border-strong);box-shadow:var(--shadow-raised)}.recommendation-section--full-width{grid-column:1/-1}.recommendation-section--buy-now{--recommendation-section-hover:var(--decision-buy-surface)}.recommendation-section--consider{--recommendation-section-hover:var(--decision-consider-surface)}.recommendation-section--wait{--recommendation-section-hover:var(--decision-wait-surface)}.recommendation-section--stable{--recommendation-section-hover:var(--decision-stable-surface)}.recommendation-section--collapsed .recommendation-section__header{border-bottom:0;margin-bottom:0;padding-bottom:0}.recommendation-section--collapsed .recommendation-section__content{display:none}.recommendation-section--collapsed .recommendation-section__header--clickable{margin:calc(var(--space-4)*-1);padding:var(--space-4);border-radius:var(--radius-lg)}.recommendation-section__header{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex;position:relative}.recommendation-section__header--clickable{margin:calc(var(--space-2)*-1);margin-bottom:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-bottom:0}.recommendation-section__header-toggle{z-index:0;width:100%;min-height:var(--control-height);border-radius:inherit;cursor:pointer;transition:background-color var(--motion-fast);background:0 0;border:0;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.recommendation-section__header-toggle:hover{background-color:var(--recommendation-section-hover,var(--action-secondary))}.recommendation-section__header-toggle:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.recommendation-section__header-content{z-index:1;pointer-events:none;position:relative}.recommendation-section__header-text{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.recommendation-section__collapse-icon{z-index:1;width:var(--control-height);height:var(--control-height);margin:calc(var(--space-2)*-1);color:var(--text-muted);pointer-events:none;transition:color var(--motion-fast),transform var(--motion-base);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.recommendation-section__collapse-icon--collapsed{transform:rotate(0)}.recommendation-section__collapse-icon--expanded{transform:rotate(90deg)}.recommendation-section__content{overflow:visible}.recommendation-section__products-list{gap:var(--space-4);grid-template-columns:minmax(0,1fr);width:100%;min-width:0;display:grid}@media (min-width:48rem){.recommendation-section__products-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,18.75rem),1fr))}}@media (min-width:64rem){.recommendation-section__products-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}}.recommendation-section__product-item{min-width:0}.recommendation-section__empty-state{padding:var(--space-6)var(--space-4);text-align:center}.recommendation-section__empty-text{margin-bottom:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.recommendation-section__empty-description{max-width:24rem;color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-base);margin:0 auto}.product-card{gap:var(--space-4);min-width:0;min-height:8.75rem;padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);flex-direction:column;flex:1;display:flex}.product-card__link{min-width:0;min-height:0;color:inherit;flex:1;text-decoration:none;display:flex}.product-card__link:hover .product-card{border-color:var(--border-strong);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.product-card__link:focus-visible{border-radius:var(--radius-lg);outline:3px solid var(--focus-ring-soft);outline-offset:3px}.product-card__main{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex:1;display:flex}.product-card__image{border-radius:var(--radius-md);background-color:var(--surface-subtle);flex-shrink:0;justify-content:center;align-items:center;width:6.25rem;height:6.25rem;display:flex;overflow:hidden}.product-card__image .product-image{object-fit:contain;width:100%;height:100%}@media (min-width:40rem){.product-card__image{width:7.5rem;height:7.5rem}}.product-card__content{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.product-card__title{width:100%;margin:0 0 var(--space-2);color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-base);text-overflow:ellipsis;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.product-card__price-container,.product-card__previous-price-container,.product-card__suppliers,.product-card__price-range{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.product-card__price-wrapper{gap:var(--space-1);flex-direction:column;display:flex}.product-card__price{color:var(--action-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.product-card__previous-price,.product-card__supplier-count,.product-card__price-range,.product-card__no-price,.product-card__days{color:var(--text-muted);font-size:var(--font-size-sm)}.product-card__previous-price,.product-card__supplier-count,.product-card__price-range,.product-card__days{font-weight:var(--font-weight-medium)}.product-card__previous-price{text-decoration:line-through}.product-card__no-price{margin:0;font-style:italic}.product-card__price-chip,.product-card__best-price-badge{padding:var(--space-1)var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);border:1px solid transparent;align-items:center;display:inline-flex}.product-card__price-chip--save{border-color:var(--status-success-border);background-color:var(--status-success-surface);color:var(--status-success)}.product-card__price-chip--more{border-color:var(--decision-wait-border);background-color:var(--decision-wait-surface);color:var(--decision-wait)}.product-card__best-price-badge{background-color:var(--decision-buy);color:var(--text-inverse);letter-spacing:.025em;text-transform:uppercase;align-self:flex-start}.product-card__supplier{flex-shrink:0;align-items:center;display:flex}.product-card__supplier .supplier-logo{justify-content:center;align-items:center;width:3.75rem;height:2.5rem;display:flex}.product-card__supplier .supplier-logo img{border-radius:var(--radius-sm);object-fit:contain;width:auto;max-width:3.75rem;height:2.5rem}.product-card__supplier .supplier-logo .supplier-fallback{min-width:var(--control-height);min-height:var(--control-height);padding:var(--space-2);border-radius:var(--radius-sm);background-color:var(--surface-subtle);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex}.product-card__supplier .supplier-logo .supplier-fallback.fallback-hidden{display:none}.product-card__price-range .price-range-min{color:var(--decision-buy)}.product-card__price-range .price-range-separator{color:var(--text-muted)}.product-card__price-range .price-range-max{color:var(--decision-wait)}.product-card__recommendation{width:100%;margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);justify-content:center;display:flex}.price-shop-control{align-items:center;gap:var(--space-2);display:inline-flex}.price-shop-control__quantity{min-width:6.75rem;min-height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-raised);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.price-list__stats{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:1fr;display:grid}.price-list__stat{align-items:center;gap:var(--space-3);min-height:5.5rem;padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle);display:flex}.price-list__stat-icon{color:var(--text-muted);flex:none}.price-list__stat-icon--buy{color:var(--decision-buy)}.price-list__stat-icon--stable{color:var(--decision-stable)}.price-list__stat-label{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.price-list__stat-value{margin-top:var(--space-1);color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.price-list__groups{align-items:start;gap:var(--space-5);grid-template-columns:minmax(0,1fr);width:100%;display:grid}.price-list__groups .recommendation-section{align-self:start;min-width:0}@media (min-width:40rem){.price-list__stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:64rem){.price-list__groups{grid-template-columns:repeat(3,minmax(0,1fr))}}.form__group{margin-bottom:var(--space-4)}.form__label{margin-bottom:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:block}.form__input{width:100%;min-height:var(--control-height);padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background-color:var(--surface-raised);color:var(--text-primary);font:inherit;line-height:var(--line-height-base);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background-color var(--motion-fast)}.form__input::placeholder{color:var(--text-muted);opacity:1}.form__input:focus{border-color:var(--focus-ring);box-shadow:0 0 0 3px var(--focus-ring-soft);outline:none}.form__input:disabled{background-color:var(--surface-subtle);color:var(--text-muted);cursor:not-allowed}.form__hint,.form__error{margin:var(--space-1)0 0;font-size:var(--font-size-sm)}.form__hint{color:var(--text-muted)}.form__error{color:var(--status-error)}.form__actions{margin-top:var(--space-6);text-align:center}.input-container{width:100%;position:relative}.input-container .form__input{padding-right:5.5rem}.input-container__icon{top:50%;right:var(--space-3);color:var(--text-muted);font-size:var(--font-size-lg);pointer-events:none;position:absolute;transform:translateY(-50%)}.input-container__scan-button{top:50%;right:var(--space-2);align-items:center;gap:var(--space-1);min-height:var(--control-height);padding:var(--space-2)var(--space-3);border-radius:var(--radius-sm);background-color:var(--action-primary);color:var(--text-inverse);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);transition:background-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);white-space:nowrap;border:1px solid transparent;display:inline-flex;position:absolute;transform:translateY(-50%)}.input-container__scan-button:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.input-container__scan-button:hover:not(:disabled){background-color:var(--action-primary-hover);box-shadow:var(--shadow-subtle);transform:translateY(calc(-50% - 1px))}.input-container__scan-button:disabled{cursor:not-allowed;opacity:.55}.input-container__scan-button:not(:disabled):active{transform:translateY(-50%)}.supported-retailers{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border-subtle)}.supported-retailers h4{margin-bottom:var(--space-4);color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-align:center}.supported-retailers__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));display:grid}.supported-retailers__item{align-items:center;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);text-align:center;flex-direction:column;display:flex}.supported-retailers__item-icon{margin-bottom:var(--space-2);font-size:var(--font-size-2xl)}.supported-retailers__item-name{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.supported-retailers__item-status{color:var(--status-success);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.barcode-scanner-modal{z-index:var(--z-modal);padding:var(--space-3);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.barcode-scanner-modal__overlay{background-color:var(--surface-scrim);cursor:default;border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.barcode-scanner-modal__container{width:min(100%,40rem);max-height:calc(100dvh - var(--space-3)*2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-raised);position:relative;overflow:auto}.barcode-scanner-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex}.barcode-scanner-modal__heading{align-items:flex-start;gap:var(--space-3);display:flex}.barcode-scanner-modal__heading-icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.barcode-scanner-modal__title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.barcode-scanner-modal__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.barcode-scanner-modal__close{flex:none}.barcode-scanner-modal__content{flex-direction:column;display:flex}.barcode-scanner-modal__video-container{aspect-ratio:4/3;background-color:var(--surface-media);position:relative;overflow:hidden}.barcode-scanner-modal__video{object-fit:cover;width:100%;height:100%}.barcode-scanner-modal__scan-frame{border:2px solid var(--text-inverse);border-radius:var(--radius-md);box-shadow:0 0 0 100vmax var(--surface-scrim-soft);pointer-events:none;position:absolute;top:15%;bottom:15%;left:12%;right:12%}.barcode-scanner-modal__overlay-indicator{pointer-events:none;position:absolute;top:15%;bottom:15%;left:12%;right:12%;overflow:hidden}.barcode-scanner-modal__scanning-line{background-color:var(--action-primary);height:2px;box-shadow:0 0 var(--space-3)var(--action-primary);animation:2s ease-in-out infinite barcode-scanning-line;position:absolute;left:0;right:0}.barcode-scanner-modal__starting{justify-content:center;align-items:center;gap:var(--space-2);background-color:var(--surface-scrim-soft);color:var(--text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.barcode-scanner-modal__starting-icon{animation:1s linear infinite spin}.barcode-scanner-modal__scan-status{padding:var(--space-3)var(--space-4);color:var(--text-secondary);font-size:var(--font-size-sm);text-align:center;margin:0}.barcode-scanner-modal__actions{align-items:center;gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--border-subtle);background-color:var(--surface-subtle);flex-wrap:wrap;display:flex}.barcode-scanner-modal__actions-icon{color:var(--text-muted);flex:none}.barcode-scanner-modal__actions-text{color:var(--text-muted);font-size:var(--font-size-sm);flex:12rem}.barcode-scanner-modal__cancel{flex:100%}.barcode-scanner-modal__error{min-height:18rem;padding:var(--space-6)var(--space-5);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.barcode-scanner-modal__error-icon{margin-bottom:var(--space-3);color:var(--status-warning)}.barcode-scanner-modal__error-title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.barcode-scanner-modal__error-message{max-width:28rem;margin:var(--space-2)0 var(--space-5);color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-base)}@media (min-width:40rem){.barcode-scanner-modal{padding:var(--space-5);align-items:center}.barcode-scanner-modal__header{padding:var(--space-5)}.barcode-scanner-modal__scan-status,.barcode-scanner-modal__actions{padding:var(--space-4)var(--space-5)}}@media (min-width:48rem){.barcode-scanner-modal__cancel{flex:none}}@keyframes barcode-scanning-line{0%{opacity:.3;top:0}50%{opacity:1;top:calc(100% - 2px)}to{opacity:.3;top:0}}.loading-container{padding:var(--space-6)var(--space-4);text-align:center}.loading-container__text{color:var(--text-muted);font-size:var(--font-size-sm)}.loading-container__spinner{width:var(--spinner-size-lg);height:var(--spinner-size-lg);margin:0 auto var(--space-4);border:3px solid var(--border-subtle);border-top-color:var(--action-primary);border-radius:var(--radius-pill);animation:1s linear infinite spin}.loading-container__spinner--success{border-top-color:var(--status-success)}.error-container{margin-bottom:var(--space-5);padding:var(--space-5);border:1px solid var(--status-error-border);border-radius:var(--radius-md);background-color:var(--status-error-surface);text-align:center}.error-container__text{margin-bottom:var(--space-4);color:var(--status-error);font-size:var(--font-size-sm)}.error-container__content{align-items:flex-start;gap:var(--space-4);display:flex}.error-container__icon{margin-top:var(--space-1);font-size:var(--font-size-xl);flex-shrink:0}.error-container__details{text-align:left;flex:1}.error-container__title{margin:0 0 var(--space-2);color:var(--status-error);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.error-container__message{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-base);margin:0}.error-container__dismiss{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--font-size-lg);transition:background-color var(--motion-fast),color var(--motion-fast);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.error-container__dismiss:hover:not(:disabled){background-color:var(--status-error-hover-surface);color:var(--text-secondary)}.error-container__dismiss:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.error-container__dismiss:disabled{cursor:not-allowed;opacity:.55}.empty-state{padding:var(--space-6)var(--space-4);text-align:center}.empty-state__icon{margin-bottom:var(--space-4);opacity:.5}.empty-state__icon-mark{width:2.75rem;height:2.75rem}.empty-state__text{margin-bottom:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.empty-state__description{max-width:24rem;margin:0 auto var(--space-5);color:var(--text-muted);font-size:var(--font-size-sm)}.empty-state__actions,.empty-state__actions-row{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}@media (min-width:48rem){.empty-state__actions,.empty-state__actions-row{flex-direction:row;justify-content:center;align-items:center}}.message{margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid transparent}.message--success{border-color:var(--status-success-border);background-color:var(--status-success-surface);color:var(--status-success)}.message--error{border-color:var(--status-error-border);background-color:var(--status-error-surface);color:var(--status-error)}.message--warning{border-color:var(--status-warning-border);background-color:var(--status-warning-surface);color:var(--status-warning)}.message--info{border-color:var(--status-info-border);background-color:var(--status-info-surface);color:var(--status-info)}.message__content{align-items:center;gap:var(--space-2);display:flex}.message__icon{font-size:var(--font-size-lg);flex-shrink:0}.message__text{font-weight:var(--font-weight-medium)}.server-health{min-height:100dvh;padding:var(--space-4);background-color:var(--surface-canvas);place-items:center;display:grid}.server-health__panel{width:min(100%,34rem);padding:var(--space-6)var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-base);box-shadow:var(--shadow-raised)}@media (min-width:48rem){.server-health__panel{padding:var(--space-7)var(--space-6)}}.server-health__wordmark{margin:0 0 var(--space-6);color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);text-align:center}.server-health__loading{padding:0}.server-health__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.server-health__description{margin:var(--space-3)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.server-health__error{margin:var(--space-6)0 0;text-align:left}.toast-container{right:var(--space-3);bottom:var(--space-3);left:var(--space-3);z-index:var(--z-toast);gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:fixed}@media (min-width:30rem){.toast-container{right:auto;bottom:var(--space-4);left:var(--space-4);width:calc(100% - var(--space-4)*2);max-width:var(--toast-max-width)}}.toast{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-raised);box-shadow:var(--shadow-raised);color:var(--text-primary);pointer-events:auto;animation:toast-enter var(--motion-slow)}.toast--exiting{animation:toast-exit var(--motion-slow);opacity:0;transform:translateY(var(--space-2))}.toast--success{border-color:var(--status-success-border);background-color:var(--status-success-surface)}.toast--success .toast__icon{color:var(--status-success)}.toast--error{border-color:var(--status-error-border);background-color:var(--status-error-surface)}.toast--error .toast__icon{color:var(--status-error)}.toast__content{align-items:flex-start;gap:var(--space-3);display:flex}.toast__icon{margin-top:var(--space-1);flex-shrink:0}.toast__message{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-base);flex:1}.toast__action{min-height:var(--control-height);margin:calc(var(--space-2)*-1)0;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--action-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-underline-offset:.15em;background-color:transparent;border:0;flex:none;text-decoration:underline}.toast__action:hover{background-color:var(--action-secondary);color:var(--action-primary-hover)}.toast__action:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.toast__dismiss{width:var(--control-height);height:var(--control-height);margin:calc(var(--space-2)*-1);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background-color var(--motion-fast),color var(--motion-fast);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.toast__dismiss:hover:not(:disabled){background-color:var(--action-secondary);color:var(--text-primary)}.toast__dismiss:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.toast__dismiss:disabled{cursor:not-allowed;opacity:.55}@keyframes toast-enter{0%{opacity:0;transform:translateY(var(--space-2))}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(var(--space-2))}}.product-info__details{justify-content:space-between;align-items:flex-start;gap:var(--space-5);display:flex}.product-info__image-container{border-radius:var(--radius-md);background-color:var(--surface-subtle);flex-shrink:0;justify-content:center;align-items:center;width:7.5rem;height:7.5rem;display:flex;overflow:hidden}@media (max-width:40rem){.product-info__image-container{width:5.5rem;height:5.5rem}}.product-info__image{object-fit:contain;width:100%;height:100%}.product-info__price-section{min-width:0}.product-info__price-primary{margin-bottom:var(--space-1);color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}@media (min-width:48rem){.product-info__price-primary{font-size:var(--font-size-3xl)}}.product-info__unit-price{margin-bottom:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.product-info__price-meta{gap:var(--space-2);color:var(--text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.product-info__price-days,.product-info__price-average-days{font-weight:var(--font-weight-medium)}.product-info__price-average-days{flex-basis:100%}@media (min-width:40.0625rem){.product-info__price-average-days{flex-basis:auto}.product-info__price-average-days:before{margin-right:var(--space-2);content:"•"}}.product-info__no-price{color:var(--text-muted);font-size:var(--font-size-base)}.product-info__price-recommendation{justify-content:flex-start;align-items:center;display:flex}.product-info__suppliers-list{gap:var(--space-3);flex-direction:column;display:flex}.product-info__supplier-item{align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base);grid-template-columns:7.5rem minmax(0,1fr) minmax(9rem,auto) 8rem;display:grid;position:relative}.product-info__supplier-item--cheapest{border-color:var(--decision-buy-border);background-color:color-mix(in srgb,var(--decision-buy-surface)25%,var(--surface-base))}@media (max-width:40rem){.product-info__supplier-item{gap:var(--space-3);padding:var(--space-4);padding-top:var(--space-6);grid-template-columns:5.5rem minmax(0,1fr) auto;grid-template-areas:"image price supplier""recommendation recommendation recommendation"}.product-info__supplier-item>.product-info__image-container{grid-area:image}.product-info__supplier-item>.product-info__price-section{grid-area:price}.product-info__supplier-item>.product-info__price-recommendation{grid-area:recommendation;justify-content:center}.product-info__supplier-item .product-info__recommendation-badge{justify-content:center;width:min(100%,10rem)}.product-info__supplier-item>.product-info__supplier-info{grid-area:supplier;justify-self:end}}.product-info__supplier-logo-link{border-radius:var(--radius-sm);transition:opacity var(--motion-fast);justify-content:center;align-items:center;text-decoration:none;display:flex;position:relative}.product-info__supplier-logo-link:hover{opacity:.78}.product-info__supplier-logo-link:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.product-info__supplier-logo-link .supplier-logo{justify-content:center;align-items:center;width:5rem;height:3.5rem;display:flex}@media (max-width:40rem){.product-info__supplier-logo-link .supplier-logo{width:4rem;height:4rem}}.product-info__supplier-logo-link .supplier-logo img{border-radius:var(--radius-sm);object-fit:contain;width:auto;max-width:100%;height:100%}.product-info__supplier-link-indicator{display:none}@media (max-width:40rem){.product-info__supplier-link-indicator{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background-color:var(--surface-raised);width:1.5rem;height:1.5rem;box-shadow:var(--shadow-subtle);color:var(--action-primary);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}}.product-info__supplier-info{align-items:center;gap:var(--space-2);width:8rem;color:var(--text-secondary);font-size:var(--font-size-sm);text-align:center;flex-direction:column;flex-shrink:0;margin-left:auto;display:flex}@media (max-width:40rem){.product-info__supplier-info{width:auto;margin-left:0}}.product-info__supplier-logo{justify-content:center;align-items:center;width:3.25rem;height:2rem;display:flex}.product-info__supplier-logo img{border-radius:var(--radius-sm);object-fit:contain;width:auto;max-width:100%;height:100%}.product-info__supplier-fallback{color:var(--text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.product-info__supplier-fallback--hidden{display:none}.product-info__supplier-link{min-height:var(--control-height);padding:var(--space-2)var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--action-secondary);color:var(--text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast);white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.product-info__supplier-link:hover{border-color:var(--border-strong);background-color:var(--action-secondary-hover);color:var(--text-primary)}.product-info__supplier-link:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}@media (max-width:40rem){.product-info__supplier-link{display:none}}.product-info__meta{color:var(--text-muted);font-size:var(--font-size-sm)}.size-variants{margin-top:var(--space-5)}.size-variants--better{padding-top:var(--space-5);border-top:1px solid var(--border-subtle);margin-top:0}.size-variants--standalone{margin-top:0}.size-variants__header{margin-bottom:var(--space-3)}.size-variants__title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}@media (min-width:48rem){.size-variants__title{font-size:var(--font-size-xl)}}.size-variants__list{gap:var(--space-3);display:grid}@media (min-width:48rem){.size-variants__list{grid-template-columns:repeat(2,minmax(0,1fr))}}.size-variant-card{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base);color:var(--text-primary);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);text-decoration:none;display:flex}.size-variant-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-raised);color:var(--text-primary);text-decoration:none;transform:translateY(-1px)}.size-variant-card:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.size-variant-card--better{border-color:var(--decision-buy-border);background-color:color-mix(in srgb,var(--decision-buy-surface)35%,var(--surface-base))}.size-variant-card__content{min-width:0}.size-variant-card__title{margin:0 0 var(--space-2);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.size-variant-card__meta{align-items:baseline;gap:var(--space-2);line-height:var(--line-height-tight);flex-wrap:wrap;display:flex}.size-variant-card__price{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.size-variant-card__unit-price,.size-variant-card__muted{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.size-variant-card__side{align-items:flex-end;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex}.size-variant-card__badge{padding:var(--space-1)var(--space-2);border:1px solid var(--decision-buy-border);border-radius:var(--radius-sm);background-color:var(--decision-buy-surface);color:var(--decision-buy);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.size-variant-card__logo{width:3.25rem;height:2rem}.size-variant-card__logo img{border-radius:var(--radius-sm);object-fit:contain;width:auto;max-width:3.25rem;height:2rem}.supplier-selector{margin-bottom:var(--space-5)}.supplier-selector__tabs{gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.supplier-selector__tab{min-height:var(--control-height);align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base);color:var(--text-secondary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),color var(--motion-fast),transform var(--motion-fast);display:flex;position:relative}.supplier-selector__tab:hover:not(.supplier-selector__tab--active){border-color:var(--border-strong);background-color:var(--action-secondary);color:var(--text-primary);box-shadow:var(--shadow-subtle);transform:translateY(-1px)}.supplier-selector__tab--active{border-color:var(--action-primary);background-color:var(--action-primary);color:var(--text-inverse);box-shadow:var(--shadow-subtle)}.supplier-selector__tab--active .supplier-selector__name{color:var(--text-inverse)}.supplier-selector__tab:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.supplier-selector__logo{flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:1.5rem;display:flex}.supplier-selector__logo img{object-fit:contain;width:auto;max-width:100%;height:100%}.supplier-selector__name{color:inherit;font-weight:var(--font-weight-semibold);white-space:nowrap}.retailer-selector{border:0;min-width:0;margin:0;padding:0}.retailer-selector__legend{margin-bottom:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.retailer-selector__options{gap:var(--space-3);display:grid}.retailer-selector__option{min-height:var(--control-height-large);align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background-color:var(--surface-raised);cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);display:flex}.retailer-selector__option:hover{border-color:var(--action-primary);background-color:var(--action-secondary);box-shadow:var(--shadow-subtle);transform:translateY(-1px)}.retailer-selector__option:has(.retailer-selector__input:focus-visible){outline:3px solid var(--focus-ring-soft);outline-offset:2px}.retailer-selector__option--selected{border-color:var(--action-primary);background-color:var(--action-secondary)}.retailer-selector__option:has(.retailer-selector__input:disabled){cursor:not-allowed;opacity:.55}.retailer-selector__input{opacity:0;position:absolute}.retailer-selector__option-check{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:var(--surface-raised);width:1.5rem;height:1.5rem;color:var(--text-inverse);flex:none;justify-content:center;align-items:center;margin-top:.125rem;display:inline-flex}.retailer-selector__option--selected .retailer-selector__option-check{border-color:var(--action-primary);background-color:var(--action-primary)}.retailer-selector__option-content{gap:var(--space-1);display:grid}.retailer-selector__option-name{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.retailer-selector__option-description{color:var(--text-muted);font-size:var(--font-size-sm)}.price-chart-container{margin-top:var(--space-4);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base);overflow:hidden}.price-chart__chart-stats{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.price-chart__stat-item{column-gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.price-chart__stat-icon{width:1.25rem;height:1.25rem;color:var(--status-info);grid-row:span 2}.price-chart__stat-label{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.price-chart__stat-value{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.price-chart__chart-legend{justify-content:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);flex-wrap:wrap;display:flex}.price-chart__legend-item{align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2)var(--space-3);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font:inherit;transition:background-color var(--motion-fast),border-color var(--motion-fast),opacity var(--motion-fast);background:0 0;border:1px solid transparent;flex-shrink:0;display:flex}.price-chart__legend-item:hover{border-color:var(--border-subtle);background-color:var(--surface-raised)}.price-chart__legend-item:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.price-chart__legend-item--hidden .price-chart__legend-color{border:2px solid var(--legend-color,var(--data-series-neutral));background-color:transparent}.price-chart__legend-item--hidden .supplier-logo{opacity:.55}.price-chart__legend-item .supplier-logo.supplier-logo-small{justify-content:center;align-items:center;width:3.75rem;height:2rem;display:flex}.price-chart__legend-item .supplier-logo.supplier-logo-small img{object-fit:contain;width:auto;max-width:100%;height:100%}.price-chart__legend-color{box-sizing:border-box;border:1px solid color-mix(in srgb,var(--legend-color,var(--data-series-neutral))45%,var(--surface-raised));border-radius:var(--radius-sm);background-color:var(--legend-color,var(--data-series-neutral));width:1rem;height:1rem;transition:background-color var(--motion-fast),border-color var(--motion-fast);flex-shrink:0}.price-chart__chart-container{flex-direction:column;width:100%;display:flex;overflow-x:auto}.price-chart__chart-bars{width:100%;min-width:max-content;height:max(13rem,min(28vh,22rem));padding:var(--space-4)0;justify-content:center;align-items:flex-end;gap:var(--space-3);display:flex}.price-chart__chart-bars--empty{align-items:center;min-width:100%}.price-chart__empty-state{width:100%}.price-chart__empty-state .empty-state__icon{margin-bottom:var(--space-3)}.price-chart__empty-state .empty-state__description{margin-bottom:var(--space-4)}.price-chart__chart-column{flex-direction:column;flex:0 0 4.25rem;justify-content:flex-end;align-items:center;height:100%;display:flex}.price-chart__price-label{margin-bottom:var(--space-2);color:var(--text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:center}.price-chart__price-bar{width:100%;min-height:2.5rem;height:var(--bar-height,0%);border-radius:var(--radius-sm)var(--radius-sm)0 0;background-color:var(--bar-color,var(--data-series-neutral));transition:height var(--motion-slow)}.price-chart__date-label{margin-top:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:center}.price-chart__days-label{margin-top:var(--space-1);color:var(--text-muted);font-size:var(--font-size-xs);text-align:center}@media (max-width:40rem){.price-chart__chart-stats{grid-template-columns:1fr}.price-chart__chart-legend{flex-wrap:nowrap;justify-content:center;overflow-x:auto}}.recommendation-badge,.status-badge{align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);border:1px solid transparent;display:inline-flex}.recommendation-badge--buy-now{border-color:var(--decision-buy-border);background-color:var(--decision-buy-surface);color:var(--decision-buy)}.recommendation-badge--consider{border-color:var(--decision-consider-border);background-color:var(--decision-consider-surface);color:var(--decision-consider)}.recommendation-badge--wait{border-color:var(--decision-wait-border);background-color:var(--decision-wait-surface);color:var(--decision-wait)}.recommendation-badge--stable{border-color:var(--decision-stable-border);background-color:var(--decision-stable-surface);color:var(--decision-stable)}.recommendation-badge--loading,.recommendation-badge--default{border-color:var(--border-subtle);background-color:var(--surface-subtle);color:var(--text-muted)}.recommendation-badge--unavailable{border-color:var(--status-warning-border);background-color:var(--status-warning-surface);color:var(--status-warning)}.recommendation-badge__icon{flex-shrink:0;display:inline-flex}.recommendation-badge__icon--spinning{animation:1s linear infinite spin}.recommendation-badge__text{font:inherit}.status-badge--success{border-color:var(--status-success-border);background-color:var(--status-success-surface);color:var(--status-success)}.status-badge--warning{border-color:var(--status-warning-border);background-color:var(--status-warning-surface);color:var(--status-warning)}.status-badge--error{border-color:var(--status-error-border);background-color:var(--status-error-surface);color:var(--status-error)}.status-badge--info{border-color:var(--status-info-border);background-color:var(--status-info-surface);color:var(--status-info)}.cheapest-badge{top:var(--space-2);left:var(--space-2);z-index:1;padding:var(--space-1)var(--space-3);border-radius:var(--radius-pill);background-color:var(--decision-buy);color:var(--text-inverse);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);position:absolute}.buy-recommendation__loading{padding:var(--space-6)var(--space-4);color:var(--text-muted);font-size:var(--font-size-sm);text-align:center}.buy-recommendation__message{margin-top:0}.buy-recommendation__stable-price-container{margin-bottom:var(--space-4);padding:var(--space-5);border:1px solid var(--decision-stable-border);border-radius:var(--radius-md);background-color:var(--decision-stable-surface);text-align:center}.buy-recommendation__stable-price-indicator{margin-bottom:var(--space-2);justify-content:center;align-items:center;display:flex}.buy-recommendation__stable-price-text{color:var(--decision-stable);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.buy-recommendation__stable-price-note{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.buy-recommendation__analysis-container{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base);overflow:hidden}.buy-recommendation__recommendation-section{padding:var(--space-5);border-bottom:1px solid var(--border-subtle)}.buy-recommendation__recommendation-text{margin-bottom:var(--space-5);color:var(--text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-base)}.buy-recommendation__range-visualization{margin-top:var(--space-4)}.buy-recommendation__range-bar{width:100%;height:var(--space-2);margin:0 0 var(--space-3);border-radius:var(--radius-pill);background:linear-gradient(to right,var(--decision-buy)0%,var(--decision-consider)50%,var(--decision-wait)100%);position:relative}.buy-recommendation__range-indicator{top:-.25rem;left:var(--indicator-position,50%);z-index:1;width:var(--space-4);height:var(--space-4);border:3px solid var(--surface-raised);border-radius:var(--radius-pill);box-shadow:var(--shadow-subtle);position:absolute;transform:translate(-50%)}.buy-recommendation__range-indicator--buy-now{background-color:var(--decision-buy)}.buy-recommendation__range-indicator--consider{background-color:var(--decision-consider)}.buy-recommendation__range-indicator--wait{background-color:var(--decision-wait)}.buy-recommendation__range-indicator--stable{background-color:var(--decision-stable)}.buy-recommendation__range-indicator--default{background-color:var(--text-muted)}.buy-recommendation__range-labels,.buy-recommendation__range-zones{justify-content:space-between;width:100%;display:flex}.buy-recommendation__range-labels{margin-bottom:var(--space-2)}.buy-recommendation__range-label{padding:var(--space-1)var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--surface-subtle);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.buy-recommendation__range-zones{gap:var(--space-2)}.buy-recommendation__zone{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:center;flex:1}.buy-recommendation__zone--buy{color:var(--decision-buy)}.buy-recommendation__zone--consider{color:var(--decision-consider)}.buy-recommendation__zone--wait{color:var(--decision-wait)}.buy-recommendation__insights-section{padding:var(--space-5);background-color:var(--surface-subtle)}.buy-recommendation__confidence-info{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.buy-recommendation__confidence-badge{padding:var(--space-1)var(--space-2);border:1px solid var(--status-info-border);border-radius:var(--radius-pill);background-color:var(--status-info-surface);color:var(--status-info);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.buy-recommendation__confidence-reasoning{color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.buy-recommendation__price-stats{gap:var(--space-2)var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.buy-recommendation__stat-row{gap:var(--space-1);padding:var(--space-2)0;border-bottom:1px solid var(--border-subtle);flex-direction:column;display:flex}.buy-recommendation__stat-label{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.buy-recommendation__stat-value{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.buy-recommendation__supplier-context{align-items:center;gap:var(--space-2);padding:var(--space-3)var(--space-4);border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-md)var(--radius-md)0 0;background-color:var(--surface-subtle);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.buy-recommendation__supplier-context-label{color:var(--text-secondary);font-weight:var(--font-weight-medium)}.buy-recommendation__supplier-context-name{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.buy-recommendation__supplier-context-price{color:var(--text-primary);font-weight:var(--font-weight-semibold);margin-left:auto}@media (max-width:40rem){.buy-recommendation__recommendation-section,.buy-recommendation__insights-section{padding:var(--space-4)}.buy-recommendation__price-stats{grid-template-columns:1fr;gap:0}.buy-recommendation__supplier-context-price{width:100%;margin-left:0}}.app-navigation{gap:.25rem;width:100%;display:flex;overflow-x:auto}.app-navigation__group{display:contents}.app-navigation__link{min-height:2.75rem;padding:var(--space-2)var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;transition:background-color var(--motion-fast),color var(--motion-fast);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.app-navigation__link:hover{background-color:var(--action-secondary);color:var(--text-primary)}.app-navigation__link:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.app-navigation__link--active{background-color:var(--action-primary);color:var(--text-inverse)}.app-navigation__link--active:hover{background-color:var(--action-primary-hover);color:var(--text-inverse)}.app-navigation__icon{flex:none;width:1.125rem;height:1.125rem;display:none}.app-navigation--mobile{justify-content:space-around;width:100%;overflow:visible}.app-navigation--mobile .app-navigation__link{gap:var(--space-1);min-width:0;min-height:var(--control-height);padding:var(--space-1)var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);flex-direction:column;flex:1 1 0}.app-navigation--mobile .app-navigation__icon{width:1.25rem;height:1.25rem;display:block}@media (min-width:1024px){.app-navigation--desktop{flex-direction:column;flex:auto;width:auto;overflow:visible}.app-navigation--desktop .app-navigation__group{flex-direction:column;gap:.25rem;display:flex}.app-navigation--desktop .app-navigation__group--account{margin-top:auto}.app-navigation--desktop .app-navigation__link{justify-content:flex-start;gap:var(--space-3);width:100%;min-height:var(--control-height);padding:var(--space-3)}.app-navigation--desktop .app-navigation__icon{display:block}}.module-overview{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.module-overview__header{align-items:flex-start;gap:var(--space-3);display:flex}.module-overview__icon{border-radius:var(--radius-pill);background-color:var(--action-secondary);width:3.5rem;height:3.5rem;color:var(--action-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.module-overview__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.module-overview__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.module-overview__steps{gap:var(--space-4);margin:var(--space-6)0 0;padding:0;list-style:none;display:grid}.module-overview__step{align-items:flex-start;gap:var(--space-3);display:flex}.module-overview__step-number{border-radius:var(--radius-pill);background-color:var(--action-secondary);width:1.75rem;height:1.75rem;color:var(--action-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex:none;justify-content:center;align-items:center;display:inline-flex}.module-overview__step-title{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.module-overview__step-description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.module-overview__actions{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}@media (min-width:30rem){.module-overview{padding:var(--space-6)}}@media (min-width:48rem){.module-overview__steps:not(.module-overview__steps--stacked){grid-template-columns:repeat(3,minmax(0,1fr))}.module-overview__actions{flex-direction:row;align-items:center}}.add-product-panel{z-index:var(--z-modal);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.add-product-panel__overlay{background-color:var(--surface-scrim-soft);cursor:default;border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.add-product-panel__container{border:1px solid var(--border-subtle);border-radius:var(--radius-lg)var(--radius-lg)0 0;background-color:var(--surface-raised);width:100%;max-height:min(90dvh,48rem);box-shadow:var(--shadow-raised);border-bottom:0;position:relative;overflow-y:auto}.add-product-panel__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--border-subtle);display:flex}.add-product-panel__heading{align-items:flex-start;gap:var(--space-3);display:flex}.add-product-panel__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.add-product-panel__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.add-product-panel__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.add-product-panel__form,.add-product-panel__result{gap:var(--space-5);padding:var(--space-5);display:grid}.add-product-panel__result-heading{align-items:flex-start;gap:var(--space-2);display:flex}.add-product-panel__result-heading h3{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.add-product-panel__result-icon{margin-top:var(--space-1);color:var(--status-success);flex:none}.add-product-panel__result-description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.add-product-panel__product{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);display:grid}.add-product-panel__product-name{color:var(--text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);margin:0}.add-product-panel__product-facts{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.add-product-panel__price-label{color:var(--text-muted);font-size:var(--font-size-xs);display:block}.add-product-panel__price-value{color:var(--text-primary);font-size:var(--font-size-xl);line-height:var(--line-height-tight);display:block}.add-product-panel__divider{align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--font-size-sm);display:flex}.add-product-panel__divider:before,.add-product-panel__divider:after{background-color:var(--border-subtle);content:"";flex:1;height:1px}.add-product-panel__message{margin:0}.add-product-panel__actions{gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);flex-direction:column-reverse;display:flex}.add-product-panel__result-actions{gap:var(--space-3);display:grid}.add-product-panel__spinner{animation:1s linear infinite spin}@media (min-width:48rem){.add-product-panel__actions{flex-direction:row;justify-content:flex-end}.add-product-panel{justify-content:flex-end;align-items:stretch}.add-product-panel__container{border:0;border-left:1px solid var(--border-subtle);border-radius:0;width:min(100%,32rem);max-height:none}}.recipe-picker-panel{z-index:var(--z-modal);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.recipe-picker-panel__overlay{background-color:var(--surface-scrim-soft);cursor:default;border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.recipe-picker-panel__container{border:1px solid var(--border-subtle);border-radius:var(--radius-lg)var(--radius-lg)0 0;background-color:var(--surface-raised);width:100%;max-height:min(90dvh,48rem);box-shadow:var(--shadow-raised);border-bottom:0;position:relative;overflow-y:auto}.recipe-picker-panel__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--border-subtle);display:flex}.recipe-picker-panel__heading{align-items:flex-start;gap:var(--space-3);display:flex}.recipe-picker-panel__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.recipe-picker-panel__title,.recipe-picker-panel__summary-title,.recipe-picker-panel__empty-title{color:var(--text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.recipe-picker-panel__title{font-size:var(--font-size-xl)}.recipe-picker-panel__description,.recipe-picker-panel__empty-description,.recipe-picker-panel__no-results{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.recipe-picker-panel__content{gap:var(--space-5);padding:var(--space-5);display:grid}.recipe-picker-panel__search{display:block;position:relative}.recipe-picker-panel__search-icon{top:50%;left:var(--space-3);color:var(--text-muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.recipe-picker-panel__search-input{width:100%;padding-left:calc(var(--space-3) + 1.5rem + var(--space-2))}.recipe-picker-panel__list{border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:grid;overflow:hidden}.recipe-picker-panel__recipe{align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-2)var(--space-3)var(--space-4);border-bottom:1px solid var(--border-subtle);background-color:var(--surface-raised);display:flex}.recipe-picker-panel__recipe:last-child{border-bottom:0}.recipe-picker-panel__recipe-add,.recipe-picker-panel__recipe-details{flex:none}.recipe-picker-panel__recipe-name{min-width:0;font-weight:var(--font-weight-semibold);overflow-wrap:anywhere;flex:1}.recipe-picker-panel__recipe-meta{align-items:center;gap:var(--space-1);color:var(--text-muted);font-size:var(--font-size-sm);white-space:nowrap;margin:0;display:inline-flex}.recipe-picker-panel__no-results{padding:var(--space-4)}.recipe-picker-panel__summary,.recipe-picker-panel__empty{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);display:grid}.recipe-picker-panel__summary-title{font-size:var(--font-size-lg)}.recipe-picker-panel__summary-meta{gap:var(--space-3);flex-wrap:wrap;margin:0;display:flex}.recipe-picker-panel__summary-fact{align-items:center;gap:var(--space-1);color:var(--text-muted);font-size:var(--font-size-sm);display:inline-flex}.recipe-picker-panel__ingredients,.recipe-picker-panel__instructions{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);display:grid}.recipe-picker-panel__ingredients-title,.recipe-picker-panel__instructions-title{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.recipe-picker-panel__ingredients-list{gap:var(--space-1);padding-left:var(--space-4);color:var(--text-primary);font-size:var(--font-size-sm);margin:0;display:grid}.recipe-picker-panel__ingredient{padding-left:var(--space-1)}.recipe-picker-panel__instructions-copy{color:var(--text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;margin:0}.recipe-picker-panel__empty{justify-items:start}.recipe-picker-panel__empty-icon{color:var(--action-primary)}.recipe-picker-panel__empty-title{font-size:var(--font-size-base)}.recipe-picker-panel__actions{gap:var(--space-3);display:grid}.recipe-picker-panel__remove-slot-tooltip{width:-moz-fit-content;width:fit-content}.recipe-picker-panel__remove-slot{width:-moz-fit-content;width:fit-content;min-height:var(--control-height);padding:var(--space-2)0;color:var(--action-destructive);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;text-underline-offset:.18em;background-color:transparent;border:0;text-decoration:underline;text-decoration-thickness:1px}.recipe-picker-panel__remove-slot:hover:not(:disabled){color:var(--action-destructive-hover)}.recipe-picker-panel__remove-slot:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.recipe-picker-panel__remove-slot:disabled{cursor:not-allowed;color:var(--text-muted);text-decoration:none}@media (min-width:48rem){.recipe-picker-panel{justify-content:flex-end;align-items:stretch}.recipe-picker-panel__container{border:0;border-left:1px solid var(--border-subtle);border-radius:0;width:min(100%,32rem);max-height:none}}.pagination{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pagination__pages{align-items:center;gap:var(--space-1);display:flex}.pagination__button{min-width:var(--control-height)}.pagination__button--previous,.pagination__button--next{min-width:auto}.pagination__ellipsis{min-width:var(--control-height);min-height:var(--control-height);color:var(--text-muted);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:inline-flex}@media (max-width:29.99rem){.pagination__button--previous,.pagination__button--next{width:var(--control-height);min-width:var(--control-height);padding-left:0;padding-right:0}.pagination__label{display:none}}.app-route-shell{min-width:0}.app-route-shell__sidebar{display:none}.app-route-shell__brand{width:-moz-fit-content;width:fit-content;color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);align-items:center;text-decoration:none;display:inline-flex}.app-route-shell__brand:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:4px;border-radius:var(--radius-sm)}.app-route-shell__mobile-header{z-index:var(--z-navigation);min-height:calc(var(--control-height) + var(--space-4));padding:var(--space-2)var(--space-4);border-bottom:1px solid var(--border-subtle);background-color:var(--surface-base);align-items:center;display:flex;position:-webkit-sticky;position:sticky;top:0}.app-route-shell__mobile-navigation{z-index:var(--z-navigation);padding:var(--space-2)var(--space-3)calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle);background-color:var(--surface-base);box-shadow:var(--shadow-subtle);position:fixed;bottom:0;left:0;right:0}.app-route-shell__content{min-width:0;padding-bottom:calc(var(--mobile-navigation-height) + env(safe-area-inset-bottom))}@media (min-width:1024px){.app-route-shell{grid-template-columns:15rem minmax(0,1fr);min-height:100vh;display:grid}.app-route-shell__sidebar{gap:var(--space-7);height:100dvh;padding:var(--space-6)var(--space-4);border-right:1px solid var(--border-subtle);background-color:var(--surface-base);flex-direction:column;display:flex;position:-webkit-sticky;position:sticky;top:0}.app-route-shell__brand{display:inline-flex}.app-route-shell__mobile-header,.app-route-shell__mobile-navigation{display:none}.app-route-shell__content{padding-bottom:0}}.app-page{min-height:100vh;padding:var(--space-4);background-color:var(--surface-canvas)}@media (min-width:48rem){.app-page{padding:var(--space-5)}}@media (min-width:64rem){.app-page{padding:var(--space-6)}}.app-page__container{max-width:28rem;margin:0 auto}@media (min-width:48rem){.app-page__container{max-width:48rem}}@media (min-width:64rem){.app-page__container{max-width:64rem}}@media (min-width:80rem){.app-page__container{max-width:80rem}}.products-grid{gap:var(--space-5);grid-template-columns:1fr;align-items:stretch;display:grid}@media (min-width:768px){.products-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.products-grid{grid-template-columns:repeat(3,1fr)}}.products-grid__item{gap:var(--space-3);flex-direction:column;height:100%;min-height:12.5rem;display:flex}.products-grid__actions{flex-shrink:0;justify-content:center;min-height:3rem;display:flex}.actions-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (min-width:480px){.actions-grid{grid-template-columns:repeat(2,1fr)}}.auth-page{min-height:100vh;padding:var(--space-5)var(--space-4);background-color:var(--surface-canvas);place-items:center;display:grid}.auth-page__content{width:min(100%,30rem)}.auth-page__brand{margin:0 0 var(--space-5);color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.04em;text-align:center}@media (min-width:48rem){.auth-page{padding:var(--space-8)var(--space-6)}}.auth-card{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.auth-card--loading,.auth-card--success,.auth-card__header{text-align:center}.auth-card__icon{width:3.5rem;height:3.5rem;margin-bottom:var(--space-4);border-radius:var(--radius-pill);justify-content:center;align-items:center;display:inline-flex}.auth-card__icon--primary,.auth-card__icon--loading{background-color:var(--action-secondary);color:var(--action-primary)}.auth-card__icon-mark{flex:none}.auth-card__icon-mark--spinning{animation:1s linear infinite spin}.auth-card__icon--success{background-color:var(--status-success-surface);color:var(--status-success)}.auth-card__icon--error{background-color:var(--status-error-surface);color:var(--status-error)}.auth-card__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.auth-card__subtitle{margin:var(--space-3)auto 0;color:var(--text-muted);font-size:var(--font-size-base)}.auth-card__actions{margin-top:var(--space-6)}.auth-card__footer{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);text-align:center}.auth-card__disclaimer{color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.auth-card__link{color:var(--action-primary);font-weight:var(--font-weight-semibold);text-decoration:none}.auth-card__link:hover{color:var(--action-primary-hover);text-decoration:underline}.auth-card__link:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.auth-card__loading-icon{margin-bottom:var(--space-3);color:var(--action-primary);animation:1s linear infinite spin}.auth-card__loading-text,.auth-card__status{color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.auth-card__status{margin-top:var(--space-5)}.auth-card__message{margin-bottom:0}@media (min-width:30rem){.auth-card{padding:var(--space-6)}}.auth-feature-list{gap:var(--space-3);margin:var(--space-6)0 0;padding:var(--space-5)0 0;border-top:1px solid var(--border-subtle);list-style:none;display:grid}.auth-feature-list__item{align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.auth-feature-list__icon{color:var(--action-primary);flex:none}.auth-google-icon{flex:none;width:1.25rem;height:1.25rem}.home-page{background-color:var(--surface-canvas)}.home-page__container{max-width:75rem}.home-page__header{margin-bottom:var(--space-6)}.home-page__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.home-page__subtitle{max-width:40rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.home-page__decisions{margin-top:var(--space-6)}.home-page__section-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.home-page__section-heading{align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.home-page__section-icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.home-page__section-icon--error{color:var(--status-error)}.home-page__section-title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.home-page__section-description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.home-page__price-actions,.home-page__strip-controls{align-items:center;gap:var(--space-4);display:flex}.home-page__price-actions{width:100%}.home-page__strip-controls{display:none}.home-page__summary-grid{align-items:start;gap:var(--space-5);margin-top:var(--space-6);display:grid}.home-page__summary-grid .home-page__decisions,.home-page__summary-grid .home-module+.home-module{margin-top:0}.home-page__error{gap:var(--space-4);text-align:left;display:grid}@media (min-width:40rem){.home-page__section-header{flex-direction:row;align-items:center}.home-page__price-actions{width:auto}}@media (min-width:48rem){.home-page__error{grid-template-columns:minmax(0,1fr) auto;align-items:center}.home-page__title{font-size:var(--font-size-3xl)}.home-page__strip-controls{display:flex}.home-page__summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.home-module{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}@media (min-width:40rem){.home-module{padding:var(--space-6)}}.home-module--summary{padding:var(--space-5)}.home-module--price{border-top-width:.375rem}.home-module--price-buy-now{border-top-color:var(--decision-buy)}.home-module--price-consider{border-top-color:var(--decision-consider)}.home-module--price-stable{border-top-color:var(--decision-stable)}.home-module--plan-draft{border-top-width:.375rem;border-top-color:var(--status-info)}.home-module--plan-locked,.home-module--shop{border-top-width:.375rem;border-top-color:var(--status-success)}.home-module__loading{padding:var(--space-4)0 0}.home-module+.home-module{margin-top:var(--space-6)}.home-week-agenda{margin:0}.home-week-agenda__summary{margin:0 0 var(--space-4);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.home-week-agenda__days{gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);grid-auto-rows:min-content;align-items:start;display:grid}.home-week-agenda__day{gap:var(--space-2);align-content:start;min-width:0;display:grid}.home-week-agenda__day+.home-week-agenda__day{padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.home-week-agenda__day-label{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}.home-week-agenda__meals{gap:var(--space-2);grid-auto-rows:min-content;align-content:start;margin:0;padding:0;list-style:none;display:grid}.home-week-agenda__meal{align-items:baseline;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr);align-self:start;min-height:0;display:grid}.home-week-agenda__meal--selected{border:1px solid var(--status-info-border);background-color:var(--status-info-surface)}.home-week-agenda__meal--unassigned{border:1px dashed var(--border-strong);background-color:var(--surface-raised)}.home-week-agenda__meal--locked{padding:var(--space-2)0;border-radius:0}.home-week-agenda__meal--locked+.home-week-agenda__meal--locked{padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.home-week-agenda__meal-type{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.home-week-agenda__recipe-name{min-width:0;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (min-width:28rem){.home-week-agenda__days--2{grid-template-columns:repeat(2,minmax(0,1fr))}.home-week-agenda__days--2 .home-week-agenda__day+.home-week-agenda__day{border-top:0;padding-top:0}.home-week-agenda__days--2 .home-week-agenda__day:nth-child(n+3){padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}}.home-price-strip{gap:var(--space-4);margin:0 calc(var(--space-1)*-1);padding:var(--space-1)var(--space-1)var(--space-3);overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-color:var(--border-strong)transparent;scrollbar-width:thin;display:flex;overflow-x:auto}.home-price-strip__item{scroll-snap-align:start;flex:0 0 86%;min-width:0;display:flex}.home-price-strip__item .product-card,.home-price-strip__item .product-card__link{height:100%}@media (min-width:40rem){.home-price-strip__item{flex-basis:min(20rem,78%)}}@media (min-width:64rem){.home-price-strip__item{flex-basis:22rem}}.home-shop-summary{padding-top:var(--space-4);border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.prices-page{background-color:var(--surface-canvas)}.prices-page__container{max-width:75rem}.prices-page__header{gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.prices-page__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.prices-page__subtitle{max-width:40rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.prices-page__browse-action{align-self:flex-start}.prices-page__empty-actions{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.prices-page__error{gap:var(--space-4);text-align:left;display:grid}@media (min-width:40rem){.prices-page__header{flex-direction:row;justify-content:space-between;align-items:flex-end}.prices-page__browse-action{align-self:auto}.prices-page__empty-actions{flex-flow:wrap;align-items:center}}@media (min-width:48rem){.prices-page__error{grid-template-columns:minmax(0,1fr) auto;align-items:center}.prices-page__title{font-size:var(--font-size-3xl)}}.add-product-page{background-color:var(--surface-canvas)}.add-product-page__container{max-width:56rem}.add-product-page__header{margin-bottom:var(--space-6)}.add-product-page__back{min-height:var(--control-height);align-items:center;gap:var(--space-2);padding:var(--space-2)0;border-radius:var(--radius-sm);color:var(--action-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-decoration:none;display:inline-flex}.add-product-page__back:hover{color:var(--action-primary-hover);text-decoration:none}.add-product-page__back:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.add-product-page__title{margin:var(--space-2)0 0;color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight)}.add-product-page__subtitle{max-width:38rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.add-product-form,.add-product-result{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.add-product-form__header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.add-product-form__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.add-product-form__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.add-product-form__description{margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.add-product-form__divider{align-items:center;gap:var(--space-3);margin:var(--space-5)0;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.add-product-form__divider:before,.add-product-form__divider:after{content:"";background-color:var(--border-subtle);flex:1;height:1px}.add-product-form__divider-text{white-space:nowrap}.add-product-form__actions{margin-top:var(--space-6);text-align:initial;justify-content:stretch;display:flex}.add-product-form__submit{width:100%}.add-product-form__action-icon{flex:none}.add-product-form__action-icon--spinning{animation:1s linear infinite spin}.add-product-form__retailers{align-items:center;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:var(--font-size-sm);display:flex}.add-product-form__retailers-icon{color:var(--text-secondary);flex:none}.add-product-result__header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.add-product-result__icon{color:var(--status-success);flex:none}.add-product-result__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.add-product-result__subtitle{margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.add-product-result__product{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-base)}.add-product-result__product-name{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.add-product-result__facts{align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.add-product-result__price{align-items:baseline;gap:var(--space-2);display:flex}.add-product-result__price-label{color:var(--text-muted);font-size:var(--font-size-sm)}.add-product-result__price-value{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em}.add-product-result__actions{gap:var(--space-3);margin-top:var(--space-5);display:grid}.add-product-result__secondary-actions{justify-items:start;gap:var(--space-3);display:grid}.add-product-result__action-icon{flex:none}.add-product-result__action-icon--spinning{animation:1s linear infinite spin}@media (min-width:48rem){.add-product-page__title{font-size:var(--font-size-3xl)}.add-product-form,.add-product-result{padding:var(--space-6)}.add-product-result__product{padding:var(--space-5)}.add-product-result__secondary-actions{grid-template-columns:repeat(2,max-content)}}.browse-products-page{background-color:var(--surface-canvas)}.browse-products-page__container{max-width:70rem}.browse-products-page__header{align-items:stretch;gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.browse-products-page__heading{min-width:0}.browse-products-page__back{min-height:var(--control-height);align-items:center;gap:var(--space-2);padding:var(--space-2)0;border-radius:var(--radius-sm);color:var(--action-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-decoration:none;display:inline-flex}.browse-products-page__back:hover{color:var(--action-primary-hover);text-decoration:none}.browse-products-page__back:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.browse-products-page__title{margin:var(--space-2)0 0;color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight)}.browse-products-page__subtitle{max-width:38rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.browse-products-page__header-action{flex:none}.browse-products-page__header-action .button{width:auto}.browse-products-page__results{margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.browse-products-page__results-header{align-items:stretch;gap:var(--space-4);margin-bottom:var(--space-5);flex-direction:column;display:flex}.browse-products-page__results-title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.browse-products-page__results-meta{justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap;display:flex}.browse-products-page__count,.browse-products-page__watchlist-count{min-height:var(--control-height);padding:var(--space-1)var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.browse-products-page__watchlist-count{border-color:var(--status-success-border);background-color:var(--status-success-surface);color:var(--status-success)}.browse-products-page__action-icon{flex:none}.browse-products-page__action-icon--spinning{animation:1s linear infinite spin}@media (min-width:40rem){.browse-products-page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-5);flex-direction:row}.browse-products-page__results{padding:var(--space-5)}.browse-products-page__results-header{flex-direction:row;justify-content:space-between;align-items:flex-start}.browse-products-page__results-meta{justify-content:flex-end}}@media (min-width:48rem){.browse-products-page__title{font-size:var(--font-size-3xl)}}.browse-products{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.browse-products__input-row{align-items:stretch;gap:var(--space-3);flex-wrap:wrap;display:flex}.browse-products__input-row>.button{width:100%}.browse-products__input-container{flex:16rem;position:relative}.browse-products__label{margin-bottom:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:block}.browse-products__input-container .form__input{min-height:var(--control-height);padding-right:calc(var(--control-height) + var(--space-2))}.browse-products__input-icon{right:var(--space-3);bottom:calc((var(--control-height) - 1.25rem)/2);color:var(--text-muted);pointer-events:none;position:absolute}.browse-products__divider{min-height:var(--control-height);padding:var(--space-3)0;color:var(--text-muted);font-size:var(--font-size-sm);display:none}.browse-products__button-icon{flex:none}.browse-products__button-icon--spinning{animation:1s linear infinite spin}.browse-products__meta{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);display:flex}.browse-products__results{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}@media (min-width:40rem){.browse-products{padding:var(--space-5)}.browse-products__input-row{align-items:flex-end}.browse-products__divider{align-self:flex-end;display:inline}}@media (min-width:48rem){.browse-products__input-row>.button{width:auto}}.pagination-container{margin-top:var(--space-6);justify-content:center;display:flex}.profile-page{background-color:var(--surface-canvas)}.profile-page__container{max-width:56rem}.profile-page__header{margin-bottom:var(--space-6)}.profile-page__back{min-height:var(--control-height);align-items:center;gap:var(--space-2);padding:var(--space-2)0;border-radius:var(--radius-sm);color:var(--action-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-decoration:none;display:inline-flex}.profile-page__back:hover{color:var(--action-primary-hover);text-decoration:none}.profile-page__back:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.profile-page__title{margin:var(--space-2)0 0;color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight)}.profile-page__subtitle{max-width:38rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.profile-page__content{gap:var(--space-5);display:grid}@media (min-width:48rem){.profile-page__title{font-size:var(--font-size-3xl)}}.profile-panel{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.profile-panel__header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.profile-panel__header-icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.profile-panel__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.profile-panel__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.profile-panel--actions{flex-direction:column;align-items:flex-start;display:flex}@media (min-width:64rem){.profile-panel--admin{display:none}}.profile-info{gap:var(--space-5);display:grid}.profile-info__identity{align-items:center;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex}.profile-info__avatar{flex:none;display:flex}.profile-info__image,.profile-info__placeholder{border-radius:var(--radius-pill);width:4rem;height:4rem}.profile-info__image{object-fit:cover}.profile-info__placeholder{background-color:var(--action-primary);color:var(--text-inverse);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex}.profile-info__name{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.profile-info__email{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm);overflow-wrap:anywhere}.profile-info__details{margin:0;display:grid}.retailer-preferences__validation{margin-top:var(--space-3)}.retailer-preferences__actions{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);justify-content:flex-start;display:flex}.retailer-preferences__action-icon{animation:1s linear infinite spin}.detail-row{gap:var(--space-1);padding:var(--space-4)0;border-bottom:1px solid var(--border-subtle);display:grid}.detail-row__label{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.detail-row__icon{color:var(--text-muted);flex:none}.detail-row__value{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow-wrap:anywhere;margin:0}.detail-row__value--capitalize{text-transform:capitalize}@media (min-width:40rem){.detail-row{align-items:center;gap:var(--space-4);grid-template-columns:minmax(11rem,1fr) minmax(0,1.5fr)}.detail-row__value{text-align:right}}.email-preferences__toggle{gap:var(--space-3);display:grid}.email-preferences__toggle-description{color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.email-preferences__days{min-width:0;margin:var(--space-5)0 0;padding:var(--space-5)0 0;border:0;border-top:1px solid var(--border-subtle)}.email-preferences__days-label{margin-bottom:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.email-preferences__days-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.email-preferences__day-checkbox{min-height:var(--control-height);padding:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);background-color:var(--surface-raised);color:var(--text-secondary);cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast);justify-content:center;align-items:center;display:flex;position:relative}.email-preferences__day-checkbox:hover{border-color:var(--action-primary);background-color:var(--action-secondary)}.email-preferences__day-checkbox:has(.email-preferences__day-input:focus-visible){outline:3px solid var(--focus-ring-soft);outline-offset:2px}.email-preferences__day-checkbox--checked{border-color:var(--action-primary);background-color:var(--action-primary);color:var(--text-inverse)}.email-preferences__day-checkbox:has(.email-preferences__day-input:disabled){cursor:not-allowed;opacity:.55}.email-preferences__day-input{opacity:0;position:absolute}.email-preferences__day-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.email-preferences__actions{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);justify-content:flex-start;display:flex}.email-preferences__action-icon{animation:1s linear infinite spin}@media (min-width:40rem){.email-preferences__days-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}.toggle-switch{width:-moz-fit-content;width:fit-content;min-height:var(--control-height);align-items:center;gap:var(--space-3);cursor:pointer;display:inline-flex}.toggle-switch__input{opacity:0;position:absolute}.toggle-switch__slider{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background-color:var(--action-secondary);width:3rem;height:1.75rem;transition:background-color var(--motion-fast),border-color var(--motion-fast);flex:none;position:relative}.toggle-switch__slider:before{border-radius:var(--radius-pill);background-color:var(--surface-raised);width:1.125rem;height:1.125rem;box-shadow:var(--shadow-subtle);content:"";transition:transform var(--motion-fast);position:absolute;top:.25rem;left:.25rem}.toggle-switch__label{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.toggle-switch__input:checked+.toggle-switch__slider{border-color:var(--action-primary);background-color:var(--action-primary)}.toggle-switch__input:checked+.toggle-switch__slider:before{transform:translate(1.25rem)}.toggle-switch__input:focus-visible+.toggle-switch__slider{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.toggle-switch__input:disabled+.toggle-switch__slider,.toggle-switch__input:disabled~.toggle-switch__label{cursor:not-allowed;opacity:.55}@media (min-width:48rem){.profile-panel{padding:var(--space-6)}}.admin-page{background-color:var(--surface-canvas)}.admin-page__container{max-width:56rem}.admin-page__header{margin-bottom:var(--space-6)}.admin-page__back{align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2)0;border-radius:var(--radius-sm);color:var(--action-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-decoration:none;display:inline-flex}.admin-page__back:hover{color:var(--action-primary-hover);text-decoration:none}.admin-page__back:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.admin-page__title{margin:var(--space-2)0 0;color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight)}.admin-page__subtitle{max-width:38rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.admin-page__operations{gap:var(--space-4);margin-top:var(--space-5);display:grid}@media (min-width:48rem){.admin-page__title{font-size:var(--font-size-3xl)}}.admin-intro,.admin-operation,.admin-access{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.admin-intro{align-items:flex-start;gap:var(--space-3);padding:var(--space-5);display:flex}.admin-intro__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.admin-intro__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.admin-intro__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.admin-operation{padding:var(--space-5)}.admin-operation__header{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-operation__heading{flex:14rem;min-width:0}.admin-operation__icon{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-md);background-color:var(--surface-subtle);color:var(--action-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.admin-operation__title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.admin-operation__description{max-width:42rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.admin-operation__schedule{margin-left:calc(var(--control-height) + var(--space-3));flex:none}.admin-operation__footer{margin-top:var(--space-5);align-items:center;display:flex}.admin-operation__action-icon{flex:none}.admin-operation__action-icon--spinning{animation:1s linear infinite spin}@media (min-width:36rem){.admin-operation__schedule{margin-left:auto}}.admin-access{align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-color:var(--status-error-border);background-color:var(--status-error-surface);display:flex}.admin-access__icon{margin-top:var(--space-1);color:var(--status-error);flex:none}.admin-access__title{color:var(--status-error);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.admin-access__description{margin:var(--space-2)0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}@media (min-width:48rem){.admin-intro,.admin-operation,.admin-access{padding:var(--space-6)}}.product-page{background-color:var(--surface-canvas)}.product-page__container{max-width:70rem}.product-page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-5);margin-bottom:var(--space-6);display:flex}.product-page__heading{min-width:0}.product-page__back{min-height:var(--control-height);align-items:center;gap:var(--space-2);padding:var(--space-2)0;border-radius:var(--radius-sm);color:var(--action-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:0 0;border:0;display:inline-flex}.product-page__back:hover{color:var(--action-primary-hover)}.product-page__back:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:3px}.product-page__title{margin:var(--space-2)0 0;color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight)}.product-page__actions{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;flex:none;display:flex}.product-page__section{margin-bottom:var(--space-5);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.product-page__section-heading{margin-bottom:var(--space-5)}.product-page__section-title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;line-height:var(--line-height-tight);margin:0}.product-page__section-description{margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.product-page__error{margin-bottom:0}@media (min-width:768px){.product-page__title{font-size:var(--font-size-3xl)}}@media (max-width:47.99rem){.product-page__header{align-items:stretch;gap:var(--space-4);flex-direction:column}.product-page__actions{align-items:stretch}.product-page__actions .button--mobile-full{width:100%}.product-page__actions .price-shop-control{order:-1;justify-content:center;align-self:flex-start}.product-page__section{padding:var(--space-4)}}.onboarding-page{align-items:center;min-height:100%;display:grid}.onboarding-page__container{width:100%;max-width:38rem}.onboarding-card{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.onboarding-card__header{text-align:center}.onboarding-card__icon{width:3.5rem;height:3.5rem;margin-bottom:var(--space-4);border-radius:var(--radius-pill);background-color:var(--action-secondary);color:var(--action-primary);justify-content:center;align-items:center;display:inline-flex}.onboarding-card__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.onboarding-card__description{max-width:30rem;margin:var(--space-3)auto 0;color:var(--text-muted)}@media (min-width:30rem){.onboarding-card{padding:var(--space-6)}}.onboarding-form{margin-top:var(--space-6)}.onboarding-form__hint{color:var(--text-muted);font-size:var(--font-size-sm);margin:var(--space-5)0 0}.onboarding-form__actions{gap:var(--space-3);margin-top:var(--space-5);display:grid}.onboarding-form__action-icon{animation:1s linear infinite spin}.onboarding-form__message{margin-top:var(--space-4)}@media (min-width:48rem){.onboarding-form__actions{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}}.plan-page{background-color:var(--surface-canvas)}.plan-page__container{max-width:75rem}.plan-page__header{align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.plan-page__overview{margin-bottom:var(--space-5)}.plan-page__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.plan-page__subtitle{max-width:40rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}.plan-page__edit-actions{gap:var(--space-3);display:grid}@media (min-width:40rem){.plan-page__edit-actions{grid-template-columns:repeat(2,max-content)}}@media (min-width:48rem){.plan-page__header{flex-direction:row;justify-content:space-between;align-items:flex-start}.plan-page__title{font-size:var(--font-size-3xl)}}.plan-panel{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.plan-panel__header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.plan-panel__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.plan-panel__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.plan-panel__description{color:var(--text-muted);font-size:var(--font-size-sm);margin:var(--space-1)0 0}@media (min-width:30rem){.plan-panel{padding:var(--space-6)}}.week-day-picker{gap:var(--space-2);margin-top:var(--space-5);padding-bottom:var(--space-1);display:flex;overflow-x:auto}.week-day-picker__button{min-width:var(--control-height);min-height:var(--control-height);padding:var(--space-2)var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);color:var(--text-secondary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex:none}.week-day-picker__button:hover:not(:disabled){border-color:var(--border-strong);background-color:var(--action-secondary-hover);color:var(--text-primary)}.week-day-picker__button:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.week-day-picker__button:disabled{cursor:not-allowed;opacity:.55}.week-day-picker__button--active,.week-day-picker__button--active:hover:not(:disabled){border-color:var(--action-primary);background-color:var(--action-primary);color:var(--text-inverse)}.weekly-plan{margin-bottom:var(--space-5);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.weekly-plan__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.weekly-plan__navigator{align-items:center;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.weekly-plan__return{min-height:var(--control-height);padding:var(--space-2)var(--space-3);color:var(--text-secondary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-underline-offset:.16em;background-color:transparent;border:0;justify-self:center;text-decoration:underline}.weekly-plan__return:hover{color:var(--text-primary)}.weekly-plan__return:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.weekly-plan__state{justify-items:start;gap:var(--space-3);max-width:34rem;padding:var(--space-4)0 var(--space-2);display:grid}.weekly-plan__state-description{color:var(--text-muted);margin:0}.weekly-plan__heading{align-items:flex-start;gap:var(--space-3);display:flex}.weekly-plan__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.weekly-plan__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.weekly-plan__date{margin:var(--space-1)0 0;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.weekly-plan__description{max-width:36rem;margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.weekly-plan__status{width:-moz-fit-content;width:fit-content;padding:var(--space-1)var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background-color:var(--action-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin:0}.weekly-plan__actions{gap:var(--space-3);width:100%;display:grid}.weekly-plan__actions>.button{width:100%}.weekly-plan__lock-action{gap:var(--space-2);width:100%;display:grid}.weekly-plan__lock-tooltip{width:100%;display:block}.weekly-plan__lock-tooltip>.button{width:100%}.weekly-plan__action-icon{animation:1s linear infinite spin}.weekly-plan__grid{row-gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:1fr;display:grid}.weekly-plan__day-headings,.weekly-plan__meal-row{grid-template-columns:1fr;display:grid}.weekly-plan__meal-row{row-gap:var(--space-3)}.weekly-plan__meal-row--divided{padding-bottom:var(--space-3)}.weekly-plan__meal-row--inactive{display:none}.weekly-plan__meal-divider{background-color:var(--border-subtle);height:1px;display:none}.weekly-plan__meal-divider--active{display:block}.weekly-plan__day-title{min-height:var(--control-height);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0;display:none}.weekly-plan__day-title--active{display:block}.weekly-plan__slot{align-content:center;gap:var(--space-1);width:100%;min-height:6rem;padding:var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background-color:var(--surface-raised);color:var(--text-primary);cursor:pointer;font:inherit;text-align:left;transition:background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);display:none}.weekly-plan__slot:hover{background-color:var(--action-secondary-hover);box-shadow:none;transform:none}.weekly-plan__slot:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.weekly-plan__slot:active{background-color:var(--action-secondary-hover)}.weekly-plan__slot:disabled{cursor:default;opacity:1}.weekly-plan__slot:disabled:hover,.weekly-plan__slot:disabled:active{border-color:var(--border-strong);background-color:var(--surface-raised);box-shadow:none;transform:none}.weekly-plan__slot--active{display:grid}.weekly-plan__slot--planned{padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--surface-subtle)}.weekly-plan__slot--planned:hover:not(:disabled),.weekly-plan__slot--planned:active:not(:disabled){border-color:var(--action-primary);background-color:var(--action-secondary-hover)}.weekly-plan__slot--planned:disabled:hover,.weekly-plan__slot--planned:disabled:active{border-color:var(--border-subtle);background-color:var(--surface-subtle)}.weekly-plan__empty-cell{min-height:6rem;display:none}.weekly-plan__slot-meal-type,.weekly-plan__slot-empty,.weekly-plan__slot-unassigned-copy{margin:0}.weekly-plan__slot-empty{align-items:center;gap:var(--space-1);width:-moz-fit-content;width:fit-content;margin-top:var(--space-1);color:var(--action-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:inline-flex}.weekly-plan__slot-unassigned-copy{margin-top:var(--space-1);color:var(--text-muted);font-size:var(--font-size-sm)}.weekly-plan__slot-recipe{margin:0}.weekly-plan__slot-meal-type{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.weekly-plan__slot-recipe{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.weekly-plan__reset{align-items:center;gap:var(--space-1);width:-moz-fit-content;width:fit-content;min-height:var(--control-height);margin-top:var(--space-5);padding:var(--space-2)0;color:var(--action-destructive);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-underline-offset:.18em;background-color:transparent;border:0;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.weekly-plan__reset:hover{color:var(--action-destructive-hover)}.weekly-plan__reset:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}@media (min-width:30rem){.weekly-plan{padding:var(--space-6)}}@media (min-width:48rem){.weekly-plan__header{flex-direction:row}.weekly-plan .week-day-picker{display:none}.weekly-plan__actions{flex-wrap:wrap;align-items:center;width:auto;display:flex}.weekly-plan__lock-action,.weekly-plan__lock-tooltip,.weekly-plan__lock-tooltip>.button,.weekly-plan__actions>.button{width:auto}.weekly-plan__grid{row-gap:var(--space-3);margin-top:var(--space-5)}.weekly-plan__day-headings,.weekly-plan__meal-row{grid-template-columns:repeat(var(--weekly-plan-day-count),minmax(0,1fr));column-gap:var(--space-4)}.weekly-plan__meal-row--inactive{display:grid}.weekly-plan__day-title{min-width:0;min-height:var(--control-height);padding:0 0 var(--space-2);font-size:var(--font-size-sm);text-align:left;display:grid}.weekly-plan__slot{min-height:7rem;padding:var(--space-3);display:grid}.weekly-plan__slot--planned{padding:var(--space-3)}.weekly-plan__empty-cell{min-height:7rem;display:block}.weekly-plan__meal-divider{display:block}.weekly-plan__slot-meal-type,.weekly-plan__slot-empty{overflow-wrap:anywhere;text-align:left}.weekly-plan__slot-recipe{text-align:left}}.meal-slot-panel{z-index:var(--z-modal);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.meal-slot-panel__overlay{background-color:var(--surface-scrim-soft);cursor:default;border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.meal-slot-panel__container{border:1px solid var(--border-subtle);border-radius:var(--radius-lg)var(--radius-lg)0 0;background-color:var(--surface-raised);width:100%;max-height:min(90dvh,42rem);box-shadow:var(--shadow-raised);border-bottom:0;grid-template-rows:auto 1fr auto;display:grid;position:relative;overflow-y:auto}.meal-slot-panel__header,.meal-slot-panel__footer{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);display:flex}.meal-slot-panel__header{border-bottom:1px solid var(--border-subtle)}.meal-slot-panel__heading{align-items:flex-start;gap:var(--space-3);display:flex}.meal-slot-panel__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.meal-slot-panel__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.meal-slot-panel__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.meal-slot-panel__content{align-content:start;gap:var(--space-5);padding:var(--space-5);display:grid}.meal-slot-panel__group{border:0;min-width:0;margin:0;padding:0}.meal-slot-panel__label{margin-bottom:var(--space-2);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.meal-slot-panel__options{gap:var(--space-2);flex-wrap:wrap;display:flex}.meal-slot-panel__target-message{margin:0}.meal-slot-panel__option{min-height:var(--control-height);padding:var(--space-2)var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);color:var(--text-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.meal-slot-panel__option:hover:not(:disabled){border-color:var(--border-strong);background-color:var(--action-secondary-hover)}.meal-slot-panel__option:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.meal-slot-panel__option:disabled{cursor:not-allowed;opacity:.5}.meal-slot-panel__option--selected{border-color:var(--action-primary);background-color:var(--action-primary);color:var(--text-inverse)}.meal-slot-panel__option--selected:hover:not(:disabled){border-color:var(--action-primary);background-color:var(--action-primary)}.meal-slot-panel__footer{border-top:1px solid var(--border-subtle);flex-direction:column-reverse;align-items:stretch}.meal-slot-panel__spinner{animation:1s linear infinite spin}@media (min-width:30rem){.meal-slot-panel__header,.meal-slot-panel__content,.meal-slot-panel__footer{padding:var(--space-6)}}@media (min-width:48rem){.meal-slot-panel{justify-content:flex-end;align-items:stretch}.meal-slot-panel__footer{flex-direction:row;justify-content:flex-end;align-items:center}.meal-slot-panel__container{border:0;border-left:1px solid var(--border-subtle);border-radius:0;width:min(100%,32rem);max-height:none}}.plan-warning-dialog{z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.plan-warning-dialog__overlay{background-color:var(--surface-scrim-soft);border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.plan-warning-dialog__panel{gap:var(--space-4);width:min(100%,28rem);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-raised);display:grid;position:relative}.plan-warning-dialog__icon{color:var(--status-warning)}.plan-warning-dialog__title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.plan-warning-dialog__description{margin:var(--space-1)0 0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.plan-warning-dialog__actions{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column-reverse;display:flex}.plan-warning-dialog__spinner{animation:1s linear infinite spin}@media (min-width:30rem){.plan-warning-dialog__panel{padding:var(--space-6)}}@media (min-width:48rem){.plan-warning-dialog__actions{flex-direction:row;justify-content:flex-end}}.plan-recipes{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.plan-recipes__header{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.plan-recipes__heading{align-items:flex-start;gap:var(--space-3);display:flex}.plan-recipes__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.plan-recipes__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.plan-recipes__description{max-width:36rem;margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.plan-recipes__loading{min-height:14rem}.plan-recipes__empty{gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background-color:var(--surface-subtle);justify-items:start;display:grid}.plan-recipes__empty-icon{border-radius:var(--radius-pill);background-color:var(--action-secondary);width:3rem;height:3rem;color:var(--action-primary);justify-content:center;align-items:center;display:inline-flex}.plan-recipes__empty-title{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}.plan-recipes__empty-description{max-width:32rem;margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.plan-recipes__list{gap:var(--space-3);margin-top:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));display:grid}@media (min-width:30rem){.plan-recipes{padding:var(--space-6)}}@media (min-width:48rem){.plan-recipes__header{flex-direction:row;justify-content:space-between;align-items:flex-start}.plan-recipes__empty{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}}.recipe-card{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:calc(var(--control-height) + var(--space-4));padding:var(--space-3)var(--space-3)var(--space-3)var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);display:flex}.recipe-card__content{min-width:0}.recipe-card__title{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);overflow-wrap:anywhere;margin:0}.recipe-card__facts{gap:var(--space-1)var(--space-3);margin:var(--space-2)0 0;flex-wrap:wrap;display:flex}.recipe-card__fact{align-items:center;gap:var(--space-1);color:var(--text-muted);font-size:var(--font-size-sm);display:inline-flex}.recipe-composer{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.recipe-composer__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.recipe-composer__heading{align-items:flex-start;gap:var(--space-3);display:flex}.recipe-composer__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.recipe-composer__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.recipe-composer__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}@media (max-width:40rem){.recipe-composer__delete-action{width:var(--control-height);min-width:var(--control-height);padding:0}.recipe-composer__delete-label{display:none}}.recipe-composer__form{gap:var(--space-6);margin-top:var(--space-6);display:grid}.recipe-composer__details,.recipe-composer__ingredient-fields{gap:var(--space-4);display:grid}.recipe-composer__details--selected,.recipe-composer__ingredient-fields--selected{grid-template-columns:minmax(0,1fr) auto;align-items:end}.recipe-composer__details--selected .recipe-composer__product-field,.recipe-composer__ingredient-fields--selected .recipe-composer__product-field{grid-column:1/-1}.recipe-composer__ingredient-fields--unselected{grid-template-columns:minmax(0,1fr) auto;align-items:start}.recipe-composer__ingredient-fields--unselected>.recipe-composer__quantity-mode-placeholder{display:none}.recipe-composer__field,.recipe-composer__product-field,.recipe-composer__quantity-field{min-width:0}.recipe-composer__servings{border:0;min-width:0;margin:0;padding:0}.recipe-composer__household-yield{align-items:flex-start;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-3);border:1px solid var(--decision-buy-border);border-radius:var(--radius-md);background-color:var(--decision-buy-surface);color:var(--decision-buy);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.recipe-composer__household-yield input{width:1rem;height:1rem;accent-color:var(--action-primary);flex:none;margin:.15rem 0 0}.recipe-composer__household-yield:has(input:focus-visible){outline:3px solid var(--focus-ring-soft);outline-offset:2px}.recipe-composer__household-yield:has(input:disabled){cursor:not-allowed;opacity:.55}.recipe-composer__servings-input{margin-top:var(--space-3)}.recipe-composer__optional{color:var(--text-muted);font-weight:var(--font-weight-regular)}.recipe-composer__section-heading{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.recipe-composer__section-title{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}.recipe-composer__section-description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.recipe-composer__ingredient-list{gap:var(--space-3);margin-top:var(--space-4);display:grid}.recipe-composer__ingredient{padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle)}.recipe-composer__add-ingredient{margin-top:var(--space-3)}.recipe-composer__remove-ingredient{align-self:start}.recipe-composer__quantity-control{align-items:center;gap:var(--space-2);display:flex}.recipe-composer__quantity-control .form__input{width:5rem}.recipe-composer__quantity-multiplier,.recipe-composer__quantity-unit{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.recipe-composer__quantity-multiplier{font-size:var(--font-size-lg);line-height:1}.recipe-composer__quantity-mode-placeholder{flex:0 0 var(--icon-button-size);width:var(--icon-button-size);height:var(--icon-button-size);display:block}.recipe-composer__instructions{resize:vertical;min-height:8rem}.recipe-composer__hide-more-details{margin-top:var(--space-2);color:var(--action-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;text-underline-offset:.15em;background-color:transparent;border:0;padding:0;text-decoration:underline}.recipe-composer__hide-more-details:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.recipe-composer__hide-more-details:disabled{cursor:not-allowed;opacity:.55}.recipe-composer__more-details{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle)}.recipe-composer__more-details-trigger{color:var(--action-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;text-underline-offset:.15em;background-color:transparent;border:0;justify-self:start;margin:0;padding:0;text-decoration:underline}.recipe-composer__more-details-trigger:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.recipe-composer__more-details-trigger:disabled{cursor:not-allowed;opacity:.55}.recipe-composer__more-details-heading{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.recipe-composer__more-details-content{gap:var(--space-4);margin-top:var(--space-4);display:grid}.recipe-composer__time-input{position:relative}.recipe-composer__time-input .form__input{padding-right:5.5rem}.recipe-composer__time-unit{top:50%;right:var(--space-3);color:var(--text-muted);font-size:var(--font-size-sm);pointer-events:none;position:absolute;transform:translateY(-50%)}.recipe-composer__actions{gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);flex-direction:column-reverse;display:flex}.recipe-composer__action-icon{animation:1s linear infinite spin}@media (min-width:30rem){.recipe-composer{padding:var(--space-6)}}@media (min-width:40rem){.recipe-composer__details{grid-template-columns:minmax(0,1fr) minmax(16rem,.65fr)}.recipe-composer__section-heading{flex-direction:row;justify-content:space-between;align-items:flex-start}.recipe-composer__ingredient-fields{grid-template-columns:minmax(0,1fr) minmax(9rem,.35fr);align-items:start}.recipe-composer__ingredient-fields--selected{grid-template-columns:minmax(16rem,1fr) auto auto}.recipe-composer__ingredient-fields--selected .recipe-composer__product-field{grid-column:auto}.recipe-composer__ingredient-fields--unselected{grid-template-columns:minmax(0,1fr) auto auto}.recipe-composer__ingredient-fields--unselected>.recipe-composer__quantity-mode-placeholder{display:block}.recipe-composer__more-details-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-direction:row}.recipe-composer__more-details-content{grid-template-columns:minmax(10rem,.35fr) minmax(0,1fr);align-items:start}}@media (min-width:48rem){.recipe-composer__actions{flex-direction:row;justify-content:flex-end;align-items:center}}.recipe-archive-dialog{z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.recipe-archive-dialog__overlay{background-color:var(--surface-scrim-soft);border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.recipe-archive-dialog__panel{gap:var(--space-4);width:min(100%,28rem);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-raised);display:grid;position:relative}.recipe-archive-dialog__icon{color:var(--action-destructive)}.recipe-archive-dialog__title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.recipe-archive-dialog__description{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-base);margin:0}.recipe-archive-dialog__message{margin:0}.recipe-archive-dialog__actions{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column-reverse;display:flex}@media (min-width:30rem){.recipe-archive-dialog__panel{padding:var(--space-6)}}@media (min-width:48rem){.recipe-archive-dialog__actions{flex-direction:row;justify-content:flex-end}}.recipe-product-picker,.recipe-product-picker__search{position:relative}.recipe-product-picker__input{padding-right:calc(var(--space-4) + 1.25rem)}.recipe-product-picker__search-icon{top:50%;right:var(--space-3);color:var(--text-muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.recipe-product-picker__results{margin-top:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background-color:var(--surface-raised);display:grid;overflow:hidden}.recipe-product-picker__result{min-height:var(--control-height);padding:var(--space-2)var(--space-3);border:0;border-bottom:1px solid var(--border-subtle);background-color:var(--surface-raised);color:var(--text-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);text-align:left}.recipe-product-picker__result:last-child{border-bottom:0}.recipe-product-picker__result:hover{background-color:var(--action-secondary-hover)}.recipe-product-picker__result:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:-3px;position:relative}.recipe-product-picker__message{padding:var(--space-3);background-color:var(--surface-raised);color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.recipe-product-picker__add-product{align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2)var(--space-3);border:0;border-top:1px solid var(--border-subtle);background-color:var(--surface-raised);width:100%;color:var(--action-primary);cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;text-decoration:none;display:flex}.recipe-product-picker__add-product:hover{background-color:var(--action-secondary-hover);text-decoration:underline}.recipe-product-picker__add-product:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:-3px;position:relative}.meal-template .week-day-picker{margin-top:0;margin-bottom:var(--space-5)}.meal-template__grid{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.meal-template__legend{margin-bottom:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.meal-template__day{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);display:none}.meal-template__day--active{display:grid}.meal-template__day-title{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}.meal-template__slots{gap:var(--space-2);display:grid}.meal-template__slot{position:relative}.meal-template__slot-input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.meal-template__slot-label{align-items:center;gap:var(--space-1);min-height:var(--control-height);padding:var(--space-2)var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:var(--surface-raised);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:center;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast);justify-content:center;display:flex}.meal-template__slot-label--selected{border-color:var(--decision-buy-border);background-color:var(--decision-buy-surface);color:var(--decision-buy);font-weight:var(--font-weight-semibold)}.meal-template__slot-check{flex:none}.meal-template__slot-input:focus-visible+.meal-template__slot-label{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.meal-template__slot-input:disabled+.meal-template__slot-label{cursor:not-allowed;opacity:.55}.meal-template__message{margin-top:var(--space-4)}.meal-template__actions{align-items:stretch;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);flex-direction:column-reverse;display:flex}.meal-template__action-icon{animation:1s linear infinite spin}@media (min-width:48rem){.meal-template .week-day-picker{display:none}.meal-template__grid{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr))}.meal-template__day{gap:var(--space-2);background-color:transparent;border:0;border-radius:0;padding:0;display:grid}.meal-template__day-title{min-height:var(--control-height);padding:var(--space-2)var(--space-1);border-bottom:1px solid var(--border-subtle);font-size:var(--font-size-sm);text-align:center}.meal-template__slots{gap:var(--space-2)}.meal-template__slot-label{gap:var(--space-1);min-height:var(--control-height);padding:var(--space-2)var(--space-1);font-size:var(--font-size-xs)}.meal-template__actions{flex-direction:row;justify-content:flex-end;align-items:center}}.household-setup__members{gap:var(--space-4);display:grid}.household-setup__member{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-subtle);display:grid}.household-setup__member-fields{gap:var(--space-3);display:grid}.household-setup__field{min-width:0}.household-setup__remove{justify-self:start}.household-setup__message,.household-setup__add{margin-top:var(--space-4)}.household-setup__actions{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);justify-content:flex-end;display:flex}.household-setup__save-actions{align-items:stretch;gap:var(--space-3);flex-direction:column-reverse;width:100%;display:flex}.household-setup__action-icon{animation:1s linear infinite spin}@media (min-width:40rem){.household-setup__member{grid-template-columns:minmax(0,1fr) auto;align-items:center}.household-setup__member-fields{grid-template-columns:minmax(0,1fr) minmax(10rem,.45fr)}}@media (min-width:48rem){.household-setup__save-actions{flex-direction:row;align-items:center;gap:0;width:auto}.household-setup__save-actions>.button+.button{margin-left:var(--space-3)}}.shop-page__container{max-width:64rem}.shop-page__header{margin-bottom:var(--space-6)}.shop-page__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin:0}.shop-page__subtitle{max-width:40rem;margin:var(--space-2)0 0;color:var(--text-muted);font-size:var(--font-size-base)}@media (min-width:48rem){.shop-page__title{font-size:var(--font-size-3xl)}}.shop-panel{padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.shop-panel__header{align-items:flex-start;gap:var(--space-3);display:flex}.shop-panel__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.shop-panel__icon{margin-top:var(--space-1);color:var(--action-primary);flex:none}.shop-panel__title{color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.shop-panel__description{margin:var(--space-1)0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.shop-panel__summary{margin:var(--space-5)0 var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.shop-panel__state{justify-items:start;gap:var(--space-3);margin-top:var(--space-5);color:var(--text-muted);display:grid}.shop-panel__state p{margin:0}.shop-panel__loading-icon{color:var(--action-primary);animation:1s linear infinite spin}@media (min-width:30rem){.shop-panel{padding:var(--space-6)}}.shop-history{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-subtle)}.shop-history__list,.shop-history__products{margin:0;padding:0;list-style:none}.shop-history__list{margin-top:var(--space-5);border-top:1px solid var(--border-subtle)}.shop-history__item{border-bottom:1px solid var(--border-subtle)}.shop-history__details{padding:var(--space-4)0}.shop-history__summary{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--text-primary);cursor:pointer;font-weight:var(--font-weight-semibold);display:flex}.shop-history__count{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.shop-history__products{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);display:grid}.shop-history__product{justify-content:space-between;gap:var(--space-4);color:var(--text-secondary);font-size:var(--font-size-sm);display:flex}@media (min-width:30rem){.shop-history{padding:var(--space-6)}}.shop-finish-dialog{z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.shop-finish-dialog__overlay{background-color:var(--surface-scrim-soft);border:0;width:100%;position:absolute;top:0;bottom:0;left:0;right:0}.shop-finish-dialog__panel{gap:var(--space-4);width:min(100%,28rem);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);box-shadow:var(--shadow-raised);display:grid;position:relative}.shop-finish-dialog__icon{color:var(--status-success)}.shop-finish-dialog__title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.shop-finish-dialog__description{margin:var(--space-1)0 0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.shop-finish-dialog__actions{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column-reverse;display:flex}.shop-finish-dialog__spinner{animation:1s linear infinite spin}@media (min-width:30rem){.shop-finish-dialog__panel{padding:var(--space-6)}}@media (min-width:48rem){.shop-finish-dialog__actions{flex-direction:row;justify-content:flex-end}}.shop-list{border-top:1px solid var(--border-subtle);margin:0;padding:0;list-style:none}.shop-list__item{border-bottom:1px solid var(--border-subtle)}.shop-list__product{gap:var(--space-1)var(--space-4);min-height:var(--control-height);margin:0 calc(var(--space-3)*-1);padding:var(--space-4)var(--space-3);border-radius:var(--radius-sm);color:inherit;transition:background-color var(--motion-fast);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.shop-list__product:hover{background-color:var(--action-secondary-hover)}.shop-list__product:focus-visible{outline:3px solid var(--focus-ring-soft);outline-offset:2px}.shop-list__product-name{min-width:0;color:var(--text-primary);font-weight:var(--font-weight-semibold)}.shop-list__quantity{color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);white-space:nowrap;align-self:start}.shop-list__source{color:var(--text-muted);font-size:var(--font-size-sm);grid-column:1/-1}body{background:var(--surface-canvas);min-height:100vh;color:var(--text-primary);font-family:var(--font-family-sans);font-variant-numeric:tabular-nums;line-height:var(--line-height-base);margin:0}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
