Index: src/assets/css/audio.css
===================================================================
--- src/assets/css/audio.css	(revision 93d63457c5593e4e10c1ac140a8b540618d157e2)
+++ 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 {
