:root{--color-bg: #f6f5f1;--color-surface: #ffffff;--color-surface-alt: #f0efe9;--color-text: #1c1e1b;--color-text-soft: #3f433d;--color-muted: #6f736c;--color-border: #e3e1d8;--color-border-strong: #cfccbf;--color-primary: #2f6f4f;--color-primary-dark: #234f39;--color-primary-soft: #e6f0e9;--color-primary-text: #ffffff;--color-accent: #c8781f;--color-accent-soft: #fbeddc;--color-danger: #b3261e;--color-danger-soft: #fbe9e8;--color-success: #2f6f4f;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--space-7: 4rem;--radius-sm: .4rem;--radius: .75rem;--radius-lg: 1.25rem;--radius-full: 999px;--font-size-xs: .8rem;--font-size-sm: .9rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.75rem;--font-size-2xl: 2.25rem;--shadow-sm: 0 1px 2px rgba(20, 22, 18, .06);--shadow-md: 0 4px 16px rgba(20, 22, 18, .08);--shadow-lg: 0 12px 32px rgba(20, 22, 18, .12);--transition: .15s ease;--container-width: 1080px;--container-narrow: 560px}@media (prefers-color-scheme: dark){:root{--color-bg: #141613;--color-surface: #1d201c;--color-surface-alt: #24271f;--color-text: #f2f1ec;--color-text-soft: #d3d2c9;--color-muted: #9a9d94;--color-border: #33362e;--color-border-strong: #454838;--color-primary: #4c9a72;--color-primary-dark: #3c7d5c;--color-primary-soft: #1f3327;--color-primary-text: #0d130f;--color-accent: #e0954a;--color-accent-soft: #3a2c17;--color-danger: #e2564c;--color-danger-soft: #3a1f1c;--color-success: #4c9a72;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45)}}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}.app-header{background:var(--color-primary-dark);color:var(--color-primary-text)}.app-header__inner{max-width:var(--container-width);margin:0 auto;padding:var(--space-4) var(--space-3);display:flex;align-items:center;gap:var(--space-3)}.app-header__mark{font-size:2rem;line-height:1}.app-header__title{margin:0;font-size:var(--font-size-lg);font-weight:800;letter-spacing:-.01em}.app-header__tagline{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:#ffffffc7}.app{max-width:var(--container-width);margin:0 auto;padding:var(--space-4) var(--space-3) var(--space-7)}.stepper{display:flex;justify-content:center;align-items:flex-start;list-style:none;margin:0 0 var(--space-5);padding:0;gap:var(--space-2);max-width:var(--container-narrow);margin-inline:auto}.stepper__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);text-align:center;position:relative}.stepper__item:before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--color-border-strong);z-index:0}.stepper__item:first-child:before{content:none}.stepper__item--done:before{background:var(--color-primary)}.stepper__dot{position:relative;z-index:1;width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:700;background:var(--color-surface);border:2px solid var(--color-border-strong);color:var(--color-muted)}.stepper__item--done .stepper__dot{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.stepper__item--active .stepper__dot{border-color:var(--color-primary);color:var(--color-primary)}.stepper__label{font-size:var(--font-size-xs);color:var(--color-muted);display:none}.stepper__item--active .stepper__label{color:var(--color-text);font-weight:600}@media (min-width: 560px){.stepper__label{display:block}}.step{max-width:var(--container-narrow);margin:0 auto}.step__title{font-size:var(--font-size-xl);font-weight:800;letter-spacing:-.01em;margin:0 0 var(--space-4);text-align:center}.step--error{color:var(--color-danger);text-align:center;padding:var(--space-5) var(--space-3)}.step__next{display:block;width:100%;margin-top:var(--space-4);padding:var(--space-3);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius);font-size:var(--font-size-base);font-weight:600;box-shadow:var(--shadow-sm);transition:background var(--transition),transform var(--transition)}.step__next:hover:not(:disabled){background:var(--color-primary-dark)}.step__next:active:not(:disabled){transform:translateY(1px)}.step__next:disabled{opacity:.45;cursor:not-allowed}.option-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}@media (min-width: 480px){.option-grid{grid-template-columns:1fr 1fr}}.option-grid__item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);text-align:left;color:var(--color-text);box-shadow:var(--shadow-sm);transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.option-grid__item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.option-grid__item--selected{border-color:var(--color-primary);outline:2px solid var(--color-primary);outline-offset:-1px;background:var(--color-primary-soft)}.option-grid__icon{font-size:1.5rem}.option-grid__label{font-weight:700}.option-grid__desc{color:var(--color-muted);font-size:var(--font-size-sm)}.option-grid__item--logo{align-items:center;flex-direction:row;gap:var(--space-3)}.logo-badge{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1)}.logo-badge__img{width:100%;height:100%;object-fit:contain}.logo-badge--lg{width:56px;height:56px}.logo-badge--sm{width:28px;height:28px;padding:3px}.budget-input{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-sm)}.budget-input__currency{color:var(--color-muted);font-weight:700}.budget-input input{flex:1;min-width:0;padding:var(--space-2);border:none;background:transparent;color:var(--color-text);font-size:var(--font-size-lg);font-weight:700}.budget-input input:focus{outline:none}.budget-input__suffix{color:var(--color-muted);font-size:var(--font-size-sm);white-space:nowrap}.plan-screen{display:grid;gap:var(--space-5);max-width:100%}.plan-screen__side{display:flex;flex-direction:column;gap:var(--space-4)}@media (min-width: 860px){.plan-screen{grid-template-columns:1fr 340px;align-items:start}.plan-screen__main{grid-column:1}.plan-screen__side{grid-column:2;position:sticky;top:var(--space-4)}}.plan-screen__regenerate{margin-top:0}.plan-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.plan-summary__title{margin:0 0 var(--space-3);font-size:var(--font-size-base);font-weight:700;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:var(--font-size-xs)}.plan-summary__figures{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-2)}.plan-summary__spent{font-size:var(--font-size-2xl);font-weight:800;letter-spacing:-.02em}.plan-summary__budget{color:var(--color-muted);font-size:var(--font-size-sm)}.plan-summary__bar{height:10px;border-radius:var(--radius-full);background:var(--color-surface-alt);overflow:hidden}.plan-summary__bar-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .3s ease}.plan-summary--over .plan-summary__bar-fill{background:var(--color-danger)}.plan-summary--over .plan-summary__spent{color:var(--color-danger)}.plan-summary__note{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);color:var(--color-muted)}.plan-summary--over .plan-summary__note{color:var(--color-danger)}.plan-summary__store{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-soft)}.weekly-plan__title{font-size:var(--font-size-lg);font-weight:800;margin:0 0 var(--space-3)}.weekly-plan__grid{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.recipe-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.recipe-card__summary{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);width:100%;background:none;border:none;text-align:left;color:inherit}.recipe-card__thumb{width:72px;height:72px;border-radius:var(--radius);object-fit:cover;flex-shrink:0}.recipe-card__info{flex:1;min-width:0}.recipe-card__day{display:inline-block;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.recipe-card__name{margin:2px 0;font-size:var(--font-size-base);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-card__meta{color:var(--color-muted);font-size:var(--font-size-sm)}.recipe-card__price-block{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.recipe-card__price{font-size:var(--font-size-lg);font-weight:800}.recipe-card__chevron{color:var(--color-muted);font-size:var(--font-size-xs);transition:transform var(--transition)}.recipe-card--open .recipe-card__chevron{transform:rotate(180deg)}.recipe-card__ingredients{list-style:none;margin:0;padding:0 var(--space-3) var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.recipe-card__ingredient{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--font-size-sm)}.recipe-card__ingredient-name{text-transform:capitalize;color:var(--color-text-soft)}.recipe-card__ingredient-qty{color:var(--color-muted);margin-right:var(--space-2)}.recipe-card__ingredient-price{font-weight:600;white-space:nowrap}.shopping-list{margin-top:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.shopping-list__title{margin:0 0 var(--space-1);font-size:var(--font-size-base);font-weight:800}.shopping-list__disclaimer{color:var(--color-muted);font-size:var(--font-size-xs);margin:0 0 var(--space-3)}.shopping-list__disclaimer--warning{color:var(--color-danger)}.shopping-list__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);max-height:360px;overflow-y:auto}.shopping-list__item{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);text-transform:capitalize;font-size:var(--font-size-sm)}.shopping-list__item:last-child{border-bottom:none}.shopping-list__item-price{font-weight:600;white-space:nowrap}.shopping-list__total{display:flex;justify-content:space-between;align-items:baseline;margin-top:var(--space-3);padding-top:var(--space-3);font-size:var(--font-size-base);font-weight:700;border-top:2px solid var(--color-border)}.shopping-list__total--over{color:var(--color-danger)}.step__next--secondary{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border-strong);box-shadow:none}.step__next--secondary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}
