J2 — Plan the Week

Journey spec · Screens C1, C2, C3 · All breakpoints

Journey: J2
Screens: C1 · C2 · C3
Status: approved
Version: 1.0
Updated: 2026-04
J2

Plan the week

Fill day slots, get variety-aware suggestions, review score. C1 is the app home screen.

C1 → C2 → C1 → C3 → C1 · Variety score always visible

Weekly planner

C1
App home screen with all 3 breakpoints. Mobile: day strip + selected card + remaining list. Tablet: same stack, wider, 2-col remaining grid, inline nav pills. Desktop: 3-panel (sidebar 224px + 7-col calendar grid + detail panel 280px). Variety score always visible on all breakpoints.
V1 mobile · V2 tablet · V3 desktop — three fundamentally different layouts, not a scaled-up mobile
Purpose & design rationale

What this screen does

The weekly planner is the app home screen. It lets the planner see all seven dinner slots for the current week at a glance, select any day to view the full meal, and access swap and cook actions without leaving the screen. For household members (read-only role) all edit and swap actions are hidden — the rest of the layout is identical.

The variety problem is always visible

The core pain point this app solves is meal repetition across the week. The variety score is therefore always on screen on all three breakpoints — it never hides in a tab, modal, or collapsed region. Ingredient repeat warnings appear inline at the tile level on desktop and in the detail panel across all breakpoints.

Breakpoint 1 — Mobile · < 768px
9:41●●● WiFi 🔋
This week
+
8
Variety score
Good variety this week
Chicken in 2 meals
31 Mar – 6 Apr
Mo31
Tu1
We2
Th3
Fr4
Sa5
Su6
Wed · dinner2 Apr
Slow-roasted tomato pasta
45 min Easy Child-friendly
Cook now
Swap
Rest of the week
Thu
3
Chicken stir-fry
25 min · Easy
Swap
Fri
4
Chicken curry
40 min · Child-friendly
Swap
Sun
6
Lentil soup
45 min · Vegetarian
Swap
📅
Planner
📖
Recipes
🛒
Shopping
⚙️
Settings

Layout pattern

Five stacked fixed-height regions: top nav → variety banner → week strip → selected day card → scrollable remaining list. The tab bar is position: fixed at the bottom. Only the remaining days list scrolls.

Day strip

7-column grid, each chip 8px top+bottom padding. A 4px dot below the date is the only meal indicator: grey = no meal, green = meal planned, yellow-text = today, green-dark = selected. Today chip: yellow-tint bg + yellow-light border. Selected: green-tint + green-light. Tapping any chip updates the selected day panel immediately below.

Selected day card

Meal name in Fraunces 20px weight 400. Tags row (time, effort, attributes) then two equal-width action buttons. shadow-card elevation. When today is selected: 2px yellow border + yellow-tint background — the only 2px border in the system.

Variety banner

Always the first element below the nav. Never collapses. Score in Fraunces 28px weight 300. Warning row (yellow-text colour, yellow dot) appears when any ingredient appears in 2+ meals this week.

Remaining days list

Shows only days after the selected day. Date column: 36px wide. Meal name: Fraunces 14px. Meta: 11px muted DM Sans. Swap button: right-aligned 11px. Rows separated by 1px color-subtle dividers. Empty days are not shown — their absence is visible only via the dot in the strip.

Breakpoint 2 — Tablet · 768px – 1024px

Relationship to mobile

The tablet uses the same five-region stack and the same interaction model as mobile. Key differences: the selected meal card expands to a two-column layout (info left, action buttons right); the remaining days list becomes a 2-column card grid; the variety banner gains a labelled progress bar; and the bottom navigation becomes an inline horizontal pill bar rather than a fixed screen overlay. A "Today" shortcut chip appears between the prev/next week buttons.

This week
8/10
Variety score
Good variety — no ingredient repeats more than twice
Chicken in 2 meals — consider swapping Friday
80%
31 Mar – 6 Apr 2026
‹ PrevTodayNext ›
Mon31
Tue1
Wed2
Thu3
Fri4
Sat5
Sun6
Wednesday · dinner2 April 2026
Slow-roasted tomato pasta
45 min Easy Child-friendly Vegetarian
Roasting the tomatoes concentrates their sweetness — great for the kids and easy to batch.
Rest of the week
Thu
3
Chicken stir-fry
25 min · Easy
Fri
4
Chicken curry
40 min · Child-friendly
Sat
5
No meal planned
+
Sun
6
Lentil soup
45 min · Vegetarian
📅 Planner
📖 Recipes
🛒 Shopping
⚙️ Settings

