/* ── CONFIRM DIALOG ── */
.confirm-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fade-in .2s}
.confirm-box{background:var(--surface);border:1px solid var(--border2);border-radius:var(--r-lg);padding:1.5rem;max-width:340px;width:100%;box-shadow:var(--shadow-lg);animation:modal-up .25s cubic-bezier(.4,0,.2,1)}
.confirm-title{font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px}
.confirm-body{font-size:14px;color:var(--text2);line-height:1.5;margin-bottom:1.2rem}
.confirm-actions{display:flex;gap:8px}
.confirm-actions .btn-cancel-soft{flex:1;padding:11px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:14px;color:var(--text2);cursor:pointer}
.confirm-actions .btn-danger{flex:1;padding:11px;background:var(--red);border:none;border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:14px;color:#fff;cursor:pointer;font-weight:500}

/* ── MODAL OVERLAY ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;display:none;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .25s}
.modal-bg.open{display:flex;opacity:1;animation:fade-in .25s}
.modal{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;padding:1.5rem 1.5rem 2.5rem;border-top:2px solid var(--gold-dim);box-shadow:var(--shadow-lg),var(--glow-gold-lg);animation:modal-up .3s cubic-bezier(.4,0,.2,1)}
.modal-handle{width:36px;height:3px;background:var(--border2);border-radius:2px;margin:0 auto 1.5rem}
.modal-title{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--text);margin-bottom:1.25rem}
.modal-close{width:100%;margin-top:1.5rem;padding:12px;background:transparent;border:1px solid var(--border2);border-radius:var(--r);color:var(--text3);font-family:'Outfit',sans-serif;font-size:14px;cursor:pointer;transition:all .15s}
.modal-close:hover{border-color:var(--border);color:var(--text2)}

/* ── MODAL MEALS ── */
.modal-day-meals{display:flex;flex-direction:column;gap:12px}
.modal-meal{background:var(--surface2);border-radius:var(--r);padding:14px}
.modal-meal-lbl{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold-dim);margin-bottom:6px}
.modal-meal-txt{font-size:15px;color:var(--text);font-weight:300;line-height:1.5}
.modal-meal-actions{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}

/* ── MODAL SNACK ── */
.modal-snack{background:rgba(192,90,60,.05);border:1px solid rgba(192,90,60,.15);border-radius:var(--r);padding:12px 14px;margin-top:4px}
.modal-snack-lbl{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--red);opacity:.8;margin-bottom:6px}
.modal-snack-txt{font-size:15px;color:var(--text2);font-weight:300;line-height:1.5}

/* ── RATE BUTTONS ── */
.btn-rate{background:transparent;border:1px solid var(--border2);border-radius:20px;padding:4px 10px;font-size:13px;cursor:pointer;transition:all .15s;line-height:1}
.btn-rate:hover{border-color:var(--border);background:var(--surface3);transform:scale(1.05)}
.btn-rate.liked{background:rgba(90,143,94,.15);border-color:rgba(90,143,94,.4)}
.btn-rate.disliked{background:rgba(160,80,80,.15);border-color:rgba(160,80,80,.4)}

/* ── RECIPE ── */
.btn-recipe{background:transparent;border:1px solid var(--border2);border-radius:20px;padding:4px 12px;font-size:11px;font-family:'Outfit',sans-serif;color:var(--text3);cursor:pointer;transition:all .2s;margin-left:auto;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.btn-recipe:hover{border-color:var(--gold-dim);color:var(--gold-light);box-shadow:var(--glow-gold)}
.btn-recipe:disabled{opacity:.5;cursor:not-allowed}
.recipe-block{margin-top:10px;padding:12px;background:var(--surface);border-radius:var(--r);border:1px solid var(--border);display:none}
.recipe-block.open{display:block}
.recipe-section-title{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold-dim);margin-bottom:8px;margin-top:10px}
.recipe-section-title:first-child{margin-top:0}
.recipe-ing-list{list-style:none;padding:0;margin-bottom:4px}
.recipe-ing-list li{font-size:12px;color:var(--text2);padding:4px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:8px}
.recipe-ing-list li:last-child{border-bottom:none}
.recipe-ing-qty{color:var(--text3);font-size:11px;white-space:nowrap}
.recipe-steps-list{list-style:decimal;padding-left:18px}
.recipe-steps-list li{font-size:13px;color:var(--text2);padding:4px 0;line-height:1.5}
.recipe-actions{margin-top:12px;display:flex;gap:6px}
.btn-share-recipe{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--text2);cursor:pointer;transition:all .2s}
.btn-share-recipe:hover{background:var(--surface3);color:var(--text);border-color:var(--gold-dim)}
.recipe-ai-note{font-size:11px;color:var(--text3);margin-top:12px;padding-top:10px;border-top:1px solid var(--border);line-height:1.5;font-style:italic}

/* ── DAY SHOPPING IN MODAL ── */
.btn-day-shop{width:100%;padding:11px 16px;margin-top:14px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:14px;color:var(--text2);cursor:pointer;transition:all .2s;text-align:left;display:inline-flex;align-items:center;gap:6px}
.btn-day-shop:hover{background:var(--surface3);color:var(--text)}
.btn-day-share{width:100%;padding:11px 16px;margin-top:8px;background:transparent;border:1px solid var(--border2);border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:14px;color:var(--text2);cursor:pointer;transition:all .2s;text-align:left;display:inline-flex;align-items:center;gap:6px}
.btn-day-share:hover{border-color:var(--gold-dim);color:var(--gold-light);background:rgba(192,90,60,.04)}
.day-shop-block{margin-top:10px;display:none}
.day-shop-block.open{display:block}
.day-shop-cat{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin:10px 0 4px}
.day-shop-item{font-size:14px;color:var(--text2);padding:4px 0;display:flex;justify-content:space-between;border-bottom:1px solid var(--border)}
.day-shop-item:last-child{border-bottom:none}
.day-shop-qty{font-size:12px;color:var(--text3)}
.btn-share-day{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 14px;background:var(--gold);color:var(--bg);border:none;border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:13px;cursor:pointer;transition:all .2s}
.btn-share-day:hover{opacity:.85}

/* ── REGEN MEAL ── */
.btn-regen-meal{background:transparent;border:1px solid var(--border2);border-radius:8px;padding:6px 10px;font-size:11px;color:var(--text3);cursor:pointer;font-family:'Outfit',sans-serif;transition:all .2s;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.btn-regen-meal:hover{border-color:var(--gold-dim);color:var(--text2);box-shadow:var(--glow-gold)}
.btn-regen-meal:disabled{opacity:.4;cursor:default}

/* ── COOK TODAY MODAL BUTTON ── */
.btn-cook-today{background:transparent;border:1px solid rgba(126,168,88,.35);border-radius:20px;padding:4px 12px;font-size:11px;font-family:'Outfit',sans-serif;color:rgba(126,168,88,.85);cursor:pointer;transition:all .2s;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.btn-cook-today:hover{border-color:#4d7033;color:#4d7033;background:rgba(126,168,88,.08);box-shadow:0 0 14px rgba(126,168,88,.15)}
.btn-cook-today.added{background:rgba(126,168,88,.15);border-color:#4d7033;color:#4d7033}
