/* Provider tooltips and movie poster fit. One sheet so a poster or
   tooltip change is not applied in styles.css and missed in library-layout.css.
   Loaded after library-layout.css. Shelf posters stay cover; other movie
   cards use contain so artwork is not stretched. */

/* Styled tooltip on hover / keyboard focus. Driven by the
 * data-tooltip attribute set in renderProviderPill so screen
 * readers still use aria-label (the more accessible source).
 * Tooltip rises above the pill so it stays inside the .card
 * boundary even with `overflow: hidden`. pointer-events: none
 * so the tooltip can't intercept clicks meant for the pill. */
.provider-pill[data-tooltip] {
  position: relative;
}

.provider-pill[data-tooltip]::after,
.provider-pill[data-tooltip]::before {
  position: absolute;
  left: 50%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.12s ease 0.05s, transform 0.12s ease 0.05s;
  z-index: 50;
}

.provider-pill[data-tooltip]::after {
  content: attr(data-tooltip);
  bottom: calc(100% + 9px);
  transform: translateX(-50%) translateY(4px);
  padding: 5px 9px;
  background: var(--bg);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
  /* Reset inherited link styling — provider pills are <a>. */
  text-transform: none;
  text-decoration: none;
}

.provider-pill[data-tooltip]::before {
  content: '';
  bottom: calc(100% + 4px);
  transform: translateX(-50%) translateY(4px);
  border: 5px solid transparent;
  border-top-color: var(--border);
}

.provider-pill[data-tooltip]:hover,
.provider-pill[data-tooltip]:focus-visible {
  z-index: 60;
}

.provider-pill[data-tooltip]:hover::after,
.provider-pill[data-tooltip]:hover::before,
.provider-pill[data-tooltip]:focus-visible::after,
.provider-pill[data-tooltip]:focus-visible::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Provider tooltip stacking — lift the host tile above siblings so
 * ::after tooltips are not painted under the next card/row. */
.provider-row,
.episode-provider-pills,
.discover-card-providers,
.show-list-row-providers,
.trending-providers,
.trending-description {
  overflow: visible;
}

:is(
  .card,
  .show-list-row,
  .episode-list-row,
  .discover-card,
  .trending-media-item,
  .search-result
):is(
  :hover,
  :focus-within,
  :has(.provider-pill[data-tooltip]:hover),
  :has(.provider-pill[data-tooltip]:focus-visible)
) {
  z-index: 5;
}

html.library-layout :is(
  .card.media-card,
  .schedule-queue-item,
  .schedule-mini-event,
  .schedule-table-row,
  .coming-premiere-row,
  .coming-command-day-episode,
  .discover-card
):is(
  :hover,
  :focus-within,
  :has(.provider-pill[data-tooltip]:hover),
  :has(.provider-pill[data-tooltip]:focus-visible)
) {
  z-index: 10;
}

:is(
  .episode-list-row,
  .discover-card,
  .trending-media-item,
  .search-result
) {
  position: relative;
}

/* Touch devices don't really have hover — hide the tooltip so a
 * tap doesn't leave it sticky on the previously-tapped pill. */
@media (hover: none) {
  .provider-pill[data-tooltip]::after,
  .provider-pill[data-tooltip]::before {
    display: none;
  }
}

/* Movie posters are complete vertical compositions. contain keeps the
 * artwork intact when the card is taller than a 2:3 poster. fill stretched
 * them tall and skinny on the To Watch rail. */
html.library-layout .card.media-card.card-movie > img.poster {
  object-fit: contain;
  object-position: center;
  background: color-mix(in srgb, var(--bg) 82%, #000);
}

html.library-layout .movie-dashboard-shelf .card.media-card.card-movie > img.poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
