.pantry{gap:var(--space-5);display:grid}.pantry h1{margin:0}.pantry__layout{gap:var(--space-5);align-items:start;display:grid}.pantry__layout>*{min-width:0}.pantry-form{gap:var(--space-4);display:grid}.pantry-form h2{margin:0}.pantry-form__hint{margin:calc(var(--space-2) * -1) 0 0;color:var(--color-ink-muted);font-size:var(--text-sm)}.pantry-form__grid{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.pantry-form__grid .field{margin-bottom:0}.pantry-form__name{grid-column:1/-1}.pantry-form .field__control{min-height:var(--tap-size);width:100%}.pantry-form .button{min-height:var(--tap-size);justify-self:start}.pantry-money{align-items:center;display:flex;position:relative}.pantry-money__symbol{color:var(--color-ink-muted);pointer-events:none;position:absolute;inset-inline-start:var(--space-3)}.pantry-money .field__control{padding-inline-start:calc(var(--space-3) + 2.25ch)}.pantry-item{align-items:center;gap:var(--space-1) var(--space-4);min-height:var(--tap-size);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);grid-template-columns:minmax(0,1fr) 4.5rem 7.5rem auto;display:grid}.pantry-item__main{min-width:0;display:grid}.pantry-item__name{font-weight:var(--weight-semibold);overflow-wrap:anywhere}.pantry-item__used{color:var(--color-ink-muted);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.pantry-item__pack{color:var(--color-ink-muted);text-align:end;white-space:nowrap}.pantry-item__cost{text-align:end;justify-items:end;display:grid}.pantry-item__price{font-weight:var(--weight-semibold)}.pantry-item__price--none{color:var(--color-ink-muted);font-style:italic;font-weight:var(--weight-regular)}.pantry-item__unit-price{color:var(--color-ink-muted);font-size:var(--text-xs);white-space:nowrap}.pantry-item__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.pantry-item__actions .button{min-height:var(--tap-size);min-width:var(--tap-size);padding-inline:var(--space-3)}.pantry-item__actions.pantry-confirm{justify-content:flex-start;gap:var(--space-2);margin:var(--space-1) var(--space-2) var(--space-1) 0;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);grid-column:1/-1}.pantry-confirm__question{font-weight:var(--weight-semibold);color:var(--color-danger);flex:8rem;margin:0}.pantry-item--editing{padding:var(--space-4);background:var(--color-surface-sunk);display:block}.pantry-edit{gap:var(--space-3);display:grid}.pantry-edit .field__control{min-height:var(--tap-size);width:100%}.pantry-edit__actions{gap:var(--space-2);display:flex}.pantry-edit__actions .button{min-height:var(--tap-size)}@media (width>=60rem){.pantry__layout{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}.pantry-form{top:calc(var(--space-8) + var(--space-5));position:sticky}}@media (width<=34rem){.pantry-item{gap:0 var(--space-3);padding:var(--space-3) var(--space-2) var(--space-1) var(--space-4);grid-template-columns:minmax(0,1fr) auto}.pantry-item__main,.pantry-item__cost{display:contents}.pantry-item__name{grid-area:1/1}.pantry-item__price{padding-right:var(--space-2);grid-area:1/2;justify-self:end}.pantry-item__pack{text-align:start;font-size:var(--text-sm);grid-area:2/1}.pantry-item__unit-price{padding-right:var(--space-2);grid-area:2/2;justify-self:end}.pantry-item__used{grid-area:3/1;align-self:center}.pantry-item__actions{grid-area:3/2}.pantry-item__actions.pantry-confirm{margin-bottom:var(--space-2);grid-area:4/1/auto/-1}}.tin-fields{gap:var(--space-3);display:grid}.tin-fields__shapes{border:0;min-width:0;margin:0;padding:0}.tin-fields__options{margin-top:var(--space-2)}.tin-fields .field{margin-bottom:0}.tin-fields__sizes{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.recipe-editor{gap:var(--space-5);display:grid}.recipe-editor h2,.recipe-editor h3{margin:0}.recipe-editor .field{margin-bottom:0}.recipe-editor__basics{gap:var(--space-3) var(--space-4);grid-template-columns:minmax(0,3fr) minmax(7rem,1fr);display:grid}.recipe-editor__tin{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid}.recipe-editor__check{align-items:center;gap:var(--space-3);min-height:var(--tap-size);font-weight:var(--weight-medium);cursor:pointer;display:inline-flex}.recipe-editor__check input{width:1.25rem;height:1.25rem;accent-color:var(--color-accent);margin:0}.recipe-editor__lines{gap:var(--space-3);display:grid}.recipe-editor__lines>.field__error{margin:0}.recipe-lines{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.recipe-line{align-items:start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:auto minmax(0,2fr) minmax(6rem,1fr) minmax(5.5rem,1fr) auto;min-width:0;margin:0;display:grid}.recipe-line__number{border-radius:var(--radius-pill);background:var(--color-accent-soft);width:2rem;height:2rem;color:var(--color-accent);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;place-items:center;margin-top:1.75rem;display:grid}.recipe-line__remove{margin-top:1.5rem}.recipe-editor__add{justify-self:start}.recipe-editor__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=36rem){.recipe-editor__basics{grid-template-columns:1fr}.recipe-line{gap:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.recipe-line__number{display:none}.recipe-line__ingredient{grid-column:1/-1}.recipe-line__remove{padding-inline:var(--space-2)}}.tin-glyph{flex:none;width:3rem;height:3rem}.tin-glyph__sponge,.tin-glyph__bake{fill:var(--color-crumb);stroke:var(--color-ink);stroke-width:2px}.tin-glyph__slice{fill:var(--color-accent);stroke:var(--color-ink);stroke-width:2px;stroke-linejoin:round}.tin-glyph__cut{fill:none;stroke:var(--color-ink);stroke-width:1.5px;stroke-linecap:round;opacity:.55}.tin-glyph__dot{fill:var(--color-ink);opacity:.7}.tin-compare{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-sunk);display:flex}.tin-compare__picture{flex:none;width:6.5rem;height:6.5rem}.tin-compare__yours{fill:var(--color-crumb);stroke:var(--color-ink);stroke-width:2px}.tin-compare__recipe{fill:none;stroke:var(--color-ink);stroke-width:1.5px;stroke-dasharray:4 4;opacity:.7}.tin-compare__text{gap:var(--space-1);min-width:0;display:grid}.tin-compare__text p{margin:0}.tin-compare__sentence{font-family:var(--font-display);font-size:var(--text-ml);font-weight:var(--weight-bold);text-wrap:balance;line-height:1.3}.tin-compare__key{align-items:center;gap:var(--space-1) var(--space-2);color:var(--color-ink-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.tin-compare__swatch{border-radius:var(--radius-pill);border:1.5px solid var(--color-ink);width:.875rem;height:.875rem}.tin-compare__swatch--yours{background:var(--color-crumb)}.tin-compare__swatch--recipe{margin-left:var(--space-2);border-style:dashed}@media (width<=30rem){.tin-compare{gap:var(--space-3);padding:var(--space-3)}.tin-compare__picture{width:5rem;height:5rem}}.scale-controls{gap:var(--space-4);display:grid}.scale-controls__modes{border:0;min-width:0;margin:0;padding:0}.scale-controls__options{margin-top:var(--space-2)}.scale-controls__field{max-width:12rem;margin-bottom:0}.scale-controls__times{margin-bottom:0}.scale-controls__times-row{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.scale-controls__times-input{flex:0 0 7rem;width:7rem}.scale-controls__quick{gap:var(--space-2);flex-wrap:wrap;display:flex}.scale-controls__pick{min-width:3rem;min-height:var(--tap-size);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-weight:var(--weight-medium);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out)}.scale-controls__pick:hover{border-color:var(--color-ink-muted);background:var(--color-surface-sunk)}.scale-controls__pick:active{transform:translateY(1px)scale(.98)}.scale-controls__pick:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 6px var(--color-focus-halo)}.scale-controls__pick[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);font-weight:var(--weight-bold)}.cost-panel{gap:var(--space-4);display:grid}.cost-panel__figures{gap:0;margin:0;display:grid}.cost-panel__figures>div{justify-content:space-between;align-items:baseline;gap:0 var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap;min-width:0;display:flex}.cost-panel__figures dt{color:var(--color-ink-muted)}.cost-panel__figures dd{font-weight:var(--weight-bold);font-size:var(--text-ml);overflow-wrap:anywhere;margin:0}.cost-panel__figures>.cost-panel__suggested{gap:var(--space-1);margin-bottom:var(--space-1);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-accent-soft);border:0;display:grid}.cost-panel__suggested dt{color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.cost-panel__figures>.cost-panel__suggested dd{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-tight);letter-spacing:-.01em;color:var(--color-accent)}.cost-panel__margin{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.cost-panel__margin label{font-weight:var(--weight-medium);font-size:var(--text-sm)}.cost-panel__input{align-items:center;gap:var(--space-2);display:inline-flex}.cost-panel__input input{width:5.5rem;min-height:var(--tap-size)}.cost-panel__keeps{color:var(--color-success);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0}.cost-panel__error{flex-basis:100%}.cost-panel__note{color:var(--color-ink-muted);font-size:var(--text-sm);margin:0}.recipe-view{gap:var(--space-4);display:grid}.recipe-view__bar{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.recipe-view__about{align-items:center;gap:var(--space-3);min-width:0;display:flex}.recipe-view__written{color:var(--color-ink-muted);flex-wrap:wrap;margin:0;display:flex}.recipe-view__written span+span:before{content:"·";margin-inline:var(--space-2)}.recipe-view__actions,.recipe-view__confirm-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.recipe-view__delete{color:var(--color-danger)}.recipe-view__delete:hover:not([aria-disabled=true]){background:var(--color-danger-soft);color:var(--color-danger-hover)}.recipe-view__confirm{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-lg);background:var(--color-danger-soft);display:grid}.recipe-view__confirm-question{font-weight:var(--weight-semibold);color:var(--color-danger);margin:0}.recipe-view__layout{gap:var(--space-4);align-items:start;display:grid}.recipe-view__layout>*{min-width:0}.recipe-view__summary{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin:0 0 var(--space-3);flex-wrap:wrap;display:flex}.recipe-view__makes{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em}.recipe-view__factor{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);font-weight:var(--weight-bold)}.recipe-view__table{border-collapse:collapse;width:100%}.recipe-view__table th,.recipe-view__table td{padding:var(--space-3) 0;text-align:left;overflow-wrap:anywhere}.recipe-view__table th{padding-block:var(--space-2);color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.recipe-view__table td:first-child{font-weight:var(--weight-medium)}.recipe-view__table th:nth-child(2),.recipe-view__table td:nth-child(2){text-align:right;white-space:nowrap;padding-left:var(--space-3);font-weight:var(--weight-semibold)}.recipe-view__table th:nth-child(2){font-weight:var(--weight-medium)}.recipe-view__table th:last-child,.recipe-view__table td:last-child{text-align:right;white-space:nowrap;width:6.5rem;padding-left:var(--space-3);color:var(--color-ink-muted)}.recipe-view__table tbody tr{border-top:1px solid var(--color-border)}.recipe-view__plan{align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.recipe-view__plan .button svg{width:1.125rem;height:1.125rem}.recipe-view__planned{font-size:var(--text-sm);font-weight:var(--weight-medium)}.recipe-view__cannot{color:var(--color-ink-muted)}@media (width>=56rem){.recipe-view__layout{gap:var(--space-5);grid-template-columns:minmax(0,7fr) minmax(0,4fr)}.recipe-view__controls,.recipe-view__result,.recipe-view__cannot{grid-column:1}.recipe-view__layout>.cost-panel{top:calc(var(--space-8) + var(--space-5));grid-area:1/2/span 2;position:sticky}}.sample-notice{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-crumb-soft);animation:rise var(--duration-slow) var(--ease-out) both;flex-wrap:wrap;display:flex}.sample-notice__text{flex:18rem;min-width:0}.sample-notice__title{font-family:var(--font-display);font-size:var(--text-ml);font-weight:var(--weight-bold);margin:0}.sample-notice__body{color:var(--color-ink-muted);font-size:var(--text-sm);margin:0}.sample-notice__confirm{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);flex:18rem;display:grid}.sample-notice__question{font-weight:var(--weight-semibold);color:var(--color-danger);margin:0}.sample-notice__keeps{font-size:var(--text-sm);margin:0}.sample-notice__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=30rem){.sample-notice{padding:var(--space-4)}}.recipes{gap:var(--space-5);display:grid}.recipes__back svg,.recipes__header .button--primary svg{width:1.125rem;height:1.125rem}.recipe-grid{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.recipe-card{gap:var(--space-3);min-width:0;padding:var(--space-4) var(--space-4) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);animation:rise var(--duration-slow) var(--ease-out) both;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);flex-direction:column;display:flex}.recipe-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.recipe-card__head{align-items:center;gap:var(--space-3);min-width:0;display:flex;position:relative}.recipe-card__title{min-width:0;display:grid}.recipe-card__name{min-height:var(--tap-size);min-width:var(--tap-size);color:inherit;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em;text-align:left;overflow-wrap:anywhere;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:0;justify-self:start;padding:0}.recipe-card__name:hover{color:var(--color-accent)}.recipe-card__name:after{content:"";position:absolute;inset:0}.recipe-card__meta{margin:calc(var(--space-2) * -1) 0 0;color:var(--color-ink-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.recipe-card__meta span+span:before{content:"·";margin-inline:var(--space-2)}.recipe-card__figures{align-items:end;gap:var(--space-2) var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-sunk);grid-template-columns:minmax(0,1fr) auto auto;margin:0;display:grid}.recipe-card__figures dt{color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.recipe-card__figures dd{font-weight:var(--weight-semibold);white-space:nowrap;margin:0}.recipe-card__figures--wrap dd{white-space:normal;overflow-wrap:anywhere}.recipe-card__sell dd{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-accent);line-height:1.2}.recipe-card__actions{align-items:center;gap:var(--space-1);margin-top:auto;margin-inline:calc(var(--space-2) * -1);flex-wrap:wrap;display:flex}.recipe-card__actions.recipe-confirm{gap:var(--space-2);margin:auto 0 var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft)}.recipe-confirm__question{font-weight:var(--weight-semibold);color:var(--color-danger);flex:100%;margin:0}.recipes-need-pantry{gap:var(--space-2);justify-items:start;display:grid}.recipes-need-pantry p{margin:0}.recipes-need-pantry__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}@media (width>=40rem){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=30rem){.recipe-card__figures{padding:var(--space-3)}}.import-backup{gap:var(--space-3);display:grid}.import-backup__button{justify-self:start}.import-backup__input:focus-visible+.import-backup__button{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 6px var(--color-focus-halo)}.import-backup__confirm{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);animation:rise var(--duration-base) var(--ease-out) both;border-left-width:4px;display:grid}.import-backup__question{font-weight:var(--weight-semibold);margin:0}.import-backup__summary{color:var(--color-ink-muted);margin:0}.import-backup__actions{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.settings{gap:var(--space-5);display:grid}.settings h1{margin:0}.settings__layout{gap:var(--space-5);display:grid}.settings__layout>*{min-width:0}.settings-card{align-content:start;gap:var(--space-3);display:grid}.settings-card .field{margin-bottom:0}.settings-card__select{max-width:16rem}.settings-card__note{color:var(--color-ink-muted);margin:0}.settings-card__actions{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.settings-card__actions .import-backup{flex:10rem}.settings-counts{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin:0;display:grid}.settings-counts__item{padding:var(--space-3) var(--space-4) var(--space-1);border-radius:var(--radius-md);background:var(--color-surface-sunk);flex-direction:column-reverse;display:flex}.settings-counts dd{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin:0}.settings-counts dt a{color:var(--color-ink-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.settings-counts dt a:hover{color:var(--color-accent)}@media (width>=52rem){.settings__layout{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card--wide{grid-column:1/-1}}.shopping{gap:var(--space-4);display:grid}.shopping__head{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex}.shopping__progress,.shopping__empty,.shopping__note{color:var(--color-ink-muted);font-size:var(--text-sm);margin:0}.shopping-rows{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin:0;padding:0;list-style:none}.shopping-row{min-height:var(--tap-size);align-items:center;display:flex;position:relative}.shopping-row+.shopping-row{border-top:1px solid var(--color-border)}.shopping-row input.shopping-row__box{appearance:none;left:var(--space-2);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);cursor:pointer;width:1.5rem;height:1.5rem;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);margin:0;position:absolute;top:50%;transform:translateY(-50%)}.shopping-row input.shopping-row__box:checked{border-color:var(--color-accent);background-color:var(--color-accent)}.shopping-row input.shopping-row__box:checked:before{content:"";background:var(--color-accent-ink);position:absolute;inset:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.5 12.5 3.5 3.5 7.5-8'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.5 12.5 3.5 3.5 7.5-8'/%3E%3C/svg%3E") 50%/100% 100% no-repeat}.shopping-row input.shopping-row__box:focus-visible{outline:none}.shopping-row__label{align-items:center;gap:var(--space-1) var(--space-3);min-height:3rem;padding:var(--space-2) var(--space-2) var(--space-2) calc(var(--space-2) + 1.5rem + var(--space-3));border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-base) var(--ease-out);flex:1;grid-template-columns:minmax(0,1fr) 4.5rem 4.5rem 4.25rem;display:grid}.shopping-row__label:hover{background:var(--color-hover)}.shopping-row__box:focus-visible+.shopping-row__label{outline:2px solid var(--color-focus);outline-offset:-2px;box-shadow:inset 0 0 0 5px var(--color-focus-halo)}.shopping-row__name{font-weight:var(--weight-semibold);overflow-wrap:anywhere}.shopping-row__total,.shopping-row__packs{color:var(--color-ink-muted);text-align:right;white-space:nowrap}.shopping-row__cost{text-align:right;font-weight:var(--weight-semibold);white-space:nowrap}.shopping-row--ticked .shopping-row__label{text-decoration:line-through;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);color:var(--color-ink-muted)}.shopping-row--ticked .shopping-row__name,.shopping-row--ticked .shopping-row__cost{font-weight:var(--weight-regular)}@media (width<=30rem){.shopping-row__label{gap:0 var(--space-3);grid-template-columns:auto auto minmax(0,1fr)}.shopping-row__name{grid-column:1/3}.shopping-row__total,.shopping-row__packs{text-align:left;font-size:var(--text-sm);grid-row:2}.shopping-row__cost{grid-area:1/3/span 2}}.shopping-totals{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-sunk);margin:0;display:grid}.shopping-totals__item{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.shopping-totals dt{color:var(--color-ink-muted);margin:0}.shopping-totals dd{font-weight:var(--weight-bold);margin:0}.shopping-totals__item:first-child dt{color:var(--color-ink);font-weight:var(--weight-medium)}.shopping-totals__item:first-child dd{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-tight);color:var(--color-accent)}.week{gap:var(--space-5);display:grid}.week h1{margin:0}.week-need-recipe{gap:var(--space-3);justify-items:start;display:grid}.week-need-recipe p{margin:0}.week__layout,.week__plan{gap:var(--space-5);align-items:start;display:grid}.week__layout>*,.week__plan>*{min-width:0}.week-bakes{gap:var(--space-3);padding-bottom:var(--space-2);display:grid}.week-bakes__head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);min-height:var(--tap-size);flex-wrap:wrap;display:flex}.week-list{margin:0;padding:0;list-style:none}.week-batch{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.week-batch+.week-batch{border-top:1px solid var(--color-border)}.week-batch .tin-glyph{width:2.25rem;height:2.25rem}.week-batch__text{gap:var(--space-1);flex:1;min-width:0;display:grid}.week-batch__name{font-family:var(--font-display);font-size:var(--text-ml);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere}.week-batch__meta{align-items:center;gap:var(--space-1) var(--space-3);color:var(--color-ink-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.week-batch__scale{white-space:nowrap;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);font-weight:var(--weight-semibold)}.week-batch .button{margin-right:calc(var(--space-3) * -1)}.week-confirm{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);flex-wrap:wrap;display:flex}.week-confirm__question{font-weight:var(--weight-semibold);color:var(--color-danger);flex:8rem;margin:0}.week-form{gap:var(--space-4);display:grid}.week-form .field{margin-bottom:0}.week-form__add{justify-self:start}@media (width>=60rem){.week__layout{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.week__layout--empty{grid-template-columns:minmax(0,1fr)}.week__layout--empty .week__plan{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=24rem){.week-batch .tin-glyph{display:none}}.shell{flex-direction:column;min-height:100vh;display:flex}.shell__header{border-bottom:1px solid var(--color-border);z-index:10;position:sticky;top:0}.shell__header:before{content:"";z-index:-1;background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);position:absolute;inset:0}.shell__bar{max-width:var(--content-width);padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.shell__brand{gap:var(--space-3);color:var(--color-ink);border-radius:var(--radius-md);padding-right:var(--space-2);text-decoration:none}.shell__brand:hover{color:var(--color-ink)}.shell__brand-text{white-space:nowrap;flex-direction:column;line-height:1.1;display:flex}.shell__brand-name{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:-.01em}.shell__brand-tag{font-size:var(--text-xs);color:var(--color-ink-muted)}.shell__nav{z-index:20;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:var(--shadow-nav);padding-bottom:env(safe-area-inset-bottom);position:fixed;inset:auto 0 0}.shell__tabs{grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.shell__tab{width:100%;min-height:var(--tabbar-height);padding:var(--space-1) var(--space-1);color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);transition:color var(--duration-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex;position:relative}.shell__tab:hover{color:var(--color-ink)}.shell__tab:focus-visible{outline-offset:-3px;border-radius:var(--radius-md)}.shell__tab-label{white-space:nowrap}.shell__tab-icon{border-radius:var(--radius-pill);width:3rem;height:1.75rem;transition:background-color var(--duration-base) var(--ease-out);place-items:center;display:grid}.shell__tab[aria-current=page]{color:var(--color-accent)}.shell__tab[aria-current=page] .shell__tab-icon{background:var(--color-accent-soft)}.shell__tab:active .shell__tab-icon{transform:scale(.94)}.shell__tab-icon{transition:background-color var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out)}.shell__main{min-width:0;animation:rise var(--duration-slow) var(--ease-out) both;width:100%;max-width:var(--content-width);padding:var(--space-5) var(--space-4) calc(var(--tabbar-height) + var(--space-6) + env(safe-area-inset-bottom));flex:1;margin:0 auto}@media (width>=48rem){.shell__bar{padding:var(--space-3) var(--space-5)}.shell__nav{box-shadow:none;background:0 0;border:0;margin-left:auto;padding:0;position:static}.shell__tabs{gap:var(--space-1);display:flex}.shell__tab{gap:var(--space-2);min-height:var(--tap-size);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-pill);flex-direction:row}.shell__tab:focus-visible{outline-offset:2px;border-radius:var(--radius-pill)}.shell__tab-icon{width:auto;height:auto;background:0 0!important}.shell__tab-icon svg{width:20px;height:20px}.shell__tab[aria-current=page]{background:var(--color-accent-soft)}.shell__main{padding:var(--space-7) var(--space-5) var(--space-8)}}@media (width>=48rem) and (width<=58rem){.shell__brand-tag{display:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, Cambria, "Times New Roman", serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-2xs:.6875rem;--text-xs:.8125rem;--text-sm:.875rem;--text-md:1rem;--text-ml:1.125rem;--text-lg:1.25rem;--text-xl:1.625rem;--text-2xl:clamp(2rem, 1.6rem + 2vw, 2.75rem);--leading-tight:1.15;--leading-body:1.55;--tracking-caps:.06em;--weight-regular:400;--weight-medium:550;--weight-semibold:620;--weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--content-width:68rem;--tap-size:44px;--tabbar-height:4rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-pill:999px;--color-bg:#fbf6ee;--color-surface:#fffdf9;--color-surface-sunk:#f3ebdf;--color-ink:#3b2a20;--color-ink-muted:#6e5a4c;--color-border:#e3d6c4;--color-border-strong:#b9a48e;--color-accent:#b0204f;--color-accent-hover:#951a42;--color-accent-ink:#fff;--color-accent-soft:#fbe5ec;--color-danger:#a8321c;--color-danger-hover:#8c2715;--color-danger-ink:#fff;--color-danger-soft:#fbe7e1;--color-success:#2f6b3a;--color-success-soft:#e3f1e4;--color-focus:#b0204f;--color-focus-halo:#b0204f2e;--color-hover:#3b2a200b;--color-glow:#f0a8783d;--color-crumb:#e9b97a;--color-crumb-soft:#f6e3c5;--shadow-sm:0 1px 2px #3b2a2014;--shadow-md:0 1px 2px #3b2a200f, 0 6px 18px -6px #3b2a202e;--shadow-lg:0 18px 40px -12px #3b2a2047;--shadow-nav:0 -8px 24px -14px #3b2a204d;--shadow-inset:inset 0 1px 2px #3b2a200f;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--ease-out:cubic-bezier(.2, .7, .2, 1);--rise-distance:6px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#1d1511;--color-surface:#281d17;--color-surface-sunk:#17110d;--color-ink:#f4e9dc;--color-ink-muted:#c3b09f;--color-border:#43332a;--color-border-strong:#6f5949;--color-accent:#f0729a;--color-accent-hover:#f592b1;--color-accent-ink:#2a0a15;--color-accent-soft:#46202d;--color-danger:#f0866d;--color-danger-hover:#f5a28f;--color-danger-ink:#2a0d06;--color-danger-soft:#45201a;--color-success:#8ccf97;--color-success-soft:#1f3324;--color-focus:#f0729a;--color-focus-halo:#f0729a3d;--color-hover:#fff0e10d;--color-glow:#b0204f2e;--color-crumb:#c8955a;--color-crumb-soft:#4a3523;--shadow-sm:0 1px 2px #0006;--shadow-md:0 0 0 1px #fff0e108, 0 1px 2px #00000059, 0 8px 20px -8px #0009;--shadow-lg:0 20px 44px -12px #000000b3;--shadow-nav:0 -8px 24px -12px #0009;--shadow-inset:inset 0 1px 2px #0000004d}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--duration-slow:0s;--rise-distance:0px}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes rise{0%{opacity:0;transform:translateY(var(--rise-distance))}to{opacity:1;transform:none}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{background:radial-gradient(60rem 26rem at 50% -10rem, var(--color-glow), transparent), var(--color-bg);min-height:100vh;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-repeat:no-repeat;margin:0;overflow-x:clip}::selection{background:var(--color-accent-soft);color:var(--color-ink)}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em;margin:0 0 var(--space-4);text-wrap:balance}h1{font-size:var(--text-2xl);letter-spacing:-.02em}h1:after{content:"";width:2.5rem;height:3px;margin-top:var(--space-3);border-radius:var(--radius-pill);background:var(--color-accent);display:block}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h1{scroll-margin-top:calc(var(--space-8) + var(--space-6))}h1:focus{outline:none}h1:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px;border-radius:var(--radius-sm)}p{margin:0 0 var(--space-4)}a{color:var(--color-accent);text-underline-offset:.2em;min-height:var(--tap-size);min-width:var(--tap-size);align-items:center;display:inline-flex}a:hover{color:var(--color-accent-hover)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}input[type=checkbox],input[type=radio]{width:1.375rem;height:1.375rem;margin:calc((var(--tap-size) - 1.375rem) / 2);accent-color:var(--color-accent)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.tabular{font-variant-numeric:tabular-nums lining-nums}.screen-header{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.screen-header h1{margin:0}.section-title{font-size:var(--text-lg);margin:0}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-size);min-width:var(--tap-size);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-weight:var(--weight-medium);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 6px var(--color-focus-halo)}.button:active:not([aria-disabled=true]){transform:translateY(1px)scale(.98)}.button[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.button--primary{background:var(--color-accent);color:var(--color-accent-ink);box-shadow:var(--shadow-sm)}.button--primary:hover:not([aria-disabled=true]){background:var(--color-accent-hover);color:var(--color-accent-ink);box-shadow:var(--shadow-md)}.button--secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border-strong)}.button--secondary:hover:not([aria-disabled=true]){background:var(--color-surface-sunk);border-color:var(--color-ink-muted);color:var(--color-ink)}.button--quiet{color:var(--color-accent);background:0 0}.button--quiet:hover:not([aria-disabled=true]){background:var(--color-accent-soft);color:var(--color-accent-hover)}.button--danger{background:var(--color-danger);color:var(--color-danger-ink);box-shadow:var(--shadow-sm)}.button--danger:hover:not([aria-disabled=true]){background:var(--color-danger-hover);color:var(--color-danger-ink)}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;min-width:0;display:flex}.field__label{font-weight:var(--weight-medium);font-size:var(--text-sm)}.field__hint{color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:var(--weight-regular)}.field__control{min-height:var(--tap-size);width:100%;min-width:0;padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-inset);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.field__control:hover{border-color:var(--color-ink-muted)}.field__control:focus-visible{outline:2px solid var(--color-focus);outline-offset:0;border-color:var(--color-focus);box-shadow:0 0 0 5px var(--color-focus-halo)}.field__control[aria-invalid=true]{border-color:var(--color-danger);box-shadow:inset 0 0 0 1px var(--color-danger)}select.field__control{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-ink-muted) 50%), linear-gradient(135deg, var(--color-ink-muted) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 1.2rem) 52%,calc(100% - .85rem) 52%;background-repeat:no-repeat;background-size:.35rem .35rem;padding-inline-end:calc(var(--space-3) + 1.5rem)}.field__error{align-items:baseline;gap:var(--space-2);color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0;display:flex}.field__error:before{content:"!";content:"!" / "";border-radius:var(--radius-pill);background:var(--color-danger);width:1rem;height:1rem;color:var(--color-danger-ink);font-size:var(--text-2xs);font-weight:var(--weight-bold);flex:none;place-items:center;line-height:1;display:inline-grid;transform:translateY(2px)}.field__error:empty{display:none}.choice-group{gap:var(--space-1);padding:var(--space-1);border-radius:calc(var(--radius-md) + var(--space-1));background:var(--color-surface-sunk);box-shadow:var(--shadow-inset);flex-wrap:wrap;display:inline-flex}.choice-pill{min-height:var(--tap-size);min-width:var(--tap-size);padding:0 var(--space-4);border-radius:var(--radius-md);color:var(--color-ink-muted);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.choice-pill:hover{color:var(--color-ink)}.choice-pill:has(input:checked){border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);color:var(--color-accent)}.choice-pill:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 6px var(--color-focus-halo)}@media (width<=30rem){.choice-pill{padding:0 var(--space-3)}}.choice-pill input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.table-scroll{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow-x:auto}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums lining-nums;width:100%}.data-table caption{text-align:left;padding:var(--space-3) var(--space-4);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table thead th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-ink-muted);background:var(--color-surface-sunk);font-weight:var(--weight-medium)}.data-table tbody tr:last-child>*{border-bottom:0}.data-table .num{text-align:right;white-space:nowrap}.data-table tfoot td,.data-table tfoot th{font-weight:var(--weight-bold);border-top:2px solid var(--color-border-strong);border-bottom:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5);min-width:0;animation:rise var(--duration-slow) var(--ease-out) both}.row-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);animation:rise var(--duration-slow) var(--ease-out) both;margin:0;padding:0;list-style:none;overflow:hidden}.row-list>li{transition:background-color var(--duration-fast) var(--ease-out)}.row-list>li:hover{background-color:var(--color-hover)}.row-list>li+li{border-top:1px solid var(--color-border)}@media (width<=30rem){.card{padding:var(--space-4)}}.confirm-group{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:var(--radius-lg);flex-wrap:wrap;display:inline-flex}.confirm-group__question{font-weight:var(--weight-semibold);color:var(--color-danger);margin:0;margin-right:var(--space-2)}.empty-state{text-align:center;padding:var(--space-7) var(--space-5);border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:radial-gradient(circle at 50% 0%, var(--color-accent-soft), transparent 65%), var(--color-surface);color:var(--color-ink-muted);animation:rise var(--duration-slow) var(--ease-out) both}.empty-state>p{max-width:32rem;margin-inline:auto}.empty-state__icon{margin:0 auto var(--space-4);border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border);width:4rem;height:4rem;box-shadow:var(--shadow-md);color:var(--color-accent);place-items:center;display:grid}.empty-state__icon svg{width:2rem;height:2rem}.empty-state__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-ink);margin-bottom:var(--space-2)}.empty-state>:last-child{margin-bottom:0}.callout{border-left:4px solid var(--color-accent)}.callout .empty-state__title{font-size:var(--text-lg)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border-left:4px solid var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger);font-weight:var(--weight-medium);margin:0}
