Index: src/services/ActivityPubService.js
===================================================================
--- src/services/ActivityPubService.js	(revision 6b5d7da762e4f4cedbefb24fb218a1006897f071)
+++ src/services/ActivityPubService.js	(revision e84ce323dc022a50b67b2190764a08eff6302a1b)
@@ -3162,5 +3162,8 @@
     if (!texts) return;
     const who = deriveHandle(ev.candidate || ev.ward || ev.guardian || '') || '?';
-    pushEvent(slug, { type: 'guardian', title: i18nT(L, texts[0]), body: i18nT(L, texts[1], { who }), url: '/guardian' });
+    // An offer is answered in the kid's own Berichten; a ward's accept lands
+    // in the guardian's PWA.
+    const url = ev.kind === 'offer_received' ? `${pushPrefix(slug)}/messages` : '/guardian';
+    pushEvent(slug, { type: 'guardian', title: i18nT(L, texts[0]), body: i18nT(L, texts[1], { who }), url });
   },
 });
