:root{--ink:#26312d;--muted:#6f7d79;--paper:#f7faf7;--card:#fff;--brand:#7f9870;--brand2:#9eb4ca;--accent:#dce8dc;--line:#dce6e2;--green:#617c66;--blue:#dce9f3;--shadow:0 12px 34px rgba(66,91,80,.12);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:linear-gradient(180deg,#e4eee3 0,#eef5fa 330px,#f7faf7 620px);color:var(--ink)}button,input,select{font:inherit}.app{max-width:780px;margin:auto;min-height:100vh;padding-bottom:104px}.hero{padding:30px 18px 18px}.hero-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#718b68,#9bb1c5);color:white;border-radius:28px;padding:25px;box-shadow:var(--shadow)}.hero-card:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-58px;top:-72px;background:rgba(255,255,255,.12)}.eyebrow{font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;opacity:.82}h1{font-family:Georgia,serif;font-size:42px;line-height:1.02;margin:8px 0}.hero p{font-size:16px;margin:0;max-width:470px;opacity:.92}.copyright-mini{font-size:11px;margin-top:17px;opacity:.7}.content{padding:0 15px}.panel{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:var(--shadow);margin-bottom:15px}.panel h2{margin:0 0 12px;font-size:22px}.decision-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:15px}.surprise{display:grid;grid-template-columns:1fr;gap:10px;align-content:space-between;text-align:left;margin:0;min-height:164px;background:linear-gradient(135deg,#edf4e9,#dce8d8);border:1px solid #cbdcc6}.surprise.random{background:linear-gradient(135deg,#edf5fb,#d9e7f2)}.surprise h2{font-family:Georgia,serif;font-size:23px;line-height:1.05;margin-bottom:6px}.surprise p{margin:0;color:var(--muted);font-size:13px}.dice{border:0;width:54px;height:54px;border-radius:17px;background:var(--brand);color:white;font-size:27px;box-shadow:0 9px 20px rgba(88,112,78,.25);display:flex;align-items:center;justify-content:center}.surprise.random .dice{background:var(--green)}.quick-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-cat{position:relative;overflow:hidden;border:1px solid var(--line);background:#fff;border-radius:18px;padding:0;text-align:left;min-height:116px;box-shadow:0 5px 15px rgba(66,91,80,.10);isolation:isolate}.quick-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.quick-cat:after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(180deg,transparent,rgba(23,38,32,.82));z-index:1}.quick-cat strong{position:absolute;left:12px;right:10px;bottom:11px;display:block;font-size:15px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45);z-index:2}.quick-cat:hover img,.quick-cat:focus-visible img{transform:scale(1.045)}.quick-cat.active{border-color:#526c59;box-shadow:0 0 0 3px rgba(127,152,112,.30),0 7px 18px rgba(66,91,80,.15)}.quick-cat.active:before{content:"✓";position:absolute;right:9px;top:9px;z-index:3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);color:var(--green);font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.18)}.chips{display:flex;gap:8px;overflow:auto;padding-bottom:4px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;white-space:nowrap;color:var(--ink)}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.search-row{display:grid;grid-template-columns:1fr auto;gap:8px}.search{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;outline:none}.search:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(191,112,91,.14)}.search-button{border:0;border-radius:14px;padding:0 17px;background:var(--brand);color:#fff;font-weight:800}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{position:relative;text-align:left;background:#fff;border:1px solid var(--line);border-radius:19px;overflow:hidden;min-height:188px;box-shadow:0 5px 15px rgba(66,91,80,.07)}.food-art{height:92px;display:flex;align-items:center;justify-content:center;font-size:43px;background:linear-gradient(145deg,#dce8dc,#dce9f3);position:relative}.food-art:after{content:"";position:absolute;inset:12px 30%;border-radius:50%;background:rgba(255,255,255,.34)}.food-art span{position:relative;z-index:1}.food-art img{width:100%;height:100%;object-fit:cover;display:block}.detail-art{overflow:hidden}.detail-art img{width:100%;height:100%;object-fit:cover;display:block}.card-body{padding:13px}.card h3{font-size:16px;margin:0 27px 5px 0}.meta{color:var(--muted);font-size:12px}.fav{position:absolute;right:9px;top:101px;border:0;background:#f0f6ef;border-radius:50%;width:34px;height:34px;font-size:20px;color:var(--brand);z-index:2}.primary{width:100%;border:0;border-radius:14px;padding:14px;background:var(--brand);color:#fff;font-weight:800}.secondary{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink)}.danger-button{border-color:#e7bbb4;color:#9f382d}.empty{text-align:center;color:var(--muted);padding:26px 12px}.bottom{position:fixed;left:0;right:0;bottom:0;background:rgba(247,250,247,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:center;z-index:20;padding-bottom:env(safe-area-inset-bottom)}.nav{max-width:780px;width:100%;display:grid;grid-template-columns:repeat(4,1fr)}.nav button{border:0;background:none;padding:11px 4px 9px;color:var(--muted);font-size:11px;font-weight:750}.nav button span{display:block;font-size:21px;margin-bottom:2px}.nav button.active{color:var(--brand)}.screen{display:none}.screen.active{display:block}.modal{position:fixed;inset:0;background:rgba(30,20,15,.48);display:none;align-items:flex-end;z-index:50}.modal.open{display:flex}.sheet{background:var(--paper);width:100%;max-width:780px;margin:auto;border-radius:25px 25px 0 0;max-height:93vh;overflow:auto;padding:17px 17px 38px}.handle{width:45px;height:5px;border-radius:5px;background:#d1c2b8;margin:0 auto 15px}.close{float:right;border:0;background:#e5eeea;border-radius:50%;width:38px;height:38px;font-size:20px}.detail-art{height:170px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:74px;background:linear-gradient(145deg,#dce8dc,#dce9f3);margin-bottom:15px}.sheet h2{font-family:Georgia,serif;font-size:30px;margin:5px 45px 8px 0}.tag{display:inline-block;background:#e4eee2;color:var(--brand);border-radius:99px;padding:6px 10px;font-size:12px;font-weight:800;margin:0 5px 5px 0}.section-title{margin:24px 0 10px}.checkrow{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.checkrow input{margin-top:4px;transform:scale(1.22)}ol{padding-left:24px}li{margin:0 0 12px;line-height:1.48}.shopping-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line);animation:fadeIn .2s ease}.shopping-item button{border:0;background:#edf4ed;color:var(--brand);width:38px;height:38px;border-radius:50%;font-size:19px}.toolbar{display:flex;gap:8px;margin-bottom:12px}.toolbar button{flex:1}.idea{padding:13px 0;border-bottom:1px solid var(--line)}.idea strong{display:block}.idea small{color:var(--muted)}.count{font-size:13px;color:var(--muted);margin:-4px 0 9px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:10px 0 18px}.choice{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px 10px;text-align:left}.choice.active{background:var(--brand);color:#fff;border-color:var(--brand)}.result-card{text-align:center;padding:8px 0 3px}.result-emoji{font-size:68px}.result-card h2{margin:6px 0}.spin{animation:spin .55s ease}.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:#2f2723;color:white;border-radius:999px;padding:10px 15px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:80}.toast.show{opacity:1}.about-copy{line-height:1.55;color:var(--muted)}footer{text-align:center;font-size:12px;color:var(--muted);padding:12px 15px 0}@keyframes spin{0%{transform:rotate(-4deg) scale(.93);opacity:.45}55%{transform:rotate(4deg) scale(1.04)}100%{transform:none;opacity:1}}@keyframes fadeIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media(min-width:600px){.quick-cats{grid-template-columns:repeat(4,1fr)}.grid{grid-template-columns:repeat(3,1fr)}.hero{padding-top:42px}.sheet{border-radius:25px;margin-bottom:18px}.modal{align-items:center}.choice-grid{grid-template-columns:repeat(3,1fr)}}

/* Tick-off method steps */
.method-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.method-heading .section-title{margin:0}.method-reset{border:0;background:var(--pale-blue,#dceaf3);color:var(--ink,#31423b);padding:8px 11px;border-radius:999px;font-weight:700;cursor:pointer}.method-list{display:grid;gap:10px;margin-top:12px}.method-step{display:grid;grid-template-columns:24px 30px 1fr;align-items:start;gap:9px;padding:12px;border:1px solid rgba(82,104,91,.18);border-radius:14px;background:#fff;cursor:pointer;transition:.18s ease}.method-step input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--brand)}.method-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--pale-blue,#dceaf3);font-weight:800;color:var(--brand)}.method-text{line-height:1.48;transition:.18s ease}.method-step.done{background:#f1f3f2;border-color:#d7ddda}.method-step.done .method-text{color:#8b918e;text-decoration:line-through}.method-step.done .method-number{background:#dfe5e2;color:#89918d}

.photo-fallback{width:100%;height:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#dceaf2,#e7efe2);color:#526454}.photo-fallback span{font-size:38px}.photo-fallback strong{font-size:14px}

.version-card{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.version-card>div{background:linear-gradient(145deg,#edf4e9,#e4eff7);border:1px solid var(--line);border-radius:14px;padding:12px}.version-card span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.version-card strong{display:block;font-size:14px;color:var(--ink)}#versionTap{cursor:pointer;user-select:none}.small-note{font-size:12px}.developer-preview{background:#eef5eb;border:1px solid #cbdcc6;border-radius:15px;padding:14px;margin-top:14px}.developer-preview h3{margin:0 0 6px}.developer-preview p{margin:0}.quick-cat img{object-position:center}@media(max-width:470px){.version-card{grid-template-columns:1fr}}


/* Version 1.1: recipe-specific tips and substitutions */
.tips-panel{margin-top:16px;border:1px solid #cfded5;border-radius:16px;background:linear-gradient(135deg,#f5faf4,#eef6fb);overflow:hidden}.tips-panel summary{display:flex;align-items:center;gap:9px;padding:14px 15px;cursor:pointer;font-weight:850;color:var(--green);list-style:none}.tips-panel summary::-webkit-details-marker{display:none}.tips-panel summary:after{content:'+';margin-left:auto;font-size:22px;line-height:1}.tips-panel[open] summary:after{content:'−'}.tips-content{padding:0 15px 15px;color:var(--ink)}.tips-content h4{margin:10px 0 7px;font-size:14px;color:var(--green)}.tips-content ul{margin:0 0 12px;padding-left:20px}.tips-content li{margin-bottom:6px}.substitution-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;margin-top:9px}.substitution-card strong{color:var(--ink)}.substitution-card p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.45}


/* Version 1.2: step ingredient pop-ups and clearer method controls */
.method-step{grid-template-columns:24px 30px minmax(0,1fr) auto;cursor:default}
.method-text{display:block;cursor:help;touch-action:pan-y;user-select:none}
.step-info-button{align-self:center;border:0;border-radius:999px;padding:7px 9px;background:#e9f1e6;color:var(--brand);font-size:11px;font-weight:800;cursor:pointer}
.method-step.done .step-info-button{opacity:.62}
.step-ingredient-popup{position:fixed;inset:0;display:none;align-items:flex-end;justify-content:center;padding:16px;background:rgba(25,31,28,.52);z-index:95}.step-ingredient-popup.open{display:flex}.step-popup-card{position:relative;width:min(520px,100%);max-height:78vh;overflow:auto;background:var(--paper);border-radius:22px;padding:22px 17px 18px;box-shadow:0 18px 50px rgba(0,0,0,.25)}.step-popup-close{position:absolute;right:12px;top:11px;border:0;width:36px;height:36px;border-radius:50%;background:#e5eeea;color:var(--ink);font-size:22px}.step-popup-kicker{margin:0;color:var(--brand);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.step-popup-card h3{margin:5px 42px 8px 0;font-family:Georgia,serif;font-size:24px}.step-popup-instruction{margin:0 0 15px;padding:11px 12px;border-radius:13px;background:#edf4eb;line-height:1.45}.step-popup-list{display:grid;gap:8px}.step-popup-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;text-align:left;background:#fff;color:var(--ink)}.step-popup-list button small{color:var(--brand);font-weight:750}.step-popup-list button.added{background:#eef5eb}.step-popup-empty{color:var(--muted);margin:8px 0}.wake-note{display:flex;gap:8px;align-items:flex-start;padding:11px 12px;border-radius:13px;background:#edf4eb;color:var(--ink)}
@media(max-width:470px){.method-step{grid-template-columns:22px 28px minmax(0,1fr)}.step-info-button{grid-column:3;justify-self:start;margin-top:5px}}


/* Version 1.3: linked photographic filters and timed method steps */
.filter-panel h2{margin-bottom:5px}.photo-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.photo-filter{position:relative;overflow:hidden;min-width:0;border:2px solid transparent;border-radius:15px;background:#fff;padding:0;text-align:left;box-shadow:0 4px 12px rgba(66,91,80,.08);cursor:pointer}.photo-filter img{display:block;width:100%;height:76px;object-fit:cover}.photo-filter strong{display:block;padding:8px 7px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-filter.active{border-color:var(--brand);box-shadow:0 0 0 3px rgba(76,112,87,.15)}.photo-filter.active:after{content:'✓';position:absolute;right:7px;top:7px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-weight:900}.filter-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.filter-summary button{border:0;border-radius:999px;padding:7px 10px;background:#e8f0e5;color:var(--brand);font-weight:800}.timer-button{background:#e4edf7;color:#315873}.timer-button.running{background:#315873;color:#fff;min-width:88px}.timer-button.finished{background:#dcebd8;color:#315b3d}@media(max-width:520px){.photo-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-filter img{height:92px}.photo-filter strong{font-size:13px}.filter-summary{align-items:flex-start}.method-step .timer-button{grid-column:3;justify-self:start;margin-top:5px}}


/* Version 1.5: persistent cooking alarm and corrected accompaniment filters */
.timer-alarm{position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(25,31,28,.72);backdrop-filter:blur(5px)}
.timer-alarm.open{display:flex;animation:alarmBackdrop 1s ease-in-out infinite alternate}
.timer-alarm-card{width:min(520px,100%);border-radius:26px;padding:25px 20px 22px;text-align:center;background:var(--paper);box-shadow:0 24px 80px rgba(0,0,0,.36);border:4px solid #e1a83f}
.timer-alarm-icon{font-size:58px;animation:alarmBell .7s ease-in-out infinite alternate}.timer-alarm-kicker{margin:4px 0 5px;color:#9a6515;font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:12px}.timer-alarm-card h2{margin:0;font-family:Georgia,serif;font-size:30px;color:var(--green)}.timer-alarm-step{font-weight:850;color:var(--muted);margin:8px 0}.timer-alarm-instruction{margin:15px 0 19px;padding:18px;border-radius:17px;background:#edf4eb;font-size:22px;font-weight:800;line-height:1.35;color:var(--ink)}.timer-dismiss{width:100%;font-size:18px;padding:14px}.photo-filter img[src$="bread.jpg"],.photo-filter img[src$="salad.jpg"],.photo-filter img[src$="vegetables.jpg"]{object-position:center}
@keyframes alarmBell{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.07)}}@keyframes alarmBackdrop{from{background:rgba(25,31,28,.68)}to{background:rgba(119,83,21,.76)}}


/* Version 1.6: Heather's Kitchen recipe editor */
.editor-shell{padding-bottom:24px}.editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.editor-header h2{font-family:Georgia,serif;font-size:29px;margin:0 0 5px}.editor-actions{display:flex;flex-wrap:wrap;gap:8px}.editor-actions button,.editor-file-label{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);font-weight:750;cursor:pointer}.editor-file-label input{display:none}.editor-danger{color:#9f382d!important;border-color:#e7bbb4!important}.editor-layout{display:grid;grid-template-columns:minmax(190px, .7fr) minmax(0,1.5fr);gap:14px}.editor-list{max-height:70vh;overflow:auto}.editor-search{margin-bottom:10px}.editor-recipe-button{display:block;width:100%;border:0;border-bottom:1px solid var(--line);padding:12px 9px;background:transparent;text-align:left;color:var(--ink)}.editor-recipe-button.active{background:#eaf2e7;border-radius:11px;color:var(--green);font-weight:850}.editor-form label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin:12px 0 5px}.editor-form input,.editor-form textarea,.editor-form select{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;color:var(--ink)}.editor-form textarea{min-height:84px;resize:vertical;line-height:1.45}.editor-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.editor-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 8px}.editor-section-title h3{margin:0}.editor-row{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px;margin-bottom:9px}.editor-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.editor-row-head strong{font-size:13px}.editor-mini-actions{display:flex;gap:5px}.editor-mini-actions button{border:1px solid var(--line);background:#f8faf8;border-radius:9px;padding:6px 8px}.editor-ingredient-grid{display:grid;grid-template-columns:1.2fr .65fr .55fr;gap:7px}.editor-savebar{position:sticky;bottom:78px;display:flex;gap:8px;padding:10px;margin-top:15px;background:rgba(247,250,247,.95);border:1px solid var(--line);border-radius:15px;backdrop-filter:blur(8px)}.editor-savebar .primary{flex:1}.editor-note{padding:11px 12px;border-radius:12px;background:#edf4eb;color:var(--muted);font-size:12px;line-height:1.45}.editor-empty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:650px){.editor-layout{grid-template-columns:1fr}.editor-list{max-height:240px}.editor-two,.editor-ingredient-grid{grid-template-columns:1fr}.editor-savebar{bottom:76px}}

.editor-ingredient-grid-v2{display:grid;grid-template-columns:.7fr .8fr 1.25fr 1fr;gap:8px;align-items:start}.editor-ingredient-grid-v2 label{margin:0 0 4px}.editor-custom{margin-top:6px}.hidden{display:none!important}.editor-timer-row{display:flex;align-items:end;gap:14px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}.editor-timer-row .timer-check{display:flex;align-items:center;gap:7px;margin:0;font-size:13px}.editor-timer-row .timer-check input{width:auto}.timer-minutes{max-width:130px}.timer-minutes label{margin:0 0 4px}.about-copy h3{font-family:Georgia,serif;font-size:24px;margin:0 0 10px;color:var(--brand)}@media(max-width:760px){.editor-ingredient-grid-v2{grid-template-columns:1fr 1fr}}@media(max-width:430px){.editor-ingredient-grid-v2{grid-template-columns:1fr}}


/* v1.9 desktop spreadsheet editor */
.editor-layout{grid-template-columns:220px minmax(860px,1fr);align-items:start}.editor-workspace{overflow-x:auto}.editor-sidebar{position:sticky;top:12px}.editor-form input,.editor-form textarea,.editor-form select{border-radius:7px}.ingredient-sheet,.method-sheet{min-width:850px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.ingredient-sheet-head,.ingredient-sheet-row{display:grid;grid-template-columns:38px 90px 115px minmax(190px,1.35fr) minmax(180px,1.15fr) 96px;align-items:stretch}.ingredient-sheet-head,.method-sheet-head{background:#eef3ec;font-size:12px;font-weight:850;color:var(--muted);border-bottom:1px solid var(--line)}.ingredient-sheet-head span,.method-sheet-head span{padding:9px 7px}.ingredient-sheet-row{border-bottom:1px solid var(--line)}.ingredient-sheet-row:last-child{border-bottom:0}.ingredient-sheet-row>input,.ingredient-sheet-row>div>select,.ingredient-sheet-row>div>input{height:100%;min-height:40px;border:0!important;border-right:1px solid var(--line)!important;border-radius:0!important;padding:8px!important}.ingredient-sheet-row>div{min-width:0}.ingredient-sheet-row .editor-custom{border-top:1px dashed var(--line)!important;height:auto}.sheet-number{display:flex;align-items:center;justify-content:center;background:#fafbf9;color:var(--muted);font-weight:800;border-right:1px solid var(--line)}.sheet-actions{display:flex!important;align-items:center;justify-content:center;gap:3px;padding:4px;border-left:0}.sheet-actions button,.note-sheet-row>button{border:1px solid var(--line);background:#f8faf8;border-radius:6px;padding:5px 7px;cursor:pointer}.editor-add-row{width:100%;margin-top:7px;padding:10px;border:1px dashed #a9b9a2;background:#f5f8f3;color:var(--green);border-radius:8px;font-weight:850;cursor:pointer}.method-sheet-head,.method-sheet-row{display:grid;grid-template-columns:38px minmax(520px,1fr) 135px 96px}.method-sheet-row{border-bottom:1px solid var(--line);align-items:stretch}.method-sheet-row:last-child{border-bottom:0}.method-sheet-row textarea{border:0!important;border-right:1px solid var(--line)!important;border-radius:0!important;min-height:74px!important;padding:9px!important}.sheet-timer{padding:8px;border-right:1px solid var(--line);display:grid;grid-template-columns:auto 55px;gap:4px;align-content:center}.sheet-timer label{grid-column:1/-1;display:flex!important;align-items:center;gap:5px;margin:0!important}.sheet-timer label input{width:auto!important}.sheet-timer>input{padding:5px!important}.sheet-timer small{align-self:center}.note-sheet-row{display:grid;grid-template-columns:38px 1fr 45px;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:6px}.note-sheet-row textarea{border:0!important;border-radius:0!important;min-height:58px!important}.note-sheet-row>button{margin:6px}.editor-section-title{margin-top:26px}.editor-savebar{bottom:12px}.methods-search{margin:10px 0 14px}.methods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.method-card{display:grid;grid-template-columns:32px 1fr;text-align:left;gap:3px 8px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;cursor:pointer;color:var(--ink)}.method-card:hover{background:#f3f7f1;border-color:#b7c8b0}.method-card>span{grid-row:1/3;font-size:22px}.method-card strong{font-size:15px}.method-card small{color:var(--muted);line-height:1.25}.method-word{display:inline;border:0;border-bottom:2px dotted var(--brand);padding:0 1px;background:transparent;color:inherit;font:inherit;font-weight:750;cursor:pointer}.method-word:hover{color:var(--brand);background:#fff5ee}.method-help-sheet{max-width:620px!important}.method-help-icon{font-size:34px;margin-bottom:5px}.method-help-block{border-top:1px solid var(--line);padding:13px 0 2px}.method-help-block strong,.method-result strong{color:var(--green)}.method-help-block p,.method-result p{margin:5px 0 10px;line-height:1.5}.method-result{background:#f0f5ed;border-radius:12px;padding:13px;margin-top:10px}.method-result p{margin-bottom:0}.nav{grid-template-columns:repeat(5,1fr)!important}
@media(max-width:900px){.editor-layout{grid-template-columns:190px minmax(760px,1fr)}}

/* v1.10 desktop builder */
.method-sheet,.ingredient-sheet{min-width:980px}
.method-sheet-head,.method-sheet-row{grid-template-columns:38px minmax(480px,1fr) 300px 96px}
.sheet-timer.named-timer{display:block;padding:8px}
.sheet-timer.named-timer>label{display:flex!important;align-items:center;gap:6px;margin:0 0 6px!important}
.timer-fields{display:grid;grid-template-columns:72px 1fr 1.3fr;gap:6px}
.timer-fields label{display:block!important;margin:0!important;font-size:10px;color:var(--muted)}
.timer-fields input{margin-top:3px;padding:6px!important;min-height:34px}
.prep-sheet-row{display:grid;grid-template-columns:38px 1fr 96px;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:6px;background:#fff}
.prep-sheet-row textarea{border:0!important;border-radius:0!important;min-height:58px!important}
.prep-sheet-row .sheet-actions{border-left:1px solid var(--line)}

/* v1.11 scaling setup */
.scaling-setup{margin-top:14px}.scaling-sheet .ingredient-sheet-head,.scaling-sheet .ingredient-sheet-row{grid-template-columns:42px 74px 90px 115px minmax(180px,1.25fr) minmax(170px,1fr) 130px 108px}.main-radio{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.main-radio input{width:auto}.scaling-sheet select[data-scale-mode]{min-width:120px}

/* v1.11.3 builder wide-layout hard fix */
body .app{max-width:1500px;width:100%;padding-left:14px;padding-right:14px}
body .content{padding-left:0;padding-right:0}
body .editor-layout{grid-template-columns:220px minmax(0,1fr);width:100%;max-width:none}
body .editor-workspace{min-width:0;overflow-x:auto}
body .ingredient-sheet.scaling-sheet{width:100%;min-width:1120px}
body .scaling-sheet .ingredient-sheet-head,
body .scaling-sheet .ingredient-sheet-row{grid-template-columns:42px 78px 96px 112px minmax(210px,1.25fr) minmax(190px,1fr) 140px 118px}
body .scaling-sheet .ingredient-sheet-head>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .scaling-sheet .ingredient-sheet-row>*{min-width:0}
body .scaling-sheet .sheet-actions{position:static;display:flex!important;flex-wrap:nowrap;white-space:nowrap;overflow:visible}
body .scaling-sheet .sheet-actions button{flex:0 0 auto}
body .scaling-sheet select[data-scale-mode]{width:100%;min-width:0;border-radius:0!important;border:0!important;border-right:1px solid var(--line)!important;padding:8px!important}
@media(max-width:900px){body .app{min-width:1180px}body .editor-layout{grid-template-columns:190px minmax(0,1fr)}}

/* v1.12.0: multiple 'Works with' choices and one timer-end message */
.works-with-block{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8faf7}
.works-with-block>label{margin-top:0!important}
.works-with-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.works-with-option{display:inline-flex!important;align-items:center;gap:6px;margin:0!important;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink)!important;font-size:12px!important;cursor:pointer}
.works-with-option input{width:auto!important;margin:0}
.timer-fields.single-message{grid-template-columns:78px minmax(160px,1fr)}

/* v1.12.1 restore step ingredient assignment */
.step-ingredients-fieldset{margin:10px 0 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8faf8}.step-ingredients-fieldset legend{padding:0 6px;font-size:13px;font-weight:850;color:var(--green)}.step-ingredients-fieldset .meta{margin:0 0 8px}.step-ingredient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.step-ingredient-choice{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)!important;font-size:13px!important}.step-ingredient-choice input{width:auto!important;margin:0}@media(max-width:700px){.step-ingredient-grid{grid-template-columns:1fr}}

/* v1.14.3 — category-based Builder navigation */
.editor-sidebar{
  align-self:start;
  position:sticky;
  top:14px;
  max-height:calc(100vh - 28px);
  overflow:auto;
}
.editor-category-nav{
  display:grid;
  gap:6px;
  margin:12px 0 14px;
}
.editor-category-button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  border:1px solid #ddd8d0;
  border-radius:12px;
  padding:9px 11px;
  background:#fff;
  color:var(--ink);
  font-weight:700;
  text-align:left;
  cursor:pointer;
}
.editor-category-button small{
  min-width:24px;
  padding:2px 6px;
  border-radius:999px;
  background:#f0eee9;
  text-align:center;
  font-size:11px;
}
.editor-category-button.active{
  border-color:var(--brand);
  background:#f4f8f0;
  color:var(--brand);
}
.editor-category-button.active small{
  background:#fff;
}
.editor-guide-nav{
  margin:0 0 13px;
}
.editor-guide-title{
  margin:4px 2px 7px;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}
.editor-guide-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.editor-guide-buttons button{
  border:1px solid #ddd8d0;
  border-radius:999px;
  background:#fff;
  padding:6px 9px;
  font-size:12px;
  cursor:pointer;
}
.editor-guide-buttons button.active{
  border-color:var(--brand);
  background:#f4f8f0;
  color:var(--brand);
  font-weight:800;
}
.editor-list-heading{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  margin:10px 2px 7px;
}
.editor-list-heading small{
  color:var(--muted);
}
.editor-list{
  max-height:none !important;
  overflow:visible !important;
}
@media(max-width:800px){
  .editor-sidebar{
    position:static;
    max-height:none;
    overflow:visible;
  }
  .editor-category-nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* v1.14.6 — intolerance / allergen capture */
.intolerance-block{margin:14px 0;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fffaf2;box-shadow:inset 4px 0 0 #d6a34a}
.intolerance-block.is-reviewed{background:#f7fbf5;box-shadow:inset 4px 0 0 var(--brand)}
.intolerance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.intolerance-head>div{min-width:0}.intolerance-head>div>label{font-weight:800}
.intolerance-review-toggle{display:flex!important;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;font-weight:800;white-space:nowrap;cursor:pointer}
.intolerance-review-toggle input{width:19px!important;height:19px!important;accent-color:var(--brand)}
.intolerance-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px;margin:12px 0}
.intolerance-option{display:flex!important;align-items:center;gap:8px;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;cursor:pointer}
.intolerance-option input{width:17px!important;height:17px!important;accent-color:var(--brand)}
.dietary-note-row{margin-top:10px}.dietary-note-row label{display:block;font-weight:800;margin-bottom:5px}.dietary-note-row input{width:100%}
.intolerance-warning{margin:8px 0 0!important;font-size:.9em}
@media(max-width:1200px){.intolerance-options{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v1.14.7 description helpers + explicit vegetarian/vegan review */
.description-block,.diet-suitability-block{margin:14px 0;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}.description-pick-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.description-pick-row button{min-height:40px;white-space:nowrap}.description-block textarea{margin-top:8px;min-height:92px}.diet-suitability-block{background:#fffaf2;box-shadow:inset 4px 0 0 #d6a34a}.diet-suitability-block.is-reviewed{background:#f7fbf5;box-shadow:inset 4px 0 0 var(--brand)}.diet-suitability-options{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}.diet-suitability-option{display:flex!important;align-items:center;gap:8px;margin:0!important;font-weight:800;color:var(--ink)!important}.diet-suitability-option input{width:20px!important;height:20px!important;accent-color:var(--brand)}

/* v1.14.8 — review-friendly Builder tidy-up */
.review-strip{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;position:sticky;top:0;z-index:8;background:rgba(247,250,247,.96);padding:9px 0;backdrop-filter:blur(8px)}
.review-strip span{font-size:12px;font-weight:850;border-radius:999px;padding:7px 10px;border:1px solid var(--line);background:#fff}.review-strip .done{background:#edf5e9;color:#496541;border-color:#c9dbc1}.review-strip .todo{background:#fff7ea;color:#825b25;border-color:#ead4aa}
.builder-section-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px 17px;margin:0 0 14px;box-shadow:0 2px 7px rgba(62,48,35,.035)}
.section-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0eb;padding-bottom:9px;margin-bottom:10px}.section-card-heading h3{margin:0;font-family:Georgia,serif;font-size:20px}.section-card-heading small{color:var(--muted);text-align:right}
.compact-block{padding:10px 12px;margin:10px 0}.compact-block .content-type-options{margin-top:4px}
.photo-upload-grid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}.photo-preview-box{height:150px;border:1px dashed #b9c6b4;border-radius:13px;overflow:hidden;background:#f6f8f4;display:flex;align-items:center;justify-content:center}.photo-preview-box img{width:100%;height:100%;object-fit:cover;display:block}.photo-empty{display:flex;flex-direction:column;gap:5px;align-items:center;color:var(--muted)}.photo-empty span{font-size:30px}.photo-upload-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.photo-upload-controls>strong{width:100%;font-size:13px}.photo-upload-controls .meta{width:100%;margin:2px 0}.photo-upload-button{display:inline-flex!important;align-items:center}
.trait-options,.equipment-options{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.trait-option,.equipment-option{display:flex!important;align-items:center;gap:6px;margin:0!important;border:1px solid var(--line);border-radius:999px;padding:7px 9px;background:#fafbf9;color:var(--ink)!important;font-weight:700!important;cursor:pointer}.trait-option:has(input:checked),.equipment-option:has(input:checked){background:#edf4e9;border-color:#b5c8ac}.trait-option input,.equipment-option input{width:16px!important;height:16px!important;margin:0;accent-color:var(--brand)}
.description-actions{display:flex;gap:8px;margin:10px 0 4px}.legacy-tags-note{background:#f7f3f8;border-radius:9px;padding:8px 10px}.custom-equipment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}.custom-equipment-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.custom-equipment-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 8px 6px 10px;border-radius:999px;background:#eee8f1;color:#5c2c65;font-size:12px;font-weight:800}.custom-equipment-chip button{border:0;background:transparent;color:inherit;font-size:16px;line-height:1;cursor:pointer}.washing-suggestion{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:10px 12px;background:#f5f8f2;border-radius:11px;border:1px solid #dbe5d6}.washing-suggestion span{font-size:13px;color:var(--muted)}
.method-main-cell{min-width:0}.step-tips{border-top:1px solid var(--line);padding:8px}.step-tips-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.step-tips-head strong{font-size:12px;color:var(--muted)}.tip-add{padding:5px 8px!important;font-size:11px}.tip-editor-row{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(240px,1.3fr) 34px;gap:6px;margin-top:6px;align-items:stretch}.tip-editor-row input,.tip-editor-row textarea{border:1px solid var(--line)!important;border-radius:7px!important;padding:7px!important;min-height:38px!important}.tip-editor-row textarea{resize:vertical}.tip-editor-row button{border:1px solid #e5c5c0;border-radius:7px;background:#fff7f5;color:#9f382d;font-weight:800;cursor:pointer}.step-ingredients-fieldset{margin:8px;border:1px solid #e4e9e1;border-radius:8px;padding:8px}.step-ingredients-fieldset legend{font-size:11px;font-weight:850;color:var(--muted)}
.description-block{background:#fff!important;box-shadow:none!important}.builder-section-card .intolerance-block,.builder-section-card .diet-suitability-block{margin-top:10px}
@media(max-width:1150px){.photo-upload-grid{grid-template-columns:150px 1fr}.section-card-heading{align-items:flex-start;flex-direction:column;gap:2px}.section-card-heading small{text-align:left}}

/* v1.14.11 — Preparation notes can carry the same contextual pop-up tips as Method steps. */
.prep-main-cell{min-width:0}
.prep-main-cell>textarea{display:block;width:100%;box-sizing:border-box}
.prep-main-cell .prep-tips{border-top:1px solid var(--line)}
@media(max-width:760px){.tip-editor-row{grid-template-columns:1fr 34px}.tip-editor-row textarea{grid-column:1/-1}.prep-sheet-row{grid-template-columns:32px minmax(0,1fr) 82px}}


/* v1.14.13 — central reusable Tips Library + dropdowns */
.tip-picker{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tip-picker select{min-width:230px;max-width:420px;background:#fff}.tip-linked-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-top:8px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#faf7fb}.tip-linked-row strong{display:block;color:var(--brand);margin-bottom:2px}.tip-linked-row small{display:block;color:var(--muted);font-weight:700;margin-bottom:5px}.tip-linked-row p{margin:0;white-space:pre-wrap;line-height:1.45}.tip-row-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.tip-row-actions button{width:auto!important}.tip-editor-row{grid-template-columns:minmax(180px,.7fr) minmax(300px,1.3fr) auto!important}.tip-editor-row .tip-row-actions{align-self:stretch}.tip-manager-panel{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#faf7fb}.tip-manager-panel.hidden{display:none}.tip-manager-head,.tip-manager-tools,.tip-manager-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.tip-manager-head h3{margin:0}.tip-manager-head p{margin:.3rem 0 0}.tip-manager-tools{margin:14px 0}.tip-manager-tools input{flex:1;min-width:280px}.tip-library-list{display:grid;gap:10px;max-height:520px;overflow:auto;padding-right:4px}.tip-library-row{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(340px,1.35fr) auto;gap:8px;align-items:start;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px}.tip-library-row textarea{min-height:74px}.tip-library-delete{align-self:center}.tip-manager-footer{justify-content:flex-end;margin-top:14px}

/* v1.14.14 — reliable Tips Library picker */
.tip-picker .tip-use{font-weight:850;white-space:nowrap}.tip-picker select{cursor:pointer}.tip-picker:before{content:'Saved tip:';font-size:11px;font-weight:800;color:var(--muted)}


/* v1.14.16 — quick dietary note */
.quick-dietary-note{display:flex;align-items:center;gap:8px;margin:8px 0 9px;padding:9px 11px;border:1px solid rgba(91,22,101,.18);border-radius:10px;background:#faf7fb;font-weight:600;cursor:pointer}
.quick-dietary-note input{width:auto;margin:0}
.quick-dietary-note span{font-size:.95rem}

/* v1.14.17 — release groups, multi-bundle membership and overlap checks */
.recipe-badges{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex:0 0 auto}.access-badge{font-size:9px;line-height:1;border-radius:999px;padding:4px 6px;white-space:nowrap;font-weight:900;letter-spacing:.03em}.access-badge.free{background:#e6f3e2;color:#315a2c}.access-badge.premium{background:#efe3f2;color:#64206d}.access-badge.unassigned{background:#efefef;color:#666}.release-section{background:#fffdf8!important}.release-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);gap:16px;align-items:start}.bundle-rule{padding:11px 12px;border:1px solid #eadfcb;border-radius:11px;background:#fff8eb;line-height:1.45}.collection-options{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.collection-option{display:flex!important;align-items:center;gap:6px;margin:0!important;border:1px solid var(--line);border-radius:999px;padding:7px 9px;background:#fafbf9;color:var(--ink)!important;font-weight:750!important;cursor:pointer}.collection-option:has(input:checked){background:#f0e7f2;border-color:#c9abcE}.collection-option input{width:16px!important;height:16px!important;margin:0;accent-color:var(--brand)}.custom-collection-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}.bundle-overlap{display:grid;gap:7px;margin-top:12px}.bundle-overlap-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:#fafafa}.bundle-overlap-row div{display:flex;flex-direction:column;gap:2px}.bundle-overlap-row small{color:var(--muted)}.bundle-overlap-row>span{font-size:12px;font-weight:850;white-space:nowrap}.bundle-overlap-row.ok{background:#f4f8f1;border-color:#d7e4d0}.bundle-overlap-row.warn{background:#fff3ed;border-color:#efc7b5}.bundle-overlap-row.warn>span{color:#9b492f}.bundle-free-warning{margin:2px 0 0;padding:9px 11px;border-radius:10px;background:#fff6dd;color:#725416;font-size:12px;font-weight:700}.review-strip{flex-wrap:wrap}@media(max-width:1050px){.release-grid{grid-template-columns:1fr 1fr}}


/* v1.14.18 — collapsible Builder sections */
details.builder-section-card.collapsible-section{display:block}
details.builder-section-card.collapsible-section>summary.section-card-heading{cursor:pointer;list-style:none;margin-bottom:0;border-bottom:0;padding-right:30px;position:relative;user-select:none}
details.builder-section-card.collapsible-section>summary.section-card-heading::-webkit-details-marker{display:none}
details.builder-section-card.collapsible-section>summary.section-card-heading::after{content:"›";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-family:Arial,sans-serif;font-size:26px;line-height:1;color:var(--brand);font-weight:800}
details.builder-section-card.collapsible-section[open]>summary.section-card-heading{margin-bottom:10px;border-bottom:1px solid #edf0eb}
details.builder-section-card.collapsible-section[open]>summary.section-card-heading::after{content:"⌄";top:45%}
details.builder-section-card.collapsible-section>summary.section-card-heading:hover h3{color:var(--brand)}


/* v1.14.20 — Ingredient ↔ Method checker */
.method-check-panel{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.method-check-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fafafa}
.method-check-summary>div{display:flex;flex-direction:column;gap:3px}
.method-check-summary small{color:var(--muted);font-weight:400}
.method-check-summary.pass{background:#f3f8f1;border-color:#c8dbc1}
.method-check-summary.warn{background:#fff8ec;border-color:#e9c985}
.method-check-group{margin:10px 0;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.method-check-group ul{margin:7px 0 0 18px;padding:0}
.method-check-group li{margin:3px 0}
.method-check-info{margin:10px 0;padding:8px 12px;border:1px dashed var(--line);border-radius:10px}
.method-check-info summary{cursor:pointer;font-weight:700}
.method-check-repeat{margin:10px 2px 0}
.method-check-badge{font-size:10px;line-height:1;border-radius:999px;padding:4px 6px;white-space:nowrap}
.method-check-badge.pass{background:#edf6e9;color:#47673d}
.method-check-badge.warn{background:#fff1d7;color:#795217}

/* v1.14.21 — manual acknowledgement for advisory method-check warnings */
.method-check-summary.reviewed{background:#f3f8f1;border-color:#c8dbc1;box-shadow:inset 4px 0 0 var(--brand)}
.method-check-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.method-check-badge.reviewed{background:#edf6e9;color:#47673d}

.ingredient-sort-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}.ingredient-sort-tools .meta{margin:0}


/* v1.14.26 — publication status view */
.editor-publish-filter{
  margin:12px 0 14px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#f8faf7;
}
.editor-publish-title{
  margin:0 0 7px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.editor-publish-buttons{
  display:grid;
  gap:6px;
}
.editor-publish-buttons button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  border:1px solid #ddd8d0;
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
  color:var(--ink);
  font-weight:800;
  cursor:pointer;
}
.editor-publish-buttons button small{
  min-width:28px;
  padding:2px 6px;
  border-radius:999px;
  background:#efeee9;
  text-align:center;
}
.editor-publish-buttons button.active{
  border-color:var(--brand);
  background:#edf4e9;
  box-shadow:0 0 0 2px rgba(127,152,112,.14);
}


/* v1.14.27 — optional Cooking Guide link on every Method step */
.step-guide-field{display:grid!important;grid-template-columns:auto minmax(260px,1fr);align-items:center;gap:10px;margin:8px!important;padding:9px 10px;border:1px solid #d8c8dc;border-radius:9px;background:#fbf7fc;color:#5b1665!important;font-size:12px!important;font-weight:850}
.step-guide-field>span{white-space:nowrap}.step-guide-field small{font-weight:650;color:var(--muted)}
.step-guide-field select{min-width:0;border:1px solid #d8c8dc!important;border-radius:7px!important;padding:7px 8px!important;background:#fff;color:var(--ink)}
@media(max-width:850px){.step-guide-field{grid-template-columns:1fr}.step-guide-field>span{white-space:normal}}

.step-guide-field em{display:block;margin-top:3px;font-style:normal;font-size:10px;font-weight:650;color:var(--muted);white-space:normal}


/* v1.14.29 — automatic ingredient suggestions */
.ingredient-auto-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 12px;padding:11px 12px;border:1px solid #d9e3d4;border-radius:13px;background:#f4f8f2}
.ingredient-auto-tools button{font-weight:900}
.ingredient-suggestion-card{margin:0 0 14px;border:1px solid #cad8c3;border-radius:14px;background:#fbfdf9;overflow:hidden}
.ingredient-suggestion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px;background:#eef5ea;border-bottom:1px solid #d8e4d2}
.ingredient-suggestion-head strong{font-size:15px;color:var(--ink)}
.ingredient-suggestion-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.4}
.ingredient-suggestion-grid{padding:10px 12px}
.ingredient-suggestion-grid-head,.ingredient-suggestion-row{display:grid;grid-template-columns:52px 110px 110px minmax(230px,1fr);gap:8px;align-items:center}
.ingredient-suggestion-grid-head{padding:0 5px 6px;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ingredient-suggestion-row{padding:5px;border-top:1px solid #edf0ea}
.ingredient-suggestion-row:first-of-type{border-top:0}
.ingredient-suggestion-row>input[type="checkbox"]{width:19px;height:19px;justify-self:center;accent-color:var(--brand)}
.ingredient-suggestion-row>input:not([type="checkbox"]){width:100%;min-width:0}
.ingredient-suggestion-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 14px;border-top:1px solid #d8e4d2;background:#fff}
.ingredient-suggestion-success,.ingredient-suggestion-empty{margin:0 0 14px;padding:11px 13px;border-radius:12px;border:1px solid #d7e2d1;background:#f2f7ef;color:#49613f;font-weight:800}
.ingredient-suggestion-empty{font-weight:600;color:var(--muted)}
@media(max-width:1150px){.ingredient-suggestion-grid-head,.ingredient-suggestion-row{grid-template-columns:48px 95px 95px minmax(210px,1fr)}}


/* v1.14.30 — Free version & recipe bundle editor */
.bundle-manager-panel{margin-top:14px}
.bundle-manager-create{display:flex;gap:8px;align-items:center;margin:12px 0}.bundle-manager-create input{flex:1}
.bundle-manager-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;align-items:start}
.bundle-manager-nav{border:1px solid var(--line);border-radius:14px;padding:8px;background:#fafaf8;max-height:590px;overflow:auto}
.bundle-nav-heading{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 8px 5px}
.bundle-manager-nav button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left;color:var(--ink);font-weight:800;cursor:pointer}
.bundle-manager-nav button:hover{background:#fff}.bundle-manager-nav button.active{background:#edf4e9;border-color:var(--brand);box-shadow:0 0 0 2px rgba(127,152,112,.12)}
.bundle-manager-nav button small{min-width:28px;text-align:center;background:#eeeee9;border-radius:999px;padding:2px 6px}
.bundle-manager-main{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;min-width:0}
.bundle-manager-main-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.bundle-manager-main-head h4{margin:0;font-size:20px;color:var(--brand-dark,var(--brand))}
.bundle-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bundle-target{font-size:11px;font-weight:900;border-radius:999px;padding:4px 8px}.bundle-target.ok{background:#e8f0e4;color:#4c6841}.bundle-target.warn{background:#fff0dc;color:#80541f}
.bundle-manager-actions{display:flex;gap:6px;flex-wrap:wrap}.bundle-recipe-search{width:100%;margin:8px 0 10px}
.bundle-recipe-list{display:grid;gap:5px;max-height:440px;overflow:auto;padding-right:3px}.bundle-recipe-row{display:grid;grid-template-columns:22px minmax(200px,1fr) 110px auto;gap:9px;align-items:center;padding:8px 9px;border:1px solid #e4e1da;border-radius:10px;background:#fbfbfa;cursor:pointer}.bundle-recipe-row:hover{border-color:#b9c7b0;background:#fff}.bundle-recipe-row input{width:18px;height:18px;accent-color:var(--brand)}.bundle-recipe-name{font-weight:800}.bundle-recipe-meta{font-size:12px;color:var(--muted)}
.bundle-manager-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(max-width:900px){.bundle-manager-layout{grid-template-columns:1fr}.bundle-manager-nav{max-height:260px}.bundle-recipe-row{grid-template-columns:22px minmax(150px,1fr) auto}.bundle-recipe-meta{display:none}}


/* v1.14.36 — per-method-step ingredient scanner */
.step-scan-tools{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding:6px 8px 3px;
}
.step-scan-button{
  padding:6px 9px!important;
  font-size:11px!important;
  font-weight:850!important;
  border-color:#b9cdb0!important;
  background:#f4f8f1!important;
  color:var(--green)!important;
}
.step-scan-panel{
  margin:6px 8px 10px;
  border:2px solid #b9cdb0;
  border-radius:11px;
  overflow:hidden;
  background:#fbfdf9;
}
.step-scan-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  padding:10px 11px;
  background:#edf5e9;
  border-bottom:1px solid #cfddc8;
}
.step-scan-head strong{display:block;font-size:13px;color:var(--ink)}
.step-scan-head small{display:block;margin-top:2px;color:var(--muted);line-height:1.35}
.step-scan-grid{padding:7px 9px}
.step-scan-grid-head,.step-scan-row{
  display:grid;
  grid-template-columns:42px 82px 82px minmax(170px,1fr) 105px;
  gap:6px;
  align-items:center;
}
.step-scan-grid-head{
  padding:2px 3px 5px;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}
.step-scan-row{
  padding:5px 3px;
  border-top:1px solid #e7ede3;
}
.step-scan-row input{min-width:0!important;padding:6px!important}
.step-scan-row input[type="checkbox"]{width:18px!important;height:18px!important;justify-self:center}
.step-scan-row input[readonly]{background:#f2f4f1!important;color:#5e665a!important}
.step-scan-status{
  display:inline-flex;
  justify-content:center;
  border-radius:999px;
  padding:4px 6px;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}
.step-scan-status.existing{background:#e8f2e3;color:#48683e}
.step-scan-status.new{background:#fff0e7;color:#94552e}
.step-scan-actions{
  display:flex;
  gap:7px;
  align-items:center;
  flex-wrap:wrap;
  padding:9px 10px;
  border-top:1px solid #cfddc8;
  background:#fff;
}
.step-scan-actions .meta{flex:1 1 260px;margin:0}
@media(max-width:900px){
  .step-scan-grid-head,.step-scan-row{
    grid-template-columns:38px 70px 70px minmax(145px,1fr) 92px;
  }
}


/* v1.14.37 — ingredient Alternatives / “Don’t have it?” editor */
body .ingredient-sheet.scaling-sheet{
  min-width:1140px;
}
body .scaling-sheet .ingredient-sheet-head,
body .scaling-sheet .ingredient-sheet-row{
  grid-template-columns:42px 74px 90px 115px minmax(180px,1.25fr) minmax(170px,1fr) 92px 130px 150px;
}
.ingredient-entry{border-bottom:1px solid var(--line)}
.ingredient-entry>.ingredient-sheet-row{border-bottom:0!important}
.ingredient-actions-builder{flex-wrap:nowrap!important;white-space:nowrap!important}
.ingredient-actions-builder button{padding:5px 6px!important}
.ingredient-swaps-button{
  min-width:60px;
  font-size:10px;
  font-weight:900;
  color:var(--green);
  background:#f4f8f1!important;
  border-color:#b9cdb0!important;
}
.ingredient-swaps-button.has-swaps{
  background:#e8f2e3!important;
  border-color:#8eae83!important;
}
.ingredient-alternatives-editor{
  margin:0 10px 10px 42px;
  border:2px solid #b9cdb0;
  border-radius:10px;
  background:#fbfdf9;
  overflow:hidden;
}
.ingredient-alternatives-title{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:10px 12px;
  background:#edf5e9;
  border-bottom:1px solid #cfddc8;
}
.ingredient-alternatives-title strong{display:block;font-size:13px}
.ingredient-alternatives-title small{display:block;margin-top:2px;color:var(--muted);line-height:1.35}
.ingredient-alternatives-list{padding:8px 10px 2px}
.ingredient-alternative-edit-row{
  display:grid;
  grid-template-columns:1fr 38px;
  gap:6px;
  margin-bottom:7px;
}
.ingredient-alternative-edit-row input{min-height:38px}
.ingredient-alternative-edit-row button{
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  cursor:pointer;
}
.ingredient-alt-add{margin:0 10px 10px}


/* v1.14.38 — maximum four description choices */
.trait-choice-counter{
  margin:7px 0 0;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.trait-choice-counter.over-limit{
  color:#a23c32;
}
.trait-option.trait-disabled{
  opacity:.46;
  cursor:not-allowed;
}
.trait-option.trait-disabled input{
  cursor:not-allowed;
}

/* v1.14.39 */
.standard-weight-cell{display:flex;align-items:center;gap:4px}.standard-weight-cell input{min-width:0}.standard-weight-cell span{font-size:12px;color:var(--muted)}
.standard-weight-grid{display:grid;gap:8px;margin:14px 0}.standard-weight-head,.standard-weight-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px 44px;gap:8px;align-items:center}.standard-weight-head{font-weight:800;color:var(--muted);font-size:12px}.standard-weight-row button{height:40px}
.save-time-builder{margin:10px 0 0 42px;padding:9px 11px;border:1px dashed #c9b2d0;border-radius:10px;background:#fcf9fd}.save-time-builder summary{cursor:pointer;font-weight:800;color:#6b2d72}.save-time-enable{display:flex;gap:8px;align-items:center;margin:10px 0}.save-time-enable input{width:auto}.save-time-fields{display:grid;grid-template-columns:170px 1fr;gap:10px}.save-time-fields textarea{min-height:64px}
@media(max-width:900px){.save-time-fields{grid-template-columns:1fr}.save-time-builder{margin-left:0}.standard-weight-head,.standard-weight-row{grid-template-columns:1fr 120px 40px}}


/* v1.14.41 — compact 9-column ingredient layout + Free starter bundle lock */
body .ingredient-sheet.scaling-sheet{min-width:1120px}
body .scaling-sheet .ingredient-sheet-head,
body .scaling-sheet .ingredient-sheet-row{grid-template-columns:42px 76px 88px 100px minmax(210px,1.35fr) minmax(180px,1.1fr) 110px 118px 150px!important}
body .scaling-sheet .ingredient-sheet-row{min-height:46px}
body .scaling-sheet .ingredient-actions-builder{display:flex!important;flex-wrap:nowrap!important;align-items:center;justify-content:center;gap:3px;padding:4px}
body .scaling-sheet .ingredient-actions-builder button{flex:0 0 auto}
.free-bundle-lock{display:flex;flex-direction:column;gap:3px;width:100%;padding:10px 12px;border:1px solid #c9d9c2;border-radius:11px;background:#f1f7ee;color:var(--ink)}
.free-bundle-lock strong{color:#315a2c}.free-bundle-lock span{font-size:12px;color:var(--muted);line-height:1.4}
.bundle-recipe-row.free-locked{opacity:.52;cursor:not-allowed;background:#f3f3f1}.bundle-recipe-row.free-locked:hover{border-color:#e4e1da;background:#f3f3f1}.bundle-recipe-row.free-locked input{cursor:not-allowed}

/* v1.14.42 — proper recipe output: Serves people or Makes items */
.recipe-output-editor{border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fbfcfa;}
.output-editor-grid{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(180px,1.3fr);gap:9px;align-items:end;}
.output-editor-grid label{margin-top:9px!important;}
@media(max-width:650px){.output-editor-grid{grid-template-columns:1fr;}}

/* v1.14.47: publish and direct-open controls in Free & bundles manager */
.bundle-recipe-row{grid-template-columns:22px minmax(200px,1fr) 110px 112px 112px;cursor:default}.bundle-membership-check{display:flex;align-items:center;justify-content:center;margin:0!important;cursor:pointer}.bundle-membership-check input{margin:0}.bundle-publish-toggle,.bundle-open-recipe{min-height:34px;border-radius:9px;padding:6px 9px;font-size:12px;font-weight:850;white-space:nowrap;cursor:pointer}.bundle-publish-toggle{border:1px solid var(--line);background:#fff}.bundle-publish-toggle.is-published{background:#e8f0e4;color:#4c6841;border-color:#c9dbc1}.bundle-publish-toggle.is-unpublished{background:#f3e5d6;color:#75491f;border-color:#dfc8ae}.bundle-open-recipe{border:1px solid var(--line)!important;background:#f8faf8!important;color:var(--ink)!important}.bundle-open-recipe:hover{background:#eef4eb!important}.bundle-recipe-row.free-locked .bundle-publish-toggle,.bundle-recipe-row.free-locked .bundle-open-recipe{opacity:1;cursor:pointer}.bundle-recipe-row.free-locked .bundle-membership-check{cursor:not-allowed}
@media(max-width:1100px){.bundle-recipe-row{grid-template-columns:22px minmax(170px,1fr) 104px 108px}.bundle-recipe-meta{display:none}}

/* v1.14.49 Free & bundles sorting */
.bundle-list-tools{display:flex;gap:10px;align-items:center;margin:10px 0}.bundle-list-tools .bundle-recipe-search{flex:1;margin:0}.bundle-sort-label{display:flex;align-items:center;gap:7px;white-space:nowrap;font-weight:700;color:var(--ink)}.bundle-sort-label select{width:auto;min-width:150px;margin:0;padding:9px 34px 9px 10px}@media(max-width:760px){.bundle-list-tools{align-items:stretch;flex-direction:column}.bundle-sort-label{justify-content:space-between}.bundle-sort-label select{flex:1}}

/* v1.14.51 — Version Manager filtering + category coverage */
.bundle-category-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.bundle-summary-chip{display:inline-flex;align-items:center;gap:3px;padding:4px 8px;border:1px solid #cfd7df;border-radius:999px;font-size:.82rem;background:#fff}
.bundle-summary-chip.is-zero{opacity:.55}
.bundle-list-tools{flex-wrap:wrap}


.method-alternatives{margin-top:12px;padding:10px;border:1px solid #d8dee5;border-radius:10px;background:#fafbfc}
.method-alt-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.method-alt-card{margin-top:10px;padding:10px;border:1px solid #d8dee5;border-radius:9px;background:#fff}
.method-alt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
.method-alt-grid label{display:flex;flex-direction:column;gap:4px}
.method-alt-full{grid-column:1/-1}
@media(max-width:760px){.method-alt-grid{grid-template-columns:1fr}.method-alt-full{grid-column:auto}}


/* v1.14.57 — clearer Method-step layout */
.method-sheet-row{
  align-items:start;
}
.method-step-number{
  align-self:start;
  padding-top:4px;
}
.method-main-cell{
  min-width:0;
}
.method-under-row{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);
  gap:12px;
  margin-top:12px;
  align-items:start;
}
.method-under-row .sheet-timer,
.method-under-row .method-alternatives{
  margin-top:0;
}
.method-under-row .sheet-timer{
  width:auto;
}
.method-under-row .method-alternatives{
  width:auto;
}
@media(max-width:900px){
  .method-under-row{
    grid-template-columns:1fr;
  }
}


/* v1.14.59 — insert Method steps anywhere + keep reorder controls beside the instruction */
.method-sheet-head,
.method-sheet-row{
  grid-template-columns:38px minmax(0,1fr)!important;
}
.method-step-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  padding:6px 8px 4px;
  border-bottom:1px solid var(--line);
  background:#fafbf9;
}
.method-step-toolbar button{
  border:1px solid var(--line);
  background:#f8faf8;
  border-radius:6px;
  padding:5px 8px;
  cursor:pointer;
  font-weight:800;
  line-height:1.1;
}
.method-step-toolbar .method-insert-step{
  margin-left:3px;
  color:var(--green);
  white-space:nowrap;
}
.method-main-cell>textarea{
  width:100%;
}
@media(max-width:700px){
  .method-step-toolbar{justify-content:flex-start;flex-wrap:wrap}
}

/* v1.15.0 — top search, bundle filtering and recipe-protection controls */
.editor-search-dock{
  position:sticky;
  top:8px;
  z-index:30;
  margin:12px 0 14px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(247,250,247,.97);
  box-shadow:0 6px 18px rgba(49,64,43,.08);
  backdrop-filter:blur(8px);
}
.editor-search-dock>label{display:block;margin:0 0 6px;font-size:12px;font-weight:900;color:var(--green)}
.editor-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.editor-search-row .editor-search{margin:0;min-height:44px;font-size:15px}
.editor-search-status{min-height:16px;margin-top:5px;font-size:12px;color:var(--muted)}
.editor-bundle-filter{margin:0 0 12px;padding:10px;border:1px solid var(--line);border-radius:13px;background:#f8faf7}
.editor-bundle-filter select{width:100%;padding:8px 9px;border:1px solid #ddd8d0;border-radius:10px;background:#fff;color:var(--ink);font-weight:700}
.editor-sidebar{top:92px;max-height:calc(100vh - 104px)}
@media(max-width:650px){.editor-search-dock{top:4px}.editor-sidebar{position:static;max-height:none}.editor-search-row{grid-template-columns:1fr}.editor-search-row button{justify-self:start}}

/* v1.15.1 archived recipe manager */
.archive-list{display:grid;gap:8px;margin-top:12px}.archive-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line,#d8d8d8);border-radius:10px;background:#fff}.archive-row .meta{margin-top:3px}.archive-row button{flex:0 0 auto}

/* v1.15.2 — traditional top search results */
.editor-top-results{margin-top:8px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.05)}
.editor-top-results.hidden{display:none}
.editor-top-results-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:#eef3ec;border-bottom:1px solid var(--line)}
.editor-top-results-head small{color:var(--muted)}
.editor-top-results-list{max-height:270px;overflow:auto}
.editor-top-result{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.editor-top-result:last-child{border-bottom:0}
.editor-top-result:hover,.editor-top-result.active{background:#f0f5ed}
.editor-top-result span{font-weight:800}
.editor-top-result small{color:var(--muted);white-space:nowrap}
/* v1.15.8 — Add-on release badge */
.access-badge.addon{background:#e7eef7;color:#315579}
