:root {
  aspect-ratio: 2 / 3;
  background: #0f1520;
  border-bottom: 1px solid var(--app-border);
  overflow: hidden;
}

.thumb-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.thumb-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--app-muted);
  font-size: 2rem;
  background:
    linear-gradient(135deg, rgba(124, 92, 255, .28), rgba(13, 110, 253, .12)),
    #111827;
}

.badge-soft {
  background: rgba(124, 92, 255, .18);
  color: #d8d1ff;
  border: 1px solid rgba(124, 92, 255, .35);
}

.chapter-item {
  background: var(--app-card);
  color: var(--app-text);
  border-color: var(--app-border);
}

.chapter-item:hover {
  background: var(--app-card-hover);
  color: var(--app-text);
}

.chapter-item.active {
  background: var(--app-accent);
  color: #fff;
  border-color: var(--app-accent);
}

.chapter-item.active small {
  color: #eee !important;
}

.player-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1050;
  background: rgba(12, 17, 27, .96);
  border-top: 1px solid var(--app-border);
  box-shadow: 0 -1rem 2rem rgba(0,0,0,.35);
  backdrop-filter: blur(12px);
}

.form-select,
.form-control,
audio {
  color-scheme: dark;
}

.btn-outline-secondary {
  border-color: var(--app-border);
  color: var(--app-text);
}

.btn-outline-secondary:hover {
  background: var(--app-card-hover);
  border-color: var(--app-border);
  color: #fff;
}

html {
  min-height: 100%;
  height: auto !important;
  overflow-y: auto !important;
}

body {
  min-height: 100%;
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

main,
.container,
.app-shell {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.admin-page {
  padding-bottom: 4rem !important;
}

.admin-page .player-bar {
  display: none !important;
}

/* ---------- MOBILE OVERFLOW FIX ---------- */

html,
body {
  max-width: 100%;
  overflow-x: hidden !important;
}

.container,
.container-fluid,
.app-shell,
.row {
  max-width: 100%;
}

.row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

[class*='col-'] {
  padding-left: .75rem;
  padding-right: .75rem;
}

.player-bar {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
}

audio {
  width: 100%;
  max-width: 100%;
}

img {
  max-width: 100%;
}

.card,
.nav-card {
  max-width: 100%;
  overflow: hidden;
}