Index: src/routes/auth.js
===================================================================
--- src/routes/auth.js	(revision 706790632e4a72af669a386ed996eff6a9dc70f2)
+++ src/routes/auth.js	(revision 3b6e04aee4e78d2185343d7441f884a0b2fa3285)
@@ -236,5 +236,5 @@
 router.get('/google', (req, res) => {
   if (!fanLoginReady()) {
-    return res.redirect('/auth/login?error=' + encodeURIComponent('Inloggen met Google is op deze site niet beschikbaar.'));
+    return res.redirect('/auth/login?gerr=unavailable');
   }
   const state = crypto.randomBytes(16).toString('hex');
@@ -256,9 +256,9 @@
 
 router.get('/google/callback', async (req, res) => {
-  const fail = (msg) => res.redirect('/auth/login?error=' + encodeURIComponent(msg));
-  if (!fanLoginReady()) return fail('Inloggen met Google is op deze site niet beschikbaar.');
+  const fail = (code) => res.redirect('/auth/login?gerr=' + code);
+  if (!fanLoginReady()) return fail('unavailable');
   try {
     const { code, state } = req.query;
-    if (!code || !state || state !== req.session.oauthState) return fail('Login afgebroken of ongeldige sessie.');
+    if (!code || !state || state !== req.session.oauthState) return fail('session');
     const next = safeNext(req.session.oauthNext) || '';
     delete req.session.oauthState;
@@ -268,5 +268,5 @@
     const info = await fetchUserinfo(tok.access_token);
     const email = (info.email || '').trim().toLowerCase();
-    if (!email || info.email_verified === false) return fail('Geen geverifieerd Google-e-mailadres.');
+    if (!email || info.email_verified === false) return fail('email');
 
     let user = db.prepare('SELECT * FROM users WHERE LOWER(email) = ?').get(email);
@@ -277,10 +277,10 @@
       if (user.role === 'god' || user.role === 'admin') {
         // Eigen, duidelijke uitleg-pagina (zie auth-login.ejs) i.p.v. een kale melding.
-        return res.redirect('/auth/login?gerr=admin');
+        return fail('admin');
       }
       // Bestaande luisteraar: koppel google_sub/avatar als die ontbreken; weiger
       // als al aan een ander Google-account gekoppeld.
       if (user.google_sub && info.sub && user.google_sub !== info.sub) {
-        return fail('Dit e-mailadres is al aan een ander Google-account gekoppeld.');
+        return fail('linked');
       }
       db.prepare(`
@@ -307,5 +307,5 @@
   } catch (e) {
     console.error('[auth/google/callback]', e.message);
-    fail('Google-login mislukt. Probeer opnieuw.');
+    fail('failed');
   }
 });