Selected meal card

Two-column layout: meal info (name 22px, tags, description) on the left, three stacked full-width action buttons on the right (min-width 120px). Description line is tablet and desktop only.

Remaining days grid

2-column CSS grid with 8px gap. Each card: date column (30px) + 1px vertical divider + meal name + meta + right arrow. Empty slots: dashed border, transparent bg, + icon right-aligned.

Navigation

Bottom nav becomes inline (not fixed), rendered as horizontal labelled pill items. Active item: green-tint bg + green-dark text. A "Today" shortcut chip sits between the prev/next week buttons.

Breakpoint 3 — Desktop · > 1024px

Layout model change — not a scaled-up mobile

Desktop is a fundamentally different layout. The screen switches from a vertical single-column stack to a three-panel horizontal model: left sidebar (224px, fixed height, sticky), main calendar area (flex 1, only panel that scrolls), and right detail panel (280px, fixed). The day strip is replaced entirely by a 7-column calendar grid. The bottom tab bar is replaced by a persistent left sidebar nav. This is a deliberate layout change — not responsive scaling.

Variety score
8/10
Good variety. No ingredient repeats more than twice.
Chicken on Thu + Fri — consider swapping
Weekly planner
31 Mar – 6 Apr 2026
Monday
31
Dinner
Pasta al forno
30 min
Easy · Child-friendly
Tuesday
1
Today · dinner
Grilled salmon
25 min
Easy
Wednesday
2
Dinner · selected
Slow-roasted tomato pasta
Easy
45 min · Vegetarian
Thursday
3
Dinner
Chicken stir-fry
⚠ Chicken
25 min
Friday
4
Dinner
Chicken curry
⚠ Chicken
40 min
Saturday
5
+
Add meal
Sunday
6
Dinner
Lentil soup
Vegetarian
45 min
Wednesday
2 April 2026 · dinner
Slow-roasted tomato pasta
45 min Easy Vegetarian Child-friendly
Ingredients · serves 4
Cherry tomatoes500 g
Rigatoni320 g
Garlic cloves4, sliced
Olive oil ↻ Mon+Wed4 tbsp
Fresh basil1 handful

Three-panel structure

Sidebar 224px fixed + calendar flex 1 scrollable + detail panel 280px fixed. Sidebar and detail panel never scroll. Only the calendar area scrolls vertically. All three are 100% viewport height.

Calendar tiles

Each tile uses flex: 1 to fill its column. Column header has a 2px bottom border — yellow for today, green for selected. Tiles with repeated ingredients show a badge-warn chip (rgba(242,193,46,.25) bg). Empty slots: dashed border, centred + icon.

Variety — always visible

Bottom of the sidebar. Never scrolls out of view. Includes score, bar, message, ingredient-specific warning, and a "Review variety" button linking to screen C3.

Machine-readable spec — C1 Weekly Planner

All values are real production sizes. Previews above are scaled for visual presentation only — never measure from them. Use tokens from color-palette-spec v1.0, typography-spec v1.0, and spacing-shape-spec v1.0.

/* C1 Implementation rules
 * 1.  Default route on first load. App home screen.
 * 2.  Variety score ALWAYS VISIBLE on all breakpoints. Never hidden or in a tab/modal.
 * 3.  Today chip:    background yellow-tint (#FDF6D8), border 1px yellow-light (#F9E08A).
 * 4.  Selected chip: background green-tint  (#E8F5EA), border 1px green-light  (#AEDCB0).
 * 5.  Today meal card (mobile/tablet): 2px solid yellow (#F2C12E) border + yellow-tint bg.
 *     Today tile (desktop): same 2px yellow border. This is the ONLY 2px border in the system.
 * 6.  Meal names: always --font-display (Fraunces). All UI chrome: --font-sans (DM Sans).
 * 7.  Chip dot: --color-border = no meal. --green = meal. --yellow-text = today. --green-dark = selected.
 * 8.  Desktop: sidebar position sticky, height 100vh. Detail panel also sticky. Only cal-area scrolls.
 * 9.  Ingredient repeat warnings: badge-warn (rgba(242,193,46,.25) bg + --yellow-text color) on tiles.
 *     In detail panel: repeat rows use --yellow-text for name AND quantity text.
 * 10. Household member role: hide swap buttons, hide "+ Add meal" button. Show read-only badge.
 * 11. Empty day slot mobile: not shown in the remaining days list (only shown via dot in strip).
 *     Empty day slot tablet/desktop: dashed 1px --color-border, transparent bg, centred + (18px --color-border).
 * 12. Meal description text (13px DM Sans muted, line-height 1.5): tablet + desktop only. Hidden on mobile.
 */
