Index: src/assets/css/audio.css
===================================================================
--- src/assets/css/audio.css	(revision a1c8cb8e3249d5b67ffce6bdd2c3ca39542ef663)
+++ src/assets/css/audio.css	(revision ddecd9adea00ee80dde327063e7e4a0ab794ef06)
@@ -148,4 +148,10 @@
 .audio-player-expand-trigger:hover {
   background: color-mix(in srgb, var(--ink, #000) 6%, transparent);
+}
+/* DESKTOP (≥1200px): geen full player — de expand-trigger opent niets (JS),
+   dus 'm niet als klikbaar laten ogen. */
+@media (min-width: 1200px) {
+  .audio-player-expand-trigger { cursor: default; }
+  .audio-player-expand-trigger:hover { background: none; }
 }
 
@@ -350,6 +356,6 @@
 body.audio-sheet-locked { overflow: hidden; }
 
-/* MOBILE (<720px): full-width sheet, slide up from bottom */
-@media (max-width: 719.98px) {
+/* TELEFOON (<768px): full-width sheet, slide up from bottom */
+@media (max-width: 767.98px) {
   .audio-sheet-panel {
     /* Real full-screen, edge-to-edge, no rounded corners or shadow */
@@ -371,21 +377,36 @@
 }
 
-/* DESKTOP (≥720px): 480px wide, horizontally centered (v9 design intent).
-   We MUST set width here because v9's style.css sets width:480px and
-   we don't want left/right:0 stretching to override it.
-   The -50% horizontal centering is preserved during drag by composing
-   --pcms-drag-y into the existing translate(-50%, ...) transform. */
-@media (min-width: 720px) {
+/* TABLET / AUTO (768–1199px): grote, landscape, knop-vriendelijke full-player
+   voor tablets + een tablet-in-de-auto. Bewust full-screen + grote touch-targets.
+   Desktop (≥1200px) opent de full player NIET (afgehandeld in audio-player.js),
+   dus daar is geen sheet-styling nodig. */
+@media (min-width: 768px) and (max-width: 1199.98px) {
   .audio-sheet-panel {
-    left: 50%;
-    right: auto;
-    width: 480px;
-    transform: translate(-50%, 100%);
-    border-top-left-radius: 20px;
-    border-top-right-radius: 20px;
+    inset: 0; left: 0; right: 0; width: auto;
+    max-height: none;
+    border-radius: 0;
+    box-shadow: none;
+    transform: translateY(100%);
+    padding: clamp(2rem, 5vh, 4rem) clamp(2rem, 6vw, 5rem);
+    gap: clamp(1.25rem, 3vh, 2.5rem);
+    justify-content: center;
+    align-items: center;
   }
-  .audio-sheet.is-open .audio-sheet-panel {
-    transform: translate(-50%, var(--pcms-drag-y, 0px));
-  }
+  .audio-sheet.is-open .audio-sheet-panel { transform: translateY(var(--pcms-drag-y, 0px)); }
+
+  .audio-sheet-drag-zone { align-items: center; width: 100%; margin: 0; padding: 0; }
+  .audio-sheet-cover { width: min(48vh, 460px); max-width: none; border-radius: 20px; }
+  .audio-sheet-cover svg { width: 26%; height: 26%; }
+  .audio-sheet-info { width: 100%; max-width: 660px; }
+  .audio-sheet-title  { font-size: clamp(2rem, 4vw, 3rem); }
+  .audio-sheet-artist { font-size: clamp(1.1rem, 2vw, 1.5rem); margin-top: .5rem; }
+  .audio-sheet-album  { font-size: 1rem; margin-top: .25rem; }
+  .audio-sheet-progress { width: 100%; max-width: 660px; gap: 1.25rem; }
+  .audio-sheet-progress .audio-time { font-size: 1.05rem; min-width: 3.2em; }
+  .audio-sheet-controls { gap: clamp(1.5rem, 5vw, 3.5rem); }
+  .audio-sheet-btn { width: 76px; height: 76px; }
+  .audio-sheet-btn svg { width: 34px; height: 34px; }
+  .audio-sheet-play { width: 108px; height: 108px; }
+  .audio-sheet-play svg { width: 46px; height: 46px; }
 }
 
Index: src/assets/js/audio-player.js
===================================================================
--- src/assets/js/audio-player.js	(revision a1c8cb8e3249d5b67ffce6bdd2c3ca39542ef663)
+++ src/assets/js/audio-player.js	(revision ddecd9adea00ee80dde327063e7e4a0ab794ef06)
@@ -327,7 +327,15 @@
   // (@media max-width:719.98px). On wider/desktop widths the sheet is a centered
   // panel, so we do NOT auto-open it there.
-  function isMobileView() {
-    return window.matchMedia('(max-width: 719.98px)').matches;
-  }
+  // Drie weergaves (Robin 2026-06-15): telefoon (<768) = fullscreen sheet;
+  // tablet/auto (768–1199) = grote landscape full-player (tablet + tablet-in-de-
+  // auto); desktop (≥1200) = alleen mini-speler, GEEN full player. matchMedia
+  // zodat dit exact de CSS-breekpunten volgt.
+  function playerTier() {
+    if (window.matchMedia('(min-width: 1200px)').matches) return 'desktop';
+    if (window.matchMedia('(min-width: 768px)').matches) return 'tablet';
+    return 'phone';
+  }
+  function hasFullPlayer() { return playerTier() !== 'desktop'; }
+  function isMobileView() { return playerTier() === 'phone'; }
 
   function setQueue(tracks, startIdx, opts) {
@@ -341,5 +349,5 @@
     // niet bij next/prev of de site-pre-seed — zodat een sheet die de gebruiker
     // bewust sloot niet vanzelf terugkomt.
-    if (isMobileView()) openSheet();
+    if (hasFullPlayer()) openSheet();
   }
 
@@ -502,11 +510,11 @@
 
   function openSheet() {
+    if (!hasFullPlayer()) return; // desktop (≥1200): geen full player, alleen mini-speler
     if (sheet.classList.contains('is-open')) return;
     sheet.classList.add('is-open');
     sheet.setAttribute('aria-hidden', 'false');
     document.body.classList.add('audio-sheet-locked');
-    if (isMobileView()) {
-      try { history.pushState({ pcmsSheet: true }, ''); sheetHistoryPushed = true; } catch (e) {}
-    }
+    // Telefoon + tablet: history-entry zodat de terug-knop eerst de sheet sluit.
+    try { history.pushState({ pcmsSheet: true }, ''); sheetHistoryPushed = true; } catch (e) {}
   }
   function closeSheet(fromPopstate) {
@@ -532,4 +540,9 @@
   document.addEventListener('keydown', (e) => {
     if (e.key === 'Escape' && sheet.classList.contains('is-open')) closeSheet();
+  });
+  // Naar desktop-breedte (≥1200) gesleept terwijl de full player open is? Sluiten —
+  // op desktop bestaat de full player niet.
+  window.addEventListener('resize', () => {
+    if (!hasFullPlayer() && sheet.classList.contains('is-open')) closeSheet();
   });
 
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision a1c8cb8e3249d5b67ffce6bdd2c3ca39542ef663)
+++ src/views/shell.ejs	(revision ddecd9adea00ee80dde327063e7e4a0ab794ef06)
@@ -168,5 +168,5 @@
      anywhere (admin previews, post embeds, etc). The player itself is
      a singleton — see the script tag near </body>. -->
-<link rel="stylesheet" href="/assets/css/audio.css">
+<link rel="stylesheet" href="/assets/css/audio.css?v=2">
 
 <%- include('partials/shared-styles') %>
@@ -309,5 +309,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=9"></script>
+<script src="/assets/js/audio-player.js?v=10"></script>
 <% if (site && site.enable_audio_player && audioTracks && audioTracks.length > 0) { %>
   <script>window.PCMS_SITE_TRACKS = <%- JSON.stringify(audioTracks) %>;</script>
