Two boundaries this mockup holds.
1 · Appearance. The frozen Look contract (task #133) forbids “body commentary → eat less / go to the gym”. colin's example (“morning photo looks off → suggest an outfit or de-puffing”) is drawn only as a focus the person picks themselves. Nothing reads a body from a photo, infers shape, or suggests eating less; Look photos never enter food Scan.
2 · Paid placement. Being over your range never makes a venue eligible to appear. The intake-triggered surface carries unpaid general-wellness options only. Paid placement lives in a separate discovery block selected by neutral criteria such as area and opening hours, and no intake, Health data or photo is sent to any merchant.

1 · Where recommendations exist today

SurfaceTodayGap
Scan → after saveOnly “Back to today” / “Capture another”.No next step. Placement A.
Home / TodayNo recommendation surface.Absent entirely. Placement B.
PlanOne card after a confirmed meal from 5 fixed unpaid food options by remaining kcal; only viewed/acted recorded.Food only; no accept / later / dismiss and no return path. Placement C.
WorkoutManual logging and Health display.Never generated from intake, never tied to a venue.
Venues / merchantsIsolated mock contracts, unwired; #139–#144 on HOLD.Drawn future/disabled only.
LookDesign-only mockups (#132–#137).Reused, not redrawn.

2 · Desktop product preview

The product at desktop width — not this report page. Same hierarchy as the phone: the day's own numbers lead, suggestions sit beside them, paid placement is a separate block. The screen shows Today, so Home is the current tab.

Modus AI
HomeLogScanPlanMe
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
2,050 kcal confirmed
Your range for today is 1,500–1,800.
TODAY'S RECORD
Chicken quinoa bowl440–520
Rye bread148–172
Same information hierarchy as 390/320: the day's own numbers lead, suggestions sit beside them and never above them, and paid placement lives in a separate block that intake never feeds.

3 · Placement A — after saving a meal (non-blocking)

A · Scan saved · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
ONE HONEST ESTIMATE
Saved to today.
Today, Log and Plan now read the same state.
FUTURE · NOT BUILT
You are above the range you set for today.
Want a movement option for later? Nothing is added unless you pick one.
The teaser appears after the save is already done. Confirming a meal stays one tap.
A · Scan saved · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
ONE HONEST ESTIMATE
Saved to today.
Today, Log and Plan now read the same state.
FUTURE · NOT BUILT
You are above the range you set for today.
Want a movement option for later? Nothing is added unless you pick one.
The teaser appears after the save is already done. Confirming a meal stays one tap.

4 · Placement B — Home / Today, unpaid only

B · Home · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
2,050 kcal confirmed
Your range for today is 1,500–1,800.
SUGGESTIONS · GENERAL WELLNESS ONLY
Nothing here is a paid placement. Being above your range never makes a venue eligible to appear.
NOT SPONSOREDFUTURE · NOT BUILT
Morning mobility class
1.2 km · 45 min · free trial place
WHY THISYou set 1,500–1,800 kcal for today and have confirmed 2,050. A general-wellness movement option, explained by the goal you set yourself — not a medical instruction and not a verdict on the meal.
NOT SPONSOREDFUTURE · NOT BUILT
Community pool · lane swim
2.4 km · 60 min · ¥35 drop-in
WHY THISLow-impact and open this evening. Shown for the movement goal you declared, nothing else.
B · Home · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
2,050 kcal confirmed
Your range for today is 1,500–1,800.
SUGGESTIONS · GENERAL WELLNESS ONLY
Nothing here is a paid placement. Being above your range never makes a venue eligible to appear.
NOT SPONSOREDFUTURE · NOT BUILT
Morning mobility class
1.2 km · 45 min · free trial place
WHY THISYou set 1,500–1,800 kcal for today and have confirmed 2,050. A general-wellness movement option, explained by the goal you set yourself — not a medical instruction and not a verdict on the meal.
NOT SPONSOREDFUTURE · NOT BUILT
Community pool · lane swim
2.4 km · 60 min · ¥35 drop-in
WHY THISLow-impact and open this evening. Shown for the movement goal you declared, nothing else.

5 · Placement C — one detail screen, three exclusive outcomes

The detail screen offers the three actions. Each result is its own screen — the buttons and a “saved” receipt never appear together.

C · detail · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
PLAN · SUGGESTION DETAIL
Morning mobility class
1.2 km · 45 min · free trial place · opens 07:00
WHY THISYou set 1,500–1,800 kcal for today and have confirmed 2,050. General-wellness movement, explained by the goal you declared.
WHAT IT DOES NOT DOSaving this does not record a workout, does not change your food targets and does not send anything to the venue.
One screen, three exclusive outcomes. The three result screens are below — they never appear together with these buttons.
C · detail · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
PLAN · SUGGESTION DETAIL
Morning mobility class
1.2 km · 45 min · free trial place · opens 07:00
WHY THISYou set 1,500–1,800 kcal for today and have confirmed 2,050. General-wellness movement, explained by the goal you declared.
WHAT IT DOES NOT DOSaving this does not record a workout, does not change your food targets and does not send anything to the venue.
One screen, three exclusive outcomes. The three result screens are below — they never appear together with these buttons.
C · accepted → Plan day list · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
PLAN · 7 DAYS
Saved to your plan.
Added as an ordinary task you can skip, replace or undo.
Wed 12 Aug · Today
Record one meal and confirm your portion
To do
Thu 13 Aug · Upcoming NEW
Morning mobility class · 1.2 km
To do
Fri 14 Aug · Upcoming
Review oil and sauce on one meal
To do
Saving does not record a workout, does not change your food targets and sends nothing to any venue.
C · later → Today · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
Kept for later.
SAVED FOR LATER · 1
Morning mobility class
1.2 km · 45 min
It waits in Today's later area. Nothing was added to your plan.
C · not for me → undo · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
Removed.
Morning mobility class was hidden for this meal.
One undo, then it does not come back for this meal.
C · accepted · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
PLAN · 7 DAYS
Saved to your plan.
Added as an ordinary task you can skip, replace or undo.
Wed 12 Aug · Today
Record one meal and confirm your portion
To do
Thu 13 Aug · Upcoming NEW
Morning mobility class · 1.2 km
To do
Fri 14 Aug · Upcoming
Review oil and sauce on one meal
To do
Saving does not record a workout, does not change your food targets and sends nothing to any venue.
C · later · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
Kept for later.
SAVED FOR LATER · 1
Morning mobility class
1.2 km · 45 min
It waits in Today's later area. Nothing was added to your plan.
C · not for me · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
TODAY
Removed.
Morning mobility class was hidden for this meal.
One undo, then it does not come back for this meal.

6 · Sample data 2 — a Look focus the user picks

Look focus · 390px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
LOOK · YOU CHOSE THIS
Outfit
OutfitMakeupFeeling puffy
This surface only runs because you picked a focus. Nothing here reads your body from a photo, and nothing here suggests eating less.
NOT SPONSOREDFUTURE · NOT BUILT
Wear what is already in your Closet
3 combinations · from items you added yourself
WHY THISYou chose Outfit just now. Suggestions come from your own Closet items — not from any assessment of your body.
NOT SPONSOREDFUTURE · NOT BUILT
A short walk and some water
10–15 min · nothing to buy
WHY THISYou picked “feeling puffy this morning” as your own focus. General comfort only: no diagnosis, no weight advice, and nothing here changes your food targets.
Outfit and Makeup photos stay in Look. They never enter food Scan and are never used to estimate calories.
Look focus · 320px
FUTURE · NOT BUILTDesign only. This capability is not implemented and not released.
LOOK · YOU CHOSE THIS
Outfit
OutfitMakeupFeeling puffy
This surface only runs because you picked a focus. Nothing here reads your body from a photo, and nothing here suggests eating less.
NOT SPONSOREDFUTURE · NOT BUILT
Wear what is already in your Closet
3 combinations · from items you added yourself
WHY THISYou chose Outfit just now. Suggestions come from your own Closet items — not from any assessment of your body.
NOT SPONSOREDFUTURE · NOT BUILT
A short walk and some water
10–15 min · nothing to buy
WHY THISYou picked “feeling puffy this morning” as your own focus. General comfort only: no diagnosis, no weight advice, and nothing here changes your food targets.
Outfit and Makeup photos stay in Look. They never enter food Scan and are never used to estimate calories.

7 · Every state this surface has to survive

LOADING
Looking for options nearby…
A skeleton row, never a spinner over the whole screen.
EMPTY
Nothing nearby fits right now.
Says so plainly. No filler card, no invented venue.
ERROR
Could not load suggestions.
Retry in place. This surface never writes intake.
PERMISSION
Location is off, so distances are hidden.
Options still listed without distance; asks once.
OFFLINE
You are offline. Saved suggestions only.
Anything already saved to Plan stays readable.
DISMISSED
Hidden. It will not come back for this meal.
One undo, then gone.
ACCEPTED
Saved to your Plan.
Becomes an ordinary plan task; no intake, no workout record.
STALE
From earlier today — times may have moved.
Marked stale rather than silently refreshed.

8 · What this mockup deliberately does not do