Region / elementReal production valueNotesBreakpoints
Layout & breakpoints
Mobile breakpoint< 768pxSingle-column vertical stack, fixed bottom tab bar, body full-widthmobile
Tablet breakpoint768px – 1024pxSame stack structure, wider panels, inline bottom nav. No fixed tab bar.tablet
Desktop breakpoint> 1024px3-panel horizontal: sidebar + calendar + detail paneldesktop
Desktop sidebar width224px fixedposition: sticky; height: 100vh. Contains logo, nav, variety score.desktop
Desktop detail panel width280px fixedposition: sticky; height: 100vh. Hidden on mobile and tablet.desktop
Desktop calendar gapgap: 8px between columns (--space-2)grid-template-columns: repeat(7, 1fr)desktop
Desktop calendar padding20px all sides (--space-5)Inside the scrollable cal-area divdesktop
Mobile page gutter16px each side (--space-4)Applied to all content regions individually, not a wrappermobile
Tablet page gutter20px–24px each side (--space-5 / --space-6)Variety banner and selected card: 20px. Week header and strip: 20px.tablet
Tablet remaining grid gap8px (--space-2)2-column CSS gridtablet
Navigation
Mobile top nav padding10px 16px (--space-2 --space-4)position: sticky; top: 0; z-index: 10; border-bottom: --border-defaultmobile
Mobile top nav titleFraunces 20px weight 500, letter-spacing -0.02em"This week" — updates to week range on scroll if implementedmobile
Tablet top nav padding14px 20px (--space-3 --space-5)Title: Fraunces 24px weight 500. Right side adds "+ Add meal" button.tablet
Desktop topbar padding10px 24px (--space-2 --space-6)Title: Fraunces 20px weight 500. Week nav inline left. Today + Add meal right.desktop
Desktop sidebar nav itempadding: 7px 6px; font-size: 13px; border-radius: --radius-md (6px)Active: green-tint bg + green-dark text + weight 500. Icon 16px, 20px wide.desktop
Mobile tab barposition: fixed; bottom: 0; padding-bottom: 20px (safe area)4 items. Active icon: green-tint bg. Active label: green-dark color. Label: 10px DM Sans weight 500.mobile
Tablet nav barposition: static; inline at bottom; padding: 10px 20px 14pxHorizontal labelled pills. Active: green-tint bg + green-dark text.tablet
Nav prev/next buttonsDM Sans 11–12px, padding: 4–5px 8–10px, radius-sm (4px), color-subtle bg, border-defaultMobile: icon-only (⟨ ⟩) 32x32px. Tablet/desktop: text "‹ Prev" / "Next ›".all
"Today" shortcut chipDM Sans 10–11px weight 500, color-subtle bg, border-default, radius-smBetween prev/next buttons. Tablet and desktop only.tablet, desktop
"+ Add meal" buttonDM Sans 12–13px weight 500, green bg (#3D8C4A), white text, radius-md (6px), padding 7–8px 14–18pxPlanner role only. Hidden for household members.tablet, desktop
Variety score
Component backgroundyellow-tint (#FDF6D8) bg, 1px yellow-light (#F9E08A) border, radius-lg (10px)Identical on all breakpointsall
Mobile positionmargin: 16px 16px 0 (top + sides). First content after nav.padding: 8px 16px (--space-2 --space-4). Never collapses.mobile
Tablet positionmargin: 14px 20px 0. padding: 12px 16px.Same structure, slightly largertablet
Desktop positionBottom of sidebar. margin: 0 8px 14px. padding: 10px 12px.Always visible. Never scrolled by any panel.desktop
Score numberFraunces 28px mobile / 28px tablet / 40px desktop, weight 300, letter-spacing -0.02em, line-height 1Followed inline by denominator "/10" in DM Sans 12–16px mutedall
Eyebrow labelDM Sans 8–10px, weight 500, letter-spacing 0.08–0.1em, uppercase, --yellow-text (#8A6800)Always first text inside the componentall
Status messageDM Sans 9–11px, --color-text-mutedE.g. "Good variety this week"all
Warning rowDM Sans 9–11px, --yellow-text, flex row, 4–5px yellow dot (border-radius 50%)Only shown when any ingredient appears in 2 or more mealsall
Progress barheight: 3–5px, track: yellow-light, fill: yellow, radius: 99pxWidth = variety score as percentage (score 8 = 80%)all
"Review variety" buttonDM Sans 10px weight 500, color-page bg, yellow-light border, yellow-text color, radius-sm, padding 5pxDesktop sidebar only. Links to screen C3 (variety review).desktop
Day strip (mobile + tablet)
Strip gridgrid-template-columns: repeat(7, 1fr); gap: 2–3px mobile / 5–6px tabletpadding: 0 16px 8–12pxmobile, tablet
Chip padding5–8px top+bottom / 1–4px left+rightborder-radius: --radius-md (6px) mobile / --radius-lg (10px) tabletmobile, tablet
Chip abbreviationDM Sans 7–9px, weight 500, tracking 0.05–0.06em, uppercase, --color-text-muted2 letters on mobile (Mo Tu), 3 letters on tablet (Mon Tue)mobile, tablet
Chip date numberDM Sans 11–14px, weight 500, --color-text, line-height 1–1.1mobile, tablet
Chip dot3–4px diameter circle, border-radius: 50%No meal: --color-border. Has meal: --green (#3D8C4A). Today: --yellow-text (#8A6800). Selected: --green-dark (#2E6E39).mobile, tablet
Today chipbackground: --yellow-tint (#FDF6D8); border: 1px solid --yellow-light (#F9E08A)Abbreviation colour: --yellow-text. Dot colour: --yellow-text.mobile, tablet
Selected chipbackground: --green-tint (#E8F5EA); border: 1px solid --green-light (#AEDCB0)Abbreviation colour: --green-dark. Dot colour: --green-dark.mobile, tablet
Calendar grid (desktop only)
Column header day nameDM Sans 9–10px, weight 500, tracking 0.08em, uppercase, --color-text-mutedmargin-bottom: 3pxdesktop
Column header date badge24x24px, border-radius: 4px (--radius-sm), DM Sans 12–14px weight 500, --color-textToday col: yellow (#F2C12E) bg. Selected col: green-tint bg + green-dark text. Default: no bg.desktop
Column header bottom border2px solidDefault: --color-border. Today column: --yellow (#F2C12E). Selected column: --green (#3D8C4A).desktop
Tile padding8px 8px 10px (top / sides / bottom)border-radius: --radius-lg (10px). flex: 1 to fill column height.desktop
Tile eyebrowDM Sans 8–9px, weight 500, tracking 0.06–0.08em, uppercaseDefault: --color-text-muted. Today tile: --yellow-text. Selected tile: --green-dark.desktop
Tile meal nameFraunces 11–13px, weight 400, letter-spacing -0.01em, line-height 1.3No text truncation — tile height grows to fitdesktop
Tile at restbackground: --color-surface; border: 1px --color-border; box-shadow: --shadow-cardHover: border-color --green-light; box-shadow: --shadow-raiseddesktop
Today tileborder: 2px solid --yellow (#F2C12E); background: --yellow-tint (#FDF6D8)ONLY 2px border in the systemdesktop
Selected tileborder: 2px solid --green (#3D8C4A); background: --green-tint (#E8F5EA)Also 2px — matches today tile treatmentdesktop
Ingredient repeat badgebackground: rgba(242,193,46,0.25); color: --yellow-text (#8A6800); DM Sans 10px weight 500; padding: 2px 6px; border-radius: 3pxReplaces or supplements normal tags. Shows "⚠ [ingredient]".desktop
Empty day tileborder: 1px dashed --color-border; background: transparent; box-shadow: none; min-height: 60pxCentred content: + icon (16–18px --color-border) + "Add meal" label (9–10px --color-border)desktop
Selected day / detail panel
Mobile: selected area padding16px all sides (--space-4)Section above rule: eyebrow label left, date rightmobile
Mobile: meal card padding10–16px all sidesbackground: --color-surface; border: 1px --color-border; radius: --radius-lg (10px); box-shadow: --shadow-cardmobile
Meal name — mobileFraunces 20px, weight 400, letter-spacing -0.02em, line-height 1.25, margin-bottom: 8px--color-textmobile
Meal name — tabletFraunces 22px, weight 400, same other values--color-texttablet
Meal name — desktop detail panelFraunces 17px, weight 400, line-height 1.3, margin-bottom: 6pxSmaller because panel is narrower (280px)desktop
Meal descriptionDM Sans 13px, --color-text-muted, line-height 1.5Tablet + desktop only. Hidden on mobile.tablet, desktop
Actions — mobile2 buttons, flex row, equal width, DM Sans 12px weight 500, padding: 8px 12px, radius-md"Cook now" (green primary) + "Swap meal" (ghost)mobile
Actions — tablet3 buttons, stacked column in right half of card (min-width 120px), DM Sans 12px, padding: 7px 12px"Cook now" (primary) + "View recipe" (outline) + "Swap meal" (ghost)tablet
Actions — desktop3 buttons, stacked column, full panel width (280px minus padding), DM Sans 11px, padding: 6px"View recipe" (primary) + "Cook mode" (outline) + "Swap meal" (ghost)desktop
Desktop ingredient rowspadding: 4px 0 per row; border-bottom: 1px --color-subtle; DM Sans 11px name + 10px muted qtyRepeat ingredient rows: both name and qty use --yellow-text (#8A6800)desktop
Remaining days list / grid
Mobile list item padding6–12px top + bottom (--space-2 / --space-3)Separated by 1px --color-subtle bottom border. No left/right border.mobile
Date column — mobile listwidth: 26–36px, flex-shrink: 0Abbreviation: 7–9px DM Sans uppercase muted. Number: Fraunces 13–17px weight 300.mobile
Row meal name — mobileFraunces 11–14px, weight 400, letter-spacing -0.01em, --color-textwhite-space: nowrap; overflow: hidden; text-overflow: ellipsismobile
Row metadata — mobileDM Sans 9–11px, --color-text-mutedFormat: "{time} · {attribute}" e.g. "25 min · Easy"mobile
Swap buttonDM Sans 9–11px, padding: 3–4px 6–8px, radius-sm (4px), border-default, color-surface bgRight-aligned. Planner role only — hidden for household members.mobile, tablet
Tablet gridgrid-template-columns: 1fr 1fr; gap: 8px (--space-2); padding: 0 20px 16pxEach card: radius-lg, shadow-card, flex row. Date col (30px) + 1px vertical divider + content + arrow.tablet
Empty slot — tablet gridborder: 1px dashed --color-border; background: transparent; box-shadow: noneRight side: + icon (16px --color-border). Left: date col + divider as normal.tablet
Empty slot — mobileNot shown in the remaining listAbsence is communicated via grey dot in the day strip only.mobile

Meal suggestions

C2
Mobile: V1 ranked list with context banner + reasoning per suggestion. Desktop: V4 sidebar + topbar + split content (week context left panel, ranked suggestions right). The week context panel shows what's already planned and why certain recipes are filtered.
V1 ranked list (mobile) · V4 split context (desktop)
Mobile · 320px
9:41●●● WiFi 🔋
← Planner
Suggestions
Suggesting for Wednesday, 2 Apr
Avoiding: chicken (Mon), tomato (Tue). Balancing effort.
1
Salmon teriyaki with rice
35 min · Medium · Fish
✓ No fish this week · different protein
Pick →
2
Mushroom risotto
50 min · Medium · Vegetarian
✓ No veggie since last week
Pick →
3
Thai green curry
40 min · Medium · Chicken
⚠ Chicken again — 2 days apart
Pick →
4
Beef bourguignon
2h 30m · Hard · Beef
✓ Never cooked — try something new!
Pick →
Browse full library →
Desktop · 1040px
Plan
📅Planner
📖Recipes
🛒Shopping
Variety score
8/10
Suggestions for Wednesday, 2 Apr
← Back to planner
This week so far
Mon — Chicken stir-fry
Chicken · Easy · 25 min
Tue — Tomato pasta
Veggie · Easy · 45 min
Wed — ?
Picking now
Thu–Sun — empty
Filter reasons
• Avoiding chicken (Mon)
• Avoiding tomato-heavy (Tue)
• Preferring medium effort (2 easy in a row)
1
Salmon teriyaki with rice
35 min · Medium · Fish
✓ Fresh protein · effort balance
Pick →
2
Mushroom risotto
50 min · Medium · Vegetarian
✓ No veggie for 10 days
Pick →
3
Beef bourguignon
2h 30m · Hard · Beef
✓ Never cooked — try it!
Pick →
4
Thai green curry
40 min · Medium · Chicken
⚠ Chicken 2 days apart
Pick →
Browse full library instead →

C2 · Meal suggestions

/* Desktop: 224px sidebar (variety score at bottom) + topbar + split content:
 *   Left panel (280px, surface bg): week-so-far mini cards + filter reason bullets
 *   Right panel (flex:1, page bg): ranked suggestion cards with Pick action
 * The context panel is a page section, not a floating card.
 * Mobile: context banner (green-tint, collapsible) + ranked list below.
 * Pick → writes week_plan_slot → returns to C1.
 * "Browse full library" → B1 in selection mode. */
ElementValueNotes
Desktop
Context panel280px, surface bg, border-rightWeek meals + current slot (yellow) + filter reasons
Suggestionsflex:1, page bg, 20px paddingSame sg-card component as mobile but wider
Mobile
Context bannergreen-tint, radius-lg, 10px 12px padDay label + filter summary. Collapsed on mobile.

Variety review

C3
V1 Score breakdown. Desktop: sidebar + topbar + content with score hero area and sub-scores on the left, a 7-day protein distribution visual on the right, and warnings spanning the full width below.
V1 · Score breakdown — big score → sub-scores → protein grid → warnings
Mobile · 320px
9:41●●● WiFi 🔋
← Planner
Variety review
8
out of 10 · Good variety
Score breakdown
Protein diversity9/10
Ingredient overlap7/10
Effort balance8/10
Warnings
Chicken appears twice
Monday and Thursday — 3 days apart is acceptable but reduces your score.
Desktop · 1040px
Plan
📅Planner
📖Recipes
🛒Shopping
← Planner/Variety review
8
out of 10
Good variety this week
Score breakdown
Protein diversity9/10
Ingredient overlap7/10
Effort balance8/10
Protein spread
Mon
🍗
Tue
🥬
Wed
🐟
Thu
🍗
Fri
🥩
Sat
Sun
🍝
Effort balance
Easy ×3
Medium ×3
Hard ×1
Warnings
Chicken appears twice
Monday (stir-fry) and Thursday (curry) — 3 days apart is acceptable but reduces your score. Swap Thursday to improve to 9.
Garlic in 5 of 7 meals
Consider a garlic-free recipe for variety. This has minor impact on score.

C3 · Variety review

/* Desktop: sidebar + topbar (breadcrumb ← Planner / Variety review) + content:
 *   Top area: 2-col flex. Left: big score (72px) + progress bar + sub-score rows. Right: 7-day protein grid + effort bar.
 *   Bottom area: full-width warning cards.
 * Content sits directly on page bg — no wrapper card.
 * Mobile: stacked. Score → sub-scores → warnings. No protein grid (too small).
 * Score is COMPUTED (variety CTE from data model), never stored. */
ElementValueNotes
Desktop
Score areaflex:1. Score: Fraunces 72px/300. Bar: 200px wide, 6px, yellow.Sub-scores: bordered rows, not in a card.
Protein grid320px. 7-col grid, 6px gap. Cells: 44px height, colored by protein.Repeated protein: 2px yellow border on matched cells (Mon + Thu chicken).
Effort barProportional flex row. Green/yellow/red segments.Labels: "Easy ×3", "Medium ×3", "Hard ×1"
WarningsFull width, yellow-tint, radius-lgTitle 13px/500 + body 12px. Below the 2-col area.

LLM Context — J2 Plan the Week

1. Journey Flow

C1 (planner) → C2 (suggestions) → C1 → C3 (variety review) → C1. The actor is the Planner only. Household members see C1 in read-only mode (all action buttons hidden). C1 is the app home screen and the default route.

2. Screen C1 — Weekly Planner (HOME SCREEN)

3. Screen C2 — Meal Suggestions

4. Screen C3 — Variety Review

5. Critical Design Rules

6. Data Operations