/* Aperture Home V23 — Android TV / remote-only overrides.
   Keep TV-specific visual and focus rules here; do not add them to app.css. */

/* ===== AHEI V21 — TV LITE CLEAN BASE ===== */
.tv-mode *,
.tv-mode *::before,
.tv-mode *::after{
  animation-duration:.001ms!important;
  animation-iteration-count:1!important;
  scroll-behavior:auto!important;
}
.tv-mode body{overflow-x:hidden!important;background:#0a0c0e!important}
.tv-mode .shell{grid-template-columns:74px minmax(0,1fr)!important;min-height:100vh!important}
.tv-mode .sidebar{width:74px!important;min-width:74px!important;max-width:74px!important;box-shadow:none!important}
.tv-mode .brand{padding:12px 6px 50px!important}
.tv-mode .brand .brand-sidebar{display:none!important}
.tv-mode .sidebar-brand-mini{display:block!important;width:42px!important;height:42px!important;margin:auto!important}
.tv-mode .aperture-system-label{display:none!important}
.tv-mode .sidebar-collapse-btn{display:none!important}
.tv-mode .nav{padding:8px 5px!important;gap:4px!important}
.tv-mode .nav button{min-height:48px!important;padding:6px 0!important;justify-content:center!important;border-radius:7px!important;transition:none!important;transform:none!important}
.tv-mode .nav button span:not(.code){display:none!important}
.tv-mode .nav .code{width:auto!important;font-size:8px!important;margin:0!important}
.tv-mode .sidebarfoot{padding:8px 5px!important}
.tv-mode .sidebarfoot .userbox{padding:5px!important;justify-content:center!important;border-radius:8px!important}
.tv-mode .sidebarfoot .avatar{width:32px!important;height:32px!important}
.tv-mode .sidebarfoot select,.tv-mode .sidebarfoot .usertext{display:none!important}
.tv-mode .main{min-width:0!important}
.tv-mode .topbar{height:54px!important;padding:0 14px!important;backdrop-filter:none!important;position:static!important}
.tv-mode .content{padding:12px 14px 22px!important;max-width:none!important;margin:0!important}
.tv-mode .homeportal,.tv-mode .category-homeportal{padding:10px!important;min-height:calc(100vh - 78px)!important}
.tv-mode .homeportal-inner{max-width:none!important;margin:0!important}
.tv-mode .home-toprow{min-height:44px!important;margin-bottom:8px!important;gap:8px!important}
.tv-mode .home-ident .brand-home .brand-logo{max-width:170px!important;max-height:42px!important}
.tv-mode .home-action{width:36px!important;height:36px!important;min-height:36px!important}
.tv-mode input,.tv-mode select,.tv-mode .btn{min-height:38px!important}
.tv-mode .hero,.tv-mode .card,.tv-mode .service,.tv-mode .device,.tv-mode .profilecard{box-shadow:none!important;backdrop-filter:none!important}
.tv-mode .card,.tv-mode .service,.tv-mode .device,.tv-mode .media-card,.tv-mode .media-library-tile{contain:layout paint!important}
.tv-mode .launcher-section,.tv-mode .aperture-shelf,.tv-mode .media-category-page{content-visibility:auto!important;contain-intrinsic-size:300px!important}
.tv-mode img{image-rendering:auto!important}
.tv-mode button,.tv-mode a,.tv-mode input,.tv-mode select,.tv-mode [tabindex]{transition:none!important;transform:none!important}
.tv-mode button:focus-visible,.tv-mode a:focus-visible,.tv-mode input:focus-visible,.tv-mode select:focus-visible,.tv-mode [tabindex]:focus-visible{
  outline:3px solid var(--orange)!important;outline-offset:2px!important;box-shadow:none!important;transform:none!important
}

/* Media uses the whole screen, but keeps a very small DOM/paint footprint. */
.tv-mode .shell.media-shell{display:block!important;width:100vw!important;min-height:100vh!important}
.tv-mode .media-shell .sidebar,.tv-mode .media-shell .topbar{display:none!important}
.tv-mode .media-shell .main,.tv-mode .media-shell .content{width:100vw!important;min-width:0!important;margin:0!important}
.tv-mode .media-shell .content{padding:8px 10px 14px!important}
.tv-mode .media-homeportal{padding:8px!important;min-height:calc(100vh - 18px)!important}
.tv-mode .media-home-toprow{min-height:40px!important;margin-bottom:5px!important;grid-template-columns:155px minmax(220px,1fr) auto!important;gap:7px!important}
.tv-mode .media-home-ident{display:block!important;min-width:155px!important}
.tv-mode .media-home-ident .brand-logo{width:150px!important;max-width:150px!important;max-height:38px!important}
.tv-mode .media-home-search input{height:34px!important;min-height:34px!important;font-size:11px!important}
.tv-mode .media-home-search>button,.tv-mode .media-home-actions .home-action{width:34px!important;height:34px!important;min-height:34px!important}
.tv-mode .media-quickstrip{margin:0 0 5px!important;gap:3px!important}
.tv-mode .media-info-chip{min-height:16px!important;padding:2px 5px!important}
.tv-mode .media-info-chip span{font-size:4px!important}.tv-mode .media-info-chip strong{font-size:6px!important}
.tv-mode .media-home-library-grid{grid-template-columns:repeat(auto-fill,minmax(78px,96px))!important;gap:7px!important;justify-content:start!important}
.tv-mode .media-custom-category-meta{padding:4px 5px!important}.tv-mode .media-custom-category-meta strong{font-size:7px!important}.tv-mode .media-custom-category-meta span{font-size:5px!important}
.tv-mode .media-row{grid-auto-columns:minmax(82px,100px)!important;gap:7px!important;padding-bottom:5px!important}
.tv-mode .media-row:has(.media-card.wide){grid-auto-columns:minmax(155px,190px)!important}
.tv-mode .media-category-grid{grid-template-columns:repeat(auto-fill,minmax(82px,102px))!important;gap:7px!important}
.tv-mode .media-card-meta{padding-top:3px!important}.tv-mode .media-card-meta strong{font-size:7px!important}.tv-mode .media-card-meta span{font-size:5px!important}
.tv-mode .media-card-tag{font-size:4px!important;padding:1px 2px!important;top:2px!important;left:2px!important}
.tv-mode .media-shelf-head,.tv-mode .launcher-title{margin-bottom:4px!important}.tv-mode .media-shelf-head h4,.tv-mode .launcher-title-text{font-size:8px!important}
.tv-mode .media-library-section{margin-bottom:10px!important}.tv-mode .aperture-shelf{margin-top:5px!important;padding-top:5px!important}

/* Detail page fits one viewport. */
.tv-mode .media-detail-page{width:100vw!important;height:100vh!important;padding:8px 12px!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;gap:6px!important;overflow:hidden!important}
.tv-mode .media-detail-page>.media-page-toolbar{margin:0!important;padding:0 0 5px!important;min-height:34px!important}
.tv-mode .media-detail-page>.media-page-toolbar .btn{min-height:32px!important;padding:5px 8px!important;font-size:7px!important}
.tv-mode .media-detail-page-hero{height:100%!important;min-height:0!important;overflow:hidden!important}
.tv-mode .media-detail-page-content{height:100%!important;min-height:0!important;padding:14px 18px!important;grid-template-columns:minmax(110px,18vw) minmax(0,1fr)!important;gap:18px!important;align-items:center!important}
.tv-mode .media-detail-page-poster{height:min(62vh,100%)!important;width:auto!important;aspect-ratio:2/3!important;justify-self:center!important}
.tv-mode .media-detail-page-info{max-height:100%!important;overflow:hidden!important;padding:12px!important;backdrop-filter:none!important}
.tv-mode .media-detail-page-info h3{font-size:clamp(22px,4vh,40px)!important;margin:3px 0 5px!important;line-height:1!important}
.tv-mode .media-detail-page-info>p{font-size:10px!important;line-height:1.35!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:4!important;overflow:hidden!important;margin:6px 0!important}
.tv-mode .media-genres{margin:5px 0!important}.tv-mode .media-genres span{font-size:6px!important;padding:2px 4px!important}
.tv-mode .media-stream-options{display:flex!important;gap:6px!important}.tv-mode .media-stream-options label{flex:1!important;font-size:6px!important}.tv-mode .media-stream-options select{height:32px!important;min-height:32px!important;font-size:8px!important}
.tv-mode .media-play-main{min-height:34px!important;font-size:8px!important}
.tv-mode .footerstamp{display:none!important}

/* Clean baseline player: intentionally simple and cheap to render. */
.tv-mode .media-player-page{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;padding:0!important;margin:0!important;background:#000!important;z-index:500!important;overflow:hidden!important}
.tv-mode .media-player-toolbar,.tv-mode .media-player-footer,.tv-mode .media-player-center-play,.tv-mode .tv-player-remote-hint,.tv-mode #mediaPlayerMute,.tv-mode #mediaPlayerVolume,.tv-mode #mediaPlayerSpeed,.tv-mode #mediaPlayerFit,.tv-mode #mediaPlayerFullscreen,.tv-mode #mediaPlayerPip{display:none!important}
.tv-mode .media-player-shell,.tv-mode .media-player-stage,.tv-mode #mediaVideo{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;background:#000!important}
.tv-mode #mediaVideo{object-fit:contain!important}
.tv-mode .media-player-topbar{position:absolute!important;top:16px!important;left:18px!important;right:18px!important;padding:0!important;background:none!important}
.tv-mode .media-player-titleblock span{font-size:8px!important;letter-spacing:.16em!important}.tv-mode .media-player-titleblock strong{font-size:20px!important}
.tv-mode .media-player-controls{position:absolute!important;left:18px!important;right:18px!important;bottom:16px!important;padding:0!important;background:none!important}
.tv-mode .media-player-seek-wrap{height:8px!important;margin:0 0 7px!important;pointer-events:none!important}.tv-mode .media-player-seek{height:3px!important;pointer-events:none!important}.tv-mode .media-player-seek::-webkit-slider-thumb{width:0!important;height:0!important}
.tv-mode .media-player-control-row{display:flex!important;justify-content:space-between!important;gap:8px!important}.tv-mode .media-player-control-group{display:flex!important;align-items:center!important;gap:6px!important}.tv-mode .media-player-control-group.right{margin-left:auto!important}
.tv-mode .player-icon-btn,.tv-mode .player-text-btn{height:38px!important;min-width:38px!important;padding:0 10px!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:8px!important;background:rgba(12,14,16,.72)!important;color:#fff!important;font-size:10px!important;backdrop-filter:none!important}
.tv-mode #mediaPlayerPlayPause{font-size:18px!important;border-color:rgba(245,139,31,.65)!important}.tv-mode #mediaPlayerTracks,.tv-mode #mediaPlayerEpisodes{min-width:90px!important}
.tv-mode .media-player-time{font-size:12px!important;margin-left:4px!important}.tv-mode .media-player-popover{right:18px!important;bottom:64px!important;width:min(340px,calc(100vw - 36px))!important;padding:12px!important;border-radius:10px!important;backdrop-filter:none!important;background:#101316!important}.tv-mode .media-player-popover select{min-height:38px!important}
.tv-mode .media-player-loading{background:rgba(0,0,0,.12)!important}.tv-mode .media-player-loading span{width:28px!important;height:28px!important;border-width:2px!important}.tv-mode .media-player-loading strong{font-size:9px!important}


/* ===== AHEI V21.1 — TV focus / scrolling fixes ===== */
/* Media category children must stay laid out even below the fold so the
   navigation map can reach row 3, 4, ... and scroll them into view. */
.tv-mode .media-category-page{
  content-visibility:visible!important;
  contain-intrinsic-size:auto!important;
}
.tv-mode .media-category-grid{
  overflow:visible!important;
  padding:3px 3px 24px!important;
}
.tv-mode .media-shell .content,
.tv-mode .media-homeportal,
.tv-mode .media-category-page{
  overflow-y:visible!important;
}
/* Make the remote cursor unmistakable on media cards without changing size. */
.tv-mode .media-card:focus-visible,
.tv-mode .media-library-tile:focus-visible{
  outline:3px solid var(--orange)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 2px rgba(245,139,31,.2)!important;
  z-index:4!important;
}

.tv-mode .media-search-dropdown{max-height:58vh!important;overflow-y:auto!important}


/* V23 remote stability */
.tv-mode .media-home-search>button{display:none!important}
.tv-mode .media-category-page .media-home-search input[readonly]{pointer-events:none!important}
.tv-mode .media-card:focus-visible,
.tv-mode .media-library-tile:focus-visible,
.tv-mode .home-action:focus-visible,
.tv-mode .nav button:focus-visible{
  outline:3px solid var(--orange)!important;
  outline-offset:3px!important;
}
.tv-mode .media-category-grid{scroll-margin-block:48px!important}
.tv-mode .media-card{scroll-margin-block:72px!important}
