.new-week-button { display:block; width:100%; margin-top:1rem; padding:.6rem .7rem; border:1px solid var(--home-line); border-radius:.7rem; color:var(--home-green); background:transparent; font-size:.7rem; font-weight:700; cursor:pointer; }
.new-week-button:hover { border-color:var(--home-green); background:#eef5ec; }
.week-dialog { width:min(90vw,28rem); padding:1.8rem; border:1px solid var(--home-line); border-radius:1.2rem; color:var(--home-ink); background:var(--home-card); box-shadow:0 24px 80px rgba(33,38,31,.22); }
.week-dialog::backdrop { background:rgba(32,35,33,.35); backdrop-filter:blur(4px); }
.week-dialog h2 { margin:0; font-size:1.8rem; letter-spacing:-.06em; }
.week-dialog p:not(.planner-kicker) { margin:.65rem 0 1.2rem; color:var(--home-muted); font-size:.85rem; }
.dialog-close { position:absolute; top:1rem; right:1rem; border:0; color:var(--home-muted); background:transparent; font-size:1.4rem; cursor:pointer; }
.dialog-actions { display:grid; gap:.65rem; }
.dialog-option { display:flex; flex-direction:column; align-items:flex-start; gap:.15rem; padding:.85rem; border:1px solid var(--home-line); border-radius:.8rem; color:var(--home-ink); background:transparent; text-align:left; cursor:pointer; }
.dialog-option:hover { border-color:var(--home-green); background:#eef5ec; }
.dialog-option strong { font-size:.8rem; }
.dialog-option small { color:var(--home-muted); font-size:.68rem; }

/* Meals tab: compact, task-first layout */
.meals-main { max-width:980px; padding:2rem 1.5rem 5rem; }.meals-toolbar { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding:1rem 0 2.3rem; }.meals-toolbar h1 { margin:0; font-size:2.1rem; letter-spacing:-.065em; }.week-caption { margin:.35rem 0 0; color:var(--home-muted); font-size:.75rem; }.week-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }.action-button { min-height:2.55rem; padding:.55rem .8rem; border:1px solid var(--home-line); border-radius:.65rem; color:var(--home-ink); background:var(--home-card); font-size:.72rem; font-weight:700; cursor:pointer; }.action-button:hover { border-color:var(--home-green); background:#eef5ec; }.action-primary { border-color:var(--home-green); color:#fff; background:var(--home-green); }.action-primary:hover { color:#fff; background:#46634f; }.action-danger { color:#a04d49; }.action-danger:hover { border-color:#d48c84; background:#fff0ed; }.section-label-row { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.75rem; }.section-label-row h2 { margin:0; font-size:1.25rem; letter-spacing:-.05em; }.drag-hint,.grocery-count { color:var(--home-muted); font-size:.68rem; }.week-board { overflow:hidden; border:1px solid var(--home-line); border-radius:.9rem; background:var(--home-card); }.meal-slot,.lunch-slot { display:grid; grid-template-columns:4rem 1fr; align-items:stretch; min-height:4.15rem; border-bottom:1px solid var(--home-line); }.meal-slot:last-child { border-bottom:0; }.slot-label { display:flex; align-items:center; padding-left:1rem; color:var(--home-muted); font-size:.62rem; font-weight:800; letter-spacing:.08em; }.drop-zone { display:flex; min-height:4.15rem; align-items:center; padding:.55rem .75rem .55rem 0; }.empty-slot { padding:.65rem .8rem; border:1px dashed #d6d2c8; border-radius:.55rem; color:#9a9a91; font-size:.72rem; }.drop-zone.drag-over { background:#eef5ec; }.planned-meal { display:flex; align-items:center; width:100%; gap:.65rem; min-height:3rem; padding:.45rem .65rem; border:1px solid #d9e4d6; border-radius:.65rem; background:#f3f8f1; cursor:grab; }.planned-meal.dragging { opacity:.45; }.drag-handle { color:#8ca18d; font-size:.9rem; letter-spacing:-.2em; }.meal-card-button { display:flex; flex:1; flex-direction:column; align-items:flex-start; border:0; color:var(--home-ink); background:transparent; text-align:left; cursor:pointer; }.meal-card-button strong { font-size:.78rem; }.meal-card-button small { margin-top:.1rem; color:var(--home-muted); font-size:.64rem; }.meal-arrow,.heart { color:var(--home-green); font-size:1.2rem; }.heart { color:#c96862; }.is-date-night { border-color:#eed5cb; background:#fff4ef; }.lunch-slot { margin-top:1rem; overflow:hidden; border:1px solid #ead9af; border-radius:.9rem; background:#fff8e9; }.lunch-slot .slot-label { color:#987421; }.lunch-slot .drop-zone { min-height:4.15rem; }.groceries-section { margin-top:3rem; }.grocery-list { overflow:hidden; border:1px solid var(--home-line); border-radius:.85rem; background:var(--home-card); }.grocery-row { display:flex; align-items:center; min-height:3.5rem; padding:.55rem .75rem .55rem .9rem; border-bottom:1px solid var(--home-line); }.grocery-row:last-child { border-bottom:0; }.grocery-row label { display:flex; flex:1; align-items:center; gap:.7rem; cursor:pointer; }.grocery-row input { position:absolute; opacity:0; }.check-circle { display:grid; width:1.2rem; height:1.2rem; flex:0 0 auto; place-items:center; border:1.5px solid #c8c6bd; border-radius:50%; color:#fff; font-size:.7rem; }.grocery-row input:checked + .check-circle { border-color:var(--home-green); background:var(--home-green); }.grocery-row input:checked + .check-circle::after { content:'✓'; }.grocery-row label > span:last-child { display:flex; flex-direction:column; }.grocery-row strong { font-size:.78rem; }.grocery-row small { color:var(--home-muted); font-size:.63rem; }.grocery-row.checked strong { color:var(--home-muted); text-decoration:line-through; }.remove-grocery { display:grid; width:2rem; height:2rem; place-items:center; border:0; color:#c55c55; background:transparent; font-size:1.35rem; cursor:pointer; }.remove-grocery:hover { border-radius:50%; background:#fff0ed; }.manual-grocery-form { display:flex; gap:.45rem; margin-top:.65rem; }.manual-grocery-form input { flex:1; min-height:2.6rem; padding:0 .75rem; border:1px solid var(--home-line); border-radius:.65rem; color:var(--home-ink); background:var(--home-card); font-size:.75rem; }.manual-grocery-form button,.small-add { border:1px solid var(--home-line); border-radius:.65rem; color:var(--home-green); background:transparent; font-size:.72rem; font-weight:700; cursor:pointer; }.manual-grocery-form button { padding:0 1rem; }.empty-list { margin:0; padding:1rem; color:var(--home-muted); font-size:.75rem; }.planner-modal { width:min(92vw,31rem); max-height:88vh; overflow:auto; padding:1.5rem; border:1px solid var(--home-line); border-radius:1rem; color:var(--home-ink); background:var(--home-card); box-shadow:0 24px 80px rgba(33,38,31,.22); }.planner-modal::backdrop { background:rgba(32,35,33,.35); backdrop-filter:blur(4px); }.planner-modal h2 { margin:0 0 1rem; font-size:1.7rem; letter-spacing:-.06em; }.planner-modal h3 { margin:1.3rem 0 .5rem; font-size:.8rem; }.planner-modal label { display:block; margin:.85rem 0; color:var(--home-muted); font-size:.7rem; font-weight:700; }.planner-modal input,.planner-modal select,.planner-modal textarea { box-sizing:border-box; display:block; width:100%; margin-top:.35rem; padding:.65rem .7rem; border:1px solid var(--home-line); border-radius:.6rem; color:var(--home-ink); background:#fff; font-size:.75rem; }.planner-modal textarea { resize:vertical; }.modal-close { position:absolute; top:1rem; right:1rem; border:0; color:var(--home-muted); background:transparent; font-size:1.4rem; cursor:pointer; }.modal-actions { display:flex; justify-content:flex-end; gap:.45rem; margin-top:1.3rem; }.hidden-field { display:none !important; }.builder-heading { display:flex; align-items:center; justify-content:space-between; margin:.9rem 0 .4rem; font-size:.78rem; }.small-add { padding:.4rem .55rem; font-size:.65rem; }.builder-row { display:grid; grid-template-columns:1fr .7fr 2rem; gap:.35rem; margin-bottom:.4rem; }.builder-question { position:relative; padding:.65rem; border:1px solid var(--home-line); border-radius:.65rem; }.builder-question .question-mode { width:45%; display:inline-block; }.builder-question .question-options { margin-top:.4rem; }.remove-builder { border:0; color:#c55c55; background:transparent; cursor:pointer; font-size:1rem; }.field-help,.modal-copy { color:var(--home-muted); font-size:.72rem; line-height:1.5; }.detail-servings { margin-top:-.6rem; color:var(--home-muted); font-size:.7rem; }.detail-instructions { white-space:pre-line; color:var(--home-muted); font-size:.78rem; line-height:1.55; }.planner-modal ul { padding-left:1.2rem; color:var(--home-muted); font-size:.75rem; }.app-tabs { display:flex; gap:.2rem; padding:.2rem; border:1px solid var(--home-line); border-radius:999px; background:#eeebe4; }.app-tab { padding:.4rem .8rem; border-radius:999px; color:var(--home-muted); font-size:.7rem; font-weight:700; }.app-tab.active { color:var(--home-ink); background:var(--home-card); }.meals-page .planner-header { position:sticky; }.meals-page .planner-brand { flex:1; }.meals-page .avatar { margin-left:1rem; }
@media(max-width:640px) { .meals-main { padding:1.4rem 1rem 4rem; }.meals-toolbar { display:block; padding-top:.5rem; }.meals-toolbar h1 { font-size:1.8rem; }.week-actions { justify-content:flex-start; margin-top:1rem; }.action-button { min-height:2.4rem; }.meal-slot,.lunch-slot { grid-template-columns:3.7rem 1fr; }.slot-label { padding-left:.75rem; font-size:.58rem; }.drag-hint { font-size:.62rem; }.planner-modal { padding:1.25rem; }.builder-row { grid-template-columns:1fr .8fr 1.7rem; }.app-tabs { margin-left:auto; }.app-tab { padding:.4rem .55rem; }.meals-page .planner-brand span:last-child { display:none; } }
.instruction-row { display:grid; grid-template-columns:2.2rem 1fr 2rem; align-items:start; gap:.35rem; margin-bottom:.45rem; }.step-number { display:flex; align-items:center; justify-content:flex-end; gap:.25rem; padding-top:.65rem; color:var(--home-green); font-size:.75rem; font-weight:700; text-align:right; }.step-grip { color:#9da99f; font-size:.75rem; letter-spacing:-.25em; cursor:grab; }.instruction-step { margin-top:0 !important; }
.instruction-row { cursor:grab; }.instruction-row.dragging-step { opacity:.45; }.instruction-step { min-height:2.25rem; overflow:hidden; resize:none; line-height:1.45; }.instruction-row .remove-builder { width:2rem; height:2.25rem; padding:0; color:#c55c55; font-size:1.2rem; line-height:1; }.instruction-row .remove-builder:hover { border-radius:50%; background:#fff0ed; }.step-number { cursor:grab; user-select:none; }
