Type: bug · Parent: Epic 8 (Launch readiness) · Discovered in: manual dogfooding (out-of-band)
Under the Neumorphism style (data-style='neumorphism'), the dashboard cards on /dashboard stay FLAT (hard hairline border, no neumorphic mould) — they don't match the style the way other surfaces do.
/dashboard (no id) renders DashboardsHome, NOT the widget grid — app/(authed)/dashboard/page.tsx line ~32 (return <DashboardsHome ... />). (The widget WidgetCard, which IS correctly tagged data-surface="card", only renders on /dashboard/[dashboardId] — so it is not the surface seen here.)
DashboardsHome's dashboard-list card container — app/(authed)/dashboard/_components/DashboardsHome.tsx line ~106 — is custom markup with no data-surface:
<div className="overflow-hidden rounded-(--radius-card) border border-(--el-border)"> {children} </div>
Surface-MATERIAL styles apply via [data-style='<id>'] [data-surface='<role>'] { … } and only reach surfaces that EMIT data-surface. Neumorphism's card material (app/globals.css line ~1600: [data-style='neumorphism'] [data-surface='card'] → var(--el-surface) bg + paired soft shadow) therefore never touches this container, so it renders flat. This is the known surface-material coverage gap (content surfaces built on raw markup must be tagged per-card) — the DashboardsHome list card was simply never tagged. Glassmorphism/aurora are missed on it too, for the same reason.
Emit data-surface="card" on the Group list container at DashboardsHome.tsx line ~106 (the visible overflow-hidden rounded-(--radius-card) border div), so the [data-style] [data-surface='card'] material rules reach it. Audit the other untagged dashboard surfaces in the same pass (e.g. DashboardGrid over-cap banner / empty state) and tag the ones that read as cards. Inert under non-material styles.
Open — filled by the closing-out subtask.