Index: src/assets/css/audio.css
===================================================================
--- src/assets/css/audio.css	(revision dbde7f81954b336f3ceeb305ec032fe873e7f54f)
+++ src/assets/css/audio.css	(revision 125e0e17d0d92bdead20370410615d0fb9dda317)
@@ -102,4 +102,13 @@
     padding-bottom: calc(72px + 80px + env(safe-area-inset-bottom, 0));
   }
+}
+/* Het auth/login-focusscherm rendert GEEN bottom-tab (zie shell.ejs), maar de body
+   houdt wel de has-bottom-tab-class → zonder dit zou de mini-player 56px boven de
+   onderrand zweven boven een niet-bestaande tab. Reset naar bottom:0 (alle breedtes;
+   op desktop is 't sowieso al 0). Robuuste class-selector — geen :has() in deze
+   kritieke regel. */
+body.on-auth .audio-player {
+  bottom: 0;
+  padding-bottom: env(safe-area-inset-bottom, 0);
 }
 [data-theme="dark"] .audio-player {
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision dbde7f81954b336f3ceeb305ec032fe873e7f54f)
+++ src/views/shell.ejs	(revision 125e0e17d0d92bdead20370410615d0fb9dda317)
@@ -168,5 +168,5 @@
      anywhere (admin previews, post embeds, etc). The player itself is
      a singleton — see the script tag near </body>. -->
-<link rel="stylesheet" href="/assets/css/audio.css?v=5">
+<link rel="stylesheet" href="/assets/css/audio.css?v=6">
 <!-- Eigen custom media-embeds (YouTube/SoundCloud/Spotify) in huisstijl. -->
 <link rel="stylesheet" href="/assets/css/embed.css?v=3">
