Index: src/views/pages/admin-audio.ejs
===================================================================
--- src/views/pages/admin-audio.ejs	(revision f24b795df9de0065a2a1d1f073c8852baf612bc4)
+++ src/views/pages/admin-audio.ejs	(revision 2ab99c0908f555f275b1278ce39f96e08005c50c)
@@ -1,5 +1,6 @@
 <div class="container ax-page">
 
-  <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a> <a href="/admin/playlists" class="btn">🎵 <%= t('admin.b_playlists') %></a></p>
+  <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/media-tabs', { active: 'audio', audioOn: true }) %>
   <header class="ax-header">
     <div>
Index: src/views/pages/admin-media.ejs
===================================================================
--- src/views/pages/admin-media.ejs	(revision f24b795df9de0065a2a1d1f073c8852baf612bc4)
+++ src/views/pages/admin-media.ejs	(revision 2ab99c0908f555f275b1278ce39f96e08005c50c)
@@ -4,8 +4,5 @@
   <h1 style="font-family:var(--display,serif);margin:.2rem 0 1rem;"><%= t('admin.t_media') %></h1>
 
-  <div style="display:flex;gap:.5rem;margin-bottom:1.25rem;border-bottom:1px solid var(--rule,rgba(128,128,128,.3));padding-bottom:.5rem;">
-    <span class="btn" style="border-bottom:2px solid var(--accent);border-radius:0;font-weight:600;"><%= t('admin.media_images') %></span>
-    <% if (audioOn) { %><a href="/admin/audio" class="btn" style="border-radius:0;opacity:.85;"><%= t('admin.b_audio') %> →</a><% } %>
-  </div>
+  <%- include('../partials/media-tabs', { active: 'images', audioOn: audioOn }) %>
 
   <% if (success) { %><p style="background:rgba(60,160,90,.15);border:1px solid rgba(60,160,90,.4);padding:.5rem .8rem;border-radius:8px;"><%= success %></p><% } %>
Index: src/views/pages/admin-playlists.ejs
===================================================================
--- src/views/pages/admin-playlists.ejs	(revision f24b795df9de0065a2a1d1f073c8852baf612bc4)
+++ src/views/pages/admin-playlists.ejs	(revision 2ab99c0908f555f275b1278ce39f96e08005c50c)
@@ -8,4 +8,5 @@
 
   <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/media-tabs', { active: 'playlists', audioOn: true }) %>
   <header class="ax-header">
     <div>
Index: src/views/partials/media-tabs.ejs
===================================================================
--- src/views/partials/media-tabs.ejs	(revision 2ab99c0908f555f275b1278ce39f96e08005c50c)
+++ src/views/partials/media-tabs.ejs	(revision 2ab99c0908f555f275b1278ce39f96e08005c50c)
@@ -0,0 +1,9 @@
+<%# Shared Media tab bar (Afbeeldingen / Audio / Playlists). Params: active = 'images'|'audio'|'playlists'; audioOn (bool, default true). %>
+<% var _a = (typeof audioOn === 'undefined') ? true : audioOn; %>
+<nav class="media-tabs" aria-label="Media" style="display:flex;gap:.4rem;margin:0 0 1.25rem;border-bottom:1px solid var(--rule,rgba(128,128,128,.3));flex-wrap:wrap;">
+  <a href="/admin/media" class="btn" style="border-radius:8px 8px 0 0;<%= active === 'images' ? 'border-bottom:2px solid var(--accent,#e8b04b);font-weight:600;' : 'opacity:.8;' %>"><%= t('admin.media_images') %></a>
+  <% if (_a) { %>
+  <a href="/admin/audio" class="btn" style="border-radius:8px 8px 0 0;<%= active === 'audio' ? 'border-bottom:2px solid var(--accent,#e8b04b);font-weight:600;' : 'opacity:.8;' %>"><%= t('admin.b_audio') %></a>
+  <a href="/admin/playlists" class="btn" style="border-radius:8px 8px 0 0;<%= active === 'playlists' ? 'border-bottom:2px solid var(--accent,#e8b04b);font-weight:600;' : 'opacity:.8;' %>"><%= t('admin.b_playlists') %></a>
+  <% } %>
+</nav>
