.ui-button{border-radius:var(--radius-control);cursor:pointer;border:1px solid #0000;min-height:44px;padding:10px 16px;font-weight:700}.ui-button:disabled{cursor:not-allowed;opacity:.55}.ui-button--primary{background:var(--color-accent);color:var(--color-on-accent)}.ui-button--primary:not(:disabled):hover{background:var(--color-accent-hover)}.ui-button--secondary{background:var(--color-surface-secondary);color:var(--color-text-primary);border-color:var(--color-border)}.ui-button--ghost{color:var(--color-text-primary);background:0 0}.ui-button--danger{background:var(--color-danger);color:var(--color-on-danger)}.ui-card{overflow-wrap:anywhere;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:0;box-shadow:var(--shadow-card);padding:20px}.ui-confirm{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);gap:12px;margin-top:12px;padding:16px;display:grid}.ui-confirm h4,.ui-confirm p{margin:0}.ui-confirm__actions{flex-wrap:wrap;gap:8px;display:flex}.ui-field{gap:8px;display:grid}.ui-field select{contain:paint}@supports (appearance:base-select){select{appearance:base-select}select::picker(select){appearance:base-select}select::picker(select){box-sizing:border-box;min-width:anchor-size(width);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);max-width:min(32rem,100vw - 24px);max-height:min(24rem,60vh);color:var(--color-text-primary);box-shadow:var(--shadow-card);position-try-order:normal;position-try-fallbacks:flip-block;margin-block:4px;padding:6px}select option{white-space:normal;border-radius:8px;min-height:44px;padding:10px 12px}select option:hover,select option:focus-visible{background:color-mix(in srgb, var(--color-accent) 20%, var(--color-surface))}select option:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}select option:checked{font-weight:700}select option::checkmark{color:var(--color-accent)}select::picker-icon{color:var(--color-text-secondary);font-size:.85em}}.ui-field input,.ui-field select,.ui-field textarea{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--color-text-primary);padding:8px 12px}.date-field{max-width:24rem}.date-field label{font-weight:600}.date-field__row{grid-template-columns:minmax(0,1fr) 44px;align-items:stretch;gap:8px;display:grid}.date-field__toggle{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:44px;min-height:44px;color:var(--color-text-primary);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.date-field__toggle[aria-expanded=true]{border-color:var(--color-accent);color:var(--color-accent)}.date-field__toggle:disabled{cursor:not-allowed;opacity:.55}.date-picker{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;gap:8px;width:100%;max-width:360px;margin-top:4px;padding:12px;display:grid}@media (prefers-color-scheme:dark){.date-picker{--lightningcss-light: ;--lightningcss-dark:initial}}.date-picker__head{grid-template-columns:44px minmax(0,1.35fr) minmax(0,1fr) 44px;gap:4px;display:grid}.date-picker__nav,.date-picker__title,.date-picker__action,.date-picker__choice,.date-picker__day{min-height:44px;color:var(--color-text-primary);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px}.date-picker__nav{border-color:var(--color-border);background:var(--color-surface);font-size:1.6rem;font-weight:700;line-height:1}.date-picker__title{border-color:var(--color-border);background:var(--color-surface);white-space:nowrap;padding:0 4px;font-weight:700}.date-picker__chevron{color:var(--color-accent);margin-left:2px;font-size:.75em}.date-picker__nav:hover:not(:disabled),.date-picker__title:hover,.date-picker__action:hover,.date-picker__choice:hover:not(:disabled),.date-picker__day:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 18%, var(--color-surface))}.date-picker button:disabled{cursor:not-allowed;color:var(--color-text-secondary);opacity:.6}.date-picker__table{border-collapse:collapse;table-layout:fixed;width:100%}.date-picker__table th{color:var(--color-text-secondary);text-align:center;padding:4px 0;font-size:.8rem;font-weight:600}.date-picker__table td{text-align:center;padding:2px}.date-picker__day{width:100%;padding:0}.date-picker__day[aria-current=date]{border-color:var(--color-accent)}.date-picker__day[aria-pressed=true],.date-picker__choice[aria-pressed=true]{background:var(--color-accent);color:var(--color-on-accent);font-weight:700}.date-picker__list{gap:6px;display:grid}.date-picker__list--months{grid-template-columns:repeat(3,minmax(0,1fr))}.date-picker__list--years{grid-template-columns:repeat(4,minmax(0,1fr))}.date-picker__foot{flex-wrap:wrap;gap:8px;display:flex}.date-picker__action{border-color:var(--color-border);background:var(--color-surface);padding:0 16px;font-weight:700}.ui-button__hint{margin-top:2px;font-size:.78em;font-weight:600;display:block}.ui-button.ui-button--needs-connection:disabled{opacity:1;background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px dashed var(--color-border)}.ui-button--needs-connection .ui-button__hint{color:var(--color-text-secondary,var(--color-text-primary))}.password-field__row{grid-template-columns:minmax(0,1fr) 44px;align-items:stretch;gap:8px;display:grid}.password-field__toggle{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:44px;min-height:44px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.password-field__toggle:hover{color:var(--color-text-primary)}.password-field__toggle[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent)}.feature-stack{gap:16px;display:grid}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.feature-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feature-muted{color:var(--color-text-secondary)}.feature-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.feature-row{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.feature-row>:first-child{flex:240px;min-width:0}.feature-row:first-child{border-top:0}.feature-row__panel{flex-basis:100%}.feature-row__panel .ui-confirm{margin-top:0}.feature-badge{background:var(--color-surface-secondary);border-radius:999px;align-items:center;min-height:28px;padding:4px 10px;font-size:.875rem;font-weight:700;display:inline-flex}.feature-warning{border-radius:var(--radius-control);background:var(--color-surface-secondary);padding:12px 14px}.feature-danger{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border))}.app-nav{flex-wrap:wrap;align-items:center;gap:8px;margin:-12px 0 24px;display:flex}.app-nav a,.app-nav__logout{min-height:44px;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:999px;align-items:center;padding:8px 14px;font-weight:700;text-decoration:none;display:inline-flex}.app-nav a:hover,.app-nav__logout:hover{border-color:var(--color-accent)}.app-nav__logout{margin-left:auto}.app-nav__logout:disabled{cursor:progress;opacity:.7}.app-nav__error{color:var(--color-danger);flex-basis:100%;margin:0}.cook-panel{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;gap:12px;margin:0 0 20px;padding:16px;display:grid}@media (prefers-color-scheme:dark){.cook-panel{--lightningcss-light: ;--lightningcss-dark:initial}}.cook-panel__title{outline-offset:4px;margin:0;font-size:1.1rem}.cook-panel__subtitle{overflow-wrap:anywhere;margin:0}.cook-panel p{margin:0}.cook-lines{margin:0;padding:0;list-style:none;display:grid}.cook-line{border-top:1px solid var(--color-border);gap:4px;min-width:0;padding:12px 0;display:grid}.cook-line:first-child{border-top:0}.cook-line__head{overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.cook-line__mark{place-items:center;min-width:1.4em;font-weight:700;display:inline-grid}.cook-line__verdict{font-weight:700}.cook-line__title{overflow-wrap:anywhere;min-width:0}.cook-line__note{color:var(--color-text-secondary);overflow-wrap:anywhere}.cook-line--ok .cook-line__verdict{color:var(--color-text-primary)}.cook-line--doubt .cook-line__verdict{color:var(--color-warning)}.cook-line--short .cook-line__verdict,.cook-line--short .cook-line__note{color:var(--color-danger)}.cook-line--muted{color:var(--color-text-secondary)}.cook-line__tick{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:inline-flex}.cook-line__tick input{width:22px;height:22px;accent-color:var(--color-accent);flex:none}.cook-line__tick-for{color:var(--color-text-secondary);overflow-wrap:anywhere}.cook-batches{color:var(--color-text-secondary);gap:2px;margin:0;padding:0 0 0 4px;font-size:.95rem;list-style:none;display:grid}.cook-batches li{overflow-wrap:anywhere}.cook-batches li:before{content:"– "}.cook-summary{overflow-wrap:anywhere;margin:0}.cook-summary--doubt{border-left:4px solid var(--color-warning);background:color-mix(in srgb, var(--color-warning) 14%, var(--color-surface-secondary))}.cook-summary--blocked{border-left:4px solid var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, var(--color-surface-secondary))}.cook-failure{border:1px solid var(--color-danger);border-radius:var(--radius-control);outline-offset:4px;overflow-wrap:anywhere;padding:10px 12px}.cook-result{outline-offset:4px;padding:4px 0}.cook-revert,.cook-revert-failure{gap:12px;display:grid}.cook-revert-failure__batches{gap:4px;margin:0;padding:0;list-style:none;display:grid}.cook-revert-failure__batches li{min-width:0}.cook-revert-failure__batches a{min-height:44px;color:var(--color-text-primary);overflow-wrap:anywhere;align-items:center;text-decoration:underline;display:inline-flex}@media (width<=640px){.cook-panel{padding:12px}.cook-panel .feature-actions{flex-direction:column;align-items:stretch}}.cook-event{min-width:0}.cook-event__title{overflow-wrap:anywhere;margin:0}.cook-event__recipe,.cook-event__meta{overflow-wrap:anywhere;margin:4px 0 0}.cook-event__status{gap:6px}.cook-event__status--reverted{background:color-mix(in srgb, var(--color-danger) 16%, var(--color-surface-secondary))}.cook-event__reverted{border:1px solid var(--color-border);border-radius:var(--radius-control);gap:4px;padding:10px 12px;display:grid}.cook-event__reverted p{overflow-wrap:anywhere;margin:0}.cook-scope{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.cook-scope p{margin:0}.cook-filters{flex-wrap:wrap;gap:8px;display:flex}.cook-filter{border:1px solid var(--color-border);background:var(--color-surface-secondary);min-height:44px;color:var(--color-text-primary);font:inherit;cursor:pointer;border-radius:999px;padding:0 16px}.cook-filter:hover{border-color:var(--color-accent)}.cook-filter[aria-pressed=true]{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 24%, var(--color-surface));font-weight:700}.cook-filter[aria-pressed=true]:before{content:"✓ ";content:"✓ " / ""}.cook-history{margin:0;padding:0;list-style:none;display:grid}.cook-history__item{border-top:1px solid var(--color-border);gap:4px;min-width:0;padding:14px 0;display:grid}.cook-history__item:first-child{border-top:0}.cook-history__title{overflow-wrap:anywhere;margin:0;font-size:1.05rem}.cook-history__facts{overflow-wrap:anywhere;margin:0}.cook-history__badge{gap:4px;min-height:22px;margin-left:8px;padding:1px 8px;font-size:.8rem;font-weight:700}.cook-recent{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cook-recent li{overflow-wrap:anywhere}.cook-line__fix{min-height:44px;color:var(--color-text-primary);justify-self:start;align-items:center;text-decoration:underline;display:inline-flex}.home-empty{justify-items:start;gap:12px;display:grid}.home-cta{align-items:center;text-decoration:none;display:inline-flex}.home-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.home-tile{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:44px;color:var(--color-text-primary);gap:4px;padding:14px 16px;font-weight:700;text-decoration:none;display:grid}.home-tile:hover{border-color:var(--color-accent)}.home-tile__count{font-variant-numeric:tabular-nums;font-size:1.75rem;line-height:1}.home-tile--use_soon,.home-tile--expiry_today{background:color-mix(in srgb, #d99a1e 22%, var(--color-surface))}.home-tile--possibly_expired{background:color-mix(in srgb, var(--color-danger) 18%, var(--color-surface))}.cook-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.cook-header h2{margin:0}.cook-header__all{align-items:center;min-height:44px;display:inline-flex}.cook-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.cook-item{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-width:0;display:grid;position:relative}.cook-item__body{align-content:start;gap:6px;min-width:0;padding:10px 14px 14px 16px;display:grid}.cook-item__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cook-item__title{min-width:0;margin:0}.cook-item .dish-card__favorite{flex:none;position:relative;top:auto;right:auto}.cook-item__link{color:var(--color-text-primary);text-decoration:none}.cook-item__link:hover{color:var(--color-text-primary);text-decoration:underline}.cook-item__link:after{content:"";border-radius:var(--radius-card);position:absolute;inset:0}.cook-item__link:focus-visible{outline:none}.cook-item__link:focus-visible:after{outline:3px solid var(--color-focus);outline-offset:-3px}.cook-item__variant,.cook-item__facts,.cook-item__expiring{margin:0}.cook-item__facts{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.cook-item__expiring{color:var(--color-warning);font-size:.9rem;font-weight:700}.recipes-link-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.recipes-link-button:hover{text-decoration:none}.recipes-link-button.ui-button--primary,.recipes-link-button.ui-button--primary:hover{color:var(--color-on-accent)}.recipes-link-button.ui-button--secondary,.recipes-link-button.ui-button--secondary:hover{color:var(--color-text-primary)}.dish-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dish-header h2{margin:0}.dish-header p{margin:4px 0 0}.dish-toolbar{gap:12px;margin-bottom:16px;display:grid}.dish-chips{flex-wrap:wrap;gap:8px;display:flex}.dish-chip{border:1px solid var(--color-border);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);cursor:pointer;border-radius:999px;padding:8px 16px;font-weight:700}.dish-chip:hover:not(:disabled){border-color:var(--color-accent)}.dish-chip:disabled{cursor:not-allowed;opacity:.55}.dish-chip[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface)}.dish-chip[aria-pressed=true]:before{content:"✓ ";content:"✓ " / ""}.dish-error{color:var(--color-danger);margin:0 0 12px;font-weight:700}.dish-state{padding:8px 0}.dish-state h3,.dish-state p{margin:0}.dish-more{justify-content:center;margin-top:16px}.dish-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.dish-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);grid-template-rows:auto 1fr;min-width:0;display:grid;position:relative;overflow:hidden}.dish-card:hover{border-color:var(--color-accent)}.dish-card__body{align-content:start;gap:8px;min-width:0;padding:12px 16px 16px;display:grid}.dish-card__title{overflow-wrap:anywhere;margin:0;font-size:1.1rem;line-height:1.25}.dish-card__link{color:var(--color-text-primary);text-decoration:none}.dish-card__link:hover{color:var(--color-text-primary);text-decoration:underline}.dish-card__link:after{content:"";border-radius:var(--radius-card);position:absolute;inset:0}.dish-card__link:focus-visible{outline:none}.dish-card__link:focus-visible:after{outline:3px solid var(--color-focus);outline-offset:-3px}.dish-card__meta,.dish-card__status{margin:0;font-size:.9rem}.dish-card__favorite{z-index:1;border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, transparent);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;border-radius:999px;place-items:center;padding:0;font-size:1.4rem;line-height:1;display:inline-grid;position:absolute;top:8px;right:8px}.dish-card__favorite:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-text-primary)}.dish-card__favorite:disabled{cursor:progress;opacity:.6}.dish-card__favorite[aria-pressed=true]{color:#d99a1e;border-color:#d99a1e}.dish-image{aspect-ratio:16/9;place-items:center;display:grid}.dish-image__initial{color:var(--color-text-primary);opacity:.65;font-size:2.6rem;font-weight:800;line-height:1}.dish-image--tone-0{background:color-mix(in srgb, #2f7d5b 24%, var(--color-surface))}.dish-image--tone-1{background:color-mix(in srgb, #d99a1e 26%, var(--color-surface))}.dish-image--tone-2{background:color-mix(in srgb, #c25b4a 22%, var(--color-surface))}.dish-image--tone-3{background:color-mix(in srgb, #4a7fc2 22%, var(--color-surface))}.dish-image--tone-4{background:color-mix(in srgb, #8a5bc2 22%, var(--color-surface))}.dish-image--tone-5{background:color-mix(in srgb, #3aa7a0 22%, var(--color-surface))}.dish-badge{gap:6px}.dish-badge--can_cook{background:color-mix(in srgb, var(--color-accent) 24%, var(--color-surface))}.dish-badge--uncertain{background:color-mix(in srgb, #d99a1e 26%, var(--color-surface))}.dish-badge--missing_ingredients{background:color-mix(in srgb, var(--color-danger) 20%, var(--color-surface))}.recipes-back{min-height:44px;color:var(--color-text-primary);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.recipes-back:hover{color:var(--color-text-primary);text-decoration:underline}.dish-hero__top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dish-hero__heading{min-width:0}.dish-hero h2{margin:0}.dish-hero__meta{margin:4px 0 0}.dish-hero__description{white-space:pre-wrap;margin:12px 0 0}.dish-hero__favorite{border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;place-items:center;padding:0;font-size:1.4rem;line-height:1;display:inline-grid}.dish-hero__favorite:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-text-primary)}.dish-hero__favorite:disabled{cursor:progress;opacity:.6}.dish-hero__favorite[aria-pressed=true]{color:#d99a1e;border-color:#d99a1e}.dish-hero .feature-warning{margin:12px 0 0}.dish-actions{margin-top:16px}.dish-edit__title{margin:0}.recipe-variants__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.recipe-variants__header h3{margin:0}.recipe-tabs{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.recipe-tab{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);height:100%;color:var(--color-text-primary);align-content:start;gap:6px;padding:12px 14px;text-decoration:none;display:grid}.recipe-tab:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.recipe-tab[aria-current=true]{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface))}.recipe-tab__title{overflow-wrap:anywhere;font-weight:700}.recipe-tab[aria-current=true] .recipe-tab__title:before{content:"● ";content:"● " / "";color:var(--color-accent)}.recipe-tab__meta{font-size:.875rem}.recipe-tab .feature-badge{justify-self:start}.recipe-view__title{outline-offset:4px;margin:0}.recipe-view__meta{margin:4px 0 0}.recipe-view__description{white-space:pre-wrap;margin:12px 0 0}.recipe-view__controls{flex-wrap:wrap;align-items:center;gap:12px 20px;margin:16px 0;display:flex}.recipe-view__notice{margin:0}.recipe-view__notice p{margin:0 0 8px}.recipe-view__section{margin:24px 0 12px;font-size:1.05rem}.recipe-view .recipe-actions{border-top:1px solid var(--color-border);margin-top:24px;padding-top:16px}.servings-stepper{align-items:center;gap:4px;display:inline-flex}.servings-stepper__button{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);width:44px;height:44px;color:var(--color-text-primary);cursor:pointer;place-items:center;padding:0;font-size:1.4rem;line-height:1;display:inline-grid}.servings-stepper__button:hover:not(:disabled){border-color:var(--color-accent)}.servings-stepper__button:disabled{cursor:not-allowed;opacity:.45}.servings-stepper__input{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:64px;height:44px;color:var(--color-text-primary);text-align:center;font-variant-numeric:tabular-nums;padding:0 8px;font-size:1.1rem;font-weight:700}.recipe-total{background:var(--color-surface-secondary);border-radius:999px;align-items:center;gap:8px;margin:0;padding:8px 14px;font-weight:700;display:inline-flex}.recipe-total--can_cook{background:color-mix(in srgb, var(--color-accent) 24%, var(--color-surface))}.recipe-total--uncertain{background:color-mix(in srgb, #d99a1e 26%, var(--color-surface))}.recipe-total--missing_ingredients{background:color-mix(in srgb, var(--color-danger) 20%, var(--color-surface))}.ingredient-list{margin:0;padding:0;list-style:none;display:grid}.ingredient-row{border-top:1px solid var(--color-border);grid-template-columns:minmax(84px,130px) minmax(0,1fr) minmax(0,1.2fr);align-items:baseline;gap:4px 16px;padding:10px 0;display:grid}.ingredient-row:first-child{border-top:0}.ingredient-row__amount{font-variant-numeric:tabular-nums;font-weight:700}.ingredient-row__amount--taste{color:var(--color-text-secondary);font-style:italic;font-weight:400}.ingredient-row__name{overflow-wrap:anywhere;min-width:0}.ingredient-row__name a{color:var(--color-text-primary)}.ingredient-row__optional{min-height:22px;margin-left:8px;padding:1px 8px;font-size:.8rem;font-weight:400}.ingredient-row--optional .ingredient-row__amount,.ingredient-row--optional .ingredient-row__name a{color:var(--color-text-secondary)}.ingredient-row__status{font-weight:700;display:block}.ingredient-row__status--enough{color:var(--color-text-primary)}.ingredient-row__status--missing{color:var(--color-danger)}.ingredient-row__status--uncertain{color:var(--color-warning)}.ingredient-row__reason{font-size:.875rem;font-weight:400;display:block}.step-list{counter-reset:recipe-step;gap:12px;margin:0;padding:0;list-style:none;display:grid}.step-list__item{counter-increment:recipe-step;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:4px 12px;display:grid}.step-list__item:before{content:counter(recipe-step);background:var(--color-surface-secondary);border:1px solid var(--color-border);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;width:32px;height:32px;font-weight:700;display:inline-grid}.step-list__text{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0}.step-list__timer{color:var(--color-text-secondary);grid-column:2;justify-self:start;font-size:.9rem;font-weight:700}.fork-form{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);margin-top:4px;padding:16px}.fork-form h4,.fork-form p{margin:0}.fork-form__scope{border:0;gap:4px;margin:0;padding:0;display:grid}.fork-form__scope legend{margin-bottom:4px;padding:0;font-weight:700}.fork-form__choice{align-items:center;gap:10px;min-height:44px;display:inline-flex}.fork-form__choice input{width:20px;height:20px}.dish-edit{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);margin-top:4px;padding:16px}.dish-edit textarea{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;min-height:88px;color:var(--color-text-primary);resize:vertical;padding:8px 12px}@media (width<=640px){.ingredient-row{grid-template-columns:minmax(60px,92px) minmax(0,1fr)}.ingredient-row__status{grid-column:1/-1}.recipe-view__controls{align-items:flex-start}}.editor-form h2,.editor-form h3,.editor-form>p{margin:0}.recipe-editor textarea{resize:vertical;min-height:88px}.recipe-editor [aria-invalid=true]{border-color:var(--color-danger)}.editor-body{border:0;gap:24px;min-width:0;margin:0;padding:0;display:grid}.editor-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));align-items:start;gap:16px;display:grid}.editor-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.editor-row{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);gap:12px;min-width:0;margin:0;padding:16px;display:grid}.editor-row legend{padding:0 6px;font-weight:700}.editor-row p{margin:0}.editor-row__amount{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.editor-row__actions{flex-wrap:wrap;gap:8px;display:flex}.editor-row__actions .ui-button--ghost{border-color:var(--color-border)}.editor-product{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.editor-results{gap:8px;margin:0;padding:0;list-style:none;display:grid}.editor-results .ui-button{text-align:left;width:100%}.choice-inline,.choice-group__option{align-items:center;gap:10px;min-height:44px;display:inline-flex}.choice-inline input,.choice-group__option input{flex:none;width:20px;height:20px}.choice-group{border:0;gap:4px;min-width:0;margin:0;padding:0;display:grid}.choice-group legend{margin-bottom:4px;padding:0;font-weight:700}.choice-group p{margin:0}@media (width<=640px){.editor-row__amount{grid-template-columns:minmax(0,1fr)}}.kitchen-header__title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.kitchen-header__title h2{margin:0}.kitchen-header__title p{margin:4px 0 0}.kitchen-summary{flex-wrap:wrap;gap:8px 16px;margin:12px 0 0;display:flex}.kitchen-filters{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:16px;display:grid}.kitchen-list{margin:0;padding:0;list-style:none;display:grid}.kitchen-row{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 0;display:flex}.kitchen-row:first-child{border-top:0}.kitchen-row__main{flex:220px;min-width:0}.kitchen-row__where{margin:4px 0 0;font-size:.875rem}.kitchen-row__meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 12px;display:flex}.kitchen-row__quantity{font-variant-numeric:tabular-nums;font-weight:700}.kitchen-row__quantity--unknown{color:var(--color-text-secondary);font-style:italic;font-weight:400}.kitchen-expiry--use_soon,.kitchen-expiry--expiry_today{background:color-mix(in srgb, #d99a1e 22%, var(--color-surface))}.kitchen-expiry--possibly_expired{background:color-mix(in srgb, var(--color-danger) 18%, var(--color-surface))}.kitchen-state{padding:8px 0}.kitchen-more{justify-content:center;margin-top:12px}.kitchen-empty h3{margin-top:0}.kitchen-add__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.kitchen-add__header h3{margin:0}.kitchen-add__results{gap:8px;margin:0;padding:0;list-style:none;display:grid}.kitchen-add__results .ui-button{text-align:left;width:100%}.kitchen-add__chosen{border-radius:var(--radius-control);background:var(--color-surface-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.kitchen-add__chosen>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kitchen-add__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.kitchen-add__advanced summary{cursor:pointer;align-items:center;min-height:44px;font-weight:700;display:flex}.kitchen-add__confidence{border:1px solid var(--color-border);border-radius:var(--radius-control);flex-wrap:wrap;gap:4px 16px;padding:8px 12px;display:flex}.kitchen-add__confidence label{align-items:center;gap:8px;min-height:44px;display:inline-flex}.kitchen-row__toggle{min-height:44px;padding:8px 12px;font-weight:400}.kitchen-row__toggle:after{content:" ▾";content:" ▾" / ""}.kitchen-row__toggle[aria-expanded=true]:after{content:" ▴";content:" ▴" / ""}.kitchen-row__batches{flex:100%;min-width:0}.kitchen-batches{gap:8px;margin:0;padding:0;list-style:none;display:grid}.kitchen-batches__state{margin:0}.kitchen-batch{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-secondary);min-height:44px;color:var(--color-text-primary);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;text-decoration:none;display:flex}.kitchen-batch:hover{border-color:var(--color-accent)}.kitchen-batch:focus-visible,.kitchen-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.kitchen-link-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.kitchen-link-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.kitchen-back{min-height:44px;color:var(--color-text-primary);align-items:center;font-weight:700;display:inline-flex}.stock-section-title{margin:0 0 12px}.stock-facts{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px;margin:16px 0 0;display:grid}.stock-facts dt{color:var(--color-text-secondary);font-size:.875rem}.stock-facts dd{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;font-weight:700;display:flex}.stock-action-panel{border:1px solid var(--color-border);border-radius:var(--radius-control);margin-top:16px;padding:16px}.stock-action-panel h4,.stock-action-panel p{margin:0}.stock-action-error{margin:12px 0 0}.stock-history{margin:0;padding:0;list-style:none;display:grid}.stock-history li{border-top:1px solid var(--color-border);gap:4px;padding:12px 0;display:grid}.stock-history li:first-child{border-top:0;padding-top:0}@media (width<=720px){.kitchen-filters{grid-template-columns:minmax(0,1fr)}.kitchen-row__meta{justify-content:flex-start}}@media (width<=380px){.kitchen-add__row{grid-template-columns:minmax(0,1fr)}}.stock-history__link{justify-self:start;align-items:center;min-height:44px;display:inline-flex}.shopping-add{gap:12px;display:grid}.shopping-add__results{gap:8px;margin:0;padding:0;list-style:none;display:grid}.shopping-add__chosen{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.shopping-add__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.shopping-list,.shopping-closed{gap:12px;margin:0;padding:0;list-style:none;display:grid}.shopping-row,.shopping-closed__item{border:1px solid var(--color-border);border-radius:var(--radius-md,12px);background:var(--color-surface);overflow-wrap:anywhere;gap:8px;padding:12px;display:grid}.shopping-row__main{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.shopping-row__name{min-width:0}.shopping-row__quantity{color:var(--color-text-secondary,inherit)}.shopping-row__note{margin:0}.shopping-row__actions{margin-top:0}.shopping-row__actions .ui-button--ghost{border-color:var(--color-border)}.shopping-row__editor{margin-top:4px}.shopping-closed__item{grid-template-columns:minmax(0,1fr)}.shopping-notice{margin:0}@media (width<=480px){.shopping-add__row{grid-template-columns:minmax(0,1fr)}}.shopping-row__tick-box{cursor:pointer;flex:none;justify-content:center;align-self:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.shopping-row__tick-box .shopping-row__tick{width:28px;height:28px}.shopping-row__tick-box .shopping-row__tick:after{width:7px;height:13px}.shopping-bar{border:1px solid var(--color-border);border-radius:var(--radius-md,12px);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex;position:sticky;bottom:0}.purchase-panel{border:1px solid var(--color-accent);border-radius:var(--radius-md,12px);background:var(--color-surface);gap:12px;padding:16px;display:grid}.purchase-panel__title{margin:0}.purchase-cards{gap:12px;margin:0;padding:0;list-style:none;display:grid}.purchase-card{border:1px solid var(--color-border);border-radius:var(--radius-md,12px);overflow-wrap:anywhere;gap:8px;padding:12px;display:grid}.purchase-card__head{margin:0}.purchase-card__estimated{align-items:center;gap:8px;min-height:44px;display:flex}.purchase-card__preview{margin:0;font-weight:700}.purchase-failure{margin:0}.purchase-result{padding:4px 0}.shopping-tabs{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.shopping-tabs a{border:1px solid var(--color-border);min-height:44px;color:var(--color-text-primary);border-radius:999px;align-items:center;padding:8px 14px;font-weight:700;text-decoration:none;display:inline-flex}.shopping-tabs a[aria-current=page]{border-color:var(--color-accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.purchase-lines{gap:8px;margin:0;padding:0;list-style:none;display:grid}.purchase-line{overflow-wrap:anywhere}.shortage-add{margin-top:12px}.shortage-add__result p{overflow-wrap:anywhere;margin:0 0 4px}.shortage-add__link{min-height:44px;color:var(--color-text-primary);align-items:center;text-decoration:underline;display:inline-flex}.storage-tree{gap:8px;margin:0;padding:0;list-style:none;display:grid}.storage-tree .storage-tree{border-left:2px solid var(--color-border);margin-top:8px;padding-left:20px}.storage-node{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.storage-node__main{flex:200px;min-width:0}.storage-node__meta{margin-top:2px;font-size:.875rem;display:block}.storage-node__actions{justify-content:flex-end;gap:6px}.storage-order-button{min-width:44px;padding:10px}.storage-panel{border:1px solid var(--color-border);border-radius:var(--radius-control);margin-top:8px;padding:16px}.storage-panel p{margin:0}.storage-panel__title{margin:0;font-size:1.05rem}.storage-form__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.storage-form__temps{border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;min-width:0;margin:0;padding:8px 12px 12px;display:grid}.storage-form__temps legend{padding:0 4px}.storage-owner-note{margin:12px 0 0}@media (width<=720px){.storage-tree .storage-tree{padding-left:10px}.storage-node__actions{justify-content:flex-start}.storage-form__row{grid-template-columns:minmax(0,1fr)}}.connection-bar{border:1px solid var(--color-border);border-radius:var(--radius-md,12px);background:var(--color-surface);color:var(--color-text-primary);margin:0 0 12px;padding:8px 12px;font-size:.95em}.connection-bar--lost{border-color:var(--color-warning,var(--color-border));font-weight:600}.connection-bar--back{border-color:var(--color-accent)}:root{--color-background:#f7f8f6;--color-surface:#fff;--color-surface-secondary:#f0f3f0;--color-text-primary:#18201b;--color-text-secondary:#5d6a62;--color-border:#e3e8e4;--color-accent:#2f7d5b;--color-accent-hover:#256a4d;--color-on-accent:#fff;--color-danger:#a23b3b;--color-on-danger:#fff;--color-warning:#8a5a00;--color-focus:#2f7d5b;--color-scrollbar-thumb:#7f8d85;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-card:16px;--radius-control:12px;--shadow-card:0 8px 28px #18201b14}[data-theme=dark]{--color-background:#111713;--color-surface:#18201b;--color-surface-secondary:#202922;--color-text-primary:#f4f7f5;--color-text-secondary:#a4b0a8;--color-border:#2a352e;--color-accent:#65b98c;--color-accent-hover:#77c99d;--color-on-accent:#0e1511;--color-danger:#e28181;--color-on-danger:#0e1511;--color-warning:#e2b24c;--color-focus:#65b98c;--color-scrollbar-thumb:#5b6b61;--shadow-card:0 8px 28px #0003}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent}body{background:var(--color-background);min-width:320px;min-height:100vh;color:var(--color-text-primary);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}::placeholder{color:var(--color-text-secondary);opacity:1}input[type=radio]{accent-color:var(--color-accent)}input[type=checkbox]{appearance:none;border:1.5px solid var(--color-scrollbar-thumb);background:var(--color-surface-secondary);cursor:pointer;border-radius:34%;flex:none;place-content:center;width:24px;height:24px;margin:0;transition:background-color .15s,border-color .15s;display:inline-grid}input[type=checkbox]:after{content:"";border:solid var(--color-on-accent);border-width:0 2.5px 2.5px 0;border-radius:1px;width:6px;height:11px;margin-top:-2px;transition:transform .15s;transform:rotate(45deg)scale(0)}input[type=checkbox]:hover:not(:disabled){border-color:var(--color-accent)}input[type=checkbox]:checked{background:var(--color-accent);border-color:var(--color-accent)}input[type=checkbox]:checked:after{transform:rotate(45deg)scale(1)}input[type=checkbox]:disabled{opacity:.55;cursor:not-allowed}@media (forced-colors:active){input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;border-radius:0}input[type=checkbox]:after{content:none}}a{color:var(--color-accent)}a:hover{color:var(--color-accent-hover)}p[role=alert],li[role=alert]{color:var(--color-danger);font-weight:700}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.link-line{justify-self:start;align-items:center;min-height:44px;display:inline-flex}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.shell{width:min(100% - 32px,1120px);margin:0 auto;padding:24px 0 48px}.shell__header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.shell__brand{min-width:0}.theme-switch{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;flex-shrink:0;gap:2px;padding:3px;display:inline-flex}.theme-switch__option{width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;font-size:1.15rem;line-height:1;display:inline-grid}.theme-switch__option:hover{color:var(--color-text-primary)}.theme-switch__option[aria-pressed=true]{background:var(--color-accent);color:var(--color-surface)}.shell__eyebrow{color:var(--color-accent);margin:0 0 8px;font-weight:700}.shell h1{margin:0;font-size:clamp(1.5rem,3.2vw,2rem);line-height:1.15}.shell__description{max-width:640px;color:var(--color-text-secondary);overflow-wrap:anywhere;margin:4px 0 0}.shell__family{color:var(--color-text-primary)}.updated-strip{border:1px solid var(--color-border);border-left:4px solid var(--color-accent);background:var(--color-surface);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin:0 0 16px;padding:8px 8px 8px 16px;display:flex}.updated-strip__text{gap:2px;min-width:0;display:grid}.updated-strip__text span{color:var(--color-text-secondary)}.updated-strip__actions{align-items:center;gap:4px;margin-left:auto;display:flex}.updated-strip__link{align-items:center;min-height:44px;padding:0 12px;font-weight:600;display:inline-flex}.updated-strip button.updated-strip__link{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:600}.updated-strip__close{width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;font-size:1.6rem;line-height:1;display:inline-grid}.updated-strip__close:hover{background:var(--color-surface-secondary);color:var(--color-text-primary)}.status-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.status-grid:empty{display:none}@media (width<=640px){.shell{width:min(100% - 24px,1120px);padding:16px 0 32px}.shell__header{align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.check-line{align-items:flex-start;gap:8px;min-height:44px;display:flex}.consent{gap:8px;display:grid}.consent__links{gap:0;margin:0;display:grid}.consent__links a{align-items:center;min-height:44px;display:flex}
