@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--bg:#fbf9f5;--surface:#fff;--border:#e6e0d6;--text:#22201d;--muted:#7a736a;--accent:#2f6f4f;--accent-soft:#e8f1ea;--danger:#a63d2f;--radius:10px;--shadow:0 1px 2px #22201d0f, 0 8px 24px #22201d0f;--page-max:75rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3{margin:0;font-weight:650;line-height:1.2}a{color:inherit}.masthead{border-bottom:1px solid var(--border);background:var(--surface)}.masthead__inner{max-width:var(--page-max);align-items:center;gap:1.5rem;margin:0 auto;padding:.85rem 1.25rem;display:flex}.brand{letter-spacing:-.02em;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.masthead__brand-nav{flex:1;align-items:center;gap:.75rem;min-width:0;margin-right:auto;display:flex}nav{gap:.35rem;display:flex}nav a{border-radius:var(--radius);color:var(--muted);padding:.35rem .7rem;font-size:.925rem;text-decoration:none}nav a:hover{background:var(--bg);color:var(--text)}nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.site-nav__icon{align-items:center;line-height:0;display:none}.site-nav__label{display:inline}.masthead__actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.masthead__download{flex-shrink:0}.masthead__download.is-busy{animation:1.6s ease-in-out infinite masthead-download-pulse}@keyframes masthead-download-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.masthead__download.is-busy{animation:none}}.user-menu,.download-menu{flex-shrink:0;position:relative}.user-menu:after,.download-menu:after{content:"";height:.35rem;position:absolute;top:100%;left:0;right:0}.user-menu__panel,.download-menu__panel{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:9rem;box-shadow:var(--shadow);opacity:0;visibility:hidden;pointer-events:none;padding:.35rem;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:100%;right:0;transform:translateY(-4px)}.user-menu__item{border-radius:calc(var(--radius) - 2px);width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;padding:.5rem .65rem;font-size:.9rem;display:block}.user-menu__item:hover{background:var(--accent-soft);color:var(--accent)}@media (hover:hover){.user-menu:hover .user-menu__panel,.user-menu:focus-within .user-menu__panel,.download-menu:hover .download-menu__panel,.download-menu:focus-within .download-menu__panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.user-menu:hover .user-menu__trigger,.user-menu:focus-within .user-menu__trigger{background:var(--bg);border-color:var(--border);color:var(--text)}}.user-menu.is-open .user-menu__panel,.download-menu.is-open .download-menu__panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.user-menu.is-open .user-menu__trigger{background:var(--bg);border-color:var(--border);color:var(--text)}.download-menu__panel{width:15rem;padding:.6rem .7rem}.download-menu__title{margin:0;font-size:.85rem;font-weight:600}.download-menu__track{background:var(--accent-soft);border-radius:999px;height:.35rem;margin:.5rem 0 .4rem;overflow:hidden}.download-menu__fill{border-radius:inherit;background:var(--accent);width:0;height:100%;transition:width .3s;display:block}.download-menu__track.is-indeterminate .download-menu__fill{width:35%;animation:1.4s ease-in-out infinite download-sweep}.download-menu__track.is-stalled .download-menu__fill{background:var(--danger)}@keyframes download-sweep{0%{transform:translate(-100%)}to{transform:translate(330%)}}.download-menu__detail{color:var(--muted);margin:0;font-size:.78rem;line-height:1.35}.download-menu__actions{border-top:1px solid var(--border);flex-direction:column;margin-top:.45rem;padding-top:.4rem;display:flex}@media (prefers-reduced-motion:reduce){.download-menu__track.is-indeterminate .download-menu__fill{width:100%;animation:none}}main{max-width:var(--page-max);margin:0 auto;padding:2rem 1.25rem 4rem}.page-head{align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.page-head h1{align-items:center;gap:.5rem;font-size:1.35rem;display:flex}.page-head__icon{flex-shrink:0;align-items:center;line-height:0;display:none}.page-head__label{display:inline}.page-head button{margin-left:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}button,.button{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:.45rem .9rem;font-size:.9rem}button:hover{border-color:var(--muted)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{filter:brightness(1.08)}button.ghost{color:var(--muted);background:0 0;border-color:#0000;padding:.35rem .5rem}button.ghost:hover{background:var(--bg);color:var(--text)}button.ghost.danger:hover{color:var(--danger)}.icon-button{color:var(--muted);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:.4rem;line-height:0;display:inline-flex}.icon-button svg{flex-shrink:0;display:block}.icon-button:hover{background:var(--bg);border-color:var(--border);color:var(--text)}.icon-button.danger:hover{color:var(--danger);border-color:var(--danger)}.icon-button.warn{color:var(--danger);flex-shrink:0}.icon-button.warn:hover{color:var(--danger);border-color:var(--danger);background:var(--bg)}.recipe-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;margin-bottom:.75rem;padding:1rem 1.25rem}.recipe-card:hover{border-color:var(--muted);box-shadow:var(--shadow)}.recipe-card__head{align-items:flex-start;gap:.5rem;display:flex}.recipe-card__title{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.recipe-card__body{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:0}.day-picker{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.day-picker__range{color:var(--muted);flex-shrink:0;font-size:.8rem;font-weight:600}.day-picker__days{flex-wrap:wrap;flex:1;gap:.35rem;min-width:0;display:flex}.day-picker__nav{flex-shrink:0;align-items:center;gap:.1rem;display:flex}.day-picker__nav button{min-width:1.75rem;padding:.25rem .35rem;font-size:.85rem;line-height:1}.day-picker__day{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-width:2.6rem;color:var(--text);font:inherit;cursor:pointer;padding:.3rem .45rem;font-size:.8rem}.day-picker__day:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.day-picker__day:disabled{opacity:.45;cursor:not-allowed}.day-picker__day[aria-pressed=true]:disabled{opacity:.45}.day-picker__day[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.filter-panel{margin-bottom:1.5rem;position:relative}.pantry-filter,.recipe-filter{margin-bottom:1rem}.pantry-filter .search-bar,.recipe-filter .search-bar{min-height:2.25rem}.filter-label{margin-bottom:.45rem}.filter-token{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);vertical-align:baseline;border-radius:999px;margin:0 .2rem;padding:.05rem .45rem;font-size:.75rem;font-weight:600;line-height:1.4;display:inline-block}.plan-card{margin-bottom:.75rem;padding:1rem 1.25rem;container:plan-card/inline-size}.plan-card__head{border-bottom:1px solid var(--border);align-items:center;margin:-.15rem 0 0;padding-bottom:.85rem;display:flex}.plan-card__body{padding-top:.85rem}.plan-card__hint{margin:0 0 .85rem;font-size:.9rem}.plan-card__hint-copy--mobile{display:none}@container plan-card (width<=22rem){.plan-card__hint-copy--desktop{display:none}.plan-card__hint-copy--mobile{display:inline}}.plan-mode{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);gap:0;padding:.2rem;display:inline-flex}.plan-mode__option{border-radius:calc(var(--radius) - 2px);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.35rem .85rem;font-size:.85rem}.plan-mode__option:hover{color:var(--text)}.plan-mode__option[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000000f}.plan-field{display:contents}.plan-field__label{color:var(--muted);white-space:nowrap;font-size:.85rem;font-weight:500;line-height:2.5rem}.plan-form{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.plan-form input,.plan-form>button{box-sizing:border-box;height:2.5rem;min-height:2.5rem;margin:0;padding:0 .75rem;font-size:.9rem;line-height:1}.plan-form input{width:7rem}.plan-form input[type=number]{appearance:textfield}.plan-form input[type=number]::-webkit-outer-spin-button,.plan-form input[type=number]::-webkit-inner-spin-button{margin:0}.plan-form>button{justify-content:center;align-items:center;display:inline-flex}.plan-output:not(:empty){border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.plan-result__summary{margin:0 0 1rem;font-size:.9rem;font-weight:600}.plan-result__stocked{border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);margin:0;padding:.85rem 1rem;font-size:.9rem;font-weight:500}.plan-result__message{margin:0;font-size:.9rem}.plan-result__footer{border-top:1px solid var(--border);justify-content:flex-start;margin-top:1rem;padding-top:.85rem;display:flex}.grocery-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:1rem}.grocery-list__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;display:flex}.grocery-list__title{margin:0;font-size:.95rem;font-weight:600}.grocery-list__total{color:var(--accent);font-size:.9rem;font-weight:600}.grocery-list__items{margin:0;padding:0;list-style:none}.grocery-list__item{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.45rem 0;font-size:.9rem;display:flex}.grocery-list__item:first-child{border-top:none;padding-top:0}.grocery-list__item-name{color:var(--muted)}.grocery-list__item-cost{font-variant-numeric:tabular-nums;flex-shrink:0}.grocery-list__actions{justify-content:flex-end;gap:.15rem;margin-top:.85rem;display:flex}.icon-button.is-success{color:var(--accent);background:var(--accent-soft);border-color:#0000}.search-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:text;flex-wrap:wrap;align-items:center;gap:.4rem;min-height:2.5rem;padding:.35rem .55rem;display:flex}.search-bar:focus-within{outline:2px solid var(--accent-soft);border-color:var(--accent)}.search-bar__chips{display:contents}.search-bar__field{flex:1;align-items:center;min-width:8rem;display:flex;position:relative}.search-bar__guide{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;align-items:center;padding:.25rem .15rem;font-size:.85rem;line-height:1.4;display:flex;position:absolute;inset:0;overflow:hidden}.search-bar__guide--mobile{display:none}.search-bar:has(.search-chip) .search-bar__guide,.search-bar__field:focus-within .search-bar__guide,.search-bar__field:has(input:not(:placeholder-shown)) .search-bar__guide{opacity:0}.search-bar input{width:100%;min-width:0;box-shadow:none;background:0 0;border:0;flex:1;padding:.25rem .15rem}.search-bar input:focus{border-color:#0000;outline:none}.search-chip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.8rem;font-weight:600;display:inline-flex}.filter-suggestions{z-index:5;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);max-height:12rem;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% - .35rem);left:1.25rem;right:1.25rem;overflow:auto}.filter-panel .filter-suggestions{left:0;right:0}.filter-suggestions button{border-radius:calc(var(--radius) - 2px);width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;padding:.45rem .6rem;display:block}.filter-suggestions button:hover{background:var(--accent-soft);color:var(--accent)}input,textarea,select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;padding:.45rem .6rem;font-size:.9rem}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{resize:vertical;min-height:7rem}label{color:var(--muted);margin-bottom:.3rem;font-size:.825rem;font-weight:600;display:block}.field{margin-bottom:1rem}.ingredient-field,.ingredient-input{position:relative}.ingredient-suggestions{top:calc(100% + .25rem);left:0;right:0}.ingredient-suggestions button.ingredient-suggestion{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.ingredient-suggestion__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;overflow:hidden}.ingredient-suggestion__unit{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:999px;flex-shrink:0;padding:.1rem .45rem;font-size:.75rem;font-weight:500;line-height:1.35}.ingredient-suggestions button.ingredient-suggestion:hover .ingredient-suggestion__name{color:var(--accent)}.ingredient-suggestions button.ingredient-suggestion:hover .ingredient-suggestion__unit{background:var(--surface);border-color:var(--accent);color:var(--accent)}.checkbox{color:var(--text);align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.checkbox input{width:auto}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 .6rem .5rem;font-size:.75rem}td{border-top:1px solid var(--border);vertical-align:middle;padding:.4rem .6rem}td.actions{text-align:right;white-space:nowrap;width:1%}.row{align-items:center;gap:.6rem;display:flex}.pantry-card{--pantry-amount-col:4rem;--pantry-unit-col:5.5rem;--pantry-cost-col:5.5rem;--pantry-pricing-col:4.5rem;--pantry-caret-col:1.25rem;--pantry-amount-collapsed-col:2.75rem}.pantry-card--no-amount{--pantry-amount-col:0px;--pantry-unit-col:var(--pantry-amount-collapsed-col)}.pantry-card--no-costs{--pantry-cost-col:0px;--pantry-pricing-col:var(--pantry-caret-col)}.pantry-fields{grid-template-columns:var(--pantry-amount-col) var(--pantry-unit-col) var(--pantry-cost-col) var(--pantry-pricing-col);align-items:center;width:fit-content;max-width:100%;margin-left:auto;display:grid}.pantry-fields>*{min-width:0}.pantry-table__fields-head{padding:0 0 .5rem;overflow:visible}.pantry-table__fields{padding:0;overflow:visible}.pantry-card--no-amount .pantry-table__amount,.pantry-card--no-amount .pantry-table__unit,.pantry-card--no-costs .pantry-table__cost,.pantry-card--no-costs .pantry-table__pricing{padding:0;overflow:hidden}.pantry-table__amount-head,.pantry-table__cost-head{cursor:pointer;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.05em;justify-content:center;align-items:center;min-height:1.125rem;font-size:.75rem;line-height:1;display:flex}.pantry-table__amount-head{grid-column:1/span 2}.pantry-table__amount-head.pantry-table__head--collapsed{grid-column:2}.pantry-table__cost-head{grid-column:3/span 2}.pantry-table__cost-head.pantry-table__head--collapsed{grid-column:4}.pantry-table__amount-head:focus-visible,.pantry-table__cost-head:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px;border-radius:4px}.pantry-table__head--collapsed{color:var(--muted);padding:0}.pantry-table__caret{justify-content:center;align-items:center;line-height:0;display:inline-flex}.pantry-table__head--collapsed .pantry-table__caret{opacity:.65}.pantry-table__head--collapsed:hover .pantry-table__caret,.pantry-table__head--collapsed:focus-visible .pantry-table__caret{color:var(--accent);opacity:1}.pantry-add{grid-template-columns:minmax(0,1fr) 5.5rem 5.5rem 5.5rem 4.5rem 5.5rem;align-items:center;gap:.6rem;margin-top:1rem;padding:0 .6rem;display:grid}.pantry-add input,.pantry-add select,.pantry-add button{width:100%;min-width:0}.pantry-add select.pantry-pricing{text-align:center;text-align-last:center}.pantry-add input[type=number]::-webkit-inner-spin-button,.pantry-add input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pantry-add input[type=number]{-moz-appearance:textfield;appearance:textfield}.pantry-table{table-layout:fixed;width:100%}.pantry-table tbody tr:hover{background:var(--bg)}.pantry-table input,.pantry-table select.pantry-pricing{box-sizing:border-box;width:100%;max-width:100%;box-shadow:none;color:var(--text);font-size:.9rem;line-height:inherit;background:0 0;border:none;border-radius:4px}.pantry-table__name input{margin:0 -.35rem;padding:.15rem .35rem}.pantry-table__amount,.pantry-table__unit,.pantry-table__cost,.pantry-table__pricing{padding:0}.pantry-table__amount input,.pantry-table__unit input,.pantry-table__cost input,.pantry-table__pricing select.pantry-pricing{margin:0;padding:.15rem .25rem}.pantry-table input[type=number]::-webkit-inner-spin-button,.pantry-table input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pantry-table input[type=number]{-moz-appearance:textfield;appearance:textfield}.pantry-table input:focus,.pantry-table select.pantry-pricing:focus{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent);outline:none}.pantry-table select.pantry-pricing{box-sizing:border-box;cursor:pointer;text-align:center;text-align-last:center;-webkit-appearance:none;appearance:none;background-image:none;display:block}.pantry-table select.pantry-pricing:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 0 center;background-repeat:no-repeat;background-size:.65rem;padding-right:.75rem}.pantry-add select.pantry-pricing{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:none}.pantry-add select.pantry-pricing:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .45rem center;background-repeat:no-repeat;background-size:.75rem;padding-right:1.5rem}.unit-input{width:100%;min-width:0;position:relative}.unit-suggestions{min-width:6rem;top:calc(100% + .25rem);left:-.35rem;right:-.35rem}.pantry-table__unit{overflow:visible}.pantry-table__unit .unit-suggestions{z-index:10;left:0;right:0}.pantry-table col.pantry-table__name,.pantry-table__name,.pantry-table col.pantry-table__fields,.pantry-table__fields,.pantry-table__fields-head{width:auto}.pantry-table col.pantry-table__actions,.pantry-table__actions{width:5.5rem}.pantry-table__amount-head,.pantry-table__cost-head,.pantry-table__amount,.pantry-table__amount input,.pantry-table__cost{text-align:center}.pantry-table__cost input{text-align:center;box-sizing:border-box;display:block}.pantry-table__pricing{text-align:center}.pantry-table__pricing select.pantry-pricing{vertical-align:middle;width:auto;max-width:100%;display:inline-block}.pantry-card--no-amount .pantry-fields .pantry-table__amount input,.pantry-card--no-amount .pantry-fields .pantry-table__unit input,.pantry-card--no-amount .pantry-fields .pantry-table__unit .unit-suggestions,.pantry-card--no-costs .pantry-fields .pantry-table__cost input,.pantry-card--no-costs .pantry-fields .pantry-table__pricing select.pantry-pricing{display:none}.pantry-table__actions-inner{justify-content:flex-end;align-items:center;gap:.15rem;display:inline-flex}.pantry-table .pantry-grip{color:var(--muted);opacity:.55;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:4px;justify-content:center;align-items:center;padding:.35rem .2rem;line-height:0;display:inline-flex}.pantry-table .pantry-grip svg{pointer-events:none}.pantry-table .pantry-grip:active{cursor:grabbing}.pantry-table tr:hover .pantry-grip{opacity:.9}.pantry-table tr.is-dragging{opacity:.45}.pantry-table tr.is-drop-target td{box-shadow:inset 0 2px 0 0 var(--accent)}body.is-reordering{cursor:grabbing;-webkit-user-select:none;user-select:none}body.is-reordering *{cursor:grabbing!important}.toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.empty{color:var(--muted);text-align:center;padding:2rem 1rem;font-size:.925rem}.chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:.15rem .55rem;font-size:.8rem}.chip:hover{border-color:var(--muted);color:var(--text)}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-weight:600;display:inline-block}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(34rem,92vw);max-height:min(90dvh,100% - 2rem);color:var(--text);box-shadow:var(--shadow);padding:1.5rem}dialog:modal{height:fit-content;margin:auto;position:fixed;inset:0;overflow:auto}dialog::backdrop{background:#22201d59}#viewer{padding:1.25rem 1.25rem 1rem}.viewer-header{padding:0;position:absolute;top:.85rem;right:.85rem}.viewer-body{padding:0 2rem 0 0}.viewer-title{align-items:center;gap:.35rem;min-width:0;display:flex}#viewer-warning:empty{display:none}#viewer .dialog-close{margin:0;position:static}.viewer-title h2{margin:0;font-size:1.15rem}.viewer-actions{justify-content:space-between;align-items:center;gap:.6rem;margin-top:.75rem;padding:0;display:flex}.viewer-actions__start .icon-button{margin-left:-.4rem}.viewer-actions__end .icon-button:last-child{margin-right:-.4rem}.dialog-actions{justify-content:flex-end;gap:.6rem;margin-top:1.5rem;display:flex}.crop-dialog{width:fit-content;max-width:92vw}.crop-aspects{gap:.4rem;margin-bottom:.75rem;display:flex}.crop-aspects button{border:1px solid var(--border);border-radius:calc(var(--radius) / 2);background:var(--surface);color:var(--muted);cursor:pointer;flex:1;padding:.4rem .7rem;font-size:.85rem}.crop-aspects button[aria-pressed=true]{border-color:var(--accent,currentcolor);background:var(--surface-alt,#22201d0f);color:var(--text);font-weight:600}.crop-stage{border-radius:calc(var(--radius) / 2);touch-action:none;user-select:none;background:#22201d14;margin-inline:auto;position:relative;overflow:hidden}.crop-stage img{pointer-events:none;width:100%;height:100%;display:block}.crop-box{box-sizing:border-box;cursor:move;border:2px solid #fff;position:absolute;box-shadow:0 0 0 9999px #22201d73}.crop-handle{background:#22201d8c;border:2px solid #fff;width:18px;height:18px;position:absolute}.crop-handle[data-corner=nw]{cursor:nwse-resize;top:-2px;left:-2px}.crop-handle[data-corner=ne]{cursor:nesw-resize;top:-2px;right:-2px}.crop-handle[data-corner=sw]{cursor:nesw-resize;bottom:-2px;left:-2px}.crop-handle[data-corner=se]{cursor:nwse-resize;bottom:-2px;right:-2px}#pantry-editor{--pantry-editor-amount-col:7rem;--pantry-editor-unit-col:5.5rem}.pantry-editor-amount-row,.pantry-editor-cost-row{max-width:calc(var(--pantry-editor-amount-col) + var(--pantry-editor-unit-col) + .6rem);grid-template-columns:var(--pantry-editor-amount-col) var(--pantry-editor-unit-col);align-items:center;gap:.6rem;display:grid}#pantry-editor .pantry-editor-amount-row input[type=number],#pantry-editor .pantry-editor-cost-row input[type=number],#pantry-editor .pantry-editor-unit{width:auto;min-width:0}#pantry-editor .pantry-editor-unit input{width:100%}#pantry-editor .pantry-editor-cost-row select.pantry-pricing{text-align:center;text-align-last:center;width:100%;min-width:0}.viewer-actions__end{align-items:center;gap:.15rem;display:inline-flex}button.confirm-delete{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}button.confirm-delete:hover{filter:brightness(1.08)}.issue-report{flex-direction:column;gap:1rem;display:flex}.issue-group__title{color:var(--danger);letter-spacing:.01em;margin:0 0 .35rem;font-size:.85rem;font-weight:650}.issue-group__list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.issue-group__list li{font-size:.9rem;line-height:1.45}.issue-group__ingredient{font-weight:550}.issue-group__detail{font-size:.85rem}.issue-group__hint,.issue-group__body{margin:.35rem 0 0;font-size:.85rem;line-height:1.45}.dropzone{border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg);color:var(--muted);cursor:default;align-items:center;gap:.75rem;padding:1.1rem;font-size:.85rem;font-weight:400;display:flex}.dropzone-body{text-align:center;cursor:pointer;flex:1;min-width:0}.dropzone-actions{flex-direction:row;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;display:none}@media (hover:none) and (pointer:coarse){.dropzone-actions{display:flex}}.dropzone-action{border-radius:var(--radius);width:2.25rem;height:2.25rem;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;display:flex}.dropzone-action:hover{color:var(--accent);background:var(--accent-soft)}.dropzone:hover,.dropzone.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone:hover .dropzone-action,.dropzone.is-active .dropzone-action{color:var(--accent)}.dropzone.is-busy{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);cursor:wait}.dropzone.is-busy .dropzone-body{cursor:wait}.dropzone.is-busy .dropzone-actions{pointer-events:none;opacity:.45}.dropzone-status{font-weight:500;display:block}.dialog-close{position:absolute;top:.9rem;right:.9rem}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1.25rem 0 .35rem;font-size:.75rem;font-weight:600}.gate{text-align:center;max-width:22rem;margin:5rem auto}.gate p{color:var(--muted);font-size:.925rem}.gate-form{text-align:left;flex-direction:column;gap:.5rem;margin-top:1.25rem;display:flex}.gate-form .primary{margin-top:.25rem}.gate-toggle{width:100%;margin-top:.5rem;font-size:.85rem}#signin-status{min-height:1.25em;color:var(--muted);margin-top:.85rem;font-size:.875rem}.pantry-add__submit svg{display:none}@media (hover:none){input,select,textarea,.search-bar input,.pantry-table input,.pantry-table select.pantry-pricing,.pantry-add input,.pantry-add select,.plan-form input,.plan-form select,.day__cap input,.day__add{font-size:16px}.search-bar__guide--desktop{display:none}.search-bar__guide--mobile{display:flex}.search-bar__guide,.plan-card__hint,.schedule-head__subtitle,.day__total,#confirm-hint{-webkit-text-size-adjust:none;text-size-adjust:none}}@media (width<=640px){main{padding:1.25rem 1rem 3rem}.masthead__inner{flex-wrap:nowrap;gap:.5rem;padding:.65rem 1rem}.masthead__brand-nav{gap:.5rem;min-width:0}nav{flex-shrink:0;gap:.15rem}nav a{justify-content:center;align-items:center;padding:.4rem .55rem;display:inline-flex}.site-nav__label{display:none}.site-nav__icon{display:inline-flex}.page-head{align-items:center;margin-bottom:1rem}.page-head__icon{color:var(--text);display:inline-flex}.page-head__label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.search-bar__field{min-width:0}.pantry-card{-webkit-overflow-scrolling:touch;overflow-x:auto}.pantry-table{table-layout:auto;width:100%;min-width:0}.pantry-table col.pantry-table__fields{width:0}.pantry-fields{margin-left:0}.pantry-card--hide-actions col.pantry-table__actions{width:0!important}.pantry-card--hide-actions th.pantry-table__actions,.pantry-card--hide-actions td.pantry-table__actions,.pantry-card--hide-actions td.actions.pantry-table__actions{border:0;min-width:0;max-width:0;padding:0;overflow:hidden;width:0!important}.pantry-card--hide-actions .pantry-table__actions-inner{display:none}.pantry-add{grid-template-columns:minmax(0,1fr) 3.25rem 3rem 3rem 3.25rem auto;gap:.35rem;padding:0}.pantry-add__submit{justify-content:center;align-items:center;width:2.25rem;min-width:2.25rem;padding:.35rem;display:inline-flex}.pantry-add__submit-label{display:none}.pantry-add__submit svg{display:block}}
