.movie-player-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: #020617;
  color: #f8fafc;
  display: block;
  overflow: hidden;
}

.movie-player-overlay.hidden { display: none; }

.movie-player-topbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 8;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 14px 18px;
  background: linear-gradient(180deg, rgba(2, 6, 23, .92), rgba(2, 6, 23, .54), rgba(2, 6, 23, 0));
  border-bottom: 0;
  transition: opacity .22s ease, transform .22s ease;
}

.movie-player-title {
  display: block;
  font-size: 1.05rem;
  line-height: 1.2;
}

.movie-player-meta {
  display: block;
  color: rgba(226, 232, 240, .72);
  margin-top: 3px;
}

.movie-player-top-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.movie-player-cast,
.movie-player-close {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, .94);
  color: #f8fafc;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
}

.movie-player-cast {
  font-size: 1.05rem;
  font-weight: 900;
}

.movie-player-cast:hover,
.movie-player-close:hover {
  background: rgba(30, 41, 59, .98);
}

.movie-player-stage {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  min-height: 0;
  padding: 0;
}

.movie-player-video {
  width: 100%;
  height: 100%;
  max-height: none;
  background: #000;
  object-fit: contain;
}

.movie-player-controls {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(2, 6, 23, .78);
  border: 1px solid rgba(148, 163, 184, .22);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .34);
  backdrop-filter: blur(18px);
  z-index: 8;
  transition: opacity .22s ease, transform .22s ease;
}

.movie-player-overlay.controls-hidden {
  cursor: none;
}

.movie-player-overlay.controls-hidden .movie-player-topbar {
  opacity: 0;
  transform: translateY(-12px);
  pointer-events: none;
}

.movie-player-overlay.controls-hidden .movie-player-controls {
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
}

.movie-player-timeline {
  display: grid;
  grid-template-columns: 60px 1fr 72px;
  gap: 10px;
  align-items: center;
}

