/* ===========================================================================
   Shorts modal player — shared by the weather page and AI search.

   Extracted from weather-page.css when AI search gained shorts picks: the
   player is markup owned by shorts-player.js, not by either page, so its
   styles have to load anywhere that script does. Any page including
   shorts-player.js must include this too, or the modal renders unstyled.
   =========================================================================== */


/* ---------------------------------------------------------------------------
   Shorts modal player
   A short is a WINDOW of a parent VOD, so it plays here rather than navigating
   away — the page owns a live broadcast player we must not tear down, and no
   route accepts a start offset anyway.
   --------------------------------------------------------------------------- */

.shorts-player[hidden] {
  display: none;
}

.shorts-player {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.shorts-player__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}

.shorts-player__panel {
  position: relative;
  width: min(960px, 100%);
  max-height: 100%;
  overflow-y: auto;
  background: #14161a;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.shorts-player__close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  color: #fff;
  background: rgba(0, 0, 0, 0.6);
}

.shorts-player__close:hover {
  background: rgba(0, 0, 0, 0.85);
}

.shorts-player__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 14px 14px 0 0;
  overflow: hidden;
}

@supports not (aspect-ratio: 16 / 9) {
  .shorts-player__frame {
    height: 0;
    padding-bottom: 56.25%;
  }
}

.shorts-player__video,
.shorts-player__video .video-js,
.shorts-player__video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.shorts-player__unavailable[hidden] {
  display: none;
}

.shorts-player__unavailable {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  background: rgba(0, 0, 0, 0.75);
}

.shorts-player__meta {
  padding: 16px 20px 20px;
  color: #fff;
}

.shorts-player__title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
}

.shorts-player__sub {
  margin: 0 0 8px;
  font-size: 13px;
  opacity: 0.7;
}

.shorts-player__hook[hidden] {
  display: none;
}

.shorts-player__hook {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  opacity: 0.9;
}

/* Modal owns the scroll while open. */
body.shorts-player-open {
  overflow: hidden;
}
