The week's columns are never narrower than 112 px, which holds a
dinner's words whole and the tag beside the swap icon. Where seven do not
fit (768-1100 px tablets, desktop up to about 1430 px beside the panel)
the week scrolls sideways inside the content area; at 1180 and 1440 px
the grid is unchanged. Names no longer hyphenate or break mid-word, and
the card footer no longer wraps the swap icon under the tag.
Each card now says how the dinner is cooked as well as how long:
"Crock pot · 6 hr", "Stovetop · 45 min", or the method alone when the
minutes are unknown. The plan API's method is parsed (and carried by a
swap from the Quest log or Regulars), and an unknown method is refused.
The synced status line says how long ago the plan was pushed, from
calendar_synced_at ("Synced to Google Calendar 2 min ago"), kept current
minute by minute.
Maestro task 4657cba1-c709-420e-8b1e-18761e9e0e27.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From 768 px up /plan renders the plan manager: "Week N · Plan" kicker,
the week's dates, previous/next buttons and, on desktop, a "This week"
pill; the sync status line; "Shopping list" and "Push to Calendar"
unavailable with tooltips saying why (Features 17 and 16), and a working
outlined "Rebuild week" that confirms over a plan pushed to Calendar; and
a 7-column grid of day cards with washed photo, name, minutes, crock-pot
start-by time, Regular / Side quest tag (Side quests on teal-200) and a
swap icon that opens the existing swap sheet.
Desktop adds the 290 px right panel: "Quest log · N | Regulars · N",
the drag helper, rows with photo, name, difficulty and a 6-dot grip, and
"Swipe more side quests". Tablet shows the Quest log as a chip strip under
the grid. Dragging is presentational here; it lands in task 5c2842a8.
The plan day now reads the photo and minutes the plan API already sends,
and an optimistic swap carries them from the chosen dinner. Tag gains a
neutral tone for "Regular".
Maestro task 4657cba1-c709-420e-8b1e-18761e9e0e27.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>