Index: src/assets/css/audio.css
===================================================================
--- src/assets/css/audio.css	(revision cb6b1ad756db08ae8470a2462f7f8d43e13c1c0b)
+++ src/assets/css/audio.css	(revision 441f5d6ea607779c2bfc59e9794902491d82d0a4)
@@ -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 {
