csm-dashboard-parityrun.md01_define/output/spec.mdWeb's CSM "Go live control" dashboard has drifted from the demo design reference in small, presentational ways that erode the persona experience: the header lost demo's urgency tertiary line and demoted the tagline sizing, the action strip lost its responsive layout (it no longer wraps or stacks on narrow viewports), and the go-live blocker row shows a different secondary label than demo. This matters for the demo-web-parity epic under Refine the Bridge / Q2 2026 O1 (vendor engagement — the CSM drives activation and go-live): the CSM dashboard is where a CSM applies pressure to unblock go-lives, so demo and web must present the same, coherent control surface rather than quietly diverging.
Bring web's CSM dashboard back into visual parity with demo, keeping web's legitimate real-data enrichments:
xs/text-gray-400, and restore the "See what is blocked · Apply
pressure to the right actor · Push accounts to value" tagline to demo's sm/medium/text-gray-700
sizing. Keep web's real "Signed in as {name}" line (a documented, real-data enrichment demo can't
show) above the tagline.flex-col items-start gap-3 sm:flex-row sm:items-center sm:justify-between), the escalation stats
wrap (flex-wrap gap-x-3 gap-y-0.5), and the "Fix now" button holds its size (shrink-0).row.csm), matching demo. This reinforces the CSM-centric model
(clicking a CSM in the activation table filters the blocker queue) and stays meaningful when scope
is "All accounts". The region field stays on the row type; only the displayed label changes.csm-sdm-panels-in-demo brings
the Portfolio panel into demo.xs/text-gray-400, matching demo.sm/medium/text-gray-700 sizing (not demoted to xs).sm (flex-col →
sm:flex-row / sm:justify-between), the escalation stats wrap, and the "Fix now" button does
not shrink — matching demo's responsive behaviour.csm-sdm-panels-in-demo. That stub also retires demo's activation-table scope toggle.region field and
all rollup/queue logic are untouched.csm-sdm-panels-in-demo reworks
the panel/scope story across both apps.02_build/output/notes.mdfeat: csm-dashboard-parity — restore demo header lines, responsive action strip, CSM blocker labelapps/web/app/(app)/csm/dashboard/page.tsx — header: restored the "See what is
blocked · …" tagline to demo's sm/medium/text-gray-700 sizing (was demoted to xs), and
added the "Red and Amber only · Sorted by urgency · Every row = one problem to solve" tertiary line
at xs/text-gray-400. Web's real "Signed in as {name}" line is kept above the tagline.apps/web/components/dashboard/csm/action-strip-section.tsx — restored demo's responsive layout:
the Alert now flex-col items-start gap-3 and rows out at sm:flex-row sm:items-center sm:justify-between; the escalation stats row wraps (flex-wrap gap-x-3 gap-y-0.5); the "Fix now"
Link holds its size (shrink-0).apps/web/components/dashboard/csm/blocker-table-row.tsx — the secondary label under the account
name now shows the owning CSM name (row.csm) instead of row.region, matching demo. The region
field is retained on the row type (context/filtering); only the rendered label changed, and the
two field JSDoc comments were updated to reflect it.xs/text-gray-400 — added as the header's
tertiary line.sm/medium/text-gray-700 sizing —
restored from the demoted xs.flex-col → sm:flex-row/sm:justify-between, stats wrap, button
shrink-0) — classes restored to match demo.row.region → row.csm.csm-sdm-panels-in-demo.