1 · Unresolved agenda row — inline resolve pair
3:30 pm— Yesterday Unresolved
RP
The row stays --attn (orange-02) until resolved — it never takes --dim, which is reserved for a settled outcome (Declined/Missed strike, per R-C). The inline pair (.act-complete / .act-missed) opens the full dialog for the note; a future one-tap-only mode is out of scope here.
2 · Desktop dialog — three states
Default
Resolve Visit
Show selected
Resolve Visit
No-show selected
Resolve Visit
Have DAISI follow up with this customer?
PRESCRIPTIVE: the outcome-note field has no model support today — it is a design-ahead capture point, not a shipped field (eng ask on the epic list). "Resolve" stays disabled until an outcome is chosen. No-show reveals a secondary "DAISI follow up" affordance; Show does not.
3 · Mobile — full-screen covering sheet (never a pushed pane)
Resolve Visit
Mobile uses .sb-cvrsheet — a full-screen sheet that slides up over the agenda (translateY(100%) → .is-open), not the desktop's 424px split-view panel. Resolution is a modal decision at any width; mobile has no room to push content beside it.
4 · Undo toast
Marked as shown Every resolve — inline pair or dialog — surfaces this toast. Undo reverts the visit to Unresolved; the status chip goes back to reading "outcome unknown" wherever it appears — no confirm dialog on the way in, only this way back out.