Index: src/assets/css/style.css
===================================================================
--- src/assets/css/style.css	(revision ddf549f75c0981212d2ef92b8de8e2f57e64546e)
+++ src/assets/css/style.css	(revision 5258945073368775323191318c54bcd202f89a64)
@@ -2824,4 +2824,11 @@
 .post-album-track-compact.pat-flash {
     animation: patFlash 1.6s ease-out;
+    border-radius: 8px;
+}
+/* Blijvende highlight op de track die NU actief is in de speler. */
+.post-audio-track.pat-playing,
+.post-album-track-compact.pat-playing {
+    background: color-mix(in srgb, var(--accent, #c2410c) 12%, var(--paper-2, transparent));
+    box-shadow: inset 3px 0 0 0 var(--accent, #c2410c);
     border-radius: 8px;
 }
Index: src/assets/js/audio-player.js
===================================================================
--- src/assets/js/audio-player.js	(revision ddf549f75c0981212d2ef92b8de8e2f57e64546e)
+++ src/assets/js/audio-player.js	(revision 5258945073368775323191318c54bcd202f89a64)
@@ -276,4 +276,17 @@
   // Used by the site pre-seed so opening a page doesn't auto-download audio;
   // the blob is fetched lazily on the first play().
+  // Markeer de huidige track persistent (blijvende highlight zolang 'ie actief is).
+  function markPlaying(trackId) {
+    document.querySelectorAll('.pat-playing').forEach((e) => e.classList.remove('pat-playing'));
+    if (!trackId) return;
+    const el = document.getElementById('track-' + trackId);
+    if (el) el.classList.add('pat-playing');
+  }
+  // Na een htmx-navigatie is de post-DOM vervangen → highlight opnieuw zetten.
+  document.body.addEventListener('htmx:afterSettle', () => {
+    const t = queue[currentIndex];
+    if (t) markPlaying(t.id);
+  });
+
   function loadTrack(index, autoplay, metaOnly) {
     if (!queue[index]) {
@@ -300,4 +313,5 @@
     document.body.classList.add('has-audio-player');
     renderQueue();
+    markPlaying(t.id);
 
     if (metaOnly) return;
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision ddf549f75c0981212d2ef92b8de8e2f57e64546e)
+++ src/views/shell.ejs	(revision 5258945073368775323191318c54bcd202f89a64)
@@ -163,5 +163,5 @@
 
 <!-- v9 stylesheet (full palette system) -->
-<link rel="stylesheet" href="/assets/css/style.css?v=17">
+<link rel="stylesheet" href="/assets/css/style.css?v=18">
 
 <!-- Audio player styles: loaded on every page so the mini-player works
@@ -300,5 +300,5 @@
      ?v=N — cache-buster: bump bij elke audio-player.js wijziging zodat
      Cloudflare (max-age=1y) niet de oude versie blijft serveren. -->
-<script src="/assets/js/audio-player.js?v=18"></script>
+<script src="/assets/js/audio-player.js?v=19"></script>
 <!-- Eigen custom media-embeds (YouTube/SoundCloud/Spotify) via de echte
      player-API's + gedeelde mutual-exclusion registry met de site-speler. -->
