@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-arabic-wght-normal-CGnJ-sf6.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-cyrillic-ext-wght-normal-BjodpZir.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-cyrillic-wght-normal-DveCct9I.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-hebrew-wght-normal-BIkpbuMU.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-latin-ext-wght-normal-OacczzuJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-latin-wght-normal-CnQIisVs.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-page:#fbfaf7;--color-surface:#fff;--color-sunken:#efece6;--color-text:#18191c;--color-muted:#5c6169;--color-border:#e8e4dd;--color-accent:#b4361f;--color-accent-strong:#d4432a;--color-accent-soft:#fde9e4;--color-danger:#b3261e;--color-danger-soft:#fdecea;--color-success:#1f7a4a;--color-success-soft:#e0f2e7;--radius:12px;--shadow:0 1px 2px #18191c0f, 0 6px 18px #18191c0f;--tone-dessert:#f8d9de;--tone-dessert-ink:#a63d55;--tone-meat:#f7dcc6;--tone-meat-ink:#9a4a22;--tone-light:#ddeccf;--tone-light-ink:#44702f;--tone-drink:#d3e7f3;--tone-drink-ink:#286688;--tone-salad:#d2efe4;--tone-salad-ink:#1d6b50;--tone-soup:#fcebb6;--tone-soup-ink:#876200;--tone-side:#f3dcef;--tone-side-ink:#8a3a7c;--tone-spread:#e8ecc4;--tone-spread-ink:#59651a;--tone-none:#e9e5f3;--tone-none-ink:#574c84;--tone-other:#efe8d2;--tone-other-ink:#6c5b23;color:var(--color-text);background:var(--color-page);font-family:Rubik Variable,Segoe UI,system-ui,Arial,sans-serif;line-height:1.6}*,:before,:after{box-sizing:border-box}body{margin:0}h1,h2,h3,h4,p{margin-block:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.notice{border-radius:var(--radius);background:var(--color-success-soft);color:var(--color-success);margin-block-start:.5rem;padding:.4rem .75rem;font-weight:600;display:block}.notice:empty{padding:0}.load-error{border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--color-danger-soft);justify-items:start;gap:.75rem;padding:1.25rem;display:grid}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius);color:var(--color-muted);text-align:center;padding:1.5rem}.chip{background:var(--color-accent-soft);color:var(--color-accent);border-radius:999px;justify-self:start;padding:.1rem .6rem;font-size:.8rem;font-weight:600}.chip-unclassified{border:1px dashed var(--color-muted);color:var(--color-muted);background:0 0}.badge-healthy,.chip-healthy{background:var(--tone-salad);color:var(--tone-salad-ink);align-items:center;gap:.25rem;display:inline-flex}.badge-healthy{white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.8rem;font-weight:600}.badge-healthy .icon,.chip-healthy .icon,.filter-chip.is-toggle .icon{width:.95rem;height:.95rem}.filter-chip.is-toggle>span{border-color:var(--tone-salad-ink);color:var(--tone-salad-ink)}.filter-chip.is-toggle input:checked+span{border-color:var(--tone-salad-ink);background:var(--tone-salad-ink);color:#fff}.category-attribute{border-radius:var(--radius);background:var(--tone-salad);color:var(--tone-salad-ink);margin:.5rem 0 0;padding:.5rem .75rem;font-size:.9rem}.healthy-field{border:0;min-width:0;margin:0;padding:0}.healthy-field>legend{padding:0}.choice-row{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.choice{white-space:nowrap;cursor:pointer;align-items:center;gap:.4rem;display:inline-flex}.recipe-view{overflow-wrap:anywhere;border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow);border-radius:24px;padding:1.5rem}.recipe-title{font-size:1.9rem;font-weight:800;line-height:1.2}.recipe-facts{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin:.75rem 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.recipe-facts a{color:var(--color-accent)}.recipe-section{margin-block-start:1.75rem}.section-title{border-block-end:2px solid var(--color-accent-soft);margin-block-end:.75rem;padding-block-end:.35rem;font-size:1.2rem}.group-title{color:var(--color-accent);margin-block:1rem .35rem;font-size:1rem}.ingredient-list,.step-list,.note-list{margin:0;padding-inline-start:1.5rem}.ingredient-list li,.note-list li{margin-block:.2rem}.step-list li{margin-block:.5rem;padding-inline-start:.25rem}.step-list li::marker{color:var(--color-accent);font-weight:700}.no-quantity{color:var(--color-muted);white-space:nowrap;unicode-bidi:isolate;margin-inline-start:.25rem;font-size:.8rem}.derived-label{border:1px dashed var(--color-border);color:var(--color-muted);white-space:nowrap;unicode-bidi:isolate;border-radius:999px;margin-inline-start:.25rem;padding:0 .45rem;font-size:.75rem}.derived-note{color:var(--color-muted);overflow-wrap:anywhere;margin:.25rem 0 0;font-size:.8rem}.derived-note .derived-label{margin-inline-start:0}.button,.button-primary,.add-button,.icon-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;padding:.45rem 1rem}.button:hover,.add-button:hover,.icon-button:hover:not(:disabled){border-color:var(--color-accent)}.button-primary{border-color:var(--color-accent-strong);background:var(--color-accent-strong);color:#fff;font-weight:700}.button-primary:hover{border-color:var(--color-accent);background:var(--color-accent)}.button-danger{border-color:var(--color-danger);color:var(--color-danger)}.add-button{color:var(--color-accent);border-style:dashed;justify-self:start;font-size:.9rem}.icon-button{border-radius:8px;min-width:2rem;padding:.2rem .4rem;font-size:.8rem;line-height:1.4}.icon-button:disabled{opacity:.35;cursor:default}.button-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.badge-sample{color:#4f3d7a;background:#ece7f6;border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:600}.sample-note{border-radius:var(--radius);background:#f4f1fa;border-inline-start:4px solid #8a76b8;margin-block-start:.75rem;padding:.5rem .75rem;font-size:.9rem}.confirm-box{border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--color-danger-soft);gap:.5rem;min-width:0;margin:0;padding:.75rem;display:grid}.confirm-box>legend{float:inline-start;width:100%;padding:0;font-weight:600}.recipe-editor{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);gap:1.5rem;padding:1.5rem;display:grid}.recipe-editor input,.recipe-editor select,.recipe-editor textarea{background:var(--color-surface);width:100%;min-width:0;color:inherit;font:inherit;border:1px solid #c9b9a9;border-radius:6px;padding:.4rem .6rem}.recipe-editor textarea{resize:vertical}.recipe-editor [aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}.editor-basics{gap:1rem;display:grid}@media (width>=40rem){.editor-basics{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-field-wide{grid-column:1/-1}}.editor-field{flex:1;gap:.25rem;display:grid}.field-label{font-size:.95rem;font-weight:600}.field-hint{color:var(--color-muted);font-size:.85rem}.field-error{color:var(--color-danger);font-size:.85rem;font-weight:600}.editor-section{border:0;gap:.75rem;min-width:0;margin:0;padding:0;display:grid}.editor-section>legend{width:100%;padding:0}.editor-group{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-page);gap:.5rem;padding:.75rem;display:grid}.editor-group-header{align-items:flex-end;gap:.5rem;display:flex}.editor-rows{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.editor-row{gap:.25rem;display:grid}.ingredient-columns,.ingredient-inputs{grid-template-columns:minmax(0,1fr) minmax(5rem,9rem) auto;align-items:center;gap:.4rem;display:grid}.ingredient-columns{color:var(--color-muted);font-size:.8rem}.ingredient-columns span:last-child{grid-column:2}.step-inputs{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.4rem;display:grid}.step-inputs:not(:has(.step-number)){grid-template-columns:minmax(0,1fr) auto}.step-number{min-width:1.5rem;color:var(--color-accent);padding-block-start:.45rem;font-weight:700}.source-inputs{grid-template-columns:minmax(7rem,10rem) minmax(0,2fr) minmax(0,1fr) auto;align-items:center;gap:.4rem;display:grid}@media (width<=40rem){.ingredient-columns{display:none}.ingredient-inputs,.source-inputs{grid-template-columns:minmax(0,1fr) auto}.ingredient-inputs>:first-child,.source-inputs>select,.source-inputs>input[type=url]{grid-column:1/-1}.step-inputs{grid-template-columns:auto minmax(0,1fr)}.step-inputs>.row-buttons{grid-column:2;justify-self:end}.step-inputs:not(:has(.step-number)){grid-template-columns:minmax(0,1fr)}.step-inputs:not(:has(.step-number))>.row-buttons{grid-column:1}}.row-buttons{gap:.2rem;display:flex}.form-alert{border-radius:var(--radius);background:var(--color-danger-soft);color:var(--color-danger);padding:.5rem .75rem;font-weight:600}.form-alert ul{margin:.25rem 0 0;font-weight:400}.editor-footer{border-block-start:1px solid var(--color-border);gap:.75rem;padding-block-start:1rem;display:grid}.badge-draft{color:#6b4e00;background:#fff1c2;border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:600}.draft-note,.form-note{border-radius:var(--radius);background:#fff8e0;border-inline-start:4px solid #d9a400;margin-block-start:.75rem;padding:.5rem .75rem;font-size:.9rem}.import-panel{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);gap:1rem;padding:1.5rem;display:grid}.import-panel textarea{width:100%;min-width:0;color:inherit;font:inherit;resize:vertical;border:1px solid #c9b9a9;border-radius:6px;padding:.6rem}.import-panel textarea[aria-invalid=true]{border-color:var(--color-danger)}.import-panel textarea:read-only,.import-panel input:read-only{background:var(--color-page)}.url-row{flex-wrap:wrap;gap:.5rem;display:flex}.url-row input{min-width:0;color:inherit;font:inherit;border:1px solid #c9b9a9;border-radius:6px;flex:16rem;padding:.5rem .6rem}.import-divider{color:var(--color-muted);margin:0;font-size:.9rem;font-weight:600}.working-note{color:var(--color-accent);font-weight:600;display:block}.original-text{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-page);margin-block-start:.75rem}.original-text>summary{cursor:pointer;padding:.5rem .75rem;font-weight:600}.original-text-meta{color:var(--color-muted);font-size:.85rem;font-weight:400}.original-text-source{overflow-wrap:anywhere;color:var(--color-muted);margin:0;padding:0 .75rem .5rem;font-size:.85rem}.original-text-body{white-space:pre-wrap;overflow-wrap:anywhere;max-height:22rem;padding:0 .75rem .75rem;font-size:.9rem;overflow:auto}.original-text-sticky{z-index:1;box-shadow:var(--shadow);position:sticky;top:.5rem}.original-text-sticky .original-text-body{max-height:35vh}.review-issues{gap:.5rem;display:grid}.review-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.review-issue{border-radius:var(--radius);background:#fffbea;border:1px solid #ecd9a0;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.6rem .75rem;display:flex}.review-issue-text{gap:.2rem;min-width:0;display:grid}.issue-kind{color:#6b4e00;font-size:.8rem;font-weight:700}.issue-quote{color:var(--color-muted);overflow-wrap:anywhere;border-inline-start:3px solid #d9a400;margin:0;padding-inline-start:.6rem}.review-done{color:var(--color-success);font-weight:600}.category-manager{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);gap:1rem;padding:1.5rem;display:grid}.manager-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.category-tree,.subcategory-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.category-node{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-page);gap:.75rem;padding:.75rem;display:grid}.subcategory-list{border-inline-start:3px solid var(--color-accent-soft);padding-inline-start:1.25rem}.category-summary{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.category-summary-text{min-width:0}.category-name{margin:0;font-size:1.05rem;display:inline}h4.category-name{font-size:.95rem}.category-count{color:var(--color-muted);margin-inline-start:.5rem;font-size:.85rem}.category-description{color:var(--color-muted);overflow-wrap:anywhere;margin:.25rem 0 0;font-size:.9rem}.category-form fieldset{border:1px solid var(--color-accent);border-radius:var(--radius);background:var(--color-surface);gap:.6rem;min-width:0;margin:0;padding:.75rem;display:grid}.category-form legend{padding:0 .25rem;font-weight:600}.category-form input,.category-form textarea{width:100%;min-width:0;color:inherit;font:inherit;border:1px solid #c9b9a9;border-radius:6px;padding:.4rem .6rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.filter-summary{color:var(--color-muted);align-items:center;gap:.6rem;margin:0;font-size:.85rem;display:flex}.text-button{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.badge-saved{background:var(--color-success-soft);color:var(--color-success);border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:600}.duplicate-notice{border-radius:var(--radius);background:#fff8e0;border-inline-start:4px solid #d9a400;gap:.5rem;padding:.75rem;display:grid}.duplicate-notice p{margin:0}.duplicate-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.duplicate-list li{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.credit-line{color:var(--color-muted);overflow-wrap:anywhere;margin:.25rem 0 0}.credit-line a,.original-text-source a,.media-viewer a{color:var(--color-accent)}.creator-name{color:var(--color-text);font-weight:600}.media-missing{background:var(--color-page);color:var(--color-muted);text-align:center;place-items:center;padding:.25rem;font-size:.75rem;display:grid}.media-grid{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:grid}.media-thumb{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-page);cursor:zoom-in;width:100%;padding:0;display:block;position:relative;overflow:hidden}.media-thumb-image,.media-thumb .media-missing{object-fit:cover;width:100%;height:100%}.media-badge,.media-cover-badge{border-radius:999px;padding:.05rem .45rem;font-size:.75rem;font-weight:600;position:absolute}.media-badge{color:#fff;background:#000000b3;inset-block-end:.3rem;inset-inline-start:.3rem}.media-badge-remote{color:#6b4e00;background:#fff1c2;outline:1px dashed #6b4e00}.media-cover-badge{background:var(--color-accent);color:#fff;inset-block-start:.3rem;inset-inline-end:.3rem}.file-button{position:relative}.file-button:focus-within{outline:3px solid var(--color-accent)}.media-message{display:block}.media-problems{color:var(--color-muted);font-size:.9rem}.media-viewer{border-radius:var(--radius);background:var(--color-surface);border:0;width:min(56rem,100vw - 1rem);max-height:calc(100vh - 1rem);padding:.75rem}.media-viewer::backdrop{background:#000000b3}.viewer-stage{place-items:center;gap:.5rem;display:grid}.viewer-media{object-fit:contain;background:#000;border-radius:8px;max-width:100%;max-height:calc(100vh - 11rem);display:block}.viewer-note,.viewer-caption{color:var(--color-muted);text-align:center;margin:.5rem 0;font-size:.9rem}.viewer-buttons{justify-content:center}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.15em;height:1.15em}.icon-play{fill:currentColor}.topbar{z-index:10;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbfaf7eb;position:sticky;top:0}.topbar-inner{align-items:center;gap:.75rem 1.5rem;max-width:86rem;margin:0 auto;padding:.7rem clamp(1rem,3vw,2.5rem);display:flex}.brand{white-space:nowrap;margin:0;font-size:1.3rem;font-weight:800}.brand-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.6rem;padding:0;display:inline-flex}.brand-logo{background:var(--color-accent-strong);color:#fff;border-radius:12px;place-items:center;width:2.4rem;height:2.4rem;display:grid}.topbar-search{background:var(--color-sunken);min-width:0;max-width:34rem;color:var(--color-muted);border-radius:999px;flex:1;align-items:center;gap:.5rem;padding:0 1rem;display:flex}.topbar-search:focus-within{background:var(--color-surface);box-shadow:0 0 0 2px var(--color-accent-strong)}.topbar-search input{min-width:0;color:var(--color-text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:.6rem 0}.topbar-nav{gap:.25rem;margin-inline-start:auto;display:flex}.topbar-nav button{color:var(--color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .85rem;font-weight:500}.topbar-nav button:hover{color:var(--color-text)}.topbar-nav button[aria-current=page]{background:var(--color-text);color:#fff}.import-button{background:var(--color-accent-strong);color:#fff;font:inherit;white-space:nowrap;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:.4rem;padding:.6rem 1.2rem;font-weight:700;display:inline-flex}.import-button:hover{background:var(--color-accent)}.app-content{grid-template-columns:minmax(0,1fr);max-width:86rem;margin:0 auto;padding:1.25rem clamp(1rem,3vw,2.5rem) 4rem;display:grid}.app-content>.notice{margin:0}.app-content>.notice:not(:empty),.app-content>.load-error,.app-content>.empty-state{margin-block-end:1rem}.page{grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid}.page-view,.page-edit,.page-create,.page-import,.page-categories{width:100%;max-width:60rem;margin-inline:auto}.quick-import{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.35rem 1rem;padding:.85rem 1.1rem;display:grid}.quick-import-title{white-space:nowrap;align-items:center;gap:.45rem;font-size:1.05rem;font-weight:700;display:inline-flex}.quick-import-title .icon{color:var(--color-accent-strong)}.quick-import-form{gap:.5rem;display:flex}.quick-import-form input{border:1.5px solid var(--color-border);background:var(--color-page);min-width:0;color:var(--color-text);font:inherit;text-align:left;border-radius:12px;flex:1;padding:.55rem .9rem}.quick-import-form input:focus-visible{border-color:var(--color-accent-strong);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.quick-import-form .button-primary{border-radius:12px;padding-inline:1.5rem}.quick-import-help,.quick-import-message{color:var(--color-muted);grid-column:2;font-size:.85rem}.quick-import-message:empty{display:none}.quick-import-message{background:var(--color-danger-soft);color:var(--color-danger);border-radius:8px;justify-self:start;padding:.3rem .65rem;font-weight:600}.quick-import-message.is-later{color:#6b4e00;background:#fff0c2}.recipe-filters{grid-template-columns:minmax(0,1fr);gap:.8rem;display:grid}.recipe-filters fieldset{border:0;min-width:0;margin:0;padding:0}.cooked-option,.filter-chip{position:relative}.cooked-option input,.filter-chip input{opacity:0;pointer-events:none;position:absolute}.cooked-option input:focus-visible+span,.filter-chip input:focus-visible+span{outline:3px solid var(--color-accent-strong);outline-offset:2px}.cooked-filter{background:var(--color-sunken);grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;max-width:40rem;display:grid;border-radius:18px!important;padding:.35rem!important}.cooked-option>span{color:var(--color-muted);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:.45rem;padding:.65rem .75rem;font-weight:700;display:flex}.filter-count{text-align:center;background:#00000012;border-radius:999px;min-width:1.6rem;padding:0 .4rem;font-size:.85rem}.cooked-option input:checked+span{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #00000014,0 4px 12px #0000000f}.cooked-option-cooked input:checked+span{background:var(--color-success);color:#fff}.cooked-option-cooked input:checked+span .filter-count{background:#ffffff38}.filter-rows{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1.5rem;display:flex}.category-filter{flex:auto}.chip-scroll,.status-filter,.subcategory-filter{align-items:center;gap:.5rem;display:flex}.chip-scroll{scrollbar-width:none;padding-block:.2rem;overflow-x:auto}.subcategory-filter{flex-wrap:wrap}.subcategory-filter legend{float:inline-start;color:var(--color-muted);margin-inline-end:.25rem;font-weight:600}.filter-chip>span{border:1px solid var(--color-border);background:var(--color-surface);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .95rem;font-weight:600;display:inline-flex}.filter-chip input:checked+span{border-color:var(--color-text);background:var(--color-text);color:#fff}.filter-chip.is-small>span{padding:.2rem .75rem;font-size:.9rem}.chip-icon{border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;margin-inline-start:-.45rem;display:grid}.chip-icon .icon{width:1rem;height:1rem}.filter-summary{font-size:.9rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:2rem 1.25rem;margin:0;padding:0;list-style:none;display:grid}.recipe-card{height:100%;position:relative}.recipe-card-open{width:100%;height:100%;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;align-content:start;gap:.3rem;padding:0;display:grid}.recipe-card-photo{aspect-ratio:1;background:var(--color-sunken);border-radius:22px;margin-bottom:.45rem;display:block;position:relative;overflow:hidden}.recipe-card-photo img,.recipe-card-photo .media-missing{object-fit:cover;width:100%;height:100%;transition:transform .3s}.recipe-card-open:hover .recipe-card-photo img{transform:scale(1.04)}.recipe-card-open:hover .recipe-card-title{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:2px}.recipe-card-open:focus-visible{outline-offset:4px;border-radius:22px}.recipe-card-title{overflow-wrap:anywhere;font-size:1.1rem;font-weight:700;line-height:1.3}.recipe-card-meta{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.recipe-card-foot{flex-wrap:wrap;align-items:center;gap:.3rem .5rem;font-size:.85rem;display:flex}.recipe-card-credit{max-width:100%;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recipe-card-video{color:#fff;background:#0009;border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid;position:absolute;inset-block-start:.7rem;inset-inline-end:.7rem}.recipe-card-video .icon{width:.95rem;height:.95rem}.category-dot{border-radius:50%;flex:none;width:.6rem;height:.6rem}.tone-dessert{background-color:var(--tone-dessert);color:var(--tone-dessert-ink)}.tone-meat{background-color:var(--tone-meat);color:var(--tone-meat-ink)}.tone-light{background-color:var(--tone-light);color:var(--tone-light-ink)}.tone-drink{background-color:var(--tone-drink);color:var(--tone-drink-ink)}.tone-salad{background-color:var(--tone-salad);color:var(--tone-salad-ink)}.tone-soup{background-color:var(--tone-soup);color:var(--tone-soup-ink)}.tone-side{background-color:var(--tone-side);color:var(--tone-side-ink)}.tone-spread{background-color:var(--tone-spread);color:var(--tone-spread-ink)}.tone-none{background-color:var(--tone-none);color:var(--tone-none-ink)}.tone-other{background-color:var(--tone-other);color:var(--tone-other-ink)}.category-dot.tone-dessert{background-color:var(--tone-dessert-ink)}.category-dot.tone-meat{background-color:var(--tone-meat-ink)}.category-dot.tone-light{background-color:var(--tone-light-ink)}.category-dot.tone-drink{background-color:var(--tone-drink-ink)}.category-dot.tone-salad{background-color:var(--tone-salad-ink)}.category-dot.tone-soup{background-color:var(--tone-soup-ink)}.category-dot.tone-side{background-color:var(--tone-side-ink)}.category-dot.tone-spread{background-color:var(--tone-spread-ink)}.category-dot.tone-none{background-color:var(--tone-none-ink)}.category-dot.tone-other{background-color:var(--tone-other-ink)}.placeholder{background-image:radial-gradient(circle at 25% 20%,#ffffff8c 0 18%,#0000 19%),radial-gradient(circle at 85% 85%,#ffffff59 0 22%,#0000 23%);place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.placeholder-icon{stroke-width:1.4px;width:38%;height:38%}.placeholder-note{text-align:center;opacity:.8;font-size:.8rem;font-weight:600;position:absolute;inset-block-end:.8rem;inset-inline:0}.cooked-badge{color:var(--color-text);font:inherit;white-space:nowrap;cursor:pointer;background:#fffffff2;border:0;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .75rem .3rem .85rem;font-size:.85rem;font-weight:700;display:inline-flex;position:absolute;inset-block-start:.7rem;inset-inline-start:.7rem;box-shadow:0 2px 10px #00000024}.cooked-badge:before{content:"";position:absolute;inset:-6px}.cooked-badge:hover{box-shadow:0 0 0 2px var(--color-success), 0 2px 10px #00000024}.cooked-badge:focus-visible{outline:3px solid var(--color-accent-strong);outline-offset:2px}.cooked-badge.is-saving{cursor:progress;opacity:.65}.cooked-badge .icon{color:var(--color-muted)}.cooked-badge.is-cooked{background:var(--color-success);color:#fff}.cooked-badge.is-cooked:hover{background:#17603a;box-shadow:0 2px 10px #00000024}.cooked-badge.is-cooked .icon{color:#fff;stroke-width:3px}.cooked-control{justify-items:start;gap:.35rem;display:grid}.cooked-toggle{background:var(--color-sunken);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:.6rem;padding-block:.5rem;padding-inline:.6rem 1.15rem;font-weight:800;display:inline-flex}.cooked-toggle:has(input:focus-visible){outline:3px solid var(--color-accent-strong);outline-offset:2px}.cooked-toggle-box{background:var(--color-surface);width:2.1rem;height:2.1rem;color:var(--color-muted);border-radius:50%;place-items:center;display:grid}.cooked-toggle-text{line-height:1.2;display:grid}.cooked-toggle-text small{opacity:.8;font-size:.75rem;font-weight:400}.cooked-toggle.is-cooked{background:var(--color-success);color:#fff}.cooked-toggle.is-cooked .cooked-toggle-box{color:var(--color-success)}.cooked-toggle.is-cooked .icon{stroke-width:3px}.cooked-status{min-height:1.4em;color:var(--color-muted);font-size:.9rem;display:block}.gallery-notice-region{z-index:20;pointer-events:none;justify-items:center;gap:.5rem;padding-inline:1rem;display:grid;position:fixed;inset-block-end:1.25rem;inset-inline:0}.gallery-notice{background:var(--color-text);color:#fff;pointer-events:auto;border-radius:18px;align-items:center;gap:.75rem;max-width:40rem;padding:.6rem .5rem .6rem 1.1rem;padding-inline:1.1rem .5rem;display:flex;box-shadow:0 10px 30px #00000040}.gallery-notice.is-error{background:var(--color-danger)}.gallery-notice p{margin:0}.gallery-notice-status{justify-items:center;display:grid}.gallery-notice-undo{color:var(--color-text);font:inherit;cursor:pointer;background:#fff;border:0;border-radius:999px;padding:.35rem 1rem;font-weight:800}.gallery-notice-close{width:2.25rem;height:2.25rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.gallery-notice button:focus-visible{outline-offset:2px;outline:3px solid #ffd27a}.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-block-end:1rem;display:flex}.back-button{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:.35rem .2rem;font-weight:600;display:inline-flex}.back-button:hover{text-decoration:underline}.recipe-cover{background:var(--color-sunken);border-radius:18px;width:100%;height:clamp(12rem,40vw,26rem);margin-block-end:1.25rem;overflow:hidden}.recipe-cover img,.recipe-cover .media-missing{object-fit:cover;width:100%;height:100%}.recipe-cover-empty{height:9rem}.recipe-cover-empty .placeholder-icon{width:4.5rem;height:4.5rem}.recipe-header{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem 1.5rem;display:flex}.cooked-badge.is-static,.cooked-badge.is-static:hover{cursor:default;box-shadow:0 2px 10px #00000024}.cooked-badge.is-cooked.is-static:hover{background:var(--color-success)}.cooked-toggle.is-static{cursor:default;margin:0}.public-intro{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;padding:.85rem 1.1rem;display:flex}.public-intro p{color:var(--color-muted);flex:24rem;margin:0}.public-intro strong{color:var(--color-text)}.processing-banner{border-radius:var(--radius);background:var(--color-accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-block:1.25rem 0;padding:.75rem 1rem;font-weight:600;display:flex}.eyebrow{color:var(--color-accent);margin:0 0 .25rem;font-size:.85rem;font-weight:700}.page-about{width:100%;max-width:60rem;margin-inline:auto}.page-source{width:100%;max-width:76rem;margin-inline:auto}.process-steps{gap:.6rem;margin:1rem 0 0;padding-inline-start:1.5rem;display:grid}.process-steps li::marker{color:var(--color-accent);font-weight:700}.process-step-title{margin-inline-end:.5rem;font-weight:700}.process-steps a{color:var(--color-accent)}.comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-block-start:1.5rem;display:grid}.comparison-pane{min-width:0}.comparison-pane .field-hint{margin-block-end:.75rem}.comparison-original{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-page);max-height:none;padding:.75rem}.comparison-subtitle{margin-block:1.1rem .35rem;font-size:1rem}.quantity-mark{background:var(--color-success-soft);color:inherit;border-radius:4px;padding:0 .2rem;font-weight:600}.change-list{gap:.75rem;margin:.5rem 0 0;display:grid}.change-list dt{font-weight:700}.change-list dd{margin:0}.diff-lines{gap:.25rem;margin:.25rem 0 0;padding:0;list-style:none;display:grid}.diff-lines li{border-radius:8px;padding:.25rem .6rem}.diff-lines li:before{margin-inline-end:.4rem;font-weight:800}.diff-removed{background:var(--color-danger-soft);text-decoration:line-through}.diff-removed:before{content:"−"}.diff-added{background:var(--color-success-soft)}.diff-added:before{content:"+"}.compared-list{gap:.35rem;margin:0;padding-inline-start:1.5rem;display:grid}@media (width<=900px){.comparison{grid-template-columns:minmax(0,1fr)}.topbar-inner{flex-wrap:wrap;gap:.6rem .75rem}.topbar-search{flex-basis:100%;order:3;max-width:none}.quick-import{grid-template-columns:minmax(0,1fr)}.quick-import-help,.quick-import-message{grid-column:1}}@media (width<=700px){.topbar-inner{gap:.6rem .5rem;padding:.6rem 1rem}.brand-name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar-nav{margin-inline-start:0}.topbar-nav button{padding:.35rem .6rem}.import-button{margin-inline-start:auto;padding:.5rem .9rem}.app-content{padding-top:1rem}.quick-import-form{flex-direction:column}.cooked-filter{max-width:none}.cooked-option>span{flex-wrap:wrap;gap:.25rem;padding:.55rem .35rem;font-size:.9rem}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem .85rem}.recipe-card-photo{border-radius:16px;margin-bottom:.3rem}.recipe-card-title{font-size:1rem}.recipe-card-meta,.recipe-card-foot{font-size:.8rem}.cooked-badge{gap:.2rem;padding:.15rem .5rem .15rem .55rem;font-size:.75rem;inset-block-start:.45rem;inset-inline-start:.45rem}.cooked-badge .icon{width:.95rem;height:.95rem}.recipe-card-video{width:1.6rem;height:1.6rem;inset-block-start:.45rem;inset-inline-end:.45rem}.recipe-view{border-radius:18px;padding:1rem}.recipe-title{font-size:1.6rem}}@media (width<=400px){.topbar-inner{gap:.6rem .35rem;padding-inline:.75rem}.brand-logo{width:2.2rem;height:2.2rem}.topbar-nav button{padding:.3rem .45rem;font-size:.92rem}.import-button{gap:.25rem;padding:.45rem .75rem;font-size:.95rem}.app-content{padding-inline:.75rem}}@media (width<=340px){.recipe-grid{grid-template-columns:minmax(0,1fr)}}
