*{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--label:#1a1a1a;--label-secondary:#6e6e73;--label-tertiary:#aeaeb2;--label-quaternary:#d1d1d6;--bg:#fff;--bg-grouped:#f5f5f7;--bg-elevated:#fff;--bg-overlay:#00000052;--bg-chrome:#ffffffc7;--fill:#78788033;--fill-secondary:#78788029;--fill-tertiary:#7676801f;--fill-quaternary:#74748014;--separator:#3c3c4321;--separator-strong:#3c3c4338;--accent:#08f;--accent-pressed:#0070d6;--accent-tint:#0088ff1a;--green:#34c759;--green-tint:#34c7591f;--orange:#ff9500;--orange-tint:#ff950024;--red:#ff3b30;--red-tint:#ff3b301a;--gray:#8e8e93;--gray3:#c7c7cc;--gray-control:#727272;--inverted-fill:#1a1a1a;--inverted-label:#fff;--chip-fill:#f2f2f7;--status-in:var(--green);--status-low:var(--orange);--status-out:var(--red);--tile-bg:#f7f4ee;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-pill:999px;--shadow-sm:0 1px 2px #0000000f, 0 1px 1px #0000000a;--shadow-md:0 4px 16px #00000014, 0 1px 3px #0000000f;--shadow-lg:0 24px 64px #00000029, 0 4px 16px #00000014;--ring-focus:0 0 0 3px #0088ff52;--font-text:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--font-rounded:ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--text-large-title:700 34px/1.15 var(--font-display);--text-title1:700 28px/1.2 var(--font-display);--text-title2:700 22px/1.25 var(--font-display);--text-title3:600 19px/1.3 var(--font-display);--text-headline:600 15px/1.35 var(--font-text);--text-body:400 15px/1.45 var(--font-text);--text-callout:400 14px/1.4 var(--font-text);--text-subhead:400 13px/1.38 var(--font-text);--text-footnote:400 12px/1.35 var(--font-text);--text-caption:500 11px/1.3 var(--font-text);--tracking-display:-.022em;--tracking-title:-.017em;--tracking-text:-.006em;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.32, .64, 1);--dur-fast:.12s;--dur-med:.22s;--dur-slow:.36s;--chrome-height:52px;--toolbar-row-top:calc(var(--chrome-height) - 8px);--page-gutter:clamp(16px, 2.6vw, 40px);--content-max:1680px;--reading-max:760px;--edge-bleed:calc(var(--page-gutter) + max(0px, (100vw - var(--content-max)) / 2));--ink:var(--label);--paper:var(--bg);--mist:#e8e8ed;--fog:var(--bg-grouped);--muted:var(--label-secondary);--hair:var(--separator);--hairline:var(--hair);--surface:var(--fog);--stripe-a:#ececf0;--stripe-b:#f5f5f7;--ink-soft:#3a3a3c;--ink-muted:var(--label-secondary);--ink-faint:var(--label-tertiary);--ink-subtle:var(--label-secondary);--soft-tint:var(--fill-tertiary);--soft-tint-strong:var(--fill-secondary);--rule:var(--separator);--danger:var(--red);--space-unit:4px;--space-1:1px;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-36:36px;--space-40:40px;--space-44:44px;--space-48:48px;--space-52:52px;--space-56:56px;--space-60:60px;--space-64:64px;--space-72:72px;--space-80:80px;--space-88:88px;--space-96:96px;--space-104:104px;--space-112:112px;--space-120:120px;--space-128:128px;--space-144:144px;--space-160:160px;--space-176:176px;--space-192:192px;--space-208:208px;--space-224:224px;--space-240:240px;--space-256:256px;--space-288:288px;--space-320:320px;--space-352:352px;--space-384:384px;--space-416:416px;--space-448:448px;--space-480:480px;--space-512:512px;--space-576:576px;--space-640:640px;--space-704:704px;--space-768:768px;--space-832:832px;--space-896:896px;--space-960:960px;--space-1024:1024px;--control-height:var(--space-36);--control-padding-x:var(--space-12);--control-border-rest:transparent;--page-pad-x:var(--page-gutter);--page-pad-y-top:var(--space-24);--page-pad-y-bottom:clamp(48px, 6vw, 96px);--page-max-width:var(--content-max);--grid-gap:clamp(16px, 1.6vw, 24px);--card-padding-x:12px;--card-padding-y:8px;--card-padding-y-bottom:2px;--topbar-sticky-offset:var(--chrome-height);--hover-fill-overlay:linear-gradient(#0000000a, #0000000a)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--label:#f5f5f7;--label-secondary:#98989f;--label-tertiary:#5d5d62;--label-quaternary:#3a3a3c;--bg:#000;--bg-grouped:#111113;--bg-elevated:#1c1c1e;--bg-overlay:#0009;--bg-chrome:#000000b8;--fill:#7878805c;--fill-secondary:#78788052;--fill-tertiary:#7676803d;--fill-quaternary:#7676802e;--separator:#54545880;--separator-strong:#545458cc;--accent:#0091ff;--accent-pressed:#3aa7ff;--accent-tint:#0091ff2e;--green:#30d158;--green-tint:#30d1582e;--orange:#ff9f0a;--orange-tint:#ff9f0a2e;--red:#ff453a;--red-tint:#ff453a2e;--gray:#8e8e93;--gray3:#48484a;--gray-control:#8e8e93;--inverted-fill:#fff;--inverted-label:#000;--chip-fill:#2c2c2e;--tile-bg:#1c1c1e;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 4px 16px #00000080, 0 0 0 1px #ffffff0f;--shadow-lg:0 24px 64px #000000b3, 0 0 0 1px #ffffff14;--ring-focus:0 0 0 3px #0091ff73;--mist:#2c2c2e;--stripe-a:#1c1c1e;--stripe-b:#141416;--ink-soft:#d1d1d6;--hover-fill-overlay:linear-gradient(#ffffff0f, #ffffff0f)}html{font-family:var(--font-text);scrollbar-gutter:stable;-moz-text-size-adjust:100%;text-size-adjust:100%}body{letter-spacing:var(--tracking-text);background:var(--bg);color:var(--label);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-family:inherit;font-size:15px;line-height:1.45;overflow-x:clip}::selection{background:var(--accent-tint)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select,textarea,code,kbd,samp{font-family:inherit}.secondary-tab-button{padding:var(--space-6) var(--space-12);min-height:var(--space-28);letter-spacing:0;text-transform:none;cursor:pointer;color:var(--muted);box-sizing:border-box;background:0 0;border:none;border-radius:0;align-items:center;font-family:inherit;font-size:13px;font-weight:500;line-height:1;text-decoration:none;transition:background-color .12s,color .12s;display:inline-flex}.secondary-tab-button:hover,.secondary-tab-button:focus-visible{color:var(--ink);outline:none}.secondary-tab-button.active{background:var(--soft-tint);color:var(--ink)}.create-menu{position:relative}.create-dropdown{right:0;top:calc(100% + var(--space-8));background:var(--paper);border:var(--space-1) solid var(--ink);min-width:var(--space-208);z-index:10;border-radius:0;padding:0;display:none;position:absolute}.create-dropdown.open{display:block}.create-dropdown button{border:none;border-bottom:var(--space-1) solid var(--rule);width:100%;padding:var(--space-8) var(--space-12);text-align:left;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;color:var(--ink);background:0 0;border-radius:0;font-size:12px;font-weight:600}.create-dropdown button:last-child{border-bottom:none}.create-dropdown button:hover{background-color:var(--ink);background-image:var(--hover-fill-overlay);color:var(--paper)}.recipe-menu{top:var(--space-6);right:var(--space-6);z-index:2;opacity:0;pointer-events:none;transition:opacity .15s;position:absolute}.recipe-menu-button{border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);width:var(--space-28);height:var(--space-28);cursor:pointer;border-radius:0;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.recipe-menu-dropdown{right:0;top:calc(100% + var(--space-6));background:var(--paper);border:var(--space-1) solid var(--ink);min-width:var(--space-176);z-index:10;border-radius:0;padding:0;display:none;position:absolute}.recipe-menu-dropdown.open{display:block}.recipe-menu-dropdown button{border:none;border-bottom:var(--space-1) solid var(--rule);width:100%;padding:var(--space-8) var(--space-12);text-align:left;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;color:var(--ink);background:0 0;border-radius:0;font-size:12px;font-weight:600}.recipe-menu-dropdown button:last-child{border-bottom:none}.recipe-menu-dropdown button:hover{background-color:var(--ink);background-image:var(--hover-fill-overlay);color:var(--paper)}.container{box-sizing:border-box;width:100%;padding:var(--page-pad-y-top) var(--page-pad-x) var(--page-pad-y-bottom)}.ingredient-picker{gap:var(--space-8);flex-wrap:wrap;align-items:center;display:flex}.ingredient-list-header{grid-template-columns:minmax(var(--space-160), 2fr) minmax(var(--space-80), 1fr) minmax(var(--space-80), 1fr) var(--space-36) var(--space-36);gap:var(--space-8);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);padding:var(--space-2) var(--space-2) 0;font-size:11px;display:grid}.ingredient-list-header span:last-child{grid-column:3/4}.ingredient-entries{gap:var(--space-8);flex-direction:column;display:flex}.ingredient-entry{grid-template-columns:minmax(var(--space-160), 2fr) minmax(var(--space-80), 1fr) minmax(var(--space-80), 1fr) var(--space-36) var(--space-36);gap:var(--space-8);align-items:center;display:grid}.ingredient-entry input{width:100%}.ingredient-entry .icon-ghost{width:var(--control-height);height:var(--control-height)}label{gap:var(--space-6);color:var(--label-secondary);flex-direction:column;font-size:13px;font-weight:500;display:flex}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not(.inventory-name-input):not(.inventory-qty-input):not(.inventory-filter-search-input):not(.recipe-ingredient-amount-input):not(.recipe-ingredients-add-input):not(.recipe-instruction-add-input):not(.detail-sheet-input):not(.kitchen-agent-input):not(.ui-search-input),select{height:var(--control-height);min-height:var(--control-height);padding:0 var(--control-padding-x);font:inherit;background-color:var(--fill-tertiary);color:var(--label);box-sizing:border-box;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;border:1px solid #0000;border-radius:10px;font-size:14px;line-height:1.25}select{line-height:calc(var(--control-height) - 2px);appearance:none;cursor:pointer;padding-right:calc(var(--control-padding-x) + 20px);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16' fill='none' stroke='%238e8e93' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6l3-3 3 3M3 10l3 3 3-3'/%3E%3C/svg%3E");background-position:right var(--space-10) center;background-repeat:no-repeat;background-size:9px 12px}textarea{resize:vertical;min-height:calc(var(--control-height) * 2.5);padding:var(--space-8) var(--control-padding-x);font:inherit;background:var(--fill-tertiary);color:var(--label);box-sizing:border-box;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;border:1px solid #0000;border-radius:10px;font-size:14px;line-height:1.45}input::placeholder,textarea::placeholder{color:var(--label-tertiary)}.primary,.secondary{justify-content:center;align-items:center;gap:var(--space-6);box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);padding:0 var(--space-16);border-radius:var(--radius-pill);cursor:pointer;letter-spacing:var(--tracking-text);text-transform:none;white-space:nowrap;transition:background-color var(--dur-fast) ease, opacity var(--dur-fast) ease, transform var(--dur-fast) ease;border:none;font-family:inherit;font-size:14px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.primary:active:not(:disabled),.secondary:active:not(:disabled){transform:scale(.97)}.primary:disabled,.secondary:disabled{opacity:.4;cursor:default}.primary{background-color:var(--inverted-fill);color:var(--inverted-label);background-image:none}.primary:hover:not(:disabled){background-color:var(--inverted-fill);color:var(--inverted-label);opacity:.86;background-image:none}.secondary{background-color:var(--chip-fill);color:var(--label);background-image:none}.secondary:hover:not(:disabled){background-color:var(--chip-fill);background-image:var(--hover-fill-overlay);color:var(--label)}.status{color:var(--ink-muted);font-size:12px}.helper{color:var(--ink-muted);margin:0;font-size:12px}.grid{grid-template-columns:repeat(auto-fill, minmax(var(--space-224), 1fr));gap:var(--grid-gap);display:grid}@keyframes recipes-meal-filter-ghost-x-in{to{opacity:1;transform:translateY(-50%)scale(1)}}.grid.is-empty{min-height:min(50vh, var(--space-352));padding-block:var(--page-pad-y-top);justify-content:center;align-items:center;display:flex}.grid.equipment-view{display:block}.grid.equipment-view.is-empty{display:flex}.shop-board{gap:var(--space-16);flex-direction:column;display:flex}.people-card-link{min-width:0;color:inherit;cursor:pointer;border-radius:0;text-decoration:none;display:block}.people-card-link:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:var(--space-4)}.people-card-link:hover .people-card{opacity:.92}.people-card-grid{grid-template-columns:1fr;place-items:start center;gap:24px;display:grid}@media (min-width:640px){.people-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1100px){.people-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.people-card{text-align:center;align-items:center;gap:var(--space-6);background:0 0;border:none;flex-direction:column;width:100%;min-width:0;max-width:100%;padding:0;display:flex}.people-card-name{letter-spacing:-.02em;margin:0;font-size:clamp(17px,2.2vw,20px);font-weight:600;line-height:1.2}.people-card-pie{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;max-width:100%;display:flex}.person-macro-pie-root{max-width:100%;display:block;position:relative}.person-macro-pie-root[data-interactive=true]{cursor:default}.person-macro-pie-root[data-dragging=true]{-webkit-user-select:none;user-select:none}.person-macro-pie-tooltip{z-index:100;max-width:min(18rem,100vw - 2rem);padding:var(--space-8) var(--space-12);border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);pointer-events:none;box-shadow:0 var(--space-4) var(--space-16) #0000001f;font-size:14px;line-height:1.35;position:fixed}.person-macro-pie-slice{pointer-events:auto}.person-macro-pie-svg{aspect-ratio:1;flex-shrink:0;width:100%;height:auto;display:block}.people-card-pie-placeholder{box-sizing:border-box;aspect-ratio:1;background:var(--fog);border-radius:50%;flex-shrink:0;width:100%;max-width:100%}.person-detail-page{max-width:min(100%,56rem)}.person-detail-layout{gap:var(--space-24);grid-template-columns:1fr;align-items:start;width:100%;display:grid}@media (min-width:900px){.person-detail-layout{gap:var(--space-32);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.person-detail-macro-aside{justify-content:center;width:100%;min-width:0;display:flex}.person-detail-macro-pie-wrap{justify-content:center;width:100%;min-width:0;max-width:100%;display:flex}.person-detail-macro-pie-placeholder{aspect-ratio:1;background:var(--fog);border-radius:50%;width:100%}.person-detail-field{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.person-detail-field--full{width:100%}.person-detail-name-input{box-sizing:border-box;border:none;border-bottom:var(--space-1) solid var(--ink);width:100%;padding:var(--space-6) 0 var(--space-8);font:inherit;letter-spacing:-.02em;color:var(--ink);background:0 0;border-radius:0;margin:0;font-size:clamp(20px,3vw,26px);font-weight:600;line-height:1.2}.person-detail-name-input:focus{background:var(--fog);padding-left:var(--space-6);padding-right:var(--space-6);margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));outline:none}.person-detail-form-message{margin:0 0 var(--space-16);font-size:13px}.person-detail-form-message--error{color:#8a1f1f}.person-detail-delete{appearance:none;height:var(--control-height);padding:0 var(--space-16);font:inherit;color:#8a1f1f;border:var(--space-1) solid #d7a7a7;cursor:pointer;background:0 0;border-radius:0;font-size:13px;font-weight:600}.person-detail-delete:hover{background:#fdf2f2;border-color:#8a1f1f}.person-detail-delete:focus-visible{outline:var(--space-1) solid #8a1f1f;outline-offset:var(--space-2)}.person-detail-delete:disabled{opacity:.6;cursor:wait}.person-nutrient-sliders{gap:var(--space-24);margin:var(--space-6) 0 var(--space-6);flex-direction:column;display:flex}.person-nutrient-slider-row{gap:var(--space-8);flex-direction:column;min-width:0;display:flex}.person-nutrient-slider-head{justify-content:space-between;align-items:baseline;gap:var(--space-8);flex-wrap:wrap;display:flex}.person-nutrient-slider-label{align-items:center;gap:var(--space-4);letter-spacing:.02em;color:var(--ink);font-size:13px;font-weight:600;display:inline-flex}.person-nutrient-lock-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:0;display:inline-flex}.person-nutrient-lock-btn:hover{color:var(--ink)}.person-nutrient-lock-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.person-nutrient-slider-target{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.person-nutrient-slider-target strong{color:var(--ink);font-weight:600}.person-nutrient-slider-track-wrap{align-items:center;gap:var(--space-12);grid-template-columns:auto minmax(0,1fr) auto;min-width:0;display:grid}.person-nutrient-slider-bound{color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;min-width:2.25rem;font-size:11px;font-weight:600}.person-nutrient-slider-bound:first-child{text-align:right}.person-nutrient-slider-bound:last-child{text-align:left}.person-nutrient-slider-band-readout{color:var(--muted);font-size:11px;font-weight:400}.person-nutrient-custom-track{touch-action:none;width:100%;min-width:0;height:36px;position:relative}.person-nutrient-custom-rail{background:var(--soft-tint-strong);pointer-events:none;z-index:1;height:2px;margin-top:-1px;position:absolute;top:50%;left:0;right:0}.person-nutrient-float-label{transform:translate(-50%, calc(-100% - var(--space-8)));z-index:10;max-width:min(220px,70vw);padding:var(--space-4) var(--space-8);border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums;box-shadow:0 var(--space-2) var(--space-6) #00000014;font-size:11px;font-weight:600;line-height:1.25;position:absolute;top:50%;left:0}.person-nutrient-hover-ghost{width:var(--space-12);height:var(--space-12);border:var(--space-1) solid #6e6e6e;z-index:2;pointer-events:none;box-sizing:border-box;background:#b8b8b8;border-radius:1px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.person-nutrient-thumb{width:var(--space-20);height:var(--space-20);cursor:grab;z-index:3;box-sizing:border-box;border-radius:0;padding:0;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.person-nutrient-thumb:active{cursor:grabbing}.person-nutrient-thumb--band{width:var(--space-16);height:var(--space-16);border:var(--space-1) solid #5a5a5a;z-index:3;background:#aeaeae}.person-nutrient-thumb--target{background:var(--ink);border:var(--space-1) solid var(--ink);z-index:4;box-shadow:0 0 0 var(--space-1) var(--paper)}.person-nutrient-thumb--target-locked{opacity:.45;pointer-events:none;cursor:not-allowed}.person-nutrient-thumb:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:var(--space-4)}.person-nutrient-thumb--poof-out{pointer-events:none;animation:.26s forwards person-nutrient-thumb-poof}@keyframes person-nutrient-thumb-poof{to{opacity:0;transform:translate(-50%,-50%)scale(.12)}}.empty-state{max-width:var(--space-352);padding:var(--space-28) var(--space-24);background:var(--paper);border:var(--space-1) solid var(--ink);text-align:center;border-radius:0}.empty-state-message{margin:0 0 var(--space-16);color:var(--ink-muted);font-size:14px;line-height:1.4}.table-container{background:var(--paper);border:var(--space-1) solid var(--ink);border-radius:0;width:100%;overflow:auto}.inventory-table.table-container{border:none;overflow:visible}.ingredients-table{border-collapse:collapse;width:100%;min-width:var(--space-960);font-size:13px}.ingredients-table th,.ingredients-table td{border-bottom:var(--space-1) solid #eee;padding:var(--space-8) var(--space-12);text-align:left;vertical-align:middle;white-space:nowrap}.ingredients-table th{color:var(--ink-soft);z-index:1;background:#fafafa;font-weight:600;position:sticky;top:0}.inventory-table .ingredients-table th{top:var(--topbar-sticky-offset);z-index:35}.ingredients-table tbody tr:hover{background-image:var(--hover-fill-overlay)}.recipe-ingredients-table tbody tr:hover,.recipe-ingredients-line-list>.recipe-ingredient-row:hover{background-image:none}.ingredients-table td{color:var(--ink-soft)}.ingredients-table tbody tr[data-ingredient-id]{cursor:default}.inventory-table .ingredients-table{table-layout:fixed}.inventory-table .ingredients-table>thead>tr>th:first-child{width:28%}.inventory-receipt-pill{height:var(--space-48);padding:0 var(--space-20);border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);font:inherit;align-items:center;gap:var(--space-8);cursor:pointer;box-shadow:0 var(--space-4) var(--space-16) #0000002e;white-space:nowrap;border-radius:999px;font-size:13px;font-weight:600;display:inline-flex}.inventory-receipt-pill:hover{background:color-mix(in srgb, var(--ink) 6%, var(--paper))}.inventory-receipt-pill-spinner{animation:.8s linear infinite receipt-import-spin}@keyframes receipt-import-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.receipt-import-dialog{color:inherit;box-sizing:border-box;background:0 0;border:0;width:100dvw;max-width:100dvw;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow:visible}.receipt-import-dialog[open]{justify-content:center;align-items:stretch;display:flex}.receipt-import-dialog::backdrop{background:#00000059}.receipt-import-dialog-surface{background:var(--paper);color:var(--ink);box-sizing:border-box;grid-template-rows:auto 1fr auto;width:100%;height:100%;min-height:0;max-height:100dvh;animation:.22s cubic-bezier(.32,.72,0,1) recipe-detail-dialog-slide-in;display:grid;position:relative;overflow:hidden}@media (min-width:600px){.receipt-import-dialog[open]{padding:var(--space-24);align-items:center}.receipt-import-dialog-surface{max-width:720px;max-height:min(840px, calc(100dvh - var(--space-48)));border:var(--space-1) solid var(--hair);height:auto;box-shadow:0 var(--space-12) var(--space-40) #00000040}.synced-receipts-dialog .receipt-import-dialog-surface{max-width:960px}}.receipt-import-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-20) var(--space-20) var(--space-12);border-bottom:var(--space-1) solid var(--hair);display:flex}.receipt-import-dialog-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:var(--space-16) var(--space-20);gap:var(--space-16);flex-direction:column;display:flex;overflow-y:auto}.receipt-import-dialog-footer{justify-content:flex-end;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-20);border-top:var(--space-1) solid var(--hair);background:var(--paper);display:flex}@media (min-width:600px){.receipt-import-dialog-header{padding:var(--space-20) var(--space-24) var(--space-12)}.receipt-import-dialog-body{padding:var(--space-16) var(--space-24)}.receipt-import-dialog-footer{padding:var(--space-12) var(--space-24)}}.receipt-import-dialog-title{letter-spacing:.01em;margin:0;font-size:16px;font-weight:600}.receipt-import-dialog-close{width:var(--space-32);height:var(--space-32);color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.receipt-import-dialog-close:hover{background:var(--hair-soft,#0000000f)}.receipt-import-dialog-close:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:var(--space-2)}.receipt-import-error{padding:var(--space-8) var(--space-12);color:#6b1f1f;border:var(--space-1) solid #e3c0c0;background:#f9e7e7;margin:0;font-size:13px}.receipt-import-help{color:var(--ink-soft,#0009);margin:0;font-size:13px;line-height:1.45}.receipt-import-input-pane{gap:var(--space-12);padding-bottom:var(--space-16);border-bottom:var(--space-1) solid var(--hair);flex-direction:column;display:flex}.receipt-import-photo-row{align-items:center;gap:var(--space-8);display:flex}.receipt-import-photo-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.receipt-import-photo-btn{align-items:center;gap:var(--space-6);display:inline-flex}.receipt-import-spinner{animation:.9s linear infinite receipt-import-spin}.receipt-import-input-actions{justify-content:flex-end;gap:var(--space-8);display:flex}.receipt-import-empty{margin:var(--space-24) 0;padding:var(--space-16);text-align:center;color:var(--ink-soft,#0009);background:color-mix(in srgb, var(--ink) 3%, var(--paper));border:var(--space-1) dashed var(--hair);border-radius:var(--space-8);font-size:13px}.stocktake-zero-out{margin-top:var(--space-8);padding-top:var(--space-16);border-top:var(--space-1) solid var(--hair);gap:var(--space-8);flex-direction:column;display:flex}.stocktake-zero-out-grid{gap:var(--space-8);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (max-width:480px){.stocktake-zero-out-grid{grid-template-columns:1fr}}.stocktake-zero-out-option{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);border:var(--space-1) solid var(--hair);background:var(--paper);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:500;display:inline-flex}.stocktake-zero-out-option:hover{background:color-mix(in srgb, var(--ink) 4%, var(--paper))}.stocktake-zero-out-option input[type=checkbox]{width:var(--space-16);height:var(--space-16);cursor:pointer;margin:0}.stocktake-zero-out-option:has(input:checked){border-color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, var(--paper))}.stocktake-zero-out-warn{color:#6b1f1f;margin:0;font-size:12px}.receipt-import-field-label{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft,#000000b3);font-size:12px;font-weight:600}.receipt-import-textarea{width:100%;min-height:160px;padding:var(--space-12);font:inherit;border:var(--space-1) solid var(--control-border-rest);background:var(--paper);color:var(--ink);resize:vertical;box-sizing:border-box;border-radius:0;font-size:13px;line-height:1.5}.receipt-import-textarea:focus{border-color:var(--ink);outline:none}.receipt-import-file-row{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.receipt-import-file-button{padding:0 var(--space-12);height:var(--control-height);border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;align-items:center;font-size:13px;font-weight:500;display:inline-flex}.receipt-import-file-button input[type=file]{display:none}.receipt-import-file-clear{padding:0 var(--space-8);height:var(--control-height);color:var(--ink-soft,#000000b3);cursor:pointer;background:0 0;border:none;font-size:12px;text-decoration:underline}.receipt-import-primary,.receipt-import-secondary{height:var(--control-height);padding:0 var(--space-16);font:inherit;cursor:pointer;border-radius:0;font-size:13px;font-weight:600}.receipt-import-primary{border:var(--space-1) solid var(--ink);background:var(--ink);color:var(--paper)}.receipt-import-secondary{border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink)}.receipt-import-primary:disabled,.receipt-import-secondary:disabled{opacity:.55;cursor:wait}.receipt-import-review-pane{gap:var(--space-16);flex-direction:column;display:flex}.receipt-import-subtitle{letter-spacing:.02em;text-transform:uppercase;color:var(--ink);margin:0;font-size:13px;font-weight:600}.receipt-import-review-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.receipt-import-row{border-bottom:var(--space-1) solid var(--hair);background:var(--paper);position:relative}.receipt-import-row:last-child{border-bottom:0}.receipt-import-row.is-ignored{opacity:.55}.receipt-import-row-compact{padding:0;position:relative}.receipt-import-compact-exclude{left:calc(-1 * var(--space-24));width:var(--space-20);height:var(--space-20);border:var(--space-1) solid var(--hair);background:var(--paper);color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;z-index:1;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,background .12s,color .12s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.receipt-import-row-compact:hover .receipt-import-compact-exclude,.receipt-import-row-compact:focus-within .receipt-import-compact-exclude,.receipt-import-compact-exclude:focus-visible{opacity:1;pointer-events:auto}.receipt-import-compact-exclude:hover,.receipt-import-compact-exclude:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink);outline:none}.receipt-import-compact-exclude:disabled{cursor:not-allowed;opacity:0}.receipt-import-row-compact.is-ignored .receipt-import-compact-product,.receipt-import-row-compact.is-ignored .receipt-import-compact-price,.receipt-import-row-compact.is-ignored .receipt-import-compact-mapped{text-decoration:line-through}.receipt-import-compact-card{align-items:center;gap:var(--space-12);width:100%;padding:var(--space-12) var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.receipt-import-compact-body{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:flex;overflow:hidden}.receipt-import-compact-body:hover{background:var(--hair-soft,#0000000a)}.receipt-import-compact-body:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:calc(-1 * var(--space-1))}.receipt-import-compact-body:disabled{cursor:wait}.receipt-import-compact-mapped-slot{justify-self:end;align-items:center;min-width:160px;max-width:260px;display:flex;position:relative}.receipt-import-row-compact.is-editing-map .receipt-import-compact-mapped-slot{width:260px}.receipt-import-compact-mapped-slot .recipe-ingredients-add-cell-inner{width:100%}.receipt-import-compact-mapped-slot .ss-input{height:var(--space-32);padding:0 var(--space-8);border:var(--space-1) solid var(--hair);border-radius:var(--space-4);font-size:13px}.receipt-import-compact-main{gap:var(--space-2);flex-direction:column;flex:auto;min-width:0;display:flex}.receipt-import-compact-product{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.receipt-import-compact-brand,.receipt-import-compact-name{color:var(--ink);font-weight:500}.receipt-import-compact-price{color:var(--ink-soft,#0000009e);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.receipt-import-compact-risk{color:#8a5a00;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.receipt-import-compact-mapped{max-width:260px;padding:var(--space-4) var(--space-8);border:var(--space-1) solid transparent;border-radius:var(--space-4);color:var(--ink);font:inherit;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;align-items:center;font-size:13px;font-weight:500;display:inline-flex;overflow:hidden}.receipt-import-compact-mapped:hover,.receipt-import-compact-mapped:focus-visible{border-color:var(--hair);background:var(--paper);outline:none}.receipt-import-compact-mapped:disabled{cursor:default;opacity:.6}.receipt-import-compact-mapped.is-new{background:#fff3a3}.receipt-import-compact-mapped.is-new:hover,.receipt-import-compact-mapped.is-new:focus-visible{background:#ffeb70;border-color:#d8b627}.receipt-import-row-expanded{padding:var(--space-8) 0;border-bottom-color:#0000}.receipt-import-row-expanded+.receipt-import-row{border-top:0}.receipt-import-card{z-index:1;background:var(--paper);border:var(--space-1) solid var(--hair);border-radius:var(--space-8);padding:var(--space-12);box-shadow:0 var(--space-2) var(--space-12) #0000000f;flex-direction:column;display:flex;position:relative}.receipt-import-card-raw{color:var(--ink);padding-bottom:var(--space-12);border-bottom:var(--space-1) solid var(--hair);word-break:break-word;font-size:13px;font-weight:500;line-height:1.45}.receipt-import-review-flags{gap:var(--space-8);padding:var(--space-10) var(--space-12);border-bottom:var(--space-1) solid var(--hair);color:#6f4a00;background:#fff8d8;align-items:flex-start;font-size:12px;line-height:1.4;display:flex}.receipt-import-review-flags-label{text-transform:uppercase;letter-spacing:.04em;flex:none;font-weight:700}.receipt-import-review-flags-list{padding-left:var(--space-16);margin:0}.receipt-import-card-section{gap:var(--space-12);padding:var(--space-16) 0;border-bottom:var(--space-1) solid var(--hair);flex-direction:column;display:flex}.receipt-import-card-section:last-child{border-bottom:0}.receipt-import-card-section-nested{padding-top:var(--space-12);border-bottom:0;padding-bottom:0}.receipt-import-card-row{gap:var(--space-12);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.receipt-import-card-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.receipt-import-field-label-ghost{visibility:hidden}.receipt-import-advanced{border-top:var(--space-1) solid var(--hair);margin-top:var(--space-4)}.receipt-import-advanced>summary{list-style:none}.receipt-import-advanced>summary::-webkit-details-marker{display:none}.receipt-import-advanced-summary{cursor:pointer;padding:var(--space-12) 0 var(--space-8);letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft,#0000009e);font-size:12px;font-weight:600}.receipt-import-advanced-summary:before{content:"▸";margin-right:var(--space-8);transition:opacity .12s,transform .12s;display:inline-block}.receipt-import-advanced[open] .receipt-import-advanced-summary:before{transform:rotate(90deg)}.receipt-import-excluded-row{background:color-mix(in srgb, var(--ink) 3%, var(--paper));color:var(--ink-soft,#0000009e)}.receipt-import-excluded-card{align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.receipt-import-row-pending{background:color-mix(in srgb, var(--ink) 3%, var(--paper))}.receipt-import-row-pending.is-error{background:#fbecec}.receipt-import-pending-card{align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.receipt-import-pending-actions{gap:var(--space-8);display:inline-flex}.receipt-import-pending-main{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.receipt-import-pending-title{color:var(--ink);font-size:13px;font-weight:500}.receipt-import-pending-preview{color:var(--ink-soft,#0000009e);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.receipt-import-pending-spinner{color:var(--ink-soft,#0009);animation:.8s linear infinite receipt-import-spin}.receipt-import-row-action{height:var(--space-28);padding:0 var(--space-12);border:var(--space-1) solid var(--hair);border-radius:var(--space-4);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;align-items:center;gap:var(--space-4);font-size:12px;font-weight:600;display:inline-flex}.receipt-import-row-action:hover{background:color-mix(in srgb, var(--ink) 5%, var(--paper))}.receipt-import-row-action:disabled{opacity:.45;cursor:not-allowed}.receipt-import-row-action-danger{color:#8a1f1f;border-color:#d8b4b4}.receipt-import-row-action-danger:hover{background:#fbecec}.receipt-import-row-action-include{border-color:var(--ink);color:var(--ink)}.receipt-import-row-action-include:hover{background:var(--ink);color:var(--paper)}.receipt-import-card-actions{justify-content:space-between;gap:var(--space-8);padding-top:var(--space-12);border-top:var(--space-1) solid var(--hair);display:flex}.receipt-import-field .recipe-ingredients-add-cell-inner{width:100%}.receipt-import-field .recipe-ingredients-suggestions{z-index:4}.receipt-import-field{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.receipt-import-input,.receipt-import-select{height:var(--control-height);padding:0 var(--space-12);font:inherit;border:var(--space-1) solid var(--hair);border-radius:var(--space-4);background:var(--paper);color:var(--ink);box-sizing:border-box;width:100%;font-size:13px}.receipt-import-input:focus,.receipt-import-select:focus{border-color:var(--ink);outline:none}.receipt-import-qty-group{gap:var(--space-4);display:flex}.receipt-import-input-qty{flex:auto}.receipt-import-qty-group .receipt-import-select{flex:0 0 92px}.receipt-import-card .receipt-import-field .ss-input{border-radius:var(--space-4);border-color:var(--hair)}.inventory-table .ss-root.ss-bare-inline .ss-trigger,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-trigger{background-color:#0000;background-image:none;border:none;justify-content:flex-start;gap:2px;width:auto;min-width:0;height:auto;min-height:0;padding:0}.inventory-table .ss-root.ss-bare-inline .ss-trigger:hover:not(:disabled),.recipe-ingredients-table .ss-root.ss-bare-inline .ss-trigger:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.inventory-table .ss-root.ss-bare-inline .ss-trigger:focus,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-trigger:focus{outline:none}.inventory-table .ss-root.ss-bare-inline .ss-trigger-label,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-trigger-label{flex:0 auto}.inventory-table .ss-root.ss-bare-inline .ss-caret,.inventory-table .ss-root.ss-bare-inline .ss-caret-phosphor,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-caret,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-caret-phosphor{opacity:1;fill:currentColor;flex-shrink:0}.inventory-table .ss-root.ss-bare-inline.ss-open .ss-input-wrap,.recipe-ingredients-table .ss-root.ss-bare-inline.ss-open .ss-input-wrap{flex-direction:row;align-items:center;gap:2px;width:auto;min-width:min(100%,12rem);display:inline-flex}.inventory-table .ss-root.ss-bare-inline .ss-input,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-input{background:0 0;border:none;flex:auto;width:auto;min-width:0;height:auto;min-height:0;padding:0}.inventory-table .ss-root.ss-bare-inline .ss-input:focus,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-input:focus{outline:none}.inventory-table .ss-root.ss-bare-inline .ss-input-wrap .ss-caret,.inventory-table .ss-root.ss-bare-inline .ss-input-wrap .ss-caret-phosphor,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-input-wrap .ss-caret,.recipe-ingredients-table .ss-root.ss-bare-inline .ss-input-wrap .ss-caret-phosphor{position:static;right:auto}.equipment-check-cell{width:var(--space-120)}.equipment-check{justify-content:center;align-items:center;height:100%;display:flex}.equipment-check input{width:var(--space-16);height:var(--space-16)}.ingredient-detail{gap:var(--space-16);flex-direction:column;display:flex}.detail-grid{grid-template-columns:minmax(var(--space-144), 1fr) minmax(var(--space-224), 2fr);gap:var(--space-8) var(--space-16);font-size:13px;display:grid}.detail-row{display:contents}.detail-label{color:var(--ink-soft);font-weight:600}.detail-value{color:var(--ink-soft);white-space:pre-wrap}.detail-grid:empty:before{content:"No extra details.";color:var(--ink-muted)}.card{background-color:var(--paper);border:var(--space-1) solid var(--ink);cursor:pointer;background-image:none;border-radius:0;position:relative;overflow:visible}.card:hover{background-image:var(--hover-fill-overlay)}button.card{text-align:left;width:100%;font:inherit;appearance:none;margin:0;padding:0;display:block}button.card:hover{background-image:var(--hover-fill-overlay)}.card:hover .recipe-menu,.card:focus-within .recipe-menu,.recipe-menu:focus-within{opacity:1;pointer-events:auto}@keyframes spin{to{transform:rotate(360deg)}}.modal{z-index:50;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal.open{display:flex}.modal-backdrop{background:#000000d1;position:absolute;inset:0}.modal-card{max-width:var(--space-960);width:min(var(--space-960), 92vw);background:var(--paper);border:var(--space-1) solid var(--ink);z-index:2;border-radius:0;max-height:90vh;position:relative;overflow:hidden}.modal-close{top:var(--space-12);right:var(--space-16);position:absolute}.icon-ghost{width:var(--control-height);height:var(--control-height);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;padding:0;transition:background .15s;display:inline-flex}.icon-ghost:hover,.icon-ghost:focus-visible{background:#f2f2f2}.add-modal-body{padding:var(--space-24) var(--space-28) var(--space-28);max-height:calc(90vh - var(--space-48));display:block}.ingredient-form{gap:var(--space-12);flex-direction:column;display:flex}.meta{gap:var(--space-12);color:var(--ink-muted);margin-bottom:var(--space-16);flex-wrap:wrap;font-size:13px;display:flex}.section h3{margin-bottom:var(--space-6)}pre{background:var(--fog);padding:var(--space-8) var(--space-12);border:var(--space-1) solid var(--ink);white-space:pre-wrap;border-radius:0;margin:0;font-family:inherit;font-size:13px}.ingredient-links{gap:var(--space-6);background:var(--fog);border:var(--space-1) solid var(--ink);padding:var(--space-8) var(--space-12);white-space:pre-wrap;border-radius:0;flex-direction:column;font-size:13px;display:flex}.ingredient-link-row{grid-template-columns:minmax(var(--space-144), 2fr) minmax(var(--space-80), 1fr) minmax(var(--space-80), 1fr);gap:var(--space-8);align-items:center;display:grid}.ingredient-link{color:var(--ink);text-align:left;cursor:pointer;font:inherit;text-decoration:underline;text-decoration-thickness:var(--space-1);text-underline-offset:var(--space-4);background:0 0;border:none;padding:0}.ingredient-link:hover{text-decoration-thickness:var(--space-2)}.ingredient-link-amount,.ingredient-link-unit{color:var(--ink-soft)}.config-banner{margin:0 var(--space-16) var(--space-12);padding:var(--space-12) var(--space-16);border:var(--space-2) dashed var(--ink);background:var(--fog);color:var(--ink);border-radius:0;font-size:13px;line-height:1.45}.config-banner code{padding:var(--space-2) var(--space-6);border:var(--space-1) solid var(--ink);background:var(--paper);border-radius:0;font-size:.9em}.config-banner a{color:var(--ink);text-underline-offset:var(--space-2);font-weight:700;text-decoration:underline}.config-banner p{margin:0}.auth-modal-body{padding:var(--space-28) var(--space-28) var(--space-32);max-width:100%}.auth-form{gap:var(--space-16);flex-direction:column;display:flex}.auth-modal-copy{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.auth-captcha,.auth-captcha>div{width:100%;min-width:0}.native-auth-captcha-page{min-height:100vh;padding:var(--space-8);background:var(--paper);place-items:center;display:grid}.native-auth-captcha-card{gap:var(--space-12);width:min(100%,420px);color:var(--ink);text-align:center;display:grid}.native-auth-captcha-card p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.5}@media (max-width:380px){.auth-modal-body{padding-inline:var(--space-16)}}.auth-field{gap:var(--space-6);color:var(--ink-soft);flex-direction:column;font-size:13px;font-weight:500;display:flex}.auth-field input:focus{border-color:var(--ink);background:var(--fog);outline:none}.auth-modal-message{min-height:1.25em;color:var(--ink);margin:0;font-size:13px;font-weight:600}.auth-modal-message:empty{min-height:0}.auth-submit{margin-top:var(--space-4);width:100%}.auth-submit:disabled{opacity:.45;cursor:default}.primary.auth-submit:disabled:hover{background-color:var(--ink);color:var(--paper);background-image:none}.secondary.auth-submit:disabled:hover{background-color:var(--paper);color:var(--ink);background-image:none}.auth-provider-button{gap:var(--space-8);margin-top:0}.auth-provider-mark{flex:none;width:16px;height:16px}.auth-divider{align-items:center;gap:var(--space-12);margin:var(--space-16) 0;color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-top:var(--space-1) solid var(--hair);flex:1}.auth-field-label-row{justify-content:space-between;align-items:baseline;gap:var(--space-12);display:flex}.auth-field-hint{color:var(--ink-muted);margin:0;font-size:12px;font-weight:400}.auth-link-button{appearance:none;color:var(--ink);font:inherit;text-align:left;text-underline-offset:var(--space-2);cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:13px;font-weight:500;text-decoration:underline}.auth-link-button:disabled{color:var(--ink-faint);cursor:default}.auth-password-toggle{color:var(--ink-soft);font-size:12px}.auth-text-actions{align-items:flex-start;gap:var(--space-8);flex-direction:column;display:flex}.auth-switch{margin:var(--space-4) 0 0;color:var(--ink-soft);font-size:13px}.auth-notice{gap:var(--space-8);flex-direction:column;display:flex}.auth-code-input{letter-spacing:.3em;font-variant-numeric:tabular-nums}.plan-board-scroll{background:var(--paper);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-width:0;max-width:100%;min-height:0;overflow:auto hidden}.plan-board-scroll::-webkit-scrollbar{display:none}button:focus-visible,[role=tab]:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:var(--space-2)}.primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not(.inventory-name-input):not(.inventory-qty-input):not(.inventory-filter-search-input):not(.recipe-ingredient-amount-input):not(.recipe-ingredients-add-input):not(.recipe-instruction-add-input):not(.detail-sheet-input):not(.kitchen-agent-input):not(.ui-search-input):focus,textarea:focus,select:focus{border-color:var(--accent);background-color:var(--bg);box-shadow:var(--ring-focus);outline:none}a.card{color:inherit;text-decoration:none;display:block}a.card:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:var(--space-2)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.recipe-detail h1{margin:0 0 var(--space-8);font-size:1.5rem}.recipe-detail-layout{gap:var(--space-36);padding:0 var(--space-12);box-sizing:border-box;grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;max-width:960px;margin-inline:auto;display:grid}.recipe-detail-main{min-width:0}.recipe-detail-aside{min-width:0;top:var(--space-20);position:sticky}.recipe-detail-aside-stack{gap:var(--space-16);flex-direction:column;display:flex}.recipe-detail-aside-stack .recipe-detail-image-message{margin:0}.recipe-detail-aside-stack .recipe-meal-types{max-width:none;margin-bottom:0}.recipe-detail-aside-stack .recipe-publish-toggle{margin-bottom:0}.recipe-detail-aside-stack .recipe-source-section,.recipe-detail-aside-stack .recipe-detail-delete-wrap{margin-top:0}.recipe-detail-title-input{box-sizing:border-box;width:100%;margin:0 0 var(--space-16);letter-spacing:-.02em;color:var(--ink);background:var(--paper);border:none;border-radius:0;padding:0;font-family:inherit;font-size:1.5rem;font-weight:700;line-height:1.15}input.recipe-detail-title-input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]){height:auto;min-height:2.75rem}.recipe-detail-title-input:focus{background:var(--mist);outline:none}.recipe-detail-description-input{margin-top:calc(var(--space-16) * -1);margin-bottom:var(--space-16);resize:vertical;min-height:4.25rem;max-height:10rem;font-size:.9375rem;line-height:1.45}.recipe-detail-main>.section{gap:var(--space-16);padding:var(--space-24) 0;box-sizing:border-box;flex-direction:column;margin-top:0;display:flex}:is(.recipe-detail-main>.section:has(.recipe-ingredients-editor),.recipe-detail-main>.section:has(.recipe-instructions-editor)){gap:var(--space-8)}.recipe-detail-main>.section:first-of-type{padding-top:var(--space-16)}.recipe-detail-main>.section h3{letter-spacing:0;text-transform:none;color:var(--ink);margin:0;font-size:1.125rem;font-weight:700;line-height:1.32}.recipe-meal-types{gap:var(--space-4);margin:0 0 var(--space-8);flex-direction:column;max-width:36rem;display:flex}.recipe-meal-types-inner{position:relative}.recipe-meal-types-trigger{box-sizing:border-box;width:100%;min-height:var(--control-height);padding:var(--space-6) var(--space-8);border:var(--space-1) solid var(--ink);background-color:var(--paper);font:inherit;text-align:left;color:var(--ink);cursor:pointer;background-image:none;justify-content:flex-start;align-items:center;font-size:13px;display:flex}.recipe-meal-types-trigger:disabled{opacity:.45;cursor:not-allowed}.recipe-meal-types-trigger:hover:not(:disabled),.recipe-meal-types-trigger:focus-visible:not(:disabled){background-image:var(--hover-fill-overlay);outline:none}.recipe-meal-types-dropdown{left:0;right:0;top:calc(100% + var(--space-4));z-index:10;border:var(--space-1) solid var(--ink);background:var(--paper);padding:var(--space-6) 0;box-shadow:0 var(--space-4) var(--space-8) #00000014;position:absolute}.recipe-meal-types-option{justify-content:flex-start;align-items:center;gap:var(--space-8);box-sizing:border-box;width:100%;padding:var(--space-6) var(--space-12);cursor:pointer;color:var(--ink);text-align:left;flex-direction:row;font-size:13px;display:flex}.recipe-meal-types-option:hover{background-image:var(--hover-fill-overlay)}.recipe-meal-types-option input[type=checkbox]{cursor:pointer;width:1rem;height:1rem;accent-color:var(--ink);flex-shrink:0;margin:0}.recipe-source-section{margin-top:var(--space-6)}.recipe-source-section .recipe-source-open-wrap{margin:var(--space-6) 0 0}.recipe-detail-photo-panel{border:var(--space-1) solid var(--ink);background-color:var(--paper);aspect-ratio:1;box-sizing:border-box;width:100%;padding:1px;position:relative;overflow:hidden}.recipe-detail-photo-panel--empty{aspect-ratio:1;min-height:0}.recipe-detail-photo-panel--drag-over{background-color:var(--mist);box-shadow:inset 0 0 0 var(--space-2) var(--ink)}.recipe-detail-photo{cursor:pointer;width:100%;height:100%;font:inherit;color:var(--ink);background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:cover;border:none;margin:0;padding:0;position:absolute;inset:0}.recipe-detail-photo:disabled{opacity:.45;cursor:not-allowed}.recipe-detail-photo--crop-mode{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none}.recipe-detail-crop-hint{z-index:1;padding:var(--space-6) var(--space-8);letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--paper);pointer-events:none;background:linear-gradient(#0000,#0000008c);margin:0;font-size:10px;font-weight:600;position:absolute;bottom:0;left:0;right:0}.recipe-detail-photo-add{width:100%;min-height:inherit;box-sizing:border-box;padding:var(--space-16);font:inherit;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;font-size:11px;font-weight:600;display:flex}.recipe-detail-photo-add:disabled{opacity:.45;cursor:not-allowed}.recipe-detail-image-remove{top:var(--space-6);right:var(--space-6);z-index:2;width:var(--space-40);height:var(--space-40);border:var(--space-1) solid var(--ink);background:var(--paper);cursor:pointer;color:var(--ink);margin:0;padding:0;font-size:14px;line-height:1;position:absolute}.recipe-detail-image-remove:disabled{opacity:.45;cursor:not-allowed}.recipe-detail-image-message{margin:calc(-1 * var(--space-4)) 0 var(--space-8);color:var(--muted);font-size:13px}.recipe-detail-photo-panel--generating{aspect-ratio:1;box-sizing:border-box;border:var(--space-1) solid var(--ink);background-color:var(--paper);justify-content:center;align-items:center;width:100%;padding:1px;display:flex;position:relative;overflow:hidden}.recipe-detail-photo-generating-shimmer{background:linear-gradient(110deg, var(--paper) 0%, var(--mist) 40%, var(--paper) 80%);opacity:.65;background-size:200% 100%;animation:1.8s linear infinite recipe-detail-photo-generating-shimmer;position:absolute;inset:0}@keyframes recipe-detail-photo-generating-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.recipe-detail-photo-generating-copy{z-index:1;align-items:center;gap:var(--space-4);padding:var(--space-16);text-align:center;flex-direction:column;display:flex;position:relative}.recipe-detail-photo-generating-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-size:11px;font-weight:600}.recipe-detail-photo-generating-sub{color:var(--muted);font-size:12px}@media (max-width:52rem){.recipe-detail-layout{grid-template-columns:1fr}.recipe-detail-aside{order:-1;position:static}.recipe-detail-photo-panel,.recipe-detail-photo-panel--empty,.recipe-detail-photo-panel--generating{aspect-ratio:1;max-width:100%}}.meta.recipe-detail-meta-editable{align-items:flex-end;gap:var(--space-12);-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-top:3px;overflow:auto visible}.recipe-meta-field{gap:var(--space-4);color:var(--ink);flex-direction:column;display:inline-flex}.recipe-meta-field--nutrition{flex-shrink:0;min-width:0}.recipe-meta-field--nutrition-servings{flex:0 0 10.1667rem;width:10.1667rem}.recipe-meta-field--nutrition-grow{flex:1 0 5.5rem;min-width:5.5rem}.recipe-meta-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-size:11px;font-weight:600}.recipe-nutrition-field{align-items:center;gap:var(--space-4);box-sizing:border-box;width:100%;min-height:36px;padding:var(--space-8) var(--space-12);border:2px solid var(--control-border-rest);background:var(--paper);border-radius:0;display:flex}.recipe-nutrition-field:focus-within{background:var(--mist)}.recipe-nutrition-value-input{width:0;min-width:0;box-shadow:none;appearance:none;font:inherit;color:var(--ink-soft);background:0 0;border:0;border-radius:0;flex:1 1 0;margin:0;padding:0;font-size:14px;line-height:normal}.recipe-nutrition-value-input:focus{outline:none}.recipe-nutrition-value-input:disabled{opacity:.6}.recipe-nutrition-unit{color:var(--ink-muted);pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:14px;line-height:normal}.recipe-source-row{gap:var(--space-6);margin:0 0 var(--space-12);flex-direction:column;display:flex}.recipe-source-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-size:11px;font-weight:600}.recipe-source-input{box-sizing:border-box;border:var(--space-1) solid var(--ink);width:100%;max-width:36rem;padding:var(--space-8) var(--space-12);font:inherit;background:var(--paper);border-radius:0;font-size:13px}.recipe-source-input:focus{background:var(--mist);outline:none}.recipe-detail-textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:6rem;display:block}.recipe-pre{white-space:pre-wrap;font:inherit;margin:0}.recipe-limited-md-readonly{padding:var(--space-8) var(--control-padding-x);border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);box-sizing:border-box;cursor:text;text-align:left;width:100%;font-size:14px;line-height:1.45}.recipe-limited-md-readonly:focus{background:var(--mist);outline:none}.recipe-limited-md-readonly--disabled{opacity:.45;cursor:not-allowed}.recipe-md-placeholder{color:var(--muted)}.recipe-md-ol{margin:0;padding-left:1.35em}.recipe-md-ol li{margin:.15em 0}.recipe-md-ol li::marker{font-weight:600}.recipe-md-para{margin:0}.recipe-md-para+.recipe-md-ol,.recipe-md-ol+.recipe-md-para{margin-top:.5em}.recipe-md-ingredients{margin:0}.recipe-md-ing-line{margin:.2em 0 0;padding:0;list-style:none}.recipe-md-ing-line:first-child{margin-top:0}.recipe-ingredients-editor{position:relative}.recipe-ingredients-unit-toggle-option{appearance:none;font:inherit;cursor:pointer;color:inherit;background:0 0;border:0;margin:-4px;padding:4px;line-height:0;transition:opacity .12s}.recipe-ingredients-unit-toggle-option__icon{width:24px;height:24px;display:inline-block;position:relative}.recipe-ingredients-unit-toggle-option__svg{width:24px;height:24px;display:block}.recipe-ingredients-unit-toggle-option__layer{display:block}.recipe-ingredients-unit-toggle-option__layer--on{opacity:0;pointer-events:none;position:absolute;inset:0}.recipe-ingredients-unit-toggle-option--active .recipe-ingredients-unit-toggle-option__layer--off{opacity:0}.recipe-ingredients-unit-toggle-option--active .recipe-ingredients-unit-toggle-option__layer--on{opacity:1}.recipe-ingredients-unit-toggle-option:focus-visible{outline:2px solid var(--focus,#5b8def);outline-offset:2px;border-radius:4px}.recipe-ingredients-add-cell-inner,.recipe-ingredients-add-input-wrap{position:relative}.recipe-ingredients-table .recipe-ingredients-add-input-wrap{align-items:center;min-height:36px;display:flex}.recipe-ingredients-add-input{padding-right:var(--space-12)}.recipe-ingredients-table .recipe-ingredients-add-input{box-shadow:none;box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:0 var(--space-12) 0 0;color:var(--ink);background:0 0;border:none;flex:auto;font-size:13px;font-weight:600;line-height:1.25}.recipe-ingredients-table .recipe-ingredients-add-input::placeholder{color:var(--muted);font-weight:400}.recipe-ingredients-table .recipe-ingredients-add-row .recipe-ingredients-add-placeholder-cell{background:0 0}.recipe-ingredients-add-cell-inner .recipe-ingredients-suggestions{margin-top:var(--space-6);z-index:12;position:absolute;top:100%;left:0;right:0}.recipe-ingredients-create-option{font-weight:600}.recipe-ingredients-suggestion-muted{color:var(--muted)}.recipe-ingredients-message{margin:0 0 var(--space-12);color:var(--muted);font-size:13px}.table-container.recipe-ingredients-table-wrap{background:var(--paper);box-shadow:none;border:none}.recipe-ingredients-table-wrap{max-width:100%;overflow:visible}.recipe-ingredients-table{table-layout:auto;width:100%;min-width:0}.recipe-ingredients-line-stack,.recipe-instructions-line-stack{flex-direction:column;width:100%;min-width:0;display:flex}.recipe-ingredients-line-list,.recipe-instructions-line-list{flex-direction:column;min-width:0;display:flex}.recipe-ingredients-line-list>.recipe-ingredient-row,.recipe-ingredients-line-stack>.recipe-ingredients-add-row{box-sizing:border-box;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;width:100%;padding-bottom:10px;display:grid}.recipe-ingredients-line-stack>.recipe-ingredients-add-row{border-top:1px solid #ebebeb;padding-top:0}.recipe-instructions-line-list{gap:4px}.recipe-instructions-line-list>.recipe-instruction-row{box-sizing:border-box;border-bottom:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;width:100%;padding-bottom:10px;display:grid}.recipe-detail--view .recipe-instructions-line-list>.recipe-instruction-row{align-items:start}.recipe-instructions-line-stack>.recipe-instruction-add-row{box-sizing:border-box;border-top:none;border-bottom:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;width:100%;padding-bottom:10px;display:grid}.recipe-instruction-body-cell--span-actions{grid-column:2/-1;min-width:0}.recipe-detail--edit .recipe-ingredients-line-list>.recipe-ingredient-row,.recipe-detail--edit .recipe-ingredients-line-stack>.recipe-ingredients-add-row,.recipe-detail--view .recipe-ingredients-line-list>.recipe-ingredient-row,.recipe-detail--edit .recipe-instructions-line-list>.recipe-instruction-row,.recipe-detail--edit .recipe-instructions-line-stack>.recipe-instruction-add-row{align-items:start}.recipe-detail--edit .recipe-ingredients-line-stack .recipe-ingredient-actions-cell{align-self:start}.recipe-ingredients-table.ingredients-table td{border-bottom:1px solid #eee}.recipe-ingredients-table tbody tr:not(.recipe-ingredients-add-row) td{vertical-align:top}.recipe-ingredients-table th,.recipe-ingredients-table td{white-space:normal}.recipe-ingredient-drag-header{width:1.25rem;padding:0}.recipe-ingredients-table td.recipe-ingredient-lead-cell,.recipe-ingredients-line-stack .recipe-ingredient-lead-cell{box-sizing:border-box;vertical-align:middle;text-align:left;width:auto;min-width:20px;max-width:none;padding:0 8px 0 0;line-height:0}.recipe-ingredient-prep-toggle{cursor:pointer;width:20px;min-width:20px;height:20px;min-height:20px;color:var(--ink,#0a0a0a);box-sizing:border-box;background:0 0;border:none;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:0;display:inline-flex}.recipe-ingredient-prep-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.recipe-ingredient-prep-icon{width:20px;height:20px;color:inherit;flex-shrink:0;display:block}.recipe-ingredient-prep-icon--done{color:var(--ink-faint)}.recipe-ingredient-row--prepared .recipe-ingredient-name-primary,.recipe-ingredient-row--prepared .recipe-ingredient-name,.recipe-ingredient-row--prepared .recipe-ingredient-preparation,.recipe-ingredient-row--prepared .recipe-ingredient-optional-flag,.recipe-ingredient-row--prepared .recipe-ingredient-amount-input,.recipe-ingredient-row--prepared .recipe-ingredient-amount-display,.recipe-ingredient-row--prepared .recipe-ingredient-amount-display--static,.recipe-ingredient-row--prepared .recipe-ingredient-unit-text,.recipe-ingredient-row--prepared .recipe-ingredient-unit-select .ss-trigger-label{color:var(--ink-faint);font-weight:400}.recipe-ingredient-drag-handle{width:20px;height:20px;color:var(--muted);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.recipe-ingredient-drag-handle:hover:not(:disabled){color:var(--ink)}.recipe-ingredient-drag-handle:active:not(:disabled){cursor:grabbing}.recipe-ingredient-drag-handle:disabled{opacity:.45;cursor:not-allowed}.recipe-ingredient-drag-icon{flex-shrink:0;width:16px;height:16px}.recipe-ingredient-row .recipe-ingredient-drag-handle{opacity:0;transition:opacity .12s}.recipe-ingredient-row:hover .recipe-ingredient-drag-handle,.recipe-ingredient-row:focus-within .recipe-ingredient-drag-handle,.recipe-ingredient-row--dragging .recipe-ingredient-drag-handle{opacity:1}@media (hover:none){.recipe-ingredient-row .recipe-ingredient-drag-handle{opacity:.55}.recipe-ingredient-row:hover .recipe-ingredient-drag-handle,.recipe-ingredient-row:focus-within .recipe-ingredient-drag-handle,.recipe-ingredient-row--dragging .recipe-ingredient-drag-handle{opacity:1}}.recipe-ingredient-actions-header{width:1.25rem;padding:0}.recipe-ingredients-table td.recipe-ingredient-actions-cell,.recipe-ingredients-line-stack .recipe-ingredient-actions-cell{vertical-align:top;text-align:right;box-sizing:border-box;width:auto;padding:12.5px 0 0 12px;position:relative}.recipe-ingredients-line-stack .recipe-ingredient-actions-cell{align-self:center;padding:0 0 0 12px}.recipe-ingredients-table.ingredients-table td.recipe-ingredient-actions-cell,.recipe-ingredients-table.ingredients-table.recipe-ingredients-line-stack .recipe-ingredient-actions-cell{text-align:right;vertical-align:top;width:auto;max-width:none;padding:12.5px 0 0 12px}.recipe-ingredients-table td.recipe-ingredient-actions-cell:empty,.recipe-ingredients-table.ingredients-table td.recipe-ingredient-actions-cell:empty,.recipe-ingredients-line-stack .recipe-ingredient-actions-cell:empty{width:0;padding:0}.recipe-ingredient-actions-menu{justify-content:center;width:auto;margin:0 auto;display:inline-flex;position:relative}.recipe-ingredients-table .recipe-ingredient-actions-menu{justify-content:flex-end;width:100%;margin:0;display:flex}.recipe-ingredient-actions-trigger{width:20px;height:20px;color:var(--muted);cursor:pointer;box-sizing:border-box;background-color:#0000;background-image:none;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.recipe-ingredient-actions-trigger:hover:not(:disabled),.recipe-ingredient-actions-trigger:focus-visible:not(:disabled){color:var(--ink);background-color:var(--mist);background-image:none;border:none}.recipe-ingredient-actions-trigger:disabled{opacity:.45;cursor:not-allowed}.recipe-ingredient-actions-icon{flex-shrink:0;width:16px;height:16px}.recipe-ingredient-actions-panel{right:0;top:calc(100% + var(--space-4));z-index:20;min-width:11rem;padding:var(--space-4) 0;background:var(--paper);border:var(--space-1) solid var(--ink);box-shadow:0 var(--space-4) var(--space-12) #0000001a;position:absolute}.recipe-ingredient-actions-menu-option{align-items:center;gap:var(--space-10);box-sizing:border-box;width:100%;padding:var(--space-8) var(--space-12);color:var(--ink);cursor:pointer;flex-direction:row;margin:0;font-size:13px;font-weight:500;display:flex}.recipe-ingredient-actions-menu-option:hover{background-image:var(--hover-fill-overlay)}.recipe-ingredient-actions-menu-checkbox{width:1rem;height:1rem;accent-color:var(--ink);cursor:pointer;flex-shrink:0;margin:0}.recipe-ingredient-actions-menu-remove{box-sizing:border-box;width:100%;padding:var(--space-8) var(--space-12);font:inherit;text-align:left;color:var(--danger,#b42318);cursor:pointer;background:0 0;border:none;border-top:1px solid #eee;margin:0;font-size:13px;font-weight:600;display:block}.recipe-ingredient-actions-menu-remove:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.recipe-ingredient-actions-menu-remove:disabled{opacity:.45;cursor:not-allowed}.recipe-ingredient-remove-cell,.recipe-ingredient-remove-header{white-space:nowrap;width:1%}.recipe-ingredient-remove-button{border:var(--space-1) solid var(--ink);background:var(--paper);color:var(--ink);font:inherit;padding:var(--space-6) var(--space-8);cursor:pointer;border-radius:0;font-size:12px;font-weight:600}.recipe-ingredient-remove-button:disabled{opacity:.5;cursor:not-allowed}.recipe-instructions-table td.recipe-instruction-lead-cell,.recipe-instructions-line-stack .recipe-instruction-lead-cell{box-sizing:border-box;vertical-align:top;text-align:left;width:auto;min-width:20px;max-width:none;padding:0 8px 0 0;line-height:0}.recipe-instruction-lead-icon{width:20px;min-width:20px;height:20px;min-height:20px;color:var(--ink,#0a0a0a);box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.recipe-instruction-prep-icon{flex-shrink:0;width:20px;height:20px;display:block}.recipe-instruction-prep-icon--done{color:var(--ink-faint)}.recipe-detail--edit .recipe-instruction-lead-cell{cursor:grab}.recipe-detail--edit .recipe-instruction-lead-cell:active{cursor:grabbing}.recipe-instruction-drag-icon{width:20px;height:20px;color:var(--muted);margin:0;display:inline-block}.recipe-instruction-row{cursor:pointer}.recipe-instruction-row--completed .recipe-instruction-body-static{display:none}.recipe-instructions-table td.recipe-instruction-body-cell,.recipe-instructions-line-stack .recipe-instruction-body-cell{vertical-align:top;width:100%;min-width:0;padding:0}.recipe-instruction-heading{color:var(--ink-soft);margin:0;padding:12.5px 0 0;font-size:16px;font-weight:600;line-height:20px}.recipe-instructions-line-stack .recipe-instruction-heading{padding:0}.recipe-instruction-row--completed .recipe-instruction-heading{color:var(--ink-faint);padding:12.5px 0 0;font-weight:400}.recipe-instructions-line-stack .recipe-instruction-row--completed .recipe-instruction-heading{padding:0}.recipe-instruction-heading+.recipe-instruction-body-static{padding-top:0}.recipe-instruction-body-stack{flex-direction:column;gap:4px;display:flex}.recipe-instruction-heading-input{width:100%;font:inherit;color:var(--ink-soft);box-sizing:border-box;background:0 0;border:1px solid #0000;border-radius:0;margin:0;padding:12.5px 0 0;font-size:16px;font-weight:600;line-height:20px;display:block}.recipe-instruction-heading-input::placeholder{color:var(--muted);font-weight:500}.recipe-instruction-heading-input:hover{background:var(--fog)}.recipe-instruction-heading-input:focus{background:0 0;border-color:#0000;outline:none}.recipe-instruction-heading-input+.recipe-instruction-body-input{padding-top:0}.recipe-instruction-body-input{resize:none;width:100%;min-height:0;font:inherit;color:var(--ink-faint);field-sizing:content;background:0 0;border:1px solid #0000;border-radius:0;margin:0;padding:0;font-size:16px;font-weight:400;line-height:20px;display:block;overflow:hidden}.recipe-instruction-body-input:hover{background:var(--fog)}.recipe-instruction-body-input:focus{background:0 0;border-color:#0000;outline:none}.recipe-instruction-add-input{width:100%;height:auto;min-height:0;padding:var(--space-12) var(--space-4);font:inherit;box-sizing:border-box;background:0 0;border:none;border-radius:0;margin:0;font-size:16px;line-height:20px;display:block}.recipe-instruction-add-input:focus{background:0 0;border:none;outline:none}.recipe-instruction-add-row .recipe-instruction-lead-cell{padding-top:0}.recipe-instruction-add-row .recipe-instruction-add-input,tr.recipe-instruction-add-row .recipe-instruction-add-input{min-height:0;padding-top:calc(var(--space-8) + var(--space-12));padding-bottom:calc(var(--space-8) + var(--space-12));padding-left:var(--space-4);padding-right:var(--space-4);line-height:20px}.step-timer-toast{border:1px solid var(--ink)!important;background:var(--paper)!important;color:var(--ink)!important;box-shadow:none!important;border-radius:0!important;font-family:inherit!important}.step-timer-toast [data-title]{font-weight:600!important}.step-timer-toast [data-close-button]{border:1px solid var(--ink)!important;border-radius:0!important}.recipe-ingredient-name-cell{width:auto}.recipe-ingredients-table .recipe-ingredient-name-cell,.recipe-ingredients-line-stack .recipe-ingredient-name-cell{vertical-align:top;overflow-wrap:anywhere;word-break:break-word;width:100%;min-width:0;padding:12.5px 0 0}.recipe-ingredients-line-stack .recipe-ingredient-name-cell{padding:0}.recipe-ingredient-name{font-weight:inherit}.recipe-ingredient-name-primary{color:var(--ink-soft);font-weight:600}.recipe-ingredients-table .recipe-ingredient-name{color:var(--ink-soft);font-size:16px;line-height:20px}.recipe-ingredient-name-button{width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;margin:0;padding:0;display:block}.recipe-ingredients-table .recipe-ingredient-name-button:hover:not(:disabled) .recipe-ingredient-name,.recipe-ingredients-table .recipe-ingredient-name-button:focus-visible:not(:disabled) .recipe-ingredient-name{text-decoration:none}.recipe-ingredient-name-button:disabled{opacity:.5;cursor:not-allowed}.recipe-ingredients-table td.recipe-ingredient-value-cell,.recipe-ingredients-line-stack .recipe-ingredient-value-cell{box-sizing:border-box;text-align:right;vertical-align:top;white-space:nowrap;width:auto;padding:12.5px 0 0}.recipe-ingredients-line-stack .recipe-ingredient-value-cell{padding:0}.recipe-detail--view .recipe-ingredients-line-stack .recipe-ingredient-value-cell{margin-right:calc(-1 * var(--space-12));padding-right:0}.recipe-ingredient-value-inner{align-items:baseline;gap:4px;display:inline-flex}.recipe-ingredient-amount-input{box-sizing:border-box;width:auto;height:auto;min-height:0;font:inherit;color:var(--ink-soft);text-align:right;background:0 0;border:none;border-radius:0;margin:0;padding:0;font-size:16px;font-weight:400;line-height:20px;display:inline-block}.recipe-ingredient-amount-input:focus{background:0 0;outline:none}.recipe-ingredient-amount-display{all:unset;box-sizing:border-box;min-height:0;font:inherit;color:var(--ink-soft);cursor:pointer;text-align:right;border-radius:0;padding:0;font-size:16px;font-weight:400;line-height:20px;display:inline-block}.recipe-ingredient-amount-display:disabled{opacity:.5;cursor:not-allowed}.recipe-ingredient-amount-display--no-gram-data{color:var(--muted)}.recipe-ingredient-amount-flag{vertical-align:super;color:var(--muted);margin-left:1px;font-size:12px}.recipe-ingredient-amount-fraction{vertical-align:middle;font-size:16px;line-height:20px;display:inline-block}.recipe-ingredient-unit-select{max-width:none}.recipe-ingredients-line-stack .recipe-ingredient-unit-select .ss-trigger-label{font-size:16px;font-weight:400}.recipe-ingredients-empty{color:var(--muted)}.recipe-ingredients-heading-row{justify-content:space-between;align-items:center;gap:var(--space-12);display:flex}.recipe-ingredients-heading{margin:0}.recipe-ingredients-heading-toggle{flex:none}.recipe-ingredients-heading-toggle.recipe-ingredients-unit-toggle-option{justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.recipe-ingredient-sections{gap:var(--space-20);flex-direction:column;display:flex}.recipe-ingredient-section-block{gap:var(--space-8);flex-direction:column;display:flex}.recipe-ingredient-section-heading{align-self:flex-start;align-items:center;max-width:100%;display:inline-flex;position:relative}.recipe-ingredient-section-heading--editing{align-self:stretch;align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.recipe-ingredient-section-heading:not(.recipe-ingredient-section-heading--editing) .recipe-ingredient-section-delete{margin-left:var(--space-4);position:absolute;top:50%;left:100%;transform:translateY(-50%)}.recipe-ingredient-section-heading--editing .recipe-ingredient-section-title-input{flex:12rem;min-width:0;margin-bottom:0}.recipe-ingredient-section-delete{padding:var(--space-4);margin:0 0 var(--space-4) 0;color:var(--ink);cursor:pointer;opacity:0;background:0 0;border:none;justify-content:center;align-items:center;transition:opacity .12s;display:inline-flex}.recipe-ingredient-section-heading:hover .recipe-ingredient-section-delete,.recipe-ingredient-section-delete:focus-visible{opacity:1}.recipe-ingredient-section-delete:hover:not(:disabled){color:var(--danger,#b42318)}.recipe-ingredient-section-delete:disabled{opacity:.35;cursor:not-allowed}.recipe-ingredient-section-delete-icon{display:block}.recipe-ingredient-section-title-button{margin:0 0 var(--space-4);font:inherit;text-align:left;cursor:pointer;color:var(--ink);border:none;border-bottom:var(--space-2) solid transparent;background:0 0;align-self:flex-start;padding:0;font-size:15px;font-weight:700}.recipe-ingredient-section-title-button:hover:not(:disabled){border-bottom-color:var(--ink)}.recipe-ingredient-section-title-button:disabled{opacity:.5;cursor:not-allowed}.recipe-ingredient-section-title-input{margin:0 0 var(--space-4);box-sizing:border-box;border:var(--space-1) solid var(--ink);padding:var(--space-6) var(--space-8);font:inherit;background:var(--paper);border-radius:0;align-self:stretch;font-size:15px;font-weight:700}.recipe-ingredient-section-title-input:focus{background:var(--mist);outline:none}.recipe-ingredient-section-static-title{margin:0 0 var(--space-6);font-size:15px;font-weight:700}.recipe-ingredients-orphan-hint{margin:0 0 var(--space-8);color:var(--muted);font-size:13px}.recipe-ingredients-add-row td{border-top:1px solid #eee}.recipe-ingredients-table tbody tr.recipe-ingredients-add-row td{vertical-align:middle;padding-block:0}.recipe-ingredients-line-stack>.recipe-ingredients-add-row .recipe-ingredient-name-cell,.recipe-ingredients-line-stack>.recipe-ingredients-add-row .recipe-ingredient-value-cell,.recipe-ingredients-line-stack>.recipe-ingredients-add-row .recipe-ingredient-actions-cell{align-self:center;padding-block:0}.ingredients-table tbody tr.recipe-ingredients-add-row:hover,.recipe-ingredients-line-stack>.recipe-ingredients-add-row:hover{background-color:var(--paper);background-image:none}.recipe-ingredients-add-placeholder-cell{color:var(--muted);font-style:normal}.ingredient-name-cell-layout{align-items:center;gap:var(--space-4);width:100%;min-width:0;display:flex}.ingredient-name-cell-layout .ingredient-name-with-caret{flex:1;min-width:0}.ingredient-name-with-caret{align-items:center;gap:var(--space-4);display:flex}.recipe-ingredients-add-component-wrap{margin-top:var(--space-12)}.recipe-ingredients-add-component{border:var(--space-1) solid var(--ink);background-color:var(--paper);color:var(--ink);font:inherit;padding:var(--space-8) var(--space-12);cursor:pointer;background-image:none;border-radius:0;font-size:13px;font-weight:600}.recipe-ingredients-add-component:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.recipe-ingredients-add-component:disabled{opacity:.5;cursor:not-allowed}.recipe-detail-delete-wrap{margin-top:var(--space-20);justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.recipe-detail-delete{border:var(--space-2) solid #e74c3c;background:var(--paper);color:#e74c3c;font:inherit;padding:var(--space-8) var(--space-12);cursor:pointer;border-radius:0;font-size:13px;font-weight:600}.recipe-detail-delete:hover:not(:disabled){color:var(--paper);background:#e74c3c}.recipe-detail-delete:disabled{opacity:.5;cursor:not-allowed}.inventory-row-delete{color:var(--ink);font:inherit;cursor:pointer;opacity:0;background-color:#0000;background-image:none;border:none;border-radius:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .12s,background-color .12s,background-image .12s;display:inline-flex}tr:hover .inventory-row-delete,.inventory-row-delete:focus-visible{opacity:1}.inventory-row-delete:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.inventory-row-delete:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:var(--space-2)}.inventory-row-delete:disabled{opacity:.4;cursor:not-allowed}.modal-card.modal-delete-ingredient{max-width:var(--space-832);width:min(var(--space-832), 94vw)}.delete-ingredient-modal-body{padding:var(--space-24) var(--space-28) var(--space-28);padding-right:calc(var(--space-28) + var(--space-24))}.delete-ingredient-modal-title{margin:0 0 var(--space-12);letter-spacing:-.02em;font-size:18px;font-weight:700;line-height:1.2}.delete-ingredient-modal-warning{margin:0 0 var(--space-20);color:var(--ink);font-size:14px;line-height:1.45}.delete-ingredient-modal-warning strong{font-weight:700}.delete-ingredient-recipe-list{margin:0 0 var(--space-20);color:var(--ink);font-size:13px;line-height:1.5}.delete-ingredient-recipe-list-label{margin:0 0 var(--space-6);text-transform:uppercase;letter-spacing:.03em;color:var(--ash);font-size:11px;font-weight:600}.delete-ingredient-recipe-list ul{padding:0 0 0 var(--space-16);max-height:140px;margin:0;overflow-y:auto}.delete-ingredient-recipe-list li{margin:0 0 var(--space-2)}.delete-ingredient-recipe-list a{color:var(--ink);text-underline-offset:2px;text-decoration:underline}.delete-ingredient-recipe-list a:hover{color:var(--ash)}.delete-ingredient-modal-label{margin:0 0 var(--space-6);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600;display:block}.delete-ingredient-modal-input{box-sizing:border-box;border:var(--space-1) solid var(--ink);width:100%;padding:var(--space-8) var(--space-12);font:inherit;margin-bottom:var(--space-12);border-radius:0;font-size:15px}.delete-ingredient-modal-input:focus{outline:var(--space-1) solid var(--ink);outline-offset:2px}.delete-ingredient-modal-input[aria-invalid=true]{border-color:#c0392b}.delete-ingredient-modal-error{margin:calc(-1 * var(--space-6)) 0 var(--space-12);color:#c0392b;font-size:13px}.delete-ingredient-modal-warning+.delete-ingredient-modal-error{margin:0 0 var(--space-12)}.delete-ingredient-modal-actions{gap:var(--space-8);flex-wrap:wrap;justify-content:flex-end;display:flex}.delete-ingredient-modal-cancel{border:var(--space-1) solid var(--ink);background-color:var(--paper);color:var(--ink);font:inherit;letter-spacing:.03em;text-transform:uppercase;padding:var(--space-8) var(--space-16);cursor:pointer;background-image:none;border-radius:0;font-size:12px;font-weight:600}.delete-ingredient-modal-cancel:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.delete-ingredient-modal-confirm{border:var(--space-2) solid #c0392b;color:var(--paper);font:inherit;letter-spacing:.03em;text-transform:uppercase;padding:var(--space-8) var(--space-16);cursor:pointer;background:#c0392b;border-radius:0;font-size:12px;font-weight:600}.delete-ingredient-modal-confirm:hover:not(:disabled){filter:brightness(1.05)}.delete-ingredient-modal-confirm:disabled{opacity:.45;cursor:not-allowed}@media (hover:none){.inventory-row-delete{opacity:.75}}a.primary{text-align:center;box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.ss-root{display:inline-block;position:relative}.ss-trigger{justify-content:space-between;align-items:center;gap:var(--space-6);width:100%;height:var(--control-height);min-height:var(--control-height);padding:0 var(--space-8);border:var(--space-2) solid var(--control-border-rest);background-color:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-sizing:border-box;background-image:none;border-radius:0;outline:none;font-size:13px;line-height:1.25;display:flex}.ss-trigger:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.ss-trigger:disabled{opacity:.5;cursor:default}.ss-trigger:focus,.ss-root.ss-open .ss-input{border-color:var(--ink)}.ss-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ss-caret{width:10px;height:10px;fill:var(--ink);pointer-events:none;flex-shrink:0}.ss-input-wrap{align-items:center;width:100%;display:flex;position:relative}.ss-input{width:100%;height:var(--control-height);min-height:var(--control-height);padding:0 calc(var(--space-8) + 16px) 0 var(--space-8);border:var(--space-2) solid var(--control-border-rest);background:var(--paper);color:var(--ink);font:inherit;box-sizing:border-box;border-radius:0;outline:none;font-size:13px;line-height:1.25}.ss-input-wrap .ss-caret{right:var(--space-8);position:absolute}.ss-list{z-index:900;padding:var(--space-4) 0;overscroll-behavior:contain;background:var(--paper);border:var(--space-1) solid var(--ink);border-top:none;max-height:240px;margin:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000014}.ss-popover-anchor{pointer-events:auto;box-sizing:border-box}.ss-popover-anchor--bare{background:var(--paper);border:var(--space-1) solid var(--ink);min-width:12rem;max-width:18rem;box-shadow:0 4px 12px #00000014}.ss-popover-anchor--bare .ss-input-wrap--popover{width:100%}.ss-popover-anchor--bare .ss-input{border:none;border-bottom:var(--space-1) solid var(--ink);background:0 0}.ss-popover-anchor--bare .ss-list.ss-list-portal{box-shadow:none;border:none}.ss-list.ss-list-portal{z-index:auto;border-top:var(--space-1) solid var(--ink);box-sizing:border-box;width:100%;min-width:0;position:static;top:auto;left:auto;right:auto}.ss-option{padding:var(--space-6) var(--space-8);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#0000;background-image:none;font-size:13px;line-height:1.35}.ss-option:hover{background-image:var(--hover-fill-overlay)}.ss-option-highlight{background-color:var(--fog)}.ss-option-active{font-weight:600}.ss-empty{padding:var(--space-12) var(--space-8);color:var(--muted);text-align:center;font-size:13px}.recipe-publish-toggle{margin:0 0 var(--space-12)}.recipe-publish-btn{padding:0 var(--space-16);font-size:12px}.recipe-publish-btn--active{background-color:var(--ink);color:var(--paper);background-image:none}.recipe-publish-btn--active:hover{background-color:var(--paper);background-image:var(--hover-fill-overlay);color:var(--ink)}.recipe-add-panel{min-width:min(100vw - var(--space-48), 280px);padding:var(--space-8);background:var(--paper);border:var(--space-1) solid var(--hair);box-shadow:0 var(--space-4) var(--space-24) #0000001f;gap:var(--space-4);flex-direction:column;display:flex}.recipe-add-drop-overlay{z-index:9999;pointer-events:none;border:var(--space-2) dashed var(--ink);background:#0000001f;place-items:center;display:grid;position:fixed;inset:0}.recipe-add-drop-overlay-card{padding:var(--space-12) var(--space-16);background:var(--paper);border:var(--space-1) solid var(--ink);color:var(--ink);letter-spacing:.01em;box-shadow:0 var(--space-4) var(--space-16) #00000026;font-size:14px;font-weight:700}.recipe-add-modal-backdrop{z-index:0;cursor:pointer;background:#00000059;border:none;margin:0;padding:0;position:fixed;inset:0}.recipe-add-modal{z-index:1;background:var(--paper);border:var(--space-1) solid var(--hair);width:min(640px,100vw - 48px);max-width:640px;height:auto;max-height:calc(100vh - 48px);box-shadow:0 var(--space-4) var(--space-32) #0003;flex-direction:column;display:flex;position:fixed;top:24px;bottom:auto;left:50%;overflow:hidden;transform:translate(-50%)}.recipe-add-modal-header{align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-12) var(--space-8);border-bottom:var(--space-1) solid var(--hair);flex-shrink:0;grid-template-columns:36px 1fr 36px;display:grid}.recipe-add-modal-header .recipe-add-back{justify-self:start;width:36px;height:36px}.recipe-add-modal-header-spacer{width:36px;height:1px}.recipe-add-modal-title{text-align:center;color:var(--ink);margin:0;font-size:16px;font-weight:700}.recipe-add-modal-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;justify-self:end;align-items:center;padding:0;display:inline-flex}.recipe-add-modal-close:hover{color:var(--ink)}.recipe-add-modal-body{min-height:0;padding:var(--space-12);gap:var(--space-8);flex-direction:column;flex:1;display:flex;overflow:hidden}.recipe-add-panel-error{padding:var(--space-4) var(--space-8);color:#6b1f1f;margin:0;font-size:12px}.recipe-add-panel-loading{align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-8);color:var(--muted);font-size:13px;display:flex}.recipe-add-spinner{border:2px solid var(--hair);border-top-color:var(--ink);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite recipe-add-spin}@keyframes recipe-add-spin{to{transform:rotate(360deg)}}.recipe-add-menu{flex-direction:column;display:flex}.recipe-add-menu-item{align-items:center;gap:var(--space-8);width:100%;padding:var(--space-8) var(--space-8);font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;font-size:14px;display:flex}.recipe-add-menu-item:hover{background:var(--fog)}.recipe-add-menu-item:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:calc(-1 * var(--space-1))}.recipe-add-input-group{align-items:center;gap:var(--space-6);display:flex}.recipe-add-input-group--text{flex-direction:column;align-items:stretch}.recipe-add-input-group--text .recipe-add-back{align-self:flex-end}.recipe-add-back{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.recipe-add-back:hover{color:var(--ink)}.recipe-add-url-input{min-width:0;height:var(--control-height);padding:0 var(--control-padding-x);font:inherit;border:var(--space-1) solid var(--control-border-rest);background:var(--paper);color:var(--ink);border-radius:0;flex:140px;font-size:14px}.recipe-add-url-input:focus{border-color:var(--ink);outline:none}.recipe-add-text-input{width:100%;min-height:120px;padding:var(--space-8) var(--control-padding-x);font:inherit;border:var(--space-1) solid var(--control-border-rest);background:var(--paper);color:var(--ink);resize:vertical;border-radius:0;font-size:13px;line-height:1.45}.recipe-add-text-input--modal{resize:none;flex:1;min-height:0}.recipe-add-text-input:focus{border-color:var(--ink);outline:none}.recipe-add-text-modal{gap:var(--space-8);flex-direction:column;flex:1;min-height:0;display:flex}.recipe-add-md-tabs{border:var(--space-1) solid var(--hair);flex-shrink:0;gap:0;display:flex}.recipe-add-md-tab{padding:var(--space-8) var(--space-12);font:inherit;background:var(--paper);color:var(--muted);cursor:pointer;border:none;flex:1;font-size:13px;font-weight:600}.recipe-add-md-tab+.recipe-add-md-tab{border-left:var(--space-1) solid var(--hair)}.recipe-add-md-tab:focus-visible{outline:var(--space-1) solid var(--ink);outline-offset:-2px}.recipe-add-md-preview-wrap{min-height:0;padding:var(--space-8) var(--control-padding-x);border:var(--space-1) solid var(--control-border-rest);background:var(--paper);flex:1;overflow:auto}.recipe-add-md-preview-empty{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.recipe-add-md-preview{color:var(--ink);font-size:13px;line-height:1.5}.recipe-add-md-preview :first-child{margin-top:0}.recipe-add-md-preview :last-child{margin-bottom:0}.recipe-add-md-preview h1,.recipe-add-md-preview h2,.recipe-add-md-preview h3{margin:.75em 0 .35em;font-weight:700;line-height:1.25}.recipe-add-md-preview h1{font-size:1.25rem}.recipe-add-md-preview h2{font-size:1.1rem}.recipe-add-md-preview h3{font-size:1rem}.recipe-add-md-preview p{margin:0 0 .65em}.recipe-add-md-preview ul,.recipe-add-md-preview ol{margin:0 0 .65em;padding-left:1.35em}.recipe-add-md-preview li{margin:.2em 0}.recipe-add-md-preview code{background:var(--fog);padding:.1em .3em;font-family:ui-monospace,monospace;font-size:.92em}.recipe-add-md-preview pre{padding:var(--space-8);background:var(--fog);border:var(--space-1) solid var(--hair);margin:0 0 .65em;font-size:12px;overflow:auto}.recipe-add-md-preview pre code{background:0 0;padding:0}.recipe-add-md-preview blockquote{padding-left:var(--space-12);border-left:3px solid var(--hair);color:var(--muted);margin:0 0 .65em}.recipe-add-md-preview a{color:var(--ink);text-decoration:underline}.recipe-add-text-modal-footer{flex-shrink:0;justify-content:flex-end;display:flex}.recipe-add-submit{height:var(--control-height);padding:0 var(--space-16);font:inherit;border:var(--space-1) solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:0;flex-shrink:0;font-size:13px;font-weight:600}.recipe-add-submit:disabled{opacity:.5;cursor:not-allowed}.recipe-add-input-group--text .recipe-add-submit{align-self:flex-end}.recipe-intake-composer{border:var(--space-1) solid var(--control-border-rest);background:var(--paper);flex-direction:column;transition:border-color .15s;display:flex}.recipe-intake-composer:focus-within{border-color:var(--ink)}.recipe-intake-thumbs{gap:var(--space-6);padding:var(--space-8);border-bottom:var(--space-1) solid var(--hair);flex-wrap:wrap;margin:0;list-style:none;display:flex}.recipe-intake-thumb{background:var(--fog);border:var(--space-1) solid var(--hair);width:56px;height:56px;position:relative;overflow:hidden}.recipe-intake-thumb-img{object-fit:cover;width:100%;height:100%;display:block}.recipe-intake-thumb-remove{color:#fff;cursor:pointer;background:#000000a6;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex;position:absolute;top:2px;right:2px}.recipe-intake-thumb-remove:hover{background:#000000d9}.recipe-intake-textarea{width:100%;min-height:280px;max-height:calc(100vh - 170px);padding:var(--space-12);font:inherit;color:var(--ink);resize:none;background:0 0;border:none;outline:none;font-size:14px;line-height:1.5;overflow-y:auto}.recipe-intake-composer:has(.recipe-intake-thumbs) .recipe-intake-textarea{max-height:calc(100vh - 240px)}.recipe-intake-textarea::placeholder{color:var(--muted)}.recipe-intake-toolbar{padding:var(--space-6) var(--space-8);border-top:var(--space-1) solid var(--hair);background:var(--paper);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.recipe-intake-attach{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.recipe-intake-attach:hover{color:var(--ink);background:var(--fog)}.recipe-intake-send{border:var(--space-1) solid var(--ink);background:var(--ink);width:32px;height:32px;color:var(--paper);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s,transform 50ms;display:inline-flex}.recipe-intake-send:hover:not(:disabled){transform:translateY(-1px)}.recipe-intake-send:disabled{opacity:.35;cursor:not-allowed}.recipe-ai-bar-wrap{z-index:60;left:0;right:0;bottom:calc(30px + env(safe-area-inset-bottom,0px));width:min(720px, calc(100vw - (var(--space-24) * 2)));pointer-events:none;margin-inline:auto;position:fixed}.recipe-ai-bar{z-index:1;pointer-events:auto;align-items:flex-end;gap:var(--space-8);display:flex;position:relative}.recipe-ai-bar-blur{height:var(--ai-bar-blur-height,240px);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.recipe-ai-bar-blur>span{display:block;position:absolute;inset:0}.recipe-ai-bar-blur>span:first-child{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);-webkit-mask-image:linear-gradient(#0000 0%,#000 30% 100%);mask-image:linear-gradient(#0000 0%,#000 30% 100%)}.recipe-ai-bar-blur>span:nth-child(2){-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(#0000 30%,#000 55% 100%);mask-image:linear-gradient(#0000 30%,#000 55% 100%)}.recipe-ai-bar-blur>span:nth-child(3){-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);-webkit-mask-image:linear-gradient(#0000 55%,#000 75% 100%);mask-image:linear-gradient(#0000 55%,#000 75% 100%)}.recipe-ai-bar-blur>span:nth-child(4){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(#0000 75%,#000 95% 100%);mask-image:linear-gradient(#0000 75%,#000 95% 100%)}.recipe-ai-bar-composer{align-items:center;gap:var(--space-6);min-width:0;padding:var(--space-6);background:var(--paper);border:var(--space-1) solid var(--hair);border-radius:var(--space-24);box-shadow:0 var(--space-4) var(--space-16) #00000014;flex:1;grid-template-columns:auto 1fr auto;grid-template-areas:"attach input send";transition:border-color .15s;display:grid}.recipe-ai-bar-composer:focus-within{border-color:var(--muted);border-color:color-mix(in srgb, var(--ink) 22%, var(--hair))}.recipe-ai-bar-composer.is-multiline{align-items:center;row-gap:var(--space-6);padding:var(--space-6);grid-template:"input input input""attach.send"/auto 1fr auto}.recipe-ai-bar-thumbs{gap:var(--space-6);flex-wrap:wrap;grid-column:1/-1;margin:0;padding:0;list-style:none;display:flex}.recipe-ai-bar-composer:has(.recipe-ai-bar-thumbs){align-items:center;row-gap:var(--space-6);grid-template-rows:auto auto;grid-template-areas:"thumbs thumbs thumbs""attach input send"}.recipe-ai-bar-composer.is-multiline:has(.recipe-ai-bar-thumbs){grid-template-rows:auto auto auto;grid-template-areas:"thumbs thumbs thumbs""input input input""attach.send";align-items:center}.recipe-ai-bar-thumb{border-radius:var(--space-8);background:var(--fog);border:var(--space-1) solid var(--hair);width:48px;height:48px;position:relative;overflow:hidden}.recipe-ai-bar-thumb-img{object-fit:cover;width:100%;height:100%;display:block}.recipe-ai-bar-thumb-remove{color:#fff;cursor:pointer;background:#000000a6;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex;position:absolute;top:2px;right:2px}.recipe-ai-bar-thumb-remove:hover{background:#000000d9}.recipe-ai-bar-attach{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;grid-area:attach;justify-content:center;align-items:center;padding:0;display:inline-flex}.recipe-ai-bar-attach:hover{color:var(--ink);background:var(--fog)}.recipe-ai-bar-input,.recipe-ai-bar-input:focus,.recipe-ai-bar-input:focus-visible{box-sizing:border-box;width:100%;min-width:0;min-height:36px;max-height:80vh;margin:0 0 0 calc(-1 * var(--space-6));padding:var(--space-8) var(--space-4) var(--space-8) 0;font:inherit;box-shadow:none;color:var(--ink);resize:none;background:0 0;border:0 #0000;outline:0;grid-area:input;font-size:14px;line-height:1.4;overflow:hidden auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 16px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 16px),#0000 100%)}.recipe-ai-bar-composer.is-multiline .recipe-ai-bar-input{padding:var(--space-8) var(--space-6);margin:0;-webkit-mask-image:none;mask-image:none}.recipe-ai-bar-input::placeholder{color:var(--muted);white-space:nowrap}.recipe-ai-bar-send{border:var(--space-1) solid var(--ink);background:var(--ink);width:36px;height:36px;color:var(--paper);cursor:pointer;border-radius:50%;grid-area:send;justify-content:center;align-items:center;padding:0;transition:opacity .15s,transform 50ms;display:inline-flex}.recipe-ai-bar-send:hover:not(:disabled){transform:translateY(-1px)}.recipe-ai-bar-send:disabled{opacity:.3;cursor:not-allowed}.recipe-ai-bar-error{padding:0 var(--space-4);color:#6b1f1f;grid-column:1/-1;margin:0;font-size:12px}.recipe-ai-bar-manual{border:var(--space-1) solid var(--hair);background:var(--paper);width:48px;height:48px;color:var(--ink);cursor:pointer;box-shadow:0 var(--space-4) var(--space-16) #00000014;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s;display:inline-flex}.recipe-ai-bar-manual:hover:not(:disabled){background:var(--fog);border-color:var(--ink)}.recipe-ai-bar-manual:disabled{opacity:.55;cursor:wait}.recipe-ai-bar,.recipe-ai-bar-blur{transform-origin:100% 100%;transition:opacity .22s,transform .22s}.recipe-ai-bar-wrap[data-collapsed=true] .recipe-ai-bar{opacity:0;pointer-events:none;transform:scale(.92)}.recipe-ai-bar-wrap[data-collapsed=true] .recipe-ai-bar-blur{opacity:0}.recipe-ai-bar-refine-fab{border:var(--space-1) solid #c8c8c8;background:var(--paper);width:50px;height:50px;color:var(--ink);cursor:pointer;box-shadow:0 var(--space-4) var(--space-16) #00000014;opacity:0;transform-origin:100% 100%;pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:opacity .22s,transform .22s,background .15s,border-color .15s;display:inline-flex;position:absolute;bottom:0;right:0;transform:scale(.8)}.recipe-ai-bar-wrap[data-collapsed=true] .recipe-ai-bar-refine-fab{opacity:1;pointer-events:auto;transform:scale(1)}.recipe-ai-bar-refine-fab:hover{background:var(--fog);border-color:var(--ink)}.recipe-ai-bar-refine-fab:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media (prefers-reduced-motion:reduce){.recipe-ai-bar,.recipe-ai-bar-blur,.recipe-ai-bar-refine-fab{transition:none}}.recipe-ai-bar-wrap[data-modal-footer=true]{box-sizing:border-box;width:100%;max-width:none;padding:var(--space-24);pointer-events:auto;z-index:2;margin-top:auto;position:sticky;bottom:0;left:auto;right:auto;transform:none}.recipe-ai-bar-wrap[data-modal-footer=true] .recipe-ai-bar-blur{position:absolute;inset:auto 0 0}.recipe-ai-bar-wrap[data-on-recipe=true] .recipe-ai-bar-blur{background:linear-gradient(to top, var(--paper,#fff) 0, var(--paper,#fff) calc(100% - 56px), #fff0 100%)}.recipe-ai-bar-wrap[data-on-recipe=true] .recipe-ai-bar-blur>span{display:none}.recipe-ai-bar-wrap[data-modal-footer=true][data-collapsed=true] .recipe-ai-bar{left:var(--space-24);right:var(--space-24);bottom:var(--space-24);position:absolute}.recipe-ai-bar-wrap[data-modal-footer=true][data-collapsed=true]{min-height:calc(50px + var(--space-32));padding:var(--space-16) var(--space-24)}.draft-review{padding-block-start:0}@media (max-width:52rem){.draft-review .recipe-detail-layout{grid-template-columns:1fr}.draft-review .recipe-detail-aside{order:-1;position:static}}[data-sonner-toaster]{z-index:10050}.recipe-detail{position:relative}.recipe-detail-mode-btn{appearance:none;font:inherit;text-transform:uppercase;letter-spacing:.08em;padding:var(--space-6) var(--space-12);border:var(--space-1) solid var(--ink);background:var(--paper);min-height:32px;color:var(--ink);cursor:pointer;border-radius:0;font-size:12px;font-weight:600}.recipe-detail-mode-btn:hover{background:var(--mist)}.recipe-detail-mode-btn--editing{background:var(--ink);color:var(--paper)}.recipe-detail-mode-btn--editing:hover{background:var(--ink);opacity:.9}.recipe-detail--edit .recipe-detail-title-input{padding-right:5rem}.recipe-detail-title-static{box-sizing:border-box;width:100%;margin:0 0 var(--space-8);letter-spacing:-.02em;color:var(--ink);font-size:1.5rem;font-weight:700;line-height:1.15}.recipe-detail-title-qualifier-static{font-size:inherit;line-height:inherit;letter-spacing:inherit;color:var(--muted);margin:0;font-weight:400;display:inline}.recipe-detail-description-static{margin:0 0 var(--space-16);color:var(--ink);font-size:.9375rem;line-height:1.55}.recipe-detail-servings-static{margin:var(--space-16) 0 0;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:12px;font-weight:600}.recipe-detail-ingredients-meta-row{justify-content:space-between;align-items:center;gap:var(--space-16);margin:var(--space-16) 0 0;display:flex}.recipe-detail-ingredients-meta-row .recipe-detail-servings-stepper,.recipe-detail-ingredients-meta-row .recipe-detail-servings-static{margin:0}.recipe-detail-time-static{align-items:center;gap:var(--space-4);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);text-align:right;margin:0;font-size:12px;font-weight:600;display:inline-flex}.recipe-detail-servings-stepper{align-items:center;gap:var(--space-8);margin:var(--space-16) 0 0;display:inline-flex}.recipe-detail-servings-stepper-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);text-align:center;min-width:5.5em;font-size:12px;font-weight:600}.recipe-detail-servings-stepper-btn{border:1px solid var(--border,#ddd);width:22px;height:22px;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.recipe-detail-servings-stepper-btn:hover:not(:disabled){color:#111;background:#f3f3f3}.recipe-detail-servings-stepper-btn:disabled{opacity:.4;cursor:not-allowed}.recipe-detail-aside-edit-wrap{gap:var(--space-8);flex-direction:column;display:flex}.recipe-detail-aside-edit-wrap .recipe-detail-mode-btn{justify-content:center;align-items:center;width:100%;display:inline-flex}.recipe-detail-aside-delete{appearance:none;width:100%;font:inherit;text-transform:uppercase;letter-spacing:.08em;padding:var(--space-6) var(--space-12);border:var(--space-1) solid #e74c3c;background:var(--paper);color:#e74c3c;cursor:pointer;border-radius:0;justify-content:center;align-items:center;min-height:32px;font-size:12px;font-weight:600;display:inline-flex}.recipe-detail-aside-delete:hover:not(:disabled){color:var(--paper);background:#e74c3c}.recipe-detail-aside-delete:disabled{opacity:.5;cursor:not-allowed}.community-save-actions{flex-direction:column;gap:8px;width:100%;display:flex}.recipe-detail-generate-image-wrap{display:flex}.recipe-detail-generate-image-btn{justify-content:center;align-items:center;width:100%;font-size:12px;display:inline-flex}.recipe-detail-notes-static{color:var(--ink);margin:0;line-height:1.5}.recipe-detail-meta-static{gap:var(--space-16);color:var(--ink);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.recipe-detail-meta-static-item{align-items:baseline;gap:var(--space-4);font-size:13px;display:inline-flex}.recipe-detail-meta-static-value{font-weight:700}.recipe-detail-meta-static-unit{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.recipe-detail-photo-panel--static{position:relative;overflow:hidden}.recipe-detail-photo--static{aspect-ratio:1;background-repeat:no-repeat;background-size:cover;width:100%;display:block}.recipe-meal-types--static .recipe-meal-types-static-list{gap:var(--space-6);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.recipe-meal-types-static-pill{padding:var(--space-4) var(--space-8);color:var(--ink);background:var(--mist);border:var(--space-1) solid var(--hair);border-radius:0;align-items:center;font-size:12px;display:inline-flex}.recipe-ingredient-name--static{display:inline-block}.recipe-ingredient-optional-flag,.recipe-ingredient-preparation{color:var(--ink-faint);font-weight:400}.recipe-ingredient-out-of-stock-badge{letter-spacing:.06em;text-transform:uppercase;background:var(--amber-bg,#fef3c7);width:fit-content;color:var(--amber-text,#92400e);border:1px solid var(--amber-border,#fcd34d);vertical-align:middle;white-space:nowrap;cursor:pointer;border-radius:3px;margin-top:4px;margin-left:0;padding:1px 6px;font-family:inherit;font-size:10px;font-weight:700;line-height:1.5;transition:background .12s,border-color .12s,transform 80ms;display:block}.recipe-ingredient-out-of-stock-badge:hover:not(:disabled){background:var(--amber-border,#fcd34d)}.recipe-ingredient-out-of-stock-badge:active:not(:disabled){transform:scale(.96)}.recipe-ingredient-out-of-stock-badge:focus-visible{outline:2px solid var(--amber-text,#92400e);outline-offset:2px}.recipe-ingredient-out-of-stock-badge:disabled{cursor:progress;opacity:.7}.recipe-ingredient-row--prepared .recipe-ingredient-out-of-stock-badge{opacity:.55}.recipe-detail-headnote-static{color:var(--ink-soft);margin:0 0 16px;line-height:1.55}.recipe-detail-headnote-input{margin-bottom:12px}.recipe-ingredient-amount-display--static{cursor:default}.recipe-ingredient-amount-display--static:hover{background:0 0}.recipe-ingredient-unit-text{color:var(--ink-soft);padding:0;font-size:16px;font-weight:400;line-height:20px;display:inline-block}.recipe-detail--view .recipe-ingredient-row .recipe-ingredient-name-button,.recipe-detail--view .recipe-ingredient-row .recipe-ingredient-amount-display{pointer-events:none}.recipe-instruction-body-static{font:inherit;color:var(--ink-faint);white-space:pre-wrap;margin:0;padding:0;font-size:16px;font-weight:400;line-height:20px}.recipe-instruction-body-static--empty{color:var(--muted)}.recipe-instruction-row--static{cursor:pointer}.recipe-instruction-step-ingredients{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.recipe-instruction-step-ingredient-item{margin:0;padding:0}.recipe-instruction-step-ingredient{appearance:none;text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;align-items:flex-start;gap:8px;margin:0;padding:4px 0;display:flex}.recipe-instruction-step-ingredient-icon{width:16px;min-width:16px;height:16px;min-height:16px;color:var(--ink,#0a0a0a);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.recipe-instruction-step-ingredient--checked .recipe-instruction-step-ingredient-icon{color:var(--ink-faint)}.recipe-instruction-step-ingredient-label{color:var(--ink-faint);min-width:0;font-size:14px;line-height:18px}.recipe-instruction-step-ingredient-name{color:var(--ink-soft);font-weight:600}.recipe-instruction-step-ingredient-prep,.recipe-instruction-step-ingredient-amount,.recipe-instruction-step-ingredient-optional{color:var(--ink-faint);font-weight:400}.recipe-instruction-step-ingredient--checked .recipe-instruction-step-ingredient-label,.recipe-instruction-step-ingredient--checked .recipe-instruction-step-ingredient-name,.recipe-instruction-step-ingredient--checked .recipe-instruction-step-ingredient-prep,.recipe-instruction-step-ingredient--checked .recipe-instruction-step-ingredient-amount,.recipe-instruction-step-ingredient--checked .recipe-instruction-step-ingredient-optional{color:var(--ink-faint);text-decoration:line-through}.recipe-ingredient-row--tap-toggle{cursor:pointer}.recipe-detail--view .recipe-instruction-lead-cell{cursor:default}.ingredients-table.inventory-table--compact{table-layout:auto;width:100%;min-width:0}.inventory-table .ingredients-table.inventory-table--compact{table-layout:auto}.inventory-table--compact>tbody>tr{height:44px}.inventory-table--compact>tbody>tr>td{padding-top:var(--space-10,10px);padding-bottom:11px;padding-left:var(--space-8,8px);padding-right:var(--space-8,8px)}.inventory-table--compact>tbody>tr>td:last-child{white-space:nowrap;text-align:right;width:1%}.inventory-image-tile{appearance:none;width:100%;min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;margin:0;padding:0;display:block}.inventory-image-tile-visual{aspect-ratio:1;background:color-mix(in srgb, var(--ink) 2%, var(--paper));display:block;position:relative;overflow:hidden}.inventory-image-tile:hover .inventory-image-tile-visual,.inventory-image-tile:focus-visible .inventory-image-tile-visual,.inventory-image-tile--selected .inventory-image-tile-visual{box-shadow:inset 0 0 0 2px var(--ink)}.inventory-image-tile:focus-visible{outline:none}.inventory-image-tile--just-applied .inventory-image-tile-visual{box-shadow:inset 0 0 0 2px #d6ad21}.inventory-ingredient-image{aspect-ratio:1;background-color:color-mix(in srgb, var(--ink) 2%, var(--paper));width:100%;display:block;position:relative;overflow:hidden}.inventory-ingredient-image-asset{object-fit:cover}.inventory-ingredient-image-fallback{color:var(--ink-faint);background:linear-gradient(135deg, transparent 0 49.5%, color-mix(in srgb, var(--ink) 4%, transparent) 49.5% 50.5%, transparent 50.5% 100%), color-mix(in srgb, var(--ink) 2%, var(--paper));justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.inventory-image-tile-expiry{top:var(--space-8,8px);left:var(--space-8,8px);z-index:2;min-height:26px;padding:0 var(--space-8,8px);color:#fff;white-space:nowrap;background:#0a0a0a;border:0;border-radius:999px;align-items:center;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:absolute;box-shadow:0 2px 6px #00000059}.inventory-image-tile-expiry--warning{color:#fff;background:#eab308}.inventory-image-tile-expiry--expiring{color:#fff;background:#f97316}.inventory-image-tile-expiry--past_shelf_life,.inventory-image-tile-expiry--expired{color:#fff;background:#dc2626}.inventory-image-tile-copy{min-width:0;padding:var(--space-6,6px) var(--space-2,2px) var(--space-4,4px);display:block}.inventory-image-tile-name{text-overflow:ellipsis;min-width:0;color:var(--ink);white-space:nowrap;font-size:13px;font-weight:550;line-height:1.3;display:block;overflow:hidden}.detail-sheet-ingredient-image{width:100%;margin:0 0 var(--space-24,24px);border:var(--space-1,1px) solid var(--hair);box-sizing:border-box;flex-shrink:0}@media (max-width:500px){.inventory-image-tile-copy{padding:var(--space-4,4px) 1px var(--space-6,6px)}.inventory-image-tile-name{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.35em;font-size:11.5px;line-height:1.18;display:-webkit-box;overflow:hidden}.inventory-image-tile-expiry{top:var(--space-4,4px);left:var(--space-4,4px);min-height:18px;padding-inline:var(--space-4,4px);font-size:9px}}:root{--inventory-category-column-width:174px}@media (min-width:2000px){:root{--inventory-category-column-width:194px}}.detail-sheet-expiry{align-items:center;gap:var(--space-6,6px);display:inline-flex}.detail-sheet-expiry-pill{letter-spacing:.02em;background:var(--soft-tint,#f4f4f5);height:16px;color:var(--ink,#18181b);border:1px solid #0000;border-radius:9999px;align-items:center;padding:0 6px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.detail-sheet-expiry--warning .detail-sheet-expiry-pill{color:#92400e;background:#fff7e6;border-color:#fde68a}.detail-sheet-expiry--expiring .detail-sheet-expiry-pill{color:#9a3412;background:#ffedd5;border-color:#fdba74}.detail-sheet-expiry--past_shelf_life .detail-sheet-expiry-pill,.detail-sheet-expiry--expired .detail-sheet-expiry-pill{color:var(--danger-text-strong,#991b1b);background:#fee2e2;border-color:#fecaca}.detail-sheet-backdrop{z-index:100;padding:var(--detail-sheet-margin,8px) var(--detail-sheet-margin,8px) var(--detail-sheet-margin,8px) 0;box-sizing:border-box;pointer-events:none;background:0 0;justify-content:flex-end;align-items:stretch;display:flex;position:fixed;inset:0}.detail-sheet-backdrop .detail-sheet{pointer-events:auto}:root{--detail-sheet-margin:8px;--detail-sheet-width:min(480px, calc(100vw - var(--detail-sheet-margin)))}.detail-sheet{width:var(--detail-sheet-width);background:var(--paper,#fff);border:1px solid var(--hair,#e8e8e8);max-height:100%;box-shadow:0 var(--space-4) var(--space-16) #0000001a;border-radius:12px;flex-direction:column;align-self:stretch;animation:.18s ease-out detail-sheet-enter;display:flex;overflow:hidden}[data-theme=dark] .detail-sheet{border-color:var(--hair,#333);box-shadow:0 var(--space-4) var(--space-24) #00000059}@keyframes detail-sheet-enter{0%{transform:translateX(calc(100% + var(--detail-sheet-margin)))}to{transform:translate(0)}}.detail-sheet-header{padding:var(--space-16,16px) var(--space-20,20px);border-bottom:1px solid var(--hair,#eee);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.detail-sheet-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:18px;font-weight:600;line-height:1.3;overflow:hidden}.detail-sheet-title--editable{cursor:text;-webkit-user-select:none;user-select:none;border-radius:4px;margin:-2px -6px;padding:2px 6px}.detail-sheet-title--editable:hover{background-image:var(--hover-fill-overlay)}.detail-sheet-title-input{border:1px solid var(--hair,#eee);background:var(--paper,#fff);min-width:0;color:var(--ink,#222);border-radius:4px;outline:none;flex:1;margin:0;padding:2px 6px;font-family:inherit;font-size:18px;font-weight:600;line-height:1.3}.detail-sheet-title-input:focus{border-color:var(--ink,#222)}.detail-sheet-close{width:32px;height:32px;color:var(--ink,#222);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.detail-sheet-close:hover{background-image:var(--hover-fill-overlay)}.detail-sheet-header-actions{align-items:center;gap:var(--space-4,4px);flex-shrink:0;display:inline-flex}.detail-sheet-icon-btn{width:32px;height:32px;color:var(--ink,#222);cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.detail-sheet-icon-btn:hover,.detail-sheet-icon-btn[data-popup-open]{background-image:var(--hover-fill-overlay)}.detail-sheet-menu-positioner{z-index:200}.detail-sheet-menu{background:var(--paper,#fff);border:var(--space-1,1px) solid var(--ink,#222);padding:var(--space-4,4px) 0;outline:none;min-width:180px;box-shadow:0 6px 24px #0000002e}.detail-sheet-menu-item{align-items:center;gap:var(--space-8,8px);width:100%;padding:var(--space-8,8px) var(--space-12,12px);font:inherit;color:var(--ink,#222);cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;background:0 0;border:none;font-size:13px;display:flex}.detail-sheet-menu-item:focus,.detail-sheet-menu-item[data-highlighted]{background-image:var(--hover-fill-overlay);outline:none}.detail-sheet-menu-separator{height:1px;margin:var(--space-4,4px) 0;background:var(--ink,#222);opacity:.18;border:none}.detail-sheet-menu-item-trailing{letter-spacing:.04em;text-transform:uppercase;color:var(--ink,#222);opacity:.55;margin-left:auto;font-size:11px}.detail-sheet-menu-item--active .detail-sheet-menu-item-trailing{opacity:1;font-weight:600}.detail-sheet-menu-item--destructive{color:var(--danger-text,#b91c1c)}.detail-sheet-menu-item--destructive:focus,.detail-sheet-menu-item--destructive[data-highlighted]{background-image:var(--hover-fill-overlay);color:var(--danger-text-strong,#991b1b)}.detail-sheet-menu-item--destructive[data-disabled]{opacity:.45;cursor:not-allowed}.modal.organize-modal-shell{z-index:200}.modal-card.organize-modal{max-width:var(--space-832,832px);width:min(var(--space-832,832px), 94vw);flex-direction:column;max-height:88vh;display:flex}.modal-card.organize-modal--wide{max-width:var(--space-1024,1024px);width:min(var(--space-1024,1024px), 96vw)}.organize-modal-body{padding:var(--space-24,24px) var(--space-28,28px) var(--space-28,28px);padding-right:calc(var(--space-28,28px) + var(--space-24,24px));flex:1;min-height:0;overflow-y:auto}.organize-modal-title{margin:0 0 var(--space-8,8px);letter-spacing:-.02em;font-size:18px;font-weight:700;line-height:1.25}.organize-modal-name{font-style:italic}.organize-modal-help{margin:0 0 var(--space-16,16px);color:var(--muted,#666);font-size:13px;line-height:1.5}.organize-modal-error{margin:var(--space-12,12px) 0 0;color:#c0392b;font-size:13px}.organize-modal-actions{gap:var(--space-8,8px);margin-top:var(--space-20,20px);flex-wrap:wrap;justify-content:flex-end;display:flex}.organize-modal-cancel{border:var(--space-1,1px) solid var(--ink,#222);background:var(--paper,#fff);color:var(--ink,#222);font:inherit;letter-spacing:.03em;text-transform:uppercase;padding:var(--space-8,8px) var(--space-16,16px);cursor:pointer;font-size:12px;font-weight:600}.organize-modal-cancel:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.organize-modal-confirm{border:var(--space-2,2px) solid var(--ink,#222);background:var(--ink,#222);color:var(--paper,#fff);font:inherit;letter-spacing:.03em;text-transform:uppercase;padding:var(--space-8,8px) var(--space-16,16px);cursor:pointer;font-size:12px;font-weight:600}.organize-modal-confirm:disabled{opacity:.45;cursor:not-allowed}.organize-picker{gap:var(--space-8,8px);flex-direction:column;display:flex}.organize-picker-input{box-sizing:border-box;border:var(--space-1,1px) solid var(--ink,#222);width:100%;padding:var(--space-8,8px) var(--space-12,12px);font:inherit;border-radius:0;font-size:14px}.organize-picker-input:focus{outline:var(--space-1,1px) solid var(--ink,#222);outline-offset:2px}.organize-picker-list{border:var(--space-1,1px) solid var(--hair,#eee);max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.organize-picker-empty{padding:var(--space-12,12px);color:var(--muted,#666);font-size:13px}.organize-picker-row{width:100%;padding:var(--space-8,8px) var(--space-12,12px);font:inherit;text-align:left;cursor:pointer;border:none;border-bottom:var(--space-1,1px) solid var(--hair,#eee);background:0 0;flex-direction:column;gap:2px;display:flex}.organize-picker-row:last-child{border-bottom:none}.organize-picker-row:hover{background-image:var(--hover-fill-overlay)}.organize-picker-row--selected{background:var(--ink,#222);color:var(--paper,#fff)}.organize-picker-row--selected:hover{filter:brightness(1.05);background-image:none}.organize-picker-row-name{font-size:14px;font-weight:500}.organize-picker-row-sub{letter-spacing:.03em;text-transform:uppercase;color:var(--muted,#666);font-size:11px}.organize-picker-row--selected .organize-picker-row-sub{color:#ffffffbf}.merge-side-by-side-shortcuts{gap:var(--space-12,12px);margin:0 0 var(--space-12,12px);grid-template-columns:1fr 1fr;padding-left:160px;display:grid}.merge-side-by-side-shortcut{gap:var(--space-4,4px);flex-direction:column;align-items:flex-start;display:flex}.merge-side-label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#666);font-size:11px;font-weight:700}.merge-side-use-all{border:var(--space-1,1px) solid var(--ink,#222);background:var(--paper,#fff);font:inherit;letter-spacing:.03em;text-transform:uppercase;padding:var(--space-4,4px) var(--space-8,8px);cursor:pointer;font-size:11px;font-weight:600}.merge-side-use-all:hover{background-image:var(--hover-fill-overlay)}.merge-side-by-side{border:var(--space-1,1px) solid var(--hair,#eee);flex-direction:column;display:flex}.merge-field-row{border-bottom:var(--space-1,1px) solid var(--hair,#eee);grid-template-columns:160px 1fr 1fr;gap:0;display:grid}.merge-field-row:last-child{border-bottom:none}.merge-field-label{padding:var(--space-8,8px) var(--space-12,12px);letter-spacing:.02em;color:var(--muted,#666);background:var(--paper-soft,#fafafa);align-items:center;font-size:12px;font-weight:600;display:flex}.merge-field-side{padding:var(--space-8,8px) var(--space-12,12px);border:none;border-left:var(--space-1,1px) solid var(--hair,#eee);background:var(--paper,#fff);font:inherit;text-align:left;cursor:pointer;color:var(--ink,#222);word-break:break-word;font-size:13px}.merge-field-side:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.merge-field-side--picked{background:var(--ink,#222);color:var(--paper,#fff)}.merge-field-side--picked:hover:not(:disabled){filter:brightness(1.05);background-image:none}.merge-field-side:disabled{cursor:default;opacity:.7}.merge-field-row--same .merge-field-label{opacity:.6}@media (max-width:720px){.merge-field-row{grid-template-columns:1fr}.merge-field-side{border-left:none;border-top:var(--space-1,1px) solid var(--hair,#eee)}.merge-side-by-side-shortcuts{padding-left:0}}.detail-sheet-body{padding:var(--space-16,16px) var(--space-20,20px) var(--space-24,24px);flex:1;overflow-y:auto}.detail-sheet-section{margin-bottom:var(--space-24,24px)}.detail-sheet-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin:0 0 var(--space-12,12px);align-items:baseline;gap:var(--space-8,8px);font-size:13px;font-weight:700;display:flex}.detail-sheet-per100g{text-transform:none;letter-spacing:0;color:#aaa;font-size:11px;font-weight:400}.detail-sheet-section-header{margin-bottom:var(--space-12,12px);justify-content:space-between;align-items:center;display:flex}.detail-sheet-section-header .detail-sheet-section-title{margin-bottom:0}.detail-sheet-calc-btn{align-items:center;gap:var(--space-4,4px);padding:var(--space-4,4px) var(--space-8,8px);font:inherit;border:1px solid var(--hair,#ddd);color:var(--ink,#222);cursor:pointer;white-space:nowrap;background:0 0;font-size:12px;font-weight:500;display:inline-flex}.detail-sheet-calc-btn:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.detail-sheet-calc-btn:disabled{opacity:.5;cursor:wait}.detail-sheet-dl{grid-template-columns:1fr 1fr;gap:0;margin:0;display:grid}.detail-sheet-row{display:contents}.detail-sheet-label{color:var(--ink-muted);padding:var(--space-6,6px) 0;border-bottom:1px solid #f3f3f3;font-size:13px}.detail-sheet-value{color:var(--ink,#222);padding:var(--space-6,6px) 0;text-align:right;border-bottom:1px solid #f3f3f3;margin:0;font-size:13px;font-weight:500}.detail-sheet-row--just-refreshed>.detail-sheet-label,.detail-sheet-row--just-refreshed>.detail-sheet-value{background:#fff3a3;border-radius:4px;margin-inline:-6px;padding-inline:6px;animation:10s ease-out forwards detail-sheet-refresh-fade}.detail-sheet-section-title--just-refreshed{background:#fff3a3;border-radius:4px;margin-inline:-6px;padding:2px 6px;animation:10s ease-out forwards detail-sheet-refresh-fade}@keyframes detail-sheet-refresh-fade{0%,85%{background:#fff3a3}to{background:0 0}}.detail-sheet-macros .detail-sheet-value{font-variant-numeric:tabular-nums}.detail-sheet-inherited-price{font-variant-numeric:tabular-nums;border-bottom:1px dotted var(--ink-muted);cursor:help}.detail-sheet-value--editable{justify-content:flex-end;align-items:stretch;padding:0;display:flex}.detail-sheet-editable-number{justify-content:flex-end;align-items:baseline;gap:var(--space-4,4px);width:100%;padding:var(--space-6,6px) 0;display:inline-flex}.detail-sheet-input{width:100%;min-width:0;height:auto;min-height:0;font:inherit;color:var(--ink,#222);text-align:right;cursor:text;box-sizing:border-box;background:0 0;border:none;border-radius:0;outline:none;flex:auto;margin:0;padding:0;font-size:13px;font-weight:500}.detail-sheet-input:hover{background-image:var(--hover-fill-overlay)}.detail-sheet-input:focus{background-image:var(--hover-fill-overlay);outline:none}.detail-sheet-input-suffix{color:var(--ink,#222);flex-shrink:0;font-size:13px;font-weight:500}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select{width:100%;max-width:100%;padding:var(--space-6,6px) 0}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-trigger{width:100%;min-width:0;height:auto;min-height:0;color:var(--ink,#222);cursor:pointer;background:0 0;border:none;justify-content:flex-end;padding:0;font-size:13px;font-weight:500}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-trigger:hover:not(:disabled){background-image:var(--hover-fill-overlay)}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-trigger:focus{outline:none}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-trigger-label{text-align:right;flex:0 auto}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-caret,.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-caret-phosphor{opacity:.6;fill:currentColor;flex-shrink:0}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select.ss-open .ss-input-wrap{flex-direction:row;justify-content:flex-end;align-items:center;gap:2px;width:100%;display:inline-flex}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-input{text-align:right;background:0 0;border:none;flex:auto;width:auto;min-width:0;height:auto;padding:0;font-size:13px}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-input:focus{outline:none}.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-input-wrap .ss-caret,.detail-sheet .ss-root.ss-bare-inline.detail-sheet-select .ss-input-wrap .ss-caret-phosphor{position:static;right:auto}.detail-sheet-estimate-badge{color:#8b6914;padding:var(--space-4,4px) var(--space-8,8px);margin:var(--space-8,8px) 0 0;background:#fef9e7;font-size:11px}.detail-sheet-source{color:var(--ink-faint);margin:var(--space-8,8px) 0 0;font-size:11px}.detail-sheet-notes{color:var(--ink-faint);margin:var(--space-4,4px) 0 0;font-size:11px;line-height:1.4}.detail-sheet-empty{color:#aaa;margin:0;font-size:12px;font-style:italic}.detail-sheet-nutrient-grid{grid-template-columns:1fr 1fr;gap:0;display:grid}.detail-sheet-nutrient-item{padding:var(--space-4,4px) 0;border-bottom:1px solid #f5f5f5;justify-content:space-between;font-size:12px;display:flex}.detail-sheet-nutrient-item:nth-child(odd){padding-right:var(--space-12,12px);border-right:1px solid #f5f5f5}.detail-sheet-nutrient-item:nth-child(2n){padding-left:var(--space-12,12px)}.detail-sheet-nutrient-name{color:var(--ink-muted)}.detail-sheet-nutrient-value{font-variant-numeric:tabular-nums;color:var(--ink,#222);font-weight:500}.detail-sheet-portions{margin:0;padding:0;list-style:none}.detail-sheet-portion-item{padding:var(--space-4,4px) 0;color:var(--ink-soft);border-bottom:1px solid #f5f5f5;font-size:12px}.detail-sheet-portion-source{color:#aaa;font-size:11px}.detail-sheet-footer{margin-top:var(--space-32,32px);padding-top:var(--space-16,16px);border-top:1px solid #eee}.ingredient-products-list{margin:0 0 var(--space-8,8px);gap:var(--space-4,4px);flex-direction:column;padding:0;list-style:none;display:flex}.ingredient-products-item{align-items:start;gap:var(--space-8,8px);padding:var(--space-8,8px) 0;border-bottom:1px solid #f3f3f3;grid-template-columns:auto 1fr auto;font-size:13px;display:grid}.ingredient-products-item--editing{padding:var(--space-8,8px) 0;display:block}.ingredient-products-rank{font-variant-numeric:tabular-nums;color:var(--ink-muted);min-width:18px;padding-top:2px;font-size:12px;font-weight:500}.ingredient-products-body{flex-direction:column;gap:2px;min-width:0;display:flex}.ingredient-products-name-row{align-items:center;gap:var(--space-4,4px);min-width:0;display:inline-flex}.ingredient-products-name{color:var(--ink,#222);text-overflow:ellipsis;font-weight:500;overflow:hidden}.ingredient-products-meta{color:var(--ink-muted);font-size:12px}.ingredient-products-notes{color:var(--ink-soft);font-size:12px;line-height:1.4}.ingredient-products-off-badges{flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.off-badge{letter-spacing:.02em;border-radius:4px;align-items:center;gap:4px;height:18px;padding:0 6px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.off-badge--nutri{color:#fff;justify-content:center;width:18px;padding:0;font-size:11px}.off-badge--nutri-a{background:#038141}.off-badge--nutri-b{background:#85bb2f}.off-badge--nutri-c{color:#222;background:#fecb02}.off-badge--nutri-d{background:#ee8100}.off-badge--nutri-e{background:#e63e11}.off-badge--nova{color:#444;background:#eef0f3}.off-badge--nova-4{color:#8b1d12;background:#fce8e6}.off-badge--allergens{color:#5a4a00;text-transform:lowercase;letter-spacing:0;background:#fff3a3;font-weight:500}.ingredient-products-attribution{margin-top:var(--space-8,8px);color:var(--ink-muted);font-size:11px;line-height:1.4}.ingredient-products-attribution a{color:inherit;text-decoration:underline}.ingredient-products-field-hint{color:var(--ink-muted);margin-left:4px;font-size:11px;font-weight:400}.ingredient-products-side{align-items:flex-end;gap:var(--space-4,4px);flex-direction:column;flex-shrink:0;display:flex}.ingredient-products-price{color:var(--ink,#222);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:600}.ingredient-products-actions{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.ingredient-products-action{width:24px;height:24px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;display:inline-flex}.ingredient-products-action:hover:not(:disabled){color:var(--ink,#222);background-image:var(--hover-fill-overlay)}.ingredient-products-action:disabled{opacity:.3;cursor:not-allowed}.ingredient-products-action--danger:hover:not(:disabled){color:#c0392b}.ingredient-products-add-btn{align-items:center;gap:var(--space-4,4px);padding:var(--space-4,4px) var(--space-8,8px);margin-top:var(--space-4,4px);font:inherit;color:var(--ink-muted);border:1px dashed var(--hair,#ddd);cursor:pointer;background:0 0;border-radius:3px;font-size:12px;font-weight:500;display:inline-flex}.ingredient-products-add-btn:hover:not(:disabled){color:var(--ink,#222);border-color:var(--ink,#222)}.ingredient-products-add-btn:disabled{opacity:.5;cursor:wait}.ingredient-products-add{padding:var(--space-8,8px) 0}.ingredient-products-form{gap:var(--space-8,8px);padding:var(--space-12,12px);border:1px solid var(--hair,#eee);background:#fafafa;border-radius:4px;flex-direction:column;display:flex}.ingredient-products-field{flex-direction:column;gap:2px;display:flex}.ingredient-products-field-row{gap:var(--space-8,8px);grid-template-columns:1fr auto;display:grid}.ingredient-products-field--price{width:96px}.ingredient-products-unit-size{gap:var(--space-8,8px);grid-template-columns:1fr 100px;display:grid}.ingredient-products-unit-size-unit{font:inherit;background:var(--paper,#fff);color:var(--ink,#222);cursor:pointer;font-size:13px}.ingredient-products-field-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.ingredient-products-input{font:inherit;padding:var(--space-6,6px) var(--space-8,8px);border:1px solid var(--hair,#ddd);background:var(--paper,#fff);color:var(--ink,#222);border-radius:3px;outline:none;font-size:13px}.ingredient-products-input:focus{border-color:var(--ink,#222)}.ingredient-products-textarea{resize:vertical;min-height:44px;font-family:inherit}.ingredient-products-form-actions{justify-content:flex-end;align-items:center;gap:var(--space-8,8px);margin-top:var(--space-4,4px);display:flex}.ingredient-products-form-cancel{align-items:center;gap:var(--space-4,4px);padding:var(--space-6,6px) var(--space-10,10px);font:inherit;border:1px solid var(--hair,#ddd);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:3px;font-size:12px;font-weight:500;display:inline-flex}.ingredient-products-form-cancel:hover:not(:disabled){color:var(--ink,#222);border-color:var(--ink,#222)}.ingredient-products-form-submit{padding:var(--space-6,6px) var(--space-12,12px);font:inherit;border:1px solid var(--ink,#222);background:var(--ink,#222);color:var(--paper,#fff);cursor:pointer;border-radius:3px;font-size:12px;font-weight:600}.ingredient-products-form-submit:hover:not(:disabled){opacity:.85}.ingredient-products-form-submit:disabled,.ingredient-products-form-cancel:disabled{opacity:.5;cursor:wait}.detail-sheet-delete-btn{justify-content:center;align-items:center;gap:var(--space-8,8px);width:100%;padding:var(--space-12,12px) var(--space-16,16px);font:inherit;letter-spacing:.03em;text-transform:uppercase;color:#c0392b;cursor:pointer;background:0 0;border:1px solid #c0392b;border-radius:0;font-size:12px;font-weight:600;transition:background-color .12s,color .12s;display:inline-flex}.detail-sheet-delete-btn:hover:not(:disabled){color:var(--paper,#fff);background:#c0392b}.detail-sheet-delete-btn:disabled{opacity:.5;cursor:not-allowed}.recipe-detail-dialog{color:inherit;box-sizing:border-box;background:0 0;border:0;width:100dvw;max-width:100dvw;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow:visible}.recipe-detail-dialog[open]{justify-content:center;align-items:stretch;display:flex}.recipe-detail-dialog::backdrop{background:0 0}.recipe-detail-dialog-surface{background:var(--paper);color:var(--ink);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-sizing:border-box;flex-direction:column;width:100%;height:100%;max-height:100dvh;animation:.22s cubic-bezier(.32,.72,0,1) recipe-detail-dialog-slide-in;display:flex;position:relative;overflow-y:auto}.recipe-detail-dialog-surface>.recipe-detail--in-modal{flex-direction:column;flex:auto;min-height:0;display:flex}.recipe-detail-dialog[data-closing=true] .recipe-detail-dialog-surface{animation:.22s cubic-bezier(.32,.72,0,1) forwards recipe-detail-dialog-slide-out}@keyframes recipe-detail-dialog-slide-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes recipe-detail-dialog-slide-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes recipe-detail-dialog-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes recipe-detail-dialog-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.recipe-detail-dialog-surface,.recipe-detail-dialog[data-closing=true] .recipe-detail-dialog-surface{animation:none!important}}@media (min-width:600px){.recipe-detail-dialog::backdrop{background:#00000040}.recipe-detail-dialog[open]{padding:var(--space-24);align-items:center}.recipe-detail-dialog-surface{width:100%;max-width:var(--space-600,600px);height:auto;max-height:calc(100dvh - var(--space-48));border:var(--space-1) solid var(--ink);animation:.18s recipe-detail-dialog-scale-in;box-shadow:0 20px 60px #00000026}.recipe-detail-dialog[data-closing=true] .recipe-detail-dialog-surface{animation:.18s forwards recipe-detail-dialog-scale-out}}@media (min-width:1008px){.recipe-detail-dialog-surface{max-width:var(--space-960)}}.recipe-detail-overlay-chrome{z-index:10;pointer-events:none;order:-1;height:0;position:sticky;top:0;left:0;right:0}.recipe-detail-overlay-btn{pointer-events:auto;top:var(--space-12);width:var(--space-40);height:var(--space-40);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);border:var(--space-1) solid #fff3;color:var(--ink);cursor:pointer;background:#ffffff52;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .16s,box-shadow .16s,transform .12s;display:inline-flex;position:absolute;box-shadow:inset 0 1px #ffffff47,0 1px 2px #00000014,0 6px 16px #0000001a}.recipe-detail-overlay-btn>*{filter:drop-shadow(0 1px 1px #ffffff80)}.recipe-detail-overlay-btn:hover{background:#ffffff73}.recipe-detail-overlay-btn:active{background:#ffffff8c;transform:scale(.96)}.recipe-detail-overlay-btn:focus-visible{outline:var(--space-2) solid var(--ink);outline-offset:var(--space-2)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.recipe-detail-overlay-btn{background:#ffffffeb;border-color:#0000000d}}.recipe-detail-overlay-close{left:var(--space-12)}.recipe-detail-overlay-menu-trigger{right:var(--space-12)}@media (min-width:1008px){.recipe-detail--in-modal .recipe-detail-overlay-chrome,.recipe-detail-overlay-close{display:none}}@media (max-width:63rem){.recipe-detail--in-modal .recipe-detail-layout{grid-template-columns:1fr;gap:0;padding:0}.recipe-detail--in-modal .recipe-detail-aside{order:-1;position:static;top:auto}.recipe-detail--in-modal .recipe-detail-aside-stack{gap:var(--space-16)}.recipe-detail--in-modal .recipe-detail-photo-panel,.recipe-detail--in-modal .recipe-detail-photo-panel--static,.recipe-detail--in-modal .recipe-detail-photo-panel--generating{aspect-ratio:1;border:0;padding:0}.recipe-detail--in-modal .recipe-detail-main{padding:var(--space-16) var(--space-20) var(--space-32)}.recipe-detail--in-modal .recipe-detail-aside-edit-wrap{display:none}}@media (min-width:1008px){.recipe-detail--in-modal .recipe-detail-layout{padding:var(--space-32);gap:var(--space-36)}.recipe-detail--in-modal .recipe-detail-aside{position:static;top:auto}}.recipe-detail-overlay-menu{background:var(--paper);border:var(--space-1) solid var(--ink);min-width:var(--space-192,180px);padding:var(--space-4);z-index:3000;box-shadow:0 8px 24px #0003}.recipe-detail-overlay-menu-item{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;font-size:.875rem;display:flex}.recipe-detail-overlay-menu-item[data-highlighted]{background:var(--mist)}.recipe-detail-overlay-menu-item[data-disabled]{opacity:.4;cursor:not-allowed}.recipe-detail-overlay-menu-item--destructive{color:#c0392b}.recipe-detail-overlay-menu-separator{height:var(--space-1);background:var(--mist);margin:var(--space-4) 0}.recipe-voice-fab{right:max(env(safe-area-inset-right,0px) + var(--space-16), var(--space-16));bottom:max(env(safe-area-inset-bottom,0px) + var(--space-16), var(--space-16));z-index:1000;border:var(--space-1) solid var(--hair);background:var(--paper);width:50px;height:50px;color:var(--ink);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:background .12s,border-color .12s,transform .12s;display:inline-flex;position:fixed;box-shadow:0 8px 24px #00000014}.recipe-voice-fab:hover{background:var(--fog);border-color:var(--ink);transform:scale(1.04)}.recipe-voice-fab:focus-visible{outline:2px solid var(--ink);outline-offset:2px}[data-voice-focused=true]{background:var(--soft-tint);box-shadow:inset 0 0 0 2px var(--ink);border-radius:8px;transition:background .2s,box-shadow .2s;position:relative}@media (prefers-reduced-motion:reduce){[data-voice-focused=true]{transition:none}}.recipe-voice-overlay{left:50%;bottom:max(env(safe-area-inset-bottom,0px) + var(--space-16), var(--space-24));z-index:1000;align-items:center;gap:var(--space-12);pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.recipe-voice-overlay>*{pointer-events:auto}.recipe-voice-status{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:var(--paper);color:var(--ink);border:var(--space-1) solid var(--hair);-webkit-user-select:none;user-select:none;border-radius:9999px;font-size:13px;font-weight:500;display:inline-flex;box-shadow:0 8px 24px #00000014}.recipe-voice-status-dot{background:var(--muted);border-radius:9999px;flex:0 0 8px;width:8px;height:8px}@keyframes recipe-voice-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.6)}}.recipe-voice-status[data-state=speaking] .recipe-voice-status-dot{background:#2563eb;animation:1.1s ease-in-out infinite recipe-voice-pulse}.recipe-voice-status[data-state=listening] .recipe-voice-status-dot{background:#16a34a;animation:1.6s ease-in-out infinite recipe-voice-pulse}.recipe-voice-status[data-state=connecting] .recipe-voice-status-dot{background:var(--muted);animation:.9s ease-in-out infinite recipe-voice-pulse}.recipe-voice-status[data-state=muted] .recipe-voice-status-dot{background:#b45309}.recipe-voice-status[data-state=error]{color:#b91c1c;border-color:#b91c1c}.recipe-voice-status[data-state=error] .recipe-voice-status-dot{background:#b91c1c}@media (prefers-reduced-motion:reduce){.recipe-voice-status-dot{animation:none!important}}.recipe-voice-controls{align-items:center;gap:var(--space-16);display:flex}.recipe-voice-control{border:var(--space-1) solid var(--hair);background:var(--paper);width:60px;height:60px;color:var(--ink);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;padding:0;transition:background .12s,border-color .12s,transform .12s;display:inline-flex;box-shadow:0 12px 32px #0000001f}.recipe-voice-control:hover{background:var(--fog);border-color:var(--ink);transform:scale(1.04)}.recipe-voice-control:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.recipe-voice-control--mute[aria-pressed=true],.recipe-voice-control--end{background:var(--ink);color:var(--paper);border-color:var(--ink)}.recipe-voice-control--end:hover{background:#2a2a2a;border-color:#2a2a2a}@media (prefers-reduced-motion:reduce){.recipe-voice-fab,.recipe-voice-control{transition:none}}.grid.receipt-log-page{display:block}.receipt-log-table-wrap.table-container{border:none;overflow:visible}.receipt-log-table.ingredients-table{table-layout:auto;min-width:0}.receipt-log-table.ingredients-table th{top:var(--topbar-sticky-offset);z-index:35}.receipt-log-cell-raw,.receipt-log-cell-notes{white-space:normal;max-width:var(--space-320)}.receipt-log-divider>td{padding:var(--space-12) var(--space-12);border-top:var(--space-1) solid var(--ink);border-bottom:var(--space-1) solid var(--ink);white-space:normal;background:#fafafa}.receipt-log-divider:first-child>td{border-top:none}.receipt-log-divider-inner{justify-content:space-between;align-items:baseline;gap:var(--space-16);flex-wrap:wrap;display:flex}.receipt-log-divider-date{color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}.receipt-log-divider-meta{color:var(--muted);font-size:12px}.receipt-log-divider-rawtext{margin-top:var(--space-6);color:var(--muted);font-size:12px;font-style:italic;line-height:1.4}.import-log-tab-bar{gap:var(--space-2);margin:0 0 var(--space-12) 0;border-bottom:var(--space-1) solid var(--rule);display:flex}.import-log-tab--active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.import-log-tab-count{color:var(--muted);background:var(--surface-2,transparent);padding:0 var(--space-6);border:var(--space-1) solid var(--rule);border-radius:999px;font-size:11px;line-height:1.6;display:inline-block}.import-log-tab-panel{display:block}.equipment-page{gap:var(--space-16);flex-direction:column;display:flex}.equipment-header{justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.equipment-summary{color:var(--muted);font-size:13px}.equipment-search{align-items:center;gap:var(--space-6);border:var(--space-1) solid var(--rule);padding:4px var(--space-8);min-width:220px;display:inline-flex}.equipment-search input{font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:13px}.equipment-search-clear{cursor:pointer;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.equipment-category{gap:var(--space-6);flex-direction:column;display:flex}.equipment-category-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:var(--space-1) solid var(--hair);padding-bottom:var(--space-4);justify-content:space-between;align-items:baseline;margin:0;font-size:13px;font-weight:600;display:flex}.equipment-category-count{color:var(--muted);letter-spacing:0;text-transform:none;font-size:12px;font-weight:400}.equipment-list{gap:2px var(--space-12);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.equipment-row{font-size:14px}.equipment-row-label{align-items:center;gap:var(--space-8);cursor:pointer;padding:var(--space-4) 0;color:var(--ink);display:inline-flex}.equipment-row--pending .equipment-row-label{opacity:.6;cursor:progress}.equipment-row--owned .equipment-row-name{font-weight:600}.receipt-log-status{padding:2px var(--space-6);border:var(--space-1) solid var(--rule);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:10px;display:inline-block}.receipt-log-status--applied{background:var(--paper);color:var(--ink)}.receipt-log-status--created{background:var(--ink);color:var(--paper);border-color:var(--ink)}.receipt-log-status--ignored,.receipt-log-status--excluded{background:var(--paper);color:var(--muted)}.receipt-log-row--excluded,.receipt-log-row--ignored{color:var(--muted)}.receipt-log-notes-excluded{color:var(--muted);font-size:11px;display:block}.receipt-log-notes-flags{margin:var(--space-4) 0 0;padding-left:var(--space-16);color:var(--muted);font-size:11px}.synced-receipts-pill-wrap{z-index:60;right:calc(var(--space-12) + env(safe-area-inset-right,0px));bottom:calc(var(--space-12) + var(--space-48) + var(--space-12) + env(safe-area-inset-bottom,0px));position:fixed}.synced-receipts-list{gap:var(--space-12);margin:0;padding:0;list-style:none;display:grid}.synced-receipt-card{border:var(--space-1) solid color-mix(in srgb, var(--ink) 18%, var(--paper));border-radius:var(--space-8);padding:var(--space-12) var(--space-16);gap:var(--space-8);display:grid}.synced-receipt-head{justify-content:space-between;align-items:baseline;gap:var(--space-8);flex-wrap:wrap;display:flex}.synced-receipt-merchant{font-size:14px;font-weight:600}.synced-receipt-meta{color:var(--muted);font-size:12px}.synced-receipt-items{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.synced-receipt-item{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1fr);font-size:13px;display:grid}.synced-receipt-item-name,.synced-receipt-item-map{overflow-wrap:anywhere;min-width:0}.synced-receipt-item-map{color:var(--muted);white-space:normal;font-size:12px;line-height:1.4}.synced-receipt-item>.receipt-import-secondary{justify-self:start}.synced-receipt-item-picker,.synced-receipt-item-picker .recipe-ingredients-add-cell-inner{width:100%;min-width:0}.synced-receipt-planning-review{width:100%;min-width:0;padding:var(--space-12);border:var(--space-1) solid color-mix(in srgb, var(--ink) 18%, transparent);gap:var(--space-10);margin:0;display:grid}.synced-receipt-planning-review legend{padding-inline:var(--space-4);font-size:12px;font-weight:600}.synced-receipt-planning-review label{gap:var(--space-4);min-width:0;color:var(--muted);font-size:12px;display:grid}.synced-receipt-planning-review select,.synced-receipt-planning-review input{min-width:0;height:38px;padding-inline:var(--space-8);border:var(--space-1) solid var(--line);background:var(--paper);color:var(--ink);font:inherit;border-radius:0}@media (min-width:840px){.synced-receipt-item{column-gap:var(--space-12);grid-template-columns:minmax(12rem,1fr) minmax(18rem,2fr) minmax(9.25rem,max-content)}.synced-receipt-item>.receipt-import-secondary{justify-self:stretch}.synced-receipt-item-picker,.synced-receipt-planning-review{grid-column:1/-1}}.synced-receipt-item-map.is-new{color:color-mix(in srgb, #b06f00 70%, var(--ink))}.synced-receipt-excluded{color:var(--muted);font-size:12px;font-style:italic}.synced-receipt-actions{justify-content:flex-end;gap:var(--space-8);display:flex}.synced-receipts-empty{color:var(--muted);font-size:14px}.receiptos-review-next-time-control,.receiptos-review-next-time-status,.receiptos-review-next-time-error{grid-column:1/-1;min-width:0;font-size:11px;line-height:1.35}.receiptos-review-next-time-control{justify-items:start;gap:var(--space-4);display:grid}.receiptos-review-next-time-button{appearance:none;border:0;border-bottom:var(--space-1) solid currentColor;color:var(--ink-soft);cursor:pointer;font:inherit;background:0 0;border-radius:0;padding:0}.receiptos-review-next-time-button:hover,.receiptos-review-next-time-button:focus-visible{color:var(--ink)}.receiptos-review-next-time-button:focus-visible{outline:var(--space-2) solid currentColor;outline-offset:var(--space-2)}.receiptos-review-next-time-button:disabled{cursor:wait;opacity:.55}.receiptos-review-next-time-status{color:var(--ink-soft)}.receiptos-review-next-time-error{color:var(--danger,#a21f1f)}.kitchen-agent-panel{z-index:1;width:min(30rem, calc(100vw - var(--space-24)));border-left:var(--space-1) solid var(--ink);background:var(--paper);grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;max-height:100dvh;animation:.16s ease-out kitchen-agent-panel-in;display:grid;position:relative;overflow:hidden}@keyframes kitchen-agent-panel-in{0%{transform:translateX(var(--space-24));opacity:0}}.kitchen-agent-input{width:100%;height:var(--space-44);min-height:var(--space-44);padding:0 var(--space-12);background:var(--paper);color:var(--ink);font:inherit;border:none;border-radius:0;outline:none;margin:0;font-size:14px;line-height:1.3}.kitchen-agent-input::placeholder{color:var(--ink-faint)}@media (max-width:720px){.kitchen-agent-panel{border-left:none;width:100vw;max-width:none}}@media (prefers-reduced-motion:reduce){.kitchen-agent-panel{animation:none}}.oauth-form-message{min-height:1.25em;margin:0}.public-ingredients-catalogue{gap:var(--space-16);width:100%;min-width:0;display:grid}a.public-ingredient-inventory-action{text-decoration:none}@media (max-width:500px){.public-ingredient-inventory-action{width:100%}}.public-ingredient-catalogue-dialog{width:min(1260px, calc(100dvw - var(--space-48)));height:min(900px, calc(100dvh - var(--space-48)));border:var(--space-1) solid var(--hair);background:var(--paper);max-width:none;max-height:none;color:var(--ink);margin:auto;padding:0;overflow:hidden;box-shadow:0 24px 80px #1419143d}.public-ingredient-catalogue-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e271f6b}.ingredient-catalogue-research-library{gap:var(--space-20);min-width:0;display:grid}.ingredient-catalogue-research-heading{justify-content:space-between;align-items:end;gap:var(--space-20);padding-top:var(--space-8);flex-wrap:wrap;display:flex}.ingredient-catalogue-research-heading>div{gap:var(--space-8);max-width:680px;display:grid}.ingredient-catalogue-research-heading h2{color:var(--ink);letter-spacing:-.045em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,48px);font-weight:500;line-height:1}.ingredient-catalogue-research-heading p:not(.public-ingredients-eyebrow){color:var(--ink-muted);margin:0;font-size:14px;line-height:1.55}.ingredient-catalogue-research-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:12px;font-weight:650}.ingredient-catalogue-research-toolbar{gap:var(--space-8);grid-template-columns:minmax(220px,1fr) minmax(180px,260px) minmax(180px,240px);display:grid}.ingredient-catalogue-research-grid{gap:var(--space-12);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));width:100%;display:grid}.ingredient-catalogue-research-card{grid-template-columns:var(--space-44) minmax(0, 1fr);gap:var(--space-12);min-width:0;min-height:128px;padding:var(--space-16);border:var(--space-1) solid var(--hair);background:var(--paper);color:var(--ink);cursor:pointer;text-align:left;display:grid}.ingredient-catalogue-research-card:hover,.ingredient-catalogue-research-card:focus-visible{border-color:var(--ink);box-shadow:inset 0 0 0 var(--space-1) var(--ink);outline:none}.ingredient-catalogue-research-card-mark,.ingredient-catalogue-research-source-mark{width:var(--space-44);height:var(--space-44);background:var(--soft-tint);color:var(--ink-muted);place-items:center;display:inline-grid}.ingredient-catalogue-research-card-copy{align-content:start;gap:var(--space-4);min-width:0;display:grid}.ingredient-catalogue-research-card-name{overflow-wrap:anywhere;font-size:14px;font-weight:680;line-height:1.35}.ingredient-catalogue-research-card-meta,.ingredient-catalogue-research-card-state{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.35;overflow:hidden}.ingredient-catalogue-research-card-state{margin-top:var(--space-4);color:var(--ink);font-size:11px;font-weight:600}.ingredient-catalogue-load-more{padding-top:var(--space-12);justify-content:center;display:flex}.ingredient-catalogue-research-state{justify-items:center;gap:var(--space-16);min-height:220px;padding:var(--space-32);color:var(--ink-muted);text-align:center;display:grid}.ingredient-catalogue-research-state p{margin:0}.ingredient-catalogue-research-empty{min-height:260px}.ingredient-catalogue-research-dialog{width:min(1260px, calc(100dvw - var(--space-48)));height:min(900px, calc(100dvh - var(--space-48)));border:var(--space-1) solid var(--hair);background:var(--paper);max-width:none;max-height:none;color:var(--ink);margin:auto;padding:0;overflow:hidden;box-shadow:0 24px 80px #1419143d}.ingredient-catalogue-research-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e271f6b}.ingredient-catalogue-research-dialog-surface{flex-direction:column;height:100%;min-height:0;display:flex}.ingredient-catalogue-research-dialog-body{flex:auto;grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr);min-height:0;display:grid;overflow:auto}.ingredient-catalogue-research-provenance{align-content:start;gap:var(--space-16);padding:clamp(var(--space-24), 4vw, var(--space-48));background:color-mix(in srgb, var(--ink) 2%, var(--paper));display:grid}.ingredient-catalogue-research-source-mark{width:var(--space-64);height:var(--space-64)}.ingredient-catalogue-research-provenance>p{color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:12px;font-weight:650}.ingredient-catalogue-research-provenance dl{margin:0;display:grid}.ingredient-catalogue-research-provenance dl>div{gap:var(--space-4);padding-block:var(--space-12);border-bottom:var(--space-1) solid var(--hair);display:grid}.ingredient-catalogue-research-provenance dt{color:var(--ink-muted);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:650}.ingredient-catalogue-research-provenance dd{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.45}.ingredient-catalogue-research-provenance>a,.ingredient-catalogue-canonical-link{align-items:center;gap:var(--space-4);width:fit-content;color:var(--ink);text-underline-offset:3px;font-size:12px;font-weight:650;display:inline-flex}.ingredient-catalogue-research-dialog-main{gap:var(--space-20)}.ingredient-catalogue-promotion-section>p{max-width:680px}.ingredient-catalogue-promotion-controls{align-items:end;gap:var(--space-12);flex-wrap:wrap;display:flex}.ingredient-catalogue-promotion-controls label{gap:var(--space-6);min-width:min(100%,220px);color:var(--ink-muted);font-size:12px;font-weight:650;display:grid}.ingredient-catalogue-promotion-controls select,.ingredient-catalogue-promotion-controls .primary{min-height:var(--space-40)}.ingredient-catalogue-promotion-result{padding:var(--space-12);background:var(--soft-tint);line-height:1.5;color:var(--ink)!important;font-size:12px!important}@media (max-width:760px){.public-ingredient-catalogue-dialog{border:0;width:100dvw;height:100dvh}.ingredient-catalogue-research-toolbar,.ingredient-catalogue-research-dialog-body{grid-template-columns:1fr}.ingredient-catalogue-research-provenance,.ingredient-catalogue-research-dialog-main{padding:var(--space-24)}.ingredient-catalogue-research-provenance{border-bottom:var(--space-1) solid var(--hair)}.ingredient-catalogue-research-heading{align-items:start}.ingredient-catalogue-research-count{text-align:left}}@media (max-width:500px){.ingredient-catalogue-research-dialog{border:0;width:100dvw;height:100dvh}.ingredient-catalogue-research-grid{grid-template-columns:1fr}}
