Index: scripts/render-admin-views.mjs
===================================================================
--- scripts/render-admin-views.mjs	(revision a982e7eea932c92389eb43741ea6f66181756dd3)
+++ scripts/render-admin-views.mjs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -27,4 +27,6 @@
 
 const gevuld = {
+  'admin-audio': { tracks: [], playlists: [], maxBytesMb: 20, maxWavMb: 100 },
+  'admin-playlists': { playlists: [] },
   'admin-media': { items: [{ file: 'a.jpg', url: '/m/a.jpg', kb: 12, usedCount: 0, hasVideo: true }], unusedCount: 1 },
   'admin-videos': { items: [{ file: 'b.mp4', url: '/m/b.mp4', kb: 99, usedCount: 2 }] },
@@ -32,4 +34,6 @@
 };
 const leeg = {
+  'admin-audio': { tracks: [], playlists: [], maxBytesMb: 20, maxWavMb: 100 },
+  'admin-playlists': { playlists: [] },
   'admin-media': { items: [], unusedCount: 0 },
   'admin-videos': { items: [] },
@@ -54,4 +58,12 @@
       if (!html.includes('.ax-tab[aria-current')) fouten.push('admin-styles ontbreekt');
       if (!html.includes('class="container ax-page"')) fouten.push('ax-page-romp ontbreekt');
+      // De terugknop, met NAAM en al. Robin zag op 16-8 dat hij van grootte
+      // verschilde: drie pagina's hadden ax-btn en twee de globale btn, en dat
+      // scheelt 10px hoogte en een andere radius. Dit is de regel die dat
+      // vasthoudt -- de klasse staat er letterlijk in, want juist zo'n verschil
+      // ziet er in de bron uit als hetzelfde.
+      const terug = /<a href="\/admin" class="([^"]+)">/.exec(markup);
+      if (!terug) fouten.push('geen terugknop naar /admin');
+      else if (terug[1] !== 'ax-btn') fouten.push('terugknop heeft class="' + terug[1] + '" i.p.v. ax-btn');
       // Twee vormen van stille schade die er goed uitzien in de bron.
       if (markup.includes("[object Promise]")) fouten.push('onopgeloste include');
Index: src/views/pages/admin-audio.ejs
===================================================================
--- src/views/pages/admin-audio.ejs	(revision a982e7eea932c92389eb43741ea6f66181756dd3)
+++ src/views/pages/admin-audio.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -5,5 +5,5 @@
 <div class="container ax-page">
 
-  <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/admin-back') %>
   <%- include('../partials/media-tabs', { active: 'audio', audioOn: true }) %>
   <header class="ax-header">
Index: src/views/pages/admin-listeners.ejs
===================================================================
--- src/views/pages/admin-listeners.ejs	(revision a982e7eea932c92389eb43741ea6f66181756dd3)
+++ src/views/pages/admin-listeners.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -8,5 +8,5 @@
 <div class="container ax-page">
 
-  <p><a href="/admin" class="ax-btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/admin-back') %>
   <%- include('../partials/media-tabs', { active: 'listeners', audioOn: audioOn }) %>
   <header class="ax-header">
Index: src/views/pages/admin-media.ejs
===================================================================
--- src/views/pages/admin-media.ejs	(revision a982e7eea932c92389eb43741ea6f66181756dd3)
+++ src/views/pages/admin-media.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -8,5 +8,5 @@
 <div class="container ax-page">
 
-  <p><a href="/admin" class="ax-btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/admin-back') %>
   <%- include('../partials/media-tabs', { active: 'images', audioOn: audioOn }) %>
   <header class="ax-header">
Index: src/views/pages/admin-playlists.ejs
===================================================================
--- src/views/pages/admin-playlists.ejs	(revision a982e7eea932c92389eb43741ea6f66181756dd3)
+++ src/views/pages/admin-playlists.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -11,5 +11,5 @@
 <div class="container ax-page">
 
-  <p><a href="/admin" class="btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/admin-back') %>
   <%- include('../partials/media-tabs', { active: 'playlists', audioOn: true }) %>
   <header class="ax-header">
Index: src/views/pages/admin-videos.ejs
===================================================================
--- src/views/pages/admin-videos.ejs	(revision a982e7eea932c92389eb43741ea6f66181756dd3)
+++ src/views/pages/admin-videos.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -10,5 +10,5 @@
 <div class="container ax-page">
 
-  <p><a href="/admin" class="ax-btn">&larr; <%= t('nav.admin') %></a></p>
+  <%- include('../partials/admin-back') %>
   <%- include('../partials/media-tabs', { active: 'videos', audioOn: audioOn }) %>
   <header class="ax-header">
Index: src/views/partials/admin-back.ejs
===================================================================
--- src/views/partials/admin-back.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
+++ src/views/partials/admin-back.ejs	(revision daa8eb83ac114527c2656a3a589437fcbe41a710)
@@ -0,0 +1,11 @@
+<%# De terugknop naar /admin.
+
+    Een partial voor een regel van niets, om dezelfde reden als de tabbalk:
+    hij stond op vijf pagina's los, drie met class="ax-btn" en twee met de
+    globale class="btn". Dat scheelt zichtbaar -- .btn is 0.55rem/1rem met
+    radius 5 en geen minimumhoogte, .ax-btn is 0.6rem/1.1rem met radius 8 en
+    min-height 44px. Robin zag het meteen (16-8).
+
+    Het wordt .ax-btn: deze pagina's zijn ax-pagina's, en 44px is de maat waar
+    een vinger op past. %>
+<p><a href="/admin" class="ax-btn">&larr; <%= t('nav.admin') %></a></p>
