diff --git a/src/modules/activities/components/ActivityList.vue b/src/modules/activities/components/ActivityList.vue
index 726f09e..1e59110 100644
--- a/src/modules/activities/components/ActivityList.vue
+++ b/src/modules/activities/components/ActivityList.vue
@@ -7,6 +7,10 @@ import type { Activity } from '../types/activity'
defineProps<{
activities: Activity[]
isLoading?: boolean
+ /** Render compact rows instead of full-image cards. Used by the
+ * Hosting view so an operator can scan their roster of events
+ * without the visual weight of hero images they already recognize. */
+ compact?: boolean
}>()
const emit = defineEmits<{
@@ -47,12 +51,17 @@ const { t } = useI18n()
-
-
+
+
diff --git a/src/modules/activities/views/ActivitiesPage.vue b/src/modules/activities/views/ActivitiesPage.vue
index 3687e5a..b820560 100644
--- a/src/modules/activities/views/ActivitiesPage.vue
+++ b/src/modules/activities/views/ActivitiesPage.vue
@@ -90,8 +90,10 @@ function openCalendar() {
-
+ strip so the tabs row stays focused on the primary views.
+ Hidden in the Hosting view — operators don't need calendar
+ navigation when they're managing their own roster. -->
+
-
+ past-events toggle + category chips below. Hidden in the
+ Hosting view — the operator's roster doesn't need them. -->
+
@@ -185,10 +188,13 @@ function openCalendar() {
{{ error }}
-
+
diff --git a/src/modules/activities/views/ActivityDetailPage.vue b/src/modules/activities/views/ActivityDetailPage.vue
index 6d46e9c..dfd2d2b 100644
--- a/src/modules/activities/views/ActivityDetailPage.vue
+++ b/src/modules/activities/views/ActivityDetailPage.vue
@@ -170,36 +170,14 @@ function goToMyTickets() {
{{ activity.summary }}
@@ -289,24 +285,40 @@ function goToMyTickets() {
{{ activity.description }}
-
+
+
+
+
-
+ tickets_* tags on the published event). Skipped for the
+ host entirely — they have the Scan CTA above and don't
+ need a Buy CTA for their own event. -->
+