diff --git a/apps/web/src/app/activity/page.tsx b/apps/web/src/app/activity/page.tsx
index 01572c8..db18c37 100644
--- a/apps/web/src/app/activity/page.tsx
+++ b/apps/web/src/app/activity/page.tsx
@@ -215,17 +215,26 @@ export default async function ActivityPage({ searchParams }: PageProps) {
)}
+ {/* Six tabs (All / Success / Partial / Failed / Skipped / Archived)
+ packed into a phone-width row left every label squeezed to
+ ~50px. Wrap the list in an overflow-x scroller so each tab
+ keeps a readable label + comfortable touch target on mobile;
+ on desktop the row fits naturally and no scroll bar appears.
+ Negative margins extend the scroller to the page edges so the
+ first/last tabs don't look clipped against the container. */}
-
- {FILTER_TABS.map(({ value, label }) => (
-
- {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}
-
- {label}
-
-
- ))}
-
+