diff --git a/frontend/src/pages/admin/CustomerDetailPage.tsx b/frontend/src/pages/admin/CustomerDetailPage.tsx
index b5a630cc..cb331db7 100644
--- a/frontend/src/pages/admin/CustomerDetailPage.tsx
+++ b/frontend/src/pages/admin/CustomerDetailPage.tsx
@@ -284,6 +284,57 @@ export const CustomerDetailPage: React.FC = () => {
+ {/* Section order rationale (follow-up reorder request): the
+ customer detail page now flows from "who they are" (Personal)
+ → "what we know about them" (Notes) → "what they've worked
+ with us on" (Events) → "how to bill them" (Billing) → "what
+ they can do in the portal" (Features) → "destructive admin
+ actions" (Actions). Notes + Events promoted out from below
+ billing/features because they're the surfaces admins glance
+ at most when opening a customer record. */}
+
+ {/* Notes (admin-only) */}
+
+ {t('customers.detail.notesHint', 'Visible only to admins. Never shown to the customer.')}
+
+ {t('customers.detail.noEvents', 'Not assigned to any events yet. Add this customer to an event from the event form.')}
+
- {t('customers.detail.notesHint', 'Visible only to admins. Never shown to the customer.')}
-
- {t('customers.detail.noEvents', 'Not assigned to any events yet. Add this customer to an event from the event form.')}
-
+
+
+
+ {customer.events.length === 0 ? (
+
+ {customer.events.map((ev) => (
+
+ )}
+
@@ -408,48 +459,6 @@ export const CustomerDetailPage: React.FC = () => {
)}
-
-
-
- {customer.events.length === 0 ? (
-
- {customer.events.map((ev) => (
-
- )}
-