Index: src/views/pages/admin-audio.ejs
===================================================================
--- src/views/pages/admin-audio.ejs	(revision 9b3e12c9a50437ea743c7b6c17d17a1e472da929)
+++ src/views/pages/admin-audio.ejs	(revision 706790632e4a72af669a386ed996eff6a9dc70f2)
@@ -102,7 +102,7 @@
               <button type="button" class="ax-icon-btn" data-track-edit data-id="<%= t.id %>" aria-label="Bewerken" title="Bewerken">✎</button>
               <% if (typeof premiumUnlocked === 'undefined' || premiumUnlocked) { %>
-                <form action="/admin/audio/<%= t.id %>/downloadable" method="post" class="ax-track-delete" style="display:inline">
-                  <button type="submit" class="ax-icon-btn" aria-label="Download-voor-email" title="<%= t.downloadable ? 'Download-voor-email staat AAN — klik om uit te zetten' : 'Download-voor-email staat uit — klik om aan te zetten' %>" style="<%= t.downloadable ? 'color:var(--accent,#6b8f71)' : 'opacity:.5' %>">⬇</button>
-                </form>
+                <button type="button" class="ax-icon-btn" data-track-dl data-id="<%= t.id %>" data-on="<%= t.downloadable ? '1' : '0' %>"
+                        aria-label="Download-voor-email" title="<%= t.downloadable ? 'Download-voor-email staat AAN — klik om uit te zetten' : 'Download-voor-email staat uit — klik om aan te zetten' %>"
+                        style="<%= t.downloadable ? 'color:var(--accent,#6b8f71)' : 'opacity:.5' %>">⬇</button>
               <% } %>
               <form action="/admin/audio/<%= t.id %>/delete" method="post" onsubmit="return confirm('Track verwijderen?')" class="ax-track-delete">
@@ -939,4 +939,31 @@
     });
   });
+
+  // Download-voor-email toggle — AJAX (geen pagina-reload meer).
+  document.querySelectorAll('[data-track-dl]').forEach(btn => {
+    btn.addEventListener('click', async () => {
+      if (btn.disabled) return;
+      const want = btn.dataset.on === '1' ? 0 : 1;
+      btn.disabled = true;
+      try {
+        const res = await fetch('/admin/audio/api/' + btn.dataset.id, {
+          method: 'POST',
+          headers: { 'Content-Type': 'application/json' },
+          body: JSON.stringify({ downloadable: !!want }),
+        });
+        if (!res.ok) throw new Error('HTTP ' + res.status);
+        btn.dataset.on = String(want);
+        btn.style.color = want ? 'var(--accent,#6b8f71)' : '';
+        btn.style.opacity = want ? '1' : '.5';
+        btn.title = want
+          ? 'Download-voor-email staat AAN — klik om uit te zetten'
+          : 'Download-voor-email staat uit — klik om aan te zetten';
+      } catch (e) {
+        alert('Kon niet wijzigen: ' + (e.message || e));
+      } finally {
+        btn.disabled = false;
+      }
+    });
+  });
 })();
 </script>
Index: src/views/pages/auth-login.ejs
===================================================================
--- src/views/pages/auth-login.ejs	(revision 9b3e12c9a50437ea743c7b6c17d17a1e472da929)
+++ src/views/pages/auth-login.ejs	(revision 706790632e4a72af669a386ed996eff6a9dc70f2)
@@ -2,5 +2,17 @@
   <h1>Inloggen</h1>
   <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
-  <% if (error) { %><div class="alert alert-error"><%= error %></div><% } %>
+  <% if (typeof gerr !== 'undefined' && gerr === 'admin') { %>
+    <div class="auth-notice">
+      <div class="auth-notice-icon">🔐</div>
+      <h2 class="auth-notice-title">Dit is een beheerders-account</h2>
+      <p>Je logde in met Google, maar dit e-mailadres hoort bij de <strong>beheerder</strong> van deze site.
+         Inloggen met Google is alleen voor luisteraars/fans — beheerders gebruiken altijd hun wachtwoord
+         (zo kan een Google-login nooit per ongeluk beheerrechten geven).</p>
+      <ul class="auth-notice-list">
+        <li><strong>Ben je de beheerder?</strong> Log hieronder in met je <strong>gebruikersnaam + wachtwoord</strong>.</li>
+        <li><strong>Wil je als fan inloggen?</strong> Gebruik een <strong>ander Google-account</strong> (niet je beheerdersadres).</li>
+      </ul>
+    </div>
+  <% } else if (error) { %><div class="alert alert-error"><%= error %></div><% } %>
 
   <form method="post" action="/auth/login" class="auth-form">
@@ -33,2 +45,11 @@
   <% } %>
 </div>
+
+<style>
+  .auth-notice { border: 1px solid rgba(128,128,128,.28); border-radius: 14px; padding: 18px 20px; margin-bottom: 18px; background: rgba(128,128,128,.06); }
+  .auth-notice-icon { font-size: 26px; }
+  .auth-notice-title { font-size: 17px; margin: 4px 0 8px; }
+  .auth-notice p { margin: 0 0 10px; line-height: 1.55; opacity: .9; }
+  .auth-notice-list { margin: 0; padding-left: 18px; line-height: 1.6; }
+  .auth-notice-list li { margin: 4px 0; }
+</style>