.movie-player-time {
  color: rgba(248, 250, 252, .82);
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.movie-player-duration { text-align: right; }

.movie-player-scrub,
.movie-player-volume {
  width: 100%;
  accent-color: #facc15;
  cursor: pointer;
}

.movie-player-scrub:disabled,
.movie-player-control:disabled {
  opacity: .46;
  cursor: not-allowed;
}

.movie-player-control-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.movie-player-control {
  min-width: 46px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  padding: 0 14px;
  background: rgba(15, 23, 42, .96);
  color: #f8fafc;
  font-weight: 900;
  cursor: pointer;
}

.movie-player-toggle {
  min-width: 54px;
  background: linear-gradient(135deg, #facc15, #f59e0b);
  color: #111827;
}

.movie-player-volume {
  max-width: 118px;
}

.movie-player-status {
  position: absolute;
  z-index: 9;
  left: 50%;
  bottom: 124px;
  transform: translateX(-50%);
  max-width: min(760px, calc(100vw - 36px));
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(15, 23, 42, .86);
  color: rgba(248, 250, 252, .9);
  border: 1px solid rgba(148, 163, 184, .2);
  text-align: center;
}

.movie-player-status.hidden { display: none; }

.movie-player-status.is-error {
  border-color: rgba(248, 113, 113, .4);
  color: #fecaca;
}

.movie-player-status.is-countdown {
  min-width: 96px;
  padding: 16px 24px;
  border-radius: 24px;
  background: rgba(15, 23, 42, .94);
  border-color: rgba(250, 204, 21, .5);
  color: #facc15;
  font-size: clamp(48px, 9vw, 108px);
  font-weight: 950;
  line-height: 1;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .42);
}

.movie-detail-actions {
  margin-top: 18px;
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.movie-detail-play-button {
  border: 0;
  border-radius: 999px;
  padding: 12px 22px;
  background: linear-gradient(135deg, #facc15, #f59e0b);
  color: #111827;
  font-weight: 900;
  letter-spacing: .03em;
  cursor: pointer;
  box-shadow: 0 16px 32px rgba(245, 158, 11, .24);
}

.movie-detail-play-button:hover {
  transform: translateY(-1px);
}

@media (max-width: 680px) {
  .movie-player-topbar { padding: 10px 12px; }
  .movie-player-top-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.movie-player-cast,
.movie-player-close { width: 38px; height: 38px; }
  .movie-player-video { max-height: none; }
  .movie-player-controls { left: 10px; right: 10px; bottom: 10px; padding: 10px; border-radius: 14px; }
  .movie-player-timeline { grid-template-columns: 48px 1fr 58px; gap: 7px; }
  .movie-player-control-row { gap: 7px; justify-content: space-between; }
  .movie-player-control { min-width: 38px; height: 34px; padding: 0 10px; font-size: .86rem; }
  .movie-player-volume { max-width: 80px; }
  .movie-player-status { bottom: 112px; }
}


/* v0.4.95 Jellyfin-style player header actions */
.movie-player-topbar {
  min-height: 7.5em;
  align-items: flex-start;
  padding: 18px 22px 46px;
  background: linear-gradient(180deg, rgba(16, 16, 16, .78) 0%, rgba(16, 16, 16, .48) 42%, rgba(16, 16, 16, 0) 100%);
  pointer-events: none;
}
.movie-player-topbar > * {
  pointer-events: auto;
}
.movie-player-top-actions {
  gap: 2px;
}
.movie-player-icon-button {
  width: 46px;
  height: 46px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #f8fafc;
  cursor: pointer;
  line-height: 1;
  transition: background .16s ease, transform .16s ease;
}
.movie-player-icon-button:hover,
.movie-player-icon-button:focus-visible {
  background: rgba(255,255,255,.14);
  outline: 0;
}
.movie-player-icon-button:active {
  transform: scale(.96);
}
.movie-player-close {
  font-size: 2rem;
  font-weight: 300;
}
.movie-player-cast,
.movie-player-sync {
  font-size: 1rem;
}
.movie-player-cast:hover,
.movie-player-close:hover {
  background: rgba(255,255,255,.14);
}
.movie-player-title {
  font-size: 1.08rem;
}
@media (max-width: 640px) {
  .movie-player-topbar {
    padding: 14px 14px 42px;
  }
  .movie-player-icon-button {
    width: 42px;
    height: 42px;
  }
}

/* v0.5.01 audio/subtitle selector foundation */
.movie-player-track-menu {
  position: absolute;
  right: 68px;
  bottom: 54px;
  z-index: 12;
  min-width: 230px;
  max-width: min(340px, calc(100vw - 36px));
  display: grid;
  gap: 6px;
  padding: 10px;
  border-radius: 14px;
  background: rgba(3, 7, 18, .96);
  border: 1px solid rgba(148, 163, 184, .28);
  box-shadow: 0 18px 44px rgba(0,0,0,.48);
  backdrop-filter: blur(18px);
}
.movie-player-track-menu.hidden { display: none; }
.movie-player-track-menu strong {
  padding: 4px 6px 6px;
  color: rgba(248,250,252,.72);
  font-size: .76rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.movie-player-track-menu button {
  width: 100%;
  min-height: 34px;
  border: 0;
  border-radius: 10px;
  padding: 8px 10px;
  background: transparent;
  color: rgba(248,250,252,.9);
  text-align: left;
  cursor: pointer;
  font-weight: 800;
}
.movie-player-track-menu button:hover,
.movie-player-track-menu button:focus-visible,
.movie-player-track-menu button.is-selected {
  background: rgba(250,204,21,.14);
  color: #fefce8;
  outline: 0;
}
.movie-player-track-menu button.is-disabled,
.movie-player-track-menu button:disabled {
  opacity: .48;
  cursor: not-allowed;
  background: transparent;
}
.movie-player-control.is-active {
  background: rgba(250,204,21,.22);
  color: #fefce8;
}
.movie-player-audio,
.movie-player-subtitles {
  min-width: 58px;
}
@media (max-width: 680px) {
  .movie-player-track-menu {
    right: 10px;
    bottom: 48px;
    min-width: min(260px, calc(100vw - 24px));
  }
  .movie-player-audio,
  .movie-player-subtitles {
    min-width: 44px;
    padding-inline: 9px;
  }
}

/* v0.5.62: force player video to fit the visible window without cropping. */
/* v0.5.63: keep fit while faster HLS startup tuning happens in player/transcode. */
.movie-player-overlay,
.movie-player-overlay.is-browser-fullscreen {
  width: 100vw;
  height: 100vh;
}

.movie-player-stage {
  overflow: hidden;
  width: 100vw;
  height: 100vh;
}

.movie-player-video {
  display: block;
  width: 100vw !important;
  height: 100vh !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  min-width: 0 !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center center;
}
