/* AVPlay occupies the video element's viewport; UI overlays stay above it. */
.samsung-av-surface { position: fixed; z-index: 1; border: 0; visibility: hidden; pointer-events: none; }
.samsung-av-caption { position: fixed; z-index: 4; color: white; font-size: 32px; text-align: center; white-space: pre-line; text-shadow: 2px 2px 3px black, -1px -1px 2px black; pointer-events: none; }
.movie-player-controls, .movie-player-error, .live-fullscreen-overlay { z-index: 5; }
.live-playing-name, .live-video-fallback { z-index: 2; }


/* Tizen performance test: focus must not trigger scale/shadow animations.
   Older Samsung Chromium builds can repaint a large portion of the 1080p scene
   when transform + large blurred box-shadow changes on every remote key. */
.focusable {
  transition: none !important;
}
.focusable:focus {
  transform: none !important;
  box-shadow: none !important;
  outline: 3px solid rgba(255,255,255,0.95) !important;
  outline-offset: 2px;
}

/* Confine grid layout/paint invalidation to its scrollport. The panel padding
   leaves room for focus outlines, so containment does not clip focused cards. */
.movies-grid-panel {
  contain: layout paint;
  overflow-anchor: none;
  scroll-behavior: auto;
}
.movie-poster-frame { contain: layout paint; }

.catalog-loading-screen {
  display: flex;
  align-items: center;
  justify-content: center;
}
.catalog-loading-screen .spinner { margin: 0; }
.live-list, .movie-category-list { overflow-anchor: none; scroll-behavior: auto; }

/* Keep the category outline inside its scrollport; posters already have
   their own red focus border on the frame. */
.movie-category-row.focusable:focus { outline-offset: -3px; }
.movie-card.focusable:focus { outline: none !important; }
.movie-player-seek.focusable:focus { outline: none !important; }
.playlist-card.focusable:focus { outline: none !important; }

/* Preserve card geometry while loading; never paint the browser's broken
   image UI during pending/canceled requests. No per-poster fade repaint. */
.movie-poster-frame { background: #060606; }
.movie-poster { visibility: hidden; }
.movie-poster.poster-ready { visibility: visible; }
.movie-poster-fallback { visibility: visible; }
.movie-poster-main { visibility: hidden; }
.movie-poster-main.poster-ready { visibility: visible; }